Python的控制流

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'
发布了106 篇原创文章 · 获赞 15 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/skyupward/article/details/104651325
今日推荐