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')
elif 和 else都是可选的,可以有多个elif。
for语句
for语句用于按顺序迭代序列元素以及可迭代对象
>>> # Measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
如果需要在循环内部修改被迭代的序列,推荐把迭代应用于序列的副本
>>> for w in words[:]: # Loop over a slice copy of the entire list.
... if len(w) > 6:
... words.insert(0, w)
...
>>> words
['defenestrate', 'cat', 'window', 'defenestrate']
通过range()可以生成一系列数值,实现数值步进
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
range()支持设置生成的数值的起点,也支持设置步进
range(5, 10)
5 through 9
range(0, 10, 3)
0, 3, 6, 9
range(-10, -100, -30)
-10, -40, -70
range()执行的结果不是列表,而是可迭代对象(iterable),可迭代对象按特定的需求返回一系列连续的元素,这个过程并未有列表被创建。
for语句和list() 相当于一个迭代器(iterator)。
>>> list(range(5))
[0, 1, 2, 3, 4]
while语句
>>> 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
else也可用于循环中(for 和 while),当循环正常结束时,else被执行,break离开循环不会执行else
break和continue
>>> for num in range(2, 10):
... if num % 2 == 0:
... print("Found an even number", num)
... continue
... print("Found a number", num)
Found an even number 2
Found a number 3
Found an even number 4
Found a number 5
Found an even number 6
Found a number 7
Found an even number 8
Found a number 9
break跳出最里层的循环,continue停止此次循环,进入下一次循环
pass语句
pass语句不会做任何动作,被用于程序语法结构上需要一个语句,但是逻辑上并不需要什么的情况
>>> while True:
... pass # Busy-wait for keyboard interrupt (Ctrl+C)...
条件表达式
和C一样,任何非0的数为真,0为假,同时python支持序列用于条件判断,非空序列为真,空序列为假。
比较操作符,逻辑操作符也可C一样,支持“>”, “<”, “>=”,“<=”,“==”, “!=”,也支持in, not in 用于测试一个值是否在一个序列中,is和 not is用于测试两个对象是否是同一个对象。比较操作符之间的优先级是一样的,但是优先级低于算术操作符。
python支持比较链接
a < b == c
表示a 小于 b 且 b 等于 c
逻辑操作符支持“and”, “or”, “not”,优先级低于比较操作符,其中not的优先级最高,次之为and,最后为or, A and not B or C 等价于 (A and (not B)) or C, 此外逻辑操作符具有短路逻辑。
当把逻辑操作符组合的表达式作为一般值使用,比如赋予变量的时候,短路逻辑最后求值的子表达式的值为整个表达式的值
>>> string1, string2, string3 = '', 'Trondheim', 'Hammer Dance'
>>> non_null = string1 or string2 or string3
>>> non_null
'Trondheim'