python常用数据类型:
整数型(int)
略浮点型(float)
略字符串(str)
基本同ruby,单双引号都可以布尔型(bool)
True,False空值(None)
相当于nil列表(list)
就是数组(可变),可用append,pop等方法-
元组(tuple)
我理解为不可变的数组,(1,2,3)这种形式
列表和元组 都可用切片的方法[1,2,3][0:2] #表示取从索引0开始到索引2结束(不包括索引2) [1,2,3][:2] #从索引0开始的可简写为 [1,2,3][1:] #从某索引开始到结束可简写为
字典(dict)
类似于hash,key-value存储方式。长这样:{'name':'alex'},可以用[]下表取值/赋值,也可以用get()方法(参数为key)取值,可用pop方法取值并把该key,value从字典中去除;set
类似字典,但不存value,自动去重,长这样{'a','b'}
控制结构
- 循环
for x in arr:
print(x)
list、tuple、dict、set、str 都支持这种方式
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable
- 条件判断
python没有 switch case的判断结构,只能用 if elif实现
if a > 2:
print('a')
elif a > 1:
print('b')
else:
print('c')
常用函数
- map
功能与ruby map相似,但不是对象的方法
这么用
map(lambda x: x*x,[1,2,3,4]) #返回map object (可迭代对象)[1,4,9,16],lambda也可以是函数
- reduce
reduce(lambda a,b:a+b,[1,2,3,4])# 相当于 fn(fn(fn(1,2),3),4)这么凋用
- list
我的理解是把可迭代对象转化为list
list((1,2,3)) #元组
list(list({'s':1,'b':2})) #返回 ['s','b']
list( map(lambda x: x*x,[1,2,3,4]) ) #返回[1,4,9,16]
..
- filter
相当于select
list(filter(lambda x: x%2 ==0,[1,2,3,4,5] )) #返回 [2,4]
- len
获取元数个数
len((1,2,3)) #3
- ininstance,type
#判断是否某一类型
isinstance(1,int) #True
#获取类型
type(1) # <class 'int'>
参数
- 默认参数
def say(a,b=0):
return a + b
say(1,2)
say(1)
#默认参数应为不可变对象
- 可变参数
类似ruby
def pp(*args,**kw):
print(len(args))
#*args 把参数转化为tuple,**kw把关键字参数转为dict
print(kw) #{'name':'me',age:99}
pp(1,2,3name='me',age = 99)