pythongirl 发表于 2020-5-23 17:05:20

while循环问题



各位大神~
请教一个小问题~~

就是为什么当while的statements中有非print的信息则不会循环自动执行呢?

如果是print 则会变成死循环,一直打印print的内容
但是如果print后还有类似input的函数则不会?

这是为什么呢?

图片里的代码是我写的一个作业的代码
如果没有input那一行就会死循环,可是有就不会,我想不懂这里是为什么呢?

感谢大家的回答~~{:5_109:}

pythongirl 发表于 2020-5-23 17:06:56

具体的代码是这样的~·

永恒的蓝色梦想 发表于 2020-5-23 17:08:50

因为 temp 一直没变,条件一直为 True,自然死循环

Aber 发表于 2020-5-23 17:33:11

永恒的蓝色梦想 发表于 2020-5-23 17:08
因为 temp 一直没变,条件一直为 True,自然死循环

看这么多帖子,你的回答最精简

但是为什么有种戳着脊梁骨的感觉

ahahah{:5_109:}

永恒的蓝色梦想 发表于 2020-5-23 17:42:06

Aber 发表于 2020-5-23 17:33
看这么多帖子,你的回答最精简

但是为什么有种戳着脊梁骨的感觉


{:10_277:}本人不善表达,多说不如少说
不过还是求个最佳{:10_297:}

Aber 发表于 2020-5-23 17:42:57

永恒的蓝色梦想 发表于 2020-5-23 17:42
本人不善表达,多说不如少说
不过还是求个最佳

我要是楼主就给你了

永恒的蓝色梦想 发表于 2020-5-23 17:43:33

Aber 发表于 2020-5-23 17:42
我要是楼主就给你了

{:10_277:}我果真凭实力眼瞎{:10_277:}

Aber 发表于 2020-5-23 17:45:38

永恒的蓝色梦想 发表于 2020-5-23 17:43
我果真凭实力眼瞎

不过我发了个求助~~ 你来解答一下呀,我是楼主我说了算{:5_101:}

Twilight6 发表于 2020-5-23 20:09:48

为什么当while的statements中有非print的信息则不会循环自动执行
不是有非rprint 才不会循环自动执行,你理解错了,是因为 函数 input()让程序暂停运行,等待用户输入,将用户输入的值转为字符串,后输出,每次循环到了input 就会等待你用户的输入。而且你这里的循环 条件是用temp,又因为 temp是接受 input 所以你可以通过 input 来决定是否继续循环,比如这个代码:
while True:
    temp = input('Please enter number~')
这个就是个死循环,只不过每次循环input 都会将程序暂停运行 等待你的输入~
你需要知道一点的是:
只要 非零 非空字符串、字典、元组、列表等 都为布尔类型的值 True
只要 为 0空字符串、字典、元组、列表 等 布尔类型的值都为 False
所以因为你temp是拿着当作循环的的 所以只要 while 循环条件为True循环都不会停下来

_荟桐_ 发表于 2020-5-23 23:11:08

如果有了input的话
每循环一次,用户就输入一次,temp的值就会变一次
而temp是决定是否进入循环的关键( 因为有while temp……:)
所以用户输入的temp的值不符合进入循环的条件时就跳出循环

pythongirl 发表于 2020-5-25 08:57:16

Twilight6 发表于 2020-5-23 20:09
不是有非rprint 才不会循环自动执行,你理解错了,是因为 函数 input()让程序暂停运行,等待用户输入, ...

那你还知道哪些函数是会导致 循环 暂停运行的吗?

Twilight6 发表于 2020-5-25 09:06:06

pythongirl 发表于 2020-5-25 08:57
那你还知道哪些函数是会导致 循环 暂停运行的吗?

yield   生成器   小甲鱼后面会教

其他的暂时没接触过了吧

pythongirl 发表于 2020-5-25 09:12:54

Twilight6 发表于 2020-5-25 09:06
yield   生成器   小甲鱼后面会教

其他的暂时没接触过了吧

好滴~~ 感谢~~ {:5_109:}

Twilight6 发表于 2020-5-25 09:13:25

pythongirl 发表于 2020-5-25 09:12
好滴~~ 感谢~~

没事有问题欢迎继续发帖~
页: [1]
查看完整版本: while循环问题