鱼C论坛

 找回密码
 立即注册
查看: 1757|回复: 17

[已解决]第四节课后练习有个小疑问

[复制链接]
发表于 2018-1-22 21:03:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yolol 于 2018-1-22 21:14 编辑

第四节课后练习动动手第一题,谁能给详细讲解下为什么这个代码可以显示以下截图? 看了半天没有看明白,谢谢大神们,刚学习三天新手 代码是这样的
temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1
最佳答案
2018-1-22 21:28:35
看我解释吧
temp = input('请输入一个整数:')     这句话是显示input里字符串内容,同时将输入的字符给temp
number = int(temp)                     这句是将temp字符型转变成整形,因为我们是用数计算,不是字符
i = 1                                           这句赋值- -
while number:                               这句循环条件number不为0一直循环
    print(i)                                     这句显示每次循环的i值
    i = i + 1                                    这句表示每次循环i会增加1,
    number = number - 1              这句表示每次循环number会减1,比如你输入5,减5次就为0.while循环就停止了

说了很多简单的话,最好你先理解数学上的思路,看来真的是0基础
1.png
1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-22 21:10:01 | 显示全部楼层
?图在哪
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:16:04 | 显示全部楼层

刚才忘了上传图了,第一次发帖子,不怎么熟悉,你如果懂的话能帮忙解释一下,万分感谢哦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:18:06 | 显示全部楼层
while语句后面的number只要不是0条件就为真就会一直执行下去,第一次循环number是5,为真。i是1,打印出来后i加1,number减一,一直这样i加1,number减1重复下去直到number为0时条件为假循环结束
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:21:14 | 显示全部楼层
temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:                 #当number为0时 停止循环
    print(i)
    i = i + 1                     #从 i的初值开始打印i,初值为1,每打印一次,i+1,所以会有 1,2,3....
    number = number - 1             #i 每打印一次 number-1

所以 i打印了number次
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:23:39 | 显示全部楼层
王子淼 发表于 2018-1-22 21:21
temp = input('请输入一个整数:')
number = int(temp)
i = 1

while number:                 #当number为0时 停止循环    这个能不能详细解释下,为什么当number为0时 停止循环?  万分感谢 !
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:26:48 | 显示全部楼层
yolol 发表于 2018-1-22 21:23
while number:                 #当number为0时 停止循环    这个能不能详细解释下,为什么当number为0时 ...

while循环中
0被认定为False
0以上数字为 True
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:28:35 | 显示全部楼层    本楼为最佳答案   
看我解释吧
temp = input('请输入一个整数:')     这句话是显示input里字符串内容,同时将输入的字符给temp
number = int(temp)                     这句是将temp字符型转变成整形,因为我们是用数计算,不是字符
i = 1                                           这句赋值- -
while number:                               这句循环条件number不为0一直循环
    print(i)                                     这句显示每次循环的i值
    i = i + 1                                    这句表示每次循环i会增加1,
    number = number - 1              这句表示每次循环number会减1,比如你输入5,减5次就为0.while循环就停止了

说了很多简单的话,最好你先理解数学上的思路,看来真的是0基础
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-1-22 21:34:51 | 显示全部楼层
王子淼 发表于 2018-1-22 21:26
while循环中
0被认定为False
0以上数字为 True

while number:
     print(i)
     i = i + 1
     number = number - 1
在这个循环中,print(i)只显示一次? 第二次循环就不显示了吗?  第二次循环只显示i=i+1 ?   谢谢你帮我解除疑惑,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:38:20 | 显示全部楼层
yolol 发表于 2018-1-22 21:34
while number:
     print(i)
     i = i + 1

对的,因为i刚开始是1
在while里面转一圈过后是2了,不再是1
再转一圈就是3了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:39:08 | 显示全部楼层
塔利班 发表于 2018-1-22 21:28
看我解释吧
temp = input('请输入一个整数:')     这句话是显示input里字符串内容,同时将输入的字符给tem ...

while number:
      print(i)
      i = i + 1
      number = number - 1
在这个循环中 print(i) 只显示一次? 第二次循环中就不显示了是吧 第二次显示只显示i=i+1 ?  为什么print(i)第二次循环中不显示了呢?  真心的谢谢你的分析,让我明白了好多,开心。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:41:27 | 显示全部楼层
yolol 发表于 2018-1-22 21:34
while number:
     print(i)
     i = i + 1

第一次循环,number=5,i=1,print(i)打印1,第二次循环,number=4,i=2,print(i)打印2,...第五次循环,number=1,i=5,print(i)打印5,第六次循环,number=0终止循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:41:33 | 显示全部楼层
王子淼 发表于 2018-1-22 21:38
对的,因为i刚开始是1
在while里面转一圈过后是2了,不再是1
再转一圈就是3了

转一圈是2的话  为什么不显示2呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:44:58 | 显示全部楼层
yolol 发表于 2018-1-22 21:41
转一圈是2的话  为什么不显示2呢?

想明白了,这个问题问的好蠢,谢谢你的回答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:47:51 | 显示全部楼层
yolol 发表于 2018-1-22 21:39
while number:
      print(i)
      i = i + 1

在循环里的每个语句只要条件符合,都会执行啊,你不是也看到结果了吗,不然5,4,3,2,1怎么显示出来的
print(i)每次循环都执行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:53:00 | 显示全部楼层
塔利班 发表于 2018-1-22 21:47
在循环里的每个语句只要条件符合,都会执行啊,你不是也看到结果了吗,不然5,4,3,2,1怎么显示出来的
pri ...

while number:
      print(i)
      i = i + 1
      number = number - 1
我明白了, 这个循环中,每次循环显示的都是print(i)下面两行是只计算,但是不会打印出来的。是吧!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-22 21:54:33 | 显示全部楼层
yolol 发表于 2018-1-22 21:53
while number:
      print(i)
      i = i + 1

恩,对的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-22 21:55:33 | 显示全部楼层

太棒了,感谢大神!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-6 04:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表