鱼C论坛

 找回密码
 立即注册
查看: 2107|回复: 9

[已解决]求助第二版0基础入门学习python教材中4.6节while循环语句例题的解释

[复制链接]
发表于 2020-6-4 19:57:11 | 显示全部楼层 |阅读模式

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

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

x
# p4_8.py
i = 1
sum = 0

while i <= 100:
      sum += 1
      i += 1
print(sum)


求助各位大神,这段代码在书中说到打印的是1+2+3+……+100的计算结果,但是实际输出的时候显示的是从1一直到100,每个数字一行,并不是加和的结果呀,请问各位大神是怎么回事?另外sum本身就是python的一个内置函数,如果在前面定义sum = 0的话,是不是sum就被定义为一个初始值为0的普通变量,无法进行加和计算了?如果想用sum函数实现加和计算,程序应该如何来写呢?谢谢各位,感激不尽~~~
最佳答案
2020-6-4 19:58:26
本帖最后由 Twilight6 于 2020-6-4 20:03 编辑

这里没错呀,你是把 print 代码写到循环内了 导致一直打印到 100  你重新复制这段代码回去试试

你的代码可能是这样的:
i = 1
sum = 0

while i <= 100:
    sum += 1
    i += 1
    print(sum)

而且你叙述错误了,是 1+1+1+1+1 .... 加到 100
正确代码:
i = 1
sum = 0

while i <= 100:
      sum += 1
      i += 1
print(sum)

sum本身就是python的一个内置函数,如果在前面定义sum = 0的话,是不是sum就被定义为一个初始值为0的普通变量,无法进行加和计算了

是的,如果不小心误用Python 内置函数作为变量名 可以用 del 删除变量  恢复回 内置函数效果

如果想用sum函数实现加和计算,程序应该如何来写呢?
print(sum([1]*100))

代码输出结果

代码输出结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-4 19:58:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-4 20:03 编辑

这里没错呀,你是把 print 代码写到循环内了 导致一直打印到 100  你重新复制这段代码回去试试

你的代码可能是这样的:
i = 1
sum = 0

while i <= 100:
    sum += 1
    i += 1
    print(sum)

而且你叙述错误了,是 1+1+1+1+1 .... 加到 100
正确代码:
i = 1
sum = 0

while i <= 100:
      sum += 1
      i += 1
print(sum)

sum本身就是python的一个内置函数,如果在前面定义sum = 0的话,是不是sum就被定义为一个初始值为0的普通变量,无法进行加和计算了

是的,如果不小心误用Python 内置函数作为变量名 可以用 del 删除变量  恢复回 内置函数效果

如果想用sum函数实现加和计算,程序应该如何来写呢?
print(sum([1]*100))

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 20:01:44 | 显示全部楼层
Twilight6 发表于 2020-6-4 19:58
这里没错呀,你是把 print 代码写到循环内了 导致一直打印到 100  你重新复制这段代码回去试试

试了一下您发的代码,这回输出的结果只有100,而且我没看出来这两段有啥区别,您能再给解释得详细一点吗?谢谢~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 20:03:29 | 显示全部楼层
kohayakawa 发表于 2020-6-4 20:01
试了一下您发的代码,这回输出的结果只有100,而且我没看出来这两段有啥区别,您能再给解释得详细一点吗 ...

嗯 看2楼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 20:08:35 | 显示全部楼层

我用您提供的代码运行,结果还是输出了100,并不是从1加到100的值,您刚才说的错误是说我把print的缩进放在了跟上面一样的位置,我又检查了一下,确实我的print 跟while缩进是一样的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 20:11:45 | 显示全部楼层
kohayakawa 发表于 2020-6-4 20:08
我用您提供的代码运行,结果还是输出了100,并不是从1加到100的值,您刚才说的错误是说我把print的缩进放 ...

本来就不是啊  你的代码是 sum += 1 每次循环  所以每次都是 +1 啊 循环 100 次 不是 100 是什么呢?

要 1+2+3.。。。+100 要这么写:
# p4_8.py
i = 1
sum = 0

while i <= 100:
      sum += i
      i += 1
print(sum)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 20:13:41 | 显示全部楼层

您好,刚才的那个代码的问题我还有点不太清楚,我感觉那段代码输出的结果就应该是100个1相加的结果,就是先给sum赋值为0,然后每while循环一次就多加1,最后循环100次,所以加到了100。但是如果我想输出从1一直加到100的总和结果,应该怎么来写这个程序呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-4 20:14:32 | 显示全部楼层
Twilight6 发表于 2020-6-4 20:11
本来就不是啊  你的代码是 sum += 1 每次循环  所以每次都是 +1 啊 循环 100 次 不是 100 是什么呢?

...

明白了,谢谢您
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-4 20:15:23 | 显示全部楼层

客气了  ,加油吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-6 10:41:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 16:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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