5、条件、循环和其他语句

赋值魔法包括:

序列解包:将多个值的序列解开,然后放在变量的序列中。

>>> x,y,z=1,2,3
>>> x,y=y,x
>>> x,y,z
(2, 1, 3)

链式赋值:

>>> x=y=1
>>> x,y
(1, 1)

增量赋值

>>> x=2
>>> x+=1
>>> x*=2
>>> x
6

布尔表达式中,False None 0 “” () [] {}被解释器看做假,其他的一些被解释为真。

条件语句:if else elif(else if)

Python中比较运算符是可以连接使用的,如

>>> 1<2<3
True

布尔运算符:and or not

断言:if语句的近亲,它的工作进入如下(伪代码)

If not condition

Crash program

关键字是 assert,在程序中置入检查点,条件后可添加解释字符

>>> age=-1
>>> assert 0<age<100, 'error age'
Traceback (most recent call last):
File "<pyshell#110>", line 1, in <module>
assert 0<age<100, 'error age'
AssertionError: error age

循环的实现:while语句非常灵活,可以在指定条件下重复执行一个代码块

>>> x=1
>>> while x<3:
    x+=1
    print(x)
2
3

for循环,对集合中的每个元素都执行一个代码块

>>> for num in x:
    print(num)
1
2
3
>>> for num in range(3):
    print(num)
0
1
2

并行迭代:zip函数可以用于任意多的序列

>>> for x,y in zip(range(5),range(10000)):
    print(x,'-',y)
0 - 0
1 - 1
2 - 2
3 - 3
4 - 4

编号迭代:替换所有包含‘xxx’的子字符串

for index,string in enumerate(strings):
    if ‘xxx’ in string
        string[index]=’newsub’

循环中的break语句,它只在没有调用break时执行:

>>> for num in range(1,3):
    if num==4:
        break
else:
    print('no break')
no break

列表推导式:利用其它列表创建新的列表

>>> [x*x for x in range(10) if x%3==0]
[0, 9, 36, 81]

Python中使用缩进(Tab)表示语句块,相同缩进的语句属于同一语句块。

posted @ 2013-12-17 16:25  侯凯  阅读(302)  评论(0编辑  收藏  举报