if声明
elif是else if的简写
for声明
words = ['cat', 'window', 'defenestrate']
for w in words:
print(w, len(w))
cat 3
window 6
defenestrate 12
注意:不能用 w in words 代替 w in words[:]
w in words会尝试创建无限长度的数组,一遍又一遍的向里面插入'defenestrate'元素
w in words[:]是愿数组的一个拷贝
语句的迭代不会直接影响到拷贝的版本
range()函数
很多情况下,range()返回的对象看上去很像个数组,但并非如此。
它只是个当你进行迭代操作时会返回所需序列的连续项的对象;并没有真的形成一个数组,这样也节约了空间。
我们称这样的一个对象为遍历器,也就是说,它适合作为函数和构造体的目标对象来获取无穷尽的连续项。我们已经见过for这种遍历器,list也是。它从遍历中创建数组:
list(range(0, 3))
[0, 1, 2]
break 和 continue声明,循环中的else分句
# 找素数
>>> for i in range(2, 10):
... for w in range(2, i):
... if i % w == 0:
... print(i, 'equals', w, '*', i // w)
... break
... else: #else分句是for下面的,并非承接if
... print(i , 'is a prime number')
...
(2, 'is a prime number')
(3, 'is a prime number')
(4, 'equals', 2, '*', 2)
(5, 'is a prime number')
(6, 'equals', 2, '*', 3)
(7, 'is a prime number')
(8, 'equals', 2, '*', 4)
(9, 'equals', 3, '*', 3)
>>>
try声明中的else分句在没有异常发生时执行;
循环中的else分句在没有break发生时执行
# 找奇偶
>>> for i in range(2, 10):
... if i % 2 == 0:
... print(i, 'is an even number')
... continue
... print(i, 'is an odd number')
...
(2, 'is an even number')
(3, 'is an odd number')
(4, 'is an even number')
(5, 'is an odd number')
(6, 'is an even number')
(7, 'is an odd number')
(8, 'is an even number')
(9, 'is an odd number')
>>>
pass声明
pass 声明不作任何操作。
>>> while true:
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> while True:
... pass
...
# Busy-wait for keyboard interrupt (Ctrl+C)
^CTraceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyboardInterrupt
>>>
# python中 True的大小写不代表同一概念。
# 小写开头true:被识别为变量
# 大写开头True: 关键字
创建最小的类
>>> class minimalClass:
... pass
...
>>>
函数定义中用作占位符
>>> def initLog(*args):
... pass
...
>>>