while循环问题
各位大神~
请教一个小问题~~
就是为什么当while的statements中有非print的信息则不会循环自动执行呢?
如果是print 则会变成死循环,一直打印print的内容
但是如果print后还有类似input的函数则不会?
这是为什么呢?
图片里的代码是我写的一个作业的代码
如果没有input那一行就会死循环,可是有就不会,我想不懂这里是为什么呢?
感谢大家的回答~~{:5_109:} 具体的代码是这样的~· 因为 temp 一直没变,条件一直为 True,自然死循环 永恒的蓝色梦想 发表于 2020-5-23 17:08
因为 temp 一直没变,条件一直为 True,自然死循环
看这么多帖子,你的回答最精简
但是为什么有种戳着脊梁骨的感觉
ahahah{:5_109:} Aber 发表于 2020-5-23 17:33
看这么多帖子,你的回答最精简
但是为什么有种戳着脊梁骨的感觉
{:10_277:}本人不善表达,多说不如少说
不过还是求个最佳{:10_297:} 永恒的蓝色梦想 发表于 2020-5-23 17:42
本人不善表达,多说不如少说
不过还是求个最佳
我要是楼主就给你了 Aber 发表于 2020-5-23 17:42
我要是楼主就给你了
{:10_277:}我果真凭实力眼瞎{:10_277:} 永恒的蓝色梦想 发表于 2020-5-23 17:43
我果真凭实力眼瞎
不过我发了个求助~~ 你来解答一下呀,我是楼主我说了算{:5_101:} 为什么当while的statements中有非print的信息则不会循环自动执行
不是有非rprint 才不会循环自动执行,你理解错了,是因为 函数 input()让程序暂停运行,等待用户输入,将用户输入的值转为字符串,后输出,每次循环到了input 就会等待你用户的输入。而且你这里的循环 条件是用temp,又因为 temp是接受 input 所以你可以通过 input 来决定是否继续循环,比如这个代码:
while True:
temp = input('Please enter number~')
这个就是个死循环,只不过每次循环input 都会将程序暂停运行 等待你的输入~
你需要知道一点的是:
只要 非零 非空字符串、字典、元组、列表等 都为布尔类型的值 True
只要 为 0空字符串、字典、元组、列表 等 布尔类型的值都为 False
所以因为你temp是拿着当作循环的的 所以只要 while 循环条件为True循环都不会停下来
如果有了input的话
每循环一次,用户就输入一次,temp的值就会变一次
而temp是决定是否进入循环的关键( 因为有while temp……:)
所以用户输入的temp的值不符合进入循环的条件时就跳出循环 Twilight6 发表于 2020-5-23 20:09
不是有非rprint 才不会循环自动执行,你理解错了,是因为 函数 input()让程序暂停运行,等待用户输入, ...
那你还知道哪些函数是会导致 循环 暂停运行的吗? pythongirl 发表于 2020-5-25 08:57
那你还知道哪些函数是会导致 循环 暂停运行的吗?
yield 生成器 小甲鱼后面会教
其他的暂时没接触过了吧 Twilight6 发表于 2020-5-25 09:06
yield 生成器 小甲鱼后面会教
其他的暂时没接触过了吧
好滴~~ 感谢~~ {:5_109:} pythongirl 发表于 2020-5-25 09:12
好滴~~ 感谢~~
没事有问题欢迎继续发帖~
页:
[1]