字符串是序列的一种
格式化字符串 ‘%%50用户 name: %s age : %d salary : %.2f’% ('张三',18,1000.0)
%% 字符串的使用
格式化字符串的规则:自行百度
字符串join可以将序列用连接符拼接成新的字符串
replace 替换
maketrans 单字符替换
locale模块
字典类似map用 { } 表示,类似于json数据格式
"My name is %(name)s" % {name:"帅哥"} 字符串替换中的字典使用
浅复制和深复制 dict.copy() 浅复制只能复制dict中的对象引用,copy.deepcopy(dict)深复制能复制dict的所有内容
{}.fromkeys([1,2,3,4]) => {1:None,2:None,3:None,4:None} fromkeys能返回对应的key,对应的值为None的字典
dict.get(key)和dict[key]的区别,dict[key]取值如果此key不存在字典中会抛出异常
dict.has_key(key) 判断dict中是否有key (python3中不包含此函数)
dict.items() 将dict中的键值对已[(k1,v1),(k2,v2),(k3,v3)]的形式返回
dict.iteritems() 返回一个迭代器对象
序列解包
x,y,z = 1,2,3 1,2,3返回的其实是一个(1,2,3)元组,元组被解包,给了xyz进行了赋值
x,y = y,x 利用序列解包实现值的交换
链式赋值
x = y = func() 类似于 y = func() , x = y
增量赋值
x = 'ab' y = 'cd' x += y x此时等于‘abcd’
x *= 2 x此时等于‘abcdabcd’
False 可以有哪些值表示 False,None,0,“”,(),[],{} 都可以表示为False
if else elif 不一样的地方在elif 类似java中的else if
if 语句后加的是逻辑表达式
x is y 表示x和y是同一个对象(地址比较)要避免使用is来比较数值和字符串等不可变的值,容易出事
x == y 表示x的值和y的值是同一个值(值比较)
locale模块 本地话的意思
10
循环 while和for
for x in numbers:pass
xrange和range函数的区别 range一次创建整个序列,xrange每次只产生一个数
zip函数 a=(1,2,3) b=('a','b','c') zip(a,b)返回值[(1,'a'),(2,'b'),(3,'c')] 最短用完为止,如a=(1,2,3,4,5)结果仍不变
enumerate函数使用 enumerate(seq) 会返回(index,value)的键值对
列表推导式
[x*x for x inrange(100) if x%2==0] 1.先执行for x in range(100)获得一个值
2.执行if x%2==0判断值满足条件与否(可以省略)
3.执行x*x 可以是别的算法
exec exec 'print "hello"' 执行print "hello"语句
exec "x=10" in myScope myScope是作用域 下面使用只能用myScope.x
scope={x:10,y:2} ret = eval('x*y',scope) eval会返回值,传参也可以用scope传,需要补充
上一篇 下一篇