游子学习 发表于 2021-2-15 22:21:29

新手学python 谢谢指导一下

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,也是不懂这样做的意义,

Daniel_Zhang 发表于 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 循环

atai0622 发表于 2021-2-15 23:45:43

说说我个人的理解:
这个程序是让用户输入一个整数,然后程序从1开始显示,一直显示到用户输入的数值为止。
设置i值是为了从1开始显示,i=i+1是为了显示下一个数,number=number-1是进行计数,当number减到0的时候,循环终止,不再显示i值。

china_wxy 发表于 2021-2-16 09:27:36

同意楼上的意见!
i和number是变量:
当输入整数后,
i赋值为1,是为了从1到输入值,从小到大显示(即定义输出初始值);
number赋值为输入的整数,在循环语句中,以递减方式变化,是总量控制循环次数,防止死循环(即定义循环次数和递减步长)!

canfeng0522 发表于 2021-2-16 10:49:22

打印出1到你输入的值
number用来控制循环的次数,为了防止在while里面出现死循环
打印的数字实际是i的值,每运行一次循环打印一次i的值而i = i + 1相当于i自己增加一

跟我一起敲代码 发表于 2021-2-16 12:27:08

同意楼上,number其实可以理解为循环次数,没有number就会出现死循环,而让输入的值作为循环次数就是为了打印从1到输入的数值,而i是变量,如果没有i,那么只能一直打印1,1作为一个数值是不可变的,只有通过贴上i这样一个变量名,每循环一次做一次计算,再通过i找到计算后的结果打印出来
其实见多了后也就明白了( )- - -

苦寒001 发表于 2021-2-16 16:46:18

同新手{:5_109:} 设置i值是为了从1开始显示,i=i+1是为了显示下一个数,number=number-1是为了进行判断是否再次进行循环打印i的值,当number减到0的时候,循环终止不在打印下一个i

在下姓张 发表于 2021-2-16 17:23:37

1楼就已经讲得挺全面的了,可以耐心看看

游子学习 发表于 2021-2-16 19:14:42

Daniel_Zhang 发表于 2021-2-15 22:21


才下班,回晚了,谢谢,虽然我还是不怎么懂,{:5_107:}

游子学习 发表于 2021-2-16 21:35:15

Daniel_Zhang 发表于 2021-2-15 22:21


number = number - 1 # 变量 number 自减,直到 number = 0 会退出 while 循环
你好 我想再问一下 这个, 逻辑来说number-1 自减,比如 输入5 自减-1 也应该是4 ,这个逻辑能讲一下吗?

Daniel_Zhang 发表于 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 了,就不满足循环条件,即不再进行循环

游子学习 发表于 2021-2-16 22:02:53

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

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

明白了,非常感谢,我懂了。
页: [1]
查看完整版本: 新手学python 谢谢指导一下