1、if语句
>>> x = int(input("Please enter an integer: "))
Please enter an integer: 42
>>> if x < 0:
... x = 0
... print(’Negative changed to zero’)
... elif x == 0:
... print(’Zero’)
... elif x == 1:
... print(’Single’)
... else:
... print(’More’)
...
More
else可选,’elif‘是else if的缩写。
2、for语句
Python 的for 语句依据任意序列(链表或字符串)中的子项,按它们在序列中的顺序来进行迭代。
>>> # Measure some strings:
... a = [’cat’, ’window’, ’defenestrate’]
>>> for x in a:
... print(x, len(x))
...
cat 3
window 6
defenestrate 12
在迭代过程中,修改迭代序列不安全,如果要修改迭代的序列,可以迭代它的副本,使用切割标识就可以很方便做到:
>>> for x in a[:]: # make a slice copy of the entire list
... if len(x) > 6: a.insert(0, x)
...
>>> a
[’defenestrate’, ’cat’, ’window’, ’defenestrate’]
Attention
# 如果你只是打印一个序列的话会发生奇怪的事情:
>>> print(range(10))
range(0, 10)
在不同方面range() 函数返回的对象表现为它是一个列表,但事实上它并不是。当你迭代它时,它是一个能够像期望的序列返回连续项的对象;但为了节省空间,它并不真正构造列表。
我们称为此类对象[eg: range()]是可迭代的,即适合作为那些期望从某些东西中获得连续项直到结束的函数或结构的一个目标(参数)。我们已经见过的for 语句就是这样一个迭代器。list()函数是另外一个( 迭代器),它从可迭代(对象)中创建列表:
>>> list(range(5))
[0, 1, 2, 3, 4]
3、break、continue、else语句
循环可以有一个else字句,它在循环迭代完整个列表(对于for)或执行条件为false(对于while)时执行,但循环被break中止的情况不会执行。
>>> for n in range(2, 10):
... for x in range(2, n):
... if n % x == 0:
... print(n, ’equals’, x, ’*’, n//x)
... break
... else:
... # loop fell through without finding a factor
... print(n, ’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
continue 语句是从 C 中借鉴来的,它表示循环继续执行下一次迭代。
pass语句什么也不做。