Python-流程控制

  1. 流程控制
    1. if语句
    2. for循环
    3. while循环
    4. break和continue
    5. while/for-in else结构
    6. 并行遍历

流程控制

if语句

只有条件判断为True,才会执行执行体里面的代码块,否则跳过往后判断

if <条件判断1>: 
    <执行体1> 
elif <条件判断2>: 
    <执行体2> 
elif <条件判断3>: 
    <执行体3> 
else: 
    <执行体4>

if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse,所以,请测试并解释为什么下面的程序打印的是kid

age = 20

if age > 3:
    print('kid')
elif age > 14:
    print('teenager')
elif age > 18:
    print('adult')
else:
    print('older')

##kid

for循环

专门用于遍历序列,字典和集合等类型的对象,每遍历一个元素,称为一次迭代,可以使用for-in语句遍历的对象又被称为可迭代对象。

当迭代次数已知时,推荐使用for语句,迭代次数未知时,推荐使用while语句

当遍历字典时,自定义变量获取的是字典的key,而不是key-value

d = {...}
for key in d.keys()
    pass

for value in d.vlaues():
    pass

for key,vlaue in d.items():
    pass

如果循环体内不需要访问自定义的变量,可以将自定义的变量替换为下划线_

>>> for _ in range(1,4):
...     print('hello')
...
hello
hello
hello

在遍历序列的过程中,如果需要对序列进行修改,最好先通过切片操作生成一份序列的拷贝

>>> words = ['python', 'java', 'php', 'swift']
>>> for word in words[:]:
...     if len(word) < 5:
...         words.remove(word)
...
>>> print(words)
['python', 'swift']

while循环

初始化部分
while 循环条件:
    <循环体>

break和continue

使用break跳出循环

answer = int(input('Input a number:'))
while True:
    if answer == 100:
        print('Right')
        break
    else:
        answer = int(input('go on:'))

使用continue跳出本轮循环,执行下一轮循环,执行循环前首先要进行条件判断。

>>> for i in range(0,10):
...     if i%2 != 0:
...         print(i)
...         continue
...     else:
...         i += 2
...         print(i)
...
2
1
4
3
6
5
8
7
10
9
>>> for i in range(5):
...     if i == 3:
...         break
...     print('i = ', i)
...
i =  0
i =  1
i =  2

>>> for i in range(5):
...     if i == 3:
...         continue
...     print('i = ', i)
...
i =  0
i =  1
i =  2
i =  4

while/for-in else结构

在执行while语句或for-in语句时,如果循环正常结束(没有执行循环体中的break),可能想在循环结束后执行某些操作,即可在while中使用else

lucky_num = 10
guess_count = 0
while guess_count < 3:
    input_num = int(input("Input the guess num: "))
    if input_num > lucky_num:
        print("The real number is smalller!")
    elif input_num < lucky_num:
        print("The real number is bigger...")
    else:
        print("Bjngo!...")
        break
    guess_count += 1
else:
    print("Too many retrys!")

并行遍历

>>> names = ['Jerry', 'Mark', 'Flank']
>>> ages = ['25', '40', '29']

>>> for i in range(len(names)):
...     print(names[i], '的年龄是:', ages[i])
...
Jerry 的年龄是: 25
Mark 的年龄是: 40
Flank 的年龄是: 29

使用zip内置函数

>>> for name, age in list(zip(names, ages)):
...     print(name, age)
...
Jerry 25
Mark 40
Flank 29

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 289211569@qq.com