5.条件、循环和其他语句
5.1 print使用逗号输出
print打印多个表达式时,只要将它们用逗号隔开就好。
>>> print'alice:',18
alice: 18 #每个参数之间插入了一个空格符
5.2 import 把某件事作为另一件事导入
from module1 import open as open1
from module2 import open as open2
5.3 赋值
多个赋值操作同时进行:
>>> x,y,z=1,2,3
>>> print x,y,z
1 2 3
1. 序列解包,将多个值的序列解开,然后放到变量的序列中。
>>> x,y=y,x
>>> print x,y,z
2 1 3
解包的序列中的元素数量必须和放置在赋值符号=左边的变量数量完全一致。否则会报错
>>> x,y,z=1,2
Traceback (most recent call last):
File "<pyshell#74>", line 1, in <module>
x,y,z=1,2
ValueError: need more than 2 values to unpack
2. 链式赋值:将同一个值赋给多个变量。
x=y=somefunction()
和下面语句效果一样:
y=somefunction()
x=y
3. 增量赋值:讲表达式运算符放置在赋值运算符=的左边
>>> x=2
>>> x+=1
>>> x*=2
>>> x
6
5.4 条件和条件语句
1.布尔变量
下面的值在作为不二表达式时,会被解释器看作假:
false none 0 '' '' () [ ] {}
2.条件执行和if-else语句
name = raw_input("what's your name?") if name.endswith('alice'): print 'Hello,Ms.alice!' else: print'Hello,stranger!'3. elif字句:else if的简写。检查多个条件。
if num > 0: print 'The number is positive' elif num < 0: print 'The number is negative' else: print 'The number is zero'4.嵌套代码块
name = raw_input("what's your name?") if name.endwish('Alice'): if name.startswith('Ms.'): print'Hello,Ms.Alice' elif name.startswith('Mrs.'): print'Hello,Mrs.Alice' else: print'Hello,Alice' else: print'Hello,stranger'5.5 更复杂的条件
比较运算符:< , >, <=,>= ,==,!=,is ,is not,in ,not in
1.相等运算符:==
>>> 'foo'=='foo'
True
>>> 'foo'='foo'
SyntaxError: can't assign to literal
2.同一性运算符:is
>>> x=y=[1,2,3]
>>> z=[1,2,3]
>>> x is y
True
>>> x is z
False # 值相等,却不是同一个对象
3.成员资格运算符:in
4.字符串和序列比较:字符串可以按照字母顺序排列进行比较。
>>> 'alpha'<'beta'
True
序列比较的不是字符而是元素的其他类型
>>> [1,2]<[2,1]
True
5.布尔运算符:and,or,not