彦彦儿 发表于 2020-6-16 11:47:03

《零基础入门学习Python》第004讲课后题

请问以下代码会打印多少次“我爱鱼C!”
i = 10
while i:
    print('我爱鱼C!')
    i = i - 1

救命,不懂为何只打印10次呢?对i不能变成负数吗?我理解是打印无数次....

万家灯火 发表于 2020-6-16 12:18:56

i初始值为10。i为正整数时,打印一次“我爱鱼C”,执行完一次打印动作,i减1等于9。如此往复当i=1时,打印一次“我爱鱼C”,这是第10次打印“我爱鱼C”。接下来执行递减动作,i-1=0。接下来返回循环,while i=0时,判断为false,循环中断。程序停止运行。

永恒的蓝色梦想 发表于 2020-6-16 12:25:25

i 为 0 则判断为 False

Twilight6 发表于 2020-6-16 12:34:43



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

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

所以你每次循环 i 都会 -1 直到减到 0 循环条件不满足,就退出了循环,所以根本没机会到 -1因为先到0了


青出于蓝 发表于 2020-6-16 12:43:16

while i:说明循坏条件是i为真(只有空和0是假)
i = i - 1。 说明没循环一次i就-1
i等于10,所以循环十次,i为0,0是假,停止循环
欢迎追问{:10_254:}

热气球 发表于 2020-6-16 14:07:21

i为0 就认为是False

彦彦儿 发表于 2020-6-16 15:19:40

Twilight6 发表于 2020-6-16 12:34
所以你每次循环 i 都会 -1 直到减到 0 循环条件不满足,就退出了循环,所以根本没机会到 -1因为 ...

啊棒!!我懂了!谢谢!

Twilight6 发表于 2020-6-16 15:20:16

彦彦儿 发表于 2020-6-16 15:19
啊棒!!我懂了!谢谢!

~帮助到你记得设置最佳哈~{:5_91:}

彦彦儿 发表于 2020-6-16 15:20:50

青出于蓝 发表于 2020-6-16 12:43
while i:说明循坏条件是i为真(只有空和0是假)
i = i - 1。 说明没循环一次i就-1
i等于10,所以循环十 ...

懂了!!谢谢~~

Python初学者8号 发表于 2020-6-16 17:10:15

老哥你这问的好啊!!
我试了的,如果是我while -1则会一直运行下去的。
所以应该是猜到就是到0的时候就成了false 的类型了,其他的时候是true的类型了
页: [1]
查看完整版本: 《零基础入门学习Python》第004讲课后题