鱼C论坛

 找回密码
 立即注册
查看: 1769|回复: 2

[已解决]Python 第9课课后作业问题

[复制链接]
头像被屏蔽
发表于 2021-3-25 22:44:23 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-25 22:46:14 | 显示全部楼层
本帖最后由 柿子饼同学 于 2021-3-26 09:57 编辑

不行的,temp与i相等,用temp是为了避免污染i的值,你的第一个代码第6行,举个栗子,i= 134如果不用temp,那么i经过上面的计算后会变成0,我们要
判断的是是否等于原来的i,所以要创建一个值与i相等的变量来代替i计算这里稍微改了下程序,打印出了if语句前面的运算结果,发现i的值依次为13,1,0
那在if语句内,i都变成0了,那还怎么算
这代码可以自己试一下就明白了
i = 134
sum_ = 0
while i:
    sum_ += (i%10)**3
    i //= 10
    print(i)
if sum_ == i:
    print(i)

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

使用道具 举报

发表于 2021-3-25 23:20:59 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2021-3-25 23:23 编辑

        i 在 while 循环中已经被改变,已经不可以通过 sum == i 来判断结果了
for i in range(100,999):
    sum = 0
    while i:                                 # 如果 i 的值不为 0 那就循环
        sum = sum + (i%10)**3
        i //= 10                             # i 的值在这里已经被改变
    if sum == i:                             # 这里的 i 一定是 0 值,还怎么判断?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 07:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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