流程控制
if语句
只有条件判断为True,才会执行执行体里面的代码块,否则跳过往后判断
if <条件判断1>:
<执行体1>
elif <条件判断2>:
<执行体2>
elif <条件判断3>:
<执行体3>
else:
<执行体4>
if
语句执行有个特点,它是从上往下判断,如果在某个判断上是True
,把该判断对应的语句执行后,就忽略掉剩下的elif
和else
,所以,请测试并解释为什么下面的程序打印的是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