循环语句
浏览 1822
课文
在生活中,我们通常有用类似的行为处理一批数据的需求。 比如小学的时候,老师通常会拿着一批试卷在讲台上逐个念名字与分数,让同学到台上领取。
假设我们有一个列表,保存了我们的名字与对应的分数,如果我们要逐个打印的话就会很麻烦。
scores = [
('柯南', 98),
('路飞', 75),
('鸣人', 30),
('小明', 60),
]
print('{name}同学考了{score}分。'.format(name=scores[0][0], score=scores[0][1]))
print('{name}同学考了{score}分。'.format(name=scores[1][0], score=scores[1][1]))
print('{name}同学考了{score}分。'.format(name=scores[2][0], score=scores[2][1]))
print('{name}同学考了{score}分。'.format(name=scores[3][0], score=scores[3][1]))
柯南同学考了98分。
路飞同学考了75分。
鸣人同学考了30分。
小明同学考了60分。
如果班级上同学很多的话,我们可能又得加班了。 此时循环语句派上了用场。
while 循环
i = 0
while i < len(scores):
print('{name}同学考了{score}分。'.format(name=scores[i][0], score=scores[i][1]))
i += 1
while
关键字后面接一个条件判断表达式
,如果表达式返回 True
,则会执行代码块的语句。
我们在循环的代码块中注意要让某一时刻表达式
返回的值为 False
,否则会无法退出循环,俗称死循环
。
通常情况下死循环
不会符合我们的业务需求,还会造成程序卡死,必须尽量避免。
print('我对你的爱如滔滔江水,绵延不绝。')
# 这便是一个死循环
while True:
print('I love you.')
我对你的爱如滔滔江水,绵延不绝。
I love you.
I love you.
I love you.
I love you.
I love you.
I love you.
I love you.
......
break
除了改变表达式的值,来结束 while
循环。我们仍可以在循环代码中通过break
关键字来退出循环。
i = 0
while True:
print('{name}同学考了{score}分。'.format(name=scores[i][0], score=scores[i][1]))
i += 1
if i > len(scores):
break
continue
continue
意味着我们可以跳过之后的代码,直接开始下一次循环。
i = 0
while i < len(scores):
print('{name}同学考了{score}分。'.format(name=scores[i][0], score=scores[i][1]))
if scores[i][1] >= 60:
continue
print('{name}同学这次考试不及格'.format(name=scores[i][0]))
i += 1
柯南同学考了98分。
柯南同学考了98分。
柯南同学考了98分。
柯南同学考了98分。
......
此时我们惊奇地发现,居然死循环了。
原来是因为 continue
后同样跳过了之后的 i += 1
,
此时表达式就永远为 True
了。
我们可以在 continue
语句之前添加 i += 1
防止死循环。
i = 0
while i < len(scores):
print('{name}同学考了{score}分。'.format(name=scores[i][0], score=scores[i][1]))
if scores[i][1] >= 60:
i += 1
continue
print('{name}同学这次考试不及格'.format(name=scores[i][0]))
i += 1
柯南同学考了98分。
路飞同学考了75分。
鸣人同学考了30分。
鸣人同学这次考试不及格
小明同学考了60分。
可怜的鸣人同学,被单独挂了出来,雏田同学心疼三秒。
for 循环
如果你也觉得自己管理 i
变量,决定表达式很麻烦的话。那 for
表达式可以帮我们大忙了。
for item in scores:
print('{name}同学考了{score}分。'.format(name=item[0], score=item[1]))
使用 for
循环在达到同样效果的前提下,我们的代码一下简单明了了不少。再次验证了, Life is short, we need python.
。
并且,我们可以循环的同时解包
。
此时我们便将原先的 item[0]
赋值到了 name
变量中, item[1]
赋值到了 score
变量中。
for name, score in scores:
print('{name}同学考了{score}分。'.format(name=name, score=score))
代码更清晰明了了,只是工资还维持在原地,so sad。
实战
1,假如有一个数组 [4, 8, 12, 2, 24, 3]
,你能否用一个循环得出其中最大的数呢。
解析
1,假如有一个数组 [4, 8, 12, 2, 24, 3]
,你能否用一个循环得出其中最大的数呢。
nums = [4, 8, 12, 2, 24, 3]
largest = None
for n in nums:
if largest is None or n > largest:
largest = n
print('最大值:', largest)
最大值: 24
wwd
2021-06-25
子非鱼.
@wwd
2021-07-31
小和
2022-09-03