鱼C论坛

 找回密码
 立即注册
查看: 2050|回复: 11

[已解决]新手学python 谢谢指导一下

[复制链接]
发表于 2021-2-15 22:21:29 | 显示全部楼层 |阅读模式
15鱼币
temp = input('请输入一个整数:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1

虽然我运行知道了结果是什么,但是我不明白其中的原理是什么?
不太懂while下面循环的是什么意思,为什么要这样,不太理解其中的原理,列如输入5,就是1到5,为什么要设置一个i的变量,取值为1 然后下面又 print(i)这个应该显示出来的吗,为什么我运行没有显示i,还有i=i+1 跟number = number-1,也是不懂这样做的意义,
最佳答案
2021-2-15 22:21:30
本帖最后由 Daniel_Zhang 于 2021-2-16 19:01 编辑
temp = input('请输入一个整数:') # 此处输入一个整数,但是请注意,不论输入什么, temp 都是 str 类型的, input 函数返回的一定是 str
number = int(temp)  # 因为 str 类型不能直接进行加减乘除的数字运算,所以此处需要将 str 类型强制转换成 int 类型
i = 1   # 定义一个变量(其实我也不知道这是干什么的,可能是为了让你更好的理解 自增 自减 的含义)
while number:   # 当 number 不为 0 时才会执行 while 循环,当 number 为 0 时退出 while 循环
    print(i)    # 打印变量 i 查看 它的变化
    i = i + 1   # 变量 i 自增,也就是自己 + 1
    number = number - 1 # 变量 number 自减,直到 number = 0 会退出 while 循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-15 22:21:30 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Daniel_Zhang 于 2021-2-16 19:01 编辑
temp = input('请输入一个整数:') # 此处输入一个整数,但是请注意,不论输入什么, temp 都是 str 类型的, input 函数返回的一定是 str
number = int(temp)  # 因为 str 类型不能直接进行加减乘除的数字运算,所以此处需要将 str 类型强制转换成 int 类型
i = 1   # 定义一个变量(其实我也不知道这是干什么的,可能是为了让你更好的理解 自增 自减 的含义)
while number:   # 当 number 不为 0 时才会执行 while 循环,当 number 为 0 时退出 while 循环
    print(i)    # 打印变量 i 查看 它的变化
    i = i + 1   # 变量 i 自增,也就是自己 + 1
    number = number - 1 # 变量 number 自减,直到 number = 0 会退出 while 循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-15 23:45:43 | 显示全部楼层
说说我个人的理解:
这个程序是让用户输入一个整数,然后程序从1开始显示,一直显示到用户输入的数值为止。
设置i值是为了从1开始显示,i=i+1是为了显示下一个数,number=number-1是进行计数,当number减到0的时候,循环终止,不再显示i值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-16 09:27:36 | 显示全部楼层
同意楼上的意见!
i和number是变量:
当输入整数后,
i赋值为1,是为了从1到输入值,从小到大显示(即定义输出初始值);
number赋值为输入的整数,在循环语句中,以递减方式变化,是总量控制循环次数,防止死循环(即定义循环次数和递减步长)!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-16 10:49:22 | 显示全部楼层
打印出1到你输入的值
number用来控制循环的次数,为了防止在while里面出现死循环
打印的数字实际是i的值,每运行一次循环打印一次i的值而i = i + 1相当于i自己增加一
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-16 12:27:08 From FishC Mobile | 显示全部楼层
同意楼上,number其实可以理解为循环次数,没有number就会出现死循环,而让输入的值作为循环次数就是为了打印从1到输入的数值,而i是变量,如果没有i,那么只能一直打印1,1作为一个数值是不可变的,只有通过贴上i这样一个变量名,每循环一次做一次计算,再通过i找到计算后的结果打印出来
其实见多了后也就明白了( )- - -
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-16 16:46:18 | 显示全部楼层
同新手 设置i值是为了从1开始显示,i=i+1是为了显示下一个数,number=number-1是为了进行判断是否再次进行循环打印i的值,当number减到0的时候,循环终止不在打印下一个i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-16 17:23:37 | 显示全部楼层
1楼就已经讲得挺全面的了,可以耐心看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-16 19:14:42 | 显示全部楼层

才下班,回晚了,谢谢,虽然我还是不怎么懂,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-16 21:35:15 | 显示全部楼层

number = number - 1 # 变量 number 自减,直到 number = 0 会退出 while 循环
你好 我想再问一下 这个, 逻辑来说number-1 自减,比如 输入5 自减-1 也应该是4 ,这个逻辑能讲一下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-16 21:53:11 | 显示全部楼层
本帖最后由 Daniel_Zhang 于 2021-2-16 21:55 编辑
游子学习 发表于 2021-2-16 21:35
number = number - 1 # 变量 number 自减,直到 number = 0 会退出 while 循环
你好 我想再问一下 这个 ...


如果我以下的解释不能解答你的困惑的话,请回复我这个回答,并详细阐述问题所在

其实你的理解并没有问题,假设 number = 5 ,那么 number - 1 就 = 4

然后呢,此时 while number 就相当于 while 4 了

我上面也说了,while 不为 0 才会循环, 那么此时会继续循环对吧?

number - 1 就等于 3,因为 4 - 1 = 3

number 一直自减,直到 number = 1,最后一次满足 while number 的条件,然后 number - 1 = 0

此时 number = 0 不满足 while number 的条件,就不再运行 while 循环,也就是退出了

总的来讲就是 number 每循环一次 while 循环都会 - 1,直到 number - 1 = 0 了,就不满足循环条件,即不再进行循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-16 22:02:53 | 显示全部楼层
Daniel_Zhang 发表于 2021-2-16 21:53
如果我以下的解释不能解答你的困惑的话,请回复我这个回答,并详细阐述问题所在

其实你的理解并没有 ...

明白了,非常感谢,我懂了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 13:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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