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

私有方法同理:_方法名,只能是类里的方法来调用它

目前只需要用到这些,未完待续。。。。

上一篇下一篇

猜你喜欢

热点阅读