python语句
这里只列出python相对其他语言特色的地方。
1,print和import的更多信息
print使用逗号输出多个表达式
使用别名:
from module1 import functhion as aaa
from module2 import functhion as bbb
将不同模块中的同名函数区分开
2,赋值魔法
序列解包:
>>>x,y = 1,2
实际上这句话是先将(1,2)作为一个元组,然后赋给x,y的
即赋值是同时进行的,没有先后顺序,因此:
>>>x,y = y,x可以直接交换x,y的值
当函数返回元组时(返回多个值),序列解包很有用,它可以直接把返回的元组赋给多个值
链式赋值:x = y = function()
3,关于if elif else while for break continue while/true以及语句缩排在这就不说了
比较运算符:
x == y x != y 内容相等
x is y x is not y 是同一个对象
x in y x not in y 是否在容器中
1)大小比较(>和<)不要比较不兼容类型,比较相同或者近似类型时才有意义(例如整型可以跟浮点型比较)
2)字符比较,序列比较
‘abcd’ < 'bacd' True
[1,2] < [2,1] True 按顺序比较
[2,[1,3]] < [2,[1,4]] True
3)布尔表达式的值
False None 0 "" () [] {}
以上值为假,标准的False和None,所有类型的0(浮点,长整型,其他类型),空序列,空字典为假,其他一些都被解释为真。
Laura Creighton解释说:“有些东西和没有东西的区别”
4,遍历和迭代语法
1)for迭代
d = {'x':'1','y':'2','z':'3'}
for key in d:
print key,d[key]
不保持顺序。
for key,value in d.items():
print key,value
for number in range(0,10)
print number
不包括10,从0-9
2)迭代工具
并行迭代:
程序同时迭代2个序列:
names = ['name1','name2','name3']
ages = [1,2,3]
for i in range(len(names)):
print names[i],ages[i]
使用并行迭代工具:
>>>zip(names,ages)
>>>[('name1',1),('name2',2),('name3',3)]
zip函数可以将两个序列压缩在一起,返回一个元组的列表。
for name,age in zip(names,ages):
print name,age
zip函数可以作用于任意多的序列,重要的一点是可以应付不等长序列,当最短的序列用完是就停止,例如上述若names有10个元素而ages只有3个元素。
编号迭代:
有时候想要迭代序列中的对象,还想要同时获取到这个对象当前的索引。
例如,要将列表:
strings = ['abcc','fgbccad','abca','ftbcd']中所有包含bcc子串的字符串替换为‘hello’,即变为
strings = ['hello','hello','abca','ftbcd']
在迭代每个对象时,比较这个字符串是否含bcc子串,若含,则将整个字符串替换为hello,这种情境下就需要得知当前对象的索引。
方案1:
for string in strings:
if('bcc' in string):
index = strings.index(string)
strings[index] = 'hello'
方案2:
index = 0
for string in strings:
if 'bcc' in string:
string[index] = 'hello'
index += 1
方案3:编号迭代工具enumerate()函数
enumerate(strings)提供了 索引-值 对
例如:
for index,string in enumerate(stings):
print index,string
结果:
0 abcc
1 fgbccad
2 abca
3 ftbcd
所以本例可以:
for index,string in enumerate(stings):
if('bcc' in string):
string[index] = 'hello'
4,列表推导式-轻量级循环
利用其它列表创建新列表的一种方式。
>>>[x*x for x in range(4)]
>>>[0,1,4,9]
>>>[x*x for x in range(10) if x % 3 == 0]
>>>[0,9,36,81]
>>>[(x,y) for x in range(2) for y in range(3)]
>>>[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
5,其他语句
1)pass
python中空代码块是非法的,pass代表什么也不做
2)使用del删除
del一个名字就移除了它原来所指对象上的这个引用,同时删除了那个名字(此后此名字成为未定义的)。
但是注意对象本身是永远无法去删除的,它总是由垃圾回收机制去做。
>>>x = ['hello','woeld']
>>>y = x #y和x这两个引用指向了同一个对象
>>>y[1] = 'python' #同时也会改变x
>>>x
>>>['hello','python']
>>>del x #在对象上移除引用x,同时删除x这个名字
>>>y #y仍然可用
>>>x #但x这个名字成为未定义
......错误发生
3)exec执行 eval求值字符串
有时候需要动态的创建代码,exec可以将字符串作为一段代码去执行。
eval将字符串作为表达式去求值。
>>>exec "print 'hello world'"
>>hello world #执行字符串的内容的那行代码
在python3.0中,exec是函数,应该放在括号中。
>>>A = {}
>>>exec 'aaa = 1' in A
>>>A['aaa']
>>>1
>>>eval('3 + 4 * 5')
>>>23
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总结:
python语句,表达式,数据类型,运算符都完了,仅列出python相对其他语言的特色地方。
以上是 python语句 的全部内容, 来源链接: utcz.com/z/387155.html