循环语句

浏览 754

课文

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

评论

登录参与讨论

wwd

06-25

回复

子非鱼.

第二行:a=nums[0]

@wwd

07-31

回复

共 1 条
  • 1
前往
  • 1