萌新刚学python,求水仙花数,请问哪里写错了吗?

你的代码问题有两处,1.在最后一句:num += 1 这一句的缩进应该和if相同, 因为如果将 num += 1放到if下, 则只有if条件满足了, num才能加上1, 如果if条件不满足,则就成了死循环了.举例, 就拿第1个数,100,来说吧, 因为100不等于1^3+0^3+0^3,所以100这个数在执行if语句时, 条件是不成...
萌新刚学python,求水仙花数,请问哪里写错了吗?
题主你好,
你的代码问题有两处,
1.在最后一句:
num += 1
这一句的缩进应该和if相同, 因为如果将 num += 1放到if下, 则只有if条件满足了, num才能加上1, 如果if条件不满足,则就成了死循环了.
举例, 就拿第1个数,100,来说吧, 因为100不等于1^3+0^3+0^3,所以100这个数在执行if语句时, 条件是不成立的, 因为if下的print()语句和num+=1都不会执行, 这样下一次循环时,num还是100, 而不是我们期望的101, 所以要把num += 1的缩进和if相同, 也就是无论if条件是否满足,我们都要给num加上1.
2.倒数第2句的print(list(num)), 要改成print(num)
代码及测试截图如下:

--------------------
另外, 我们题主的代码中的print()语句中用了列表函数, 猜测题主可能想要将结果以列表的形式输出, 代码及测试截图如下:

图中我已将和题主原代码不同的地方框选出来了,供参考.
-----
希望可以帮到题主, 欢迎追问.
2020-09-26
将middle开始的下面几行改成:
middle=num//10%10
if num==last**3+first**3+middle**3:print(num,end=',')
#注意:num+=1的缩进与if相同
num+=12020-09-26
mengvlog 阅读 9 次 更新于 2025-07-19 03:41:50 我来答关注问题0
  • 1.在最后一句:num += 1 这一句的缩进应该和if相同, 因为如果将 num += 1放到if下, 则只有if条件满足了, num才能加上1, 如果if条件不满足,则就成了死循环了.举例, 就拿第1个数,100,来说吧, 因为100不等于1^3+0^3+0^3,所以100这个数在执行if语句时, 条件是不成立的, 因为if下的pri...

檬味博客在线解答立即免费咨询

代码相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部