python基础
2017-12-07 本文已影响0人
zhouyilian
基础
print('''...'''):输出多行
大写变量名表示常量,如:PI=3.14156
None:空,inf:无限大
编码
ASCII编码:1字节
GB2312编码:>=2字节,中文编码
Unicode编码:2字节、4字节
UTF-8编码:可变长,为节省空间
工作方式:计算机内部采用Unicode,保存硬盘或传输时用UTF-8
list迭代
输出有类似java里的index,python有enumerate
for i,value in enumerate(['A','B','C']):
print(i,value)
#输出
0,A
1,B
2,C
输出多值的方法
for x,y in [(1,1),(2,4),(3,9)]:
print(x,y)
#输出
1,1
2,4
3,9
dict迭代
d={'a':1,'b':2,'c':3}
for key in d:
print(key)
#输出 a c b
因为dict的存储不是按照list的方式顺序排列,所以迭代的结果顺序很可能不一样。默认情况下,dict迭代的是key,如果要迭代value,可以用for value in d.values()
添加元素可以直接赋值:
dictionary_tk={
"name":"Leandro",
"nickname":"TK",
"nationality":"Brazilian"
}
dictionary_tk['age']=24
print(dictionary_tk)
#输出
{'name:'Leandro','nickname':'TK','nationality':'Brazilian','age':24}
set
set只存储key,且key不能重复,创建时,必须提供一个list作为输入集合:
s=set([1,2,3]
print(s)
方法有:s.add(),s.remove(),它有- | & ^集合运算
函数
函数参数注意:可变参数,关键字参数,命名关键字参数
可变参数:
它会自动组装成tuple
def calc(*numbers):
sum=0
for n in numbers:
sum=sum+n*n
return sum
...
calc(1,2)#调用1
nums=[1,2,3]
calc(*nums)
关键字参数:
它会自动组装成dict
def person(name,age,**kw):
print('name:',name,'age:',age,'other:',kw)
...
person('Adam',45,city='Beijing',gender='M')
高级特性
切片、迭代(上面讲了)、列表生成式、生成器(以后更新)、迭代器
列表生成式
list(range(1,11))
#输出 [1,2,3,4,5,6,7,8,9,10]
L=[]
for x in range(1,11):
L.append(x*x)
#输出L
[1,4,9,16,25,36,49,64,81,100]
[x*x for x in range(1,11)]
#输出 [1,4,9,16,25,36,49,64,81,100]
#筛选偶数的平方
[x *x for x in range(1,11) if x%2==0]
高阶函数
map/reduce
map()接收两个参数,一个是函数,一个是iterable,如:
def f(x):
return x*x
...
r=map(f,[1,2,3,4])
list(r)
#输出 [1,4,9,16]
filter
和map()类似,它是根据函数返回值判断是否保留该元素
def is_odd(n)
return n%2==1
...
list(filter(is_odd,[1,2,3,4,5,6]))
#输出 [1,3,5,6]
对象与变量
使用constructor方法公开实例变量
class Person:
def _init_(self,first_name):
self.first_name=first_name
...
tk=Person('TK')
print(tk.first_name)
#输出 TK
私有变量:_变量名,也可以像公开变量一样访问,只是一个约定而已,但只能通过类中方法来更新私有变量
class Person:
def _init_(self,first_name,email):
self.first_name=first_name
self._email=email
...
tk=Person('TK','tk@mail.com')
print(tk._email)
#输出
tk@mail.com
私有方法同理:_方法名,只能是类里的方法来调用它
目前只需要用到这些,未完待续。。。。