橘猫啊啊 发表于 2020-6-3 21:57:44

疑问贴

while 'C':
    print('我爱鱼C!')
‘会造成死循环,原因是 while 后边的条件永远为真(True)’----对这句话不理解,while后面的是‘c’为什么是真呢       

i = 10
while i:
    print('我爱鱼C!')
    i = i - 1
这个代码和上面的代码一比较,我就有点理解不了了,while ‘i’和while i的区别是什么呀

青出于蓝 发表于 2020-6-3 21:58:43

也不能是假啊,0?None?

青出于蓝 发表于 2020-6-3 21:59:40

字符串当然为真,如果是内是正数变量,并且每运行一次-1,就不会死循环

青出于蓝 发表于 2020-6-3 22:00:21

第二段代码,如果i变成0,循环结束

Twilight6 发表于 2020-6-3 22:02:13

要知道Python中只要 0 、空字符串、空列表、空字典等 都可以看作布尔类型的值为 False

只要是 非0 ,非空字符串、列表、字典 等 都可以看作布尔类型的值为 True

所以你第一个循环 while 'C'以 'C' 字符串作为循环条件,只要字符串不为空字符串,永远条件为 True 所以才会死循环

而第二个循环是限定次数的 i 是参数而不是字符串 ,i = 0 时候条件为 False 退出循环

青出于蓝 发表于 2020-6-3 22:02:36

本帖最后由 青出于蓝 于 2020-6-3 22:16 编辑

字符串永远为真,而如果变量为0就返回假

刚才回答有问题,sorry,空字符串为假,在这里用不到哈

Twilight6 发表于 2020-6-3 22:04:46

青出于蓝 发表于 2020-6-3 22:02
字符串永远为真,而如果变量为0就返回假

除了 空字符串 永远为真!

青出于蓝 发表于 2020-6-3 22:05:47

Twilight6 发表于 2020-6-3 22:04
除了 空字符串 永远为真!

0时假

青出于蓝 发表于 2020-6-3 22:06:19

我记得0是假,嗯哼,没错

Twilight6 发表于 2020-6-3 22:06:27

青出于蓝 发表于 2020-6-3 22:05
0时假

我意思是你说错了 字符串除了空字符串 其他才为真 不是只要是字符串都为真

青出于蓝 发表于 2020-6-3 22:11:20

Twilight6 发表于 2020-6-3 22:06
我意思是你说错了 字符串除了空字符串 其他才为真 不是只要是字符串都为真

我知道,没说而已。这里用不到

Twilight6 发表于 2020-6-3 22:13:47

青出于蓝 发表于 2020-6-3 22:11
我知道,没说而已。这里用不到

这样会误导别人的,你说为字符串就全为真这句话就是错的...
而且第一个循环就是用到这个知识点 为什么没用到?
答题要负责点 知错能改,我之前也经常出错,多亏其他鱼油帮我纠正

青出于蓝 发表于 2020-6-3 22:14:38

Twilight6 发表于 2020-6-3 22:13
这样会误导别人的,你说为字符串就全为真这句话就是错的...
而且第一个循环就是用到这个知识点 为什么没 ...

谢谢-.-下回注意

青出于蓝 发表于 2020-6-3 22:15:24

空字符串不怎么用到....下回一定注意

橘猫啊啊 发表于 2020-6-3 22:22:55

感谢两位鱼油们{:5_106:}我懂了嘻嘻

Twilight6 发表于 2020-6-3 22:23:57

橘猫啊啊 发表于 2020-6-3 22:22
感谢两位鱼油们我懂了嘻嘻

没事 加油吧!
页: [1]
查看完整版本: 疑问贴