LEEFEI571 发表于 2024-11-16 11:15:13

while循环嵌套语句的问题

小甲鱼老师在了不起的分支和循环(IV)课程中讲的学习7天,每天学习8小时的例子我做了以下修改:
day = 1
hour = 1

while day<= 7:
    while hour <= 8:
      print(f'在day{day}中,我学习了{hour}小时')
      hour +=1
    day += 1

我想实现的效果是打印出1-7天中的每天,我学习了1-8小时,效果如下:
在day1中,我学习了1小时
在day1中,我学习了2小时
在day1中,我学习了3小时
在day1中,我学习了4小时
在day1中,我学习了5小时
在day1中,我学习了6小时
在day1中,我学习了7小时
在day1中,我学习了8小时
在day2中,我学习了1小时
在day2中,我学习了2小时
在day2中,我学习了3小时
在day2中,我学习了4小时
在day2中,我学习了5小时
在day2中,我学习了6小时
在day2中,我学习了7小时
在day2中,我学习了8小时
……
在day7中,我学习了1小时
在day7中,我学习了2小时
在day7中,我学习了3小时
在day7中,我学习了4小时
在day7中,我学习了5小时
在day7中,我学习了6小时
在day7中,我学习了7小时
在day7中,我学习了8小时

但在执行语句后,只执行了day1中的内层hour循环语句,结果如下:
在day1中,我学习了1小时
在day1中,我学习了2小时
在day1中,我学习了3小时
在day1中,我学习了4小时
在day1中,我学习了5小时
在day1中,我学习了6小时
在day1中,我学习了7小时
在day1中,我学习了8小时
外层day的循环语句并未被执行,请大神指定一下这是为什么?应该如何修改?谢谢指点


FishC 发表于 2024-11-16 11:21:44

你提到的示例似乎想通过 `while` 循环来实现一个嵌套循环,用于模拟每天学习8小时、连续学习7天的情况。下面是一个完整的代码示例,说明如何使用 `while` 循环实现该场景:

day = 1

while day <= 7:
    hour = 1
    while hour <= 8:
      print(f"这是第{day}天,第{hour}小时的学习。")
      hour += 1
    day += 1

print("7天的学习计划完成!")

具体解释:
- 外层的 `while day <= 7` 表示重复操作7次,每次表示一天。
- 内层的 `while hour <= 8` 表示每天学习8小时。
- 每次内层循环结束(即8小时学习完成),`day` 会递增1,以进行下一天的学习。这样可以实现7天的学习计划。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-11-16 12:00:13

本帖最后由 jackz007 于 2024-11-16 12:07 编辑

day = 1
hour = 1             # 内循环变量不可以在外循环外初始化,应该在外循环内,内循环开始前进行初始化
while day<= 7:
    while hour <= 8:
      在 day = 1 时,内循环结束时,hour = 9,从 day = 2 起,由于 hour 的值一直是 9,因而无法进入内循环,使内循环失效,得这样改:
day = 1
while day<= 7:
    hour = 1         # 内循环变量应该在这里初始化
    while hour <= 8:

LEEFEI571 发表于 2024-11-16 12:10:51

jackz007 发表于 2024-11-16 12:00
在 day = 1 时,内循环结束时,hour = 9,从 day = 2 起,由于 hour 的值一直是 9,因而无法进入 ...

谢谢兄弟指点!!!
页: [1]
查看完整版本: while循环嵌套语句的问题