python基础学习1
###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)