复制
收藏
提问
全网
number_one = eval(input()) baifenwei = number_one // 10 shifenwei = number_one // 10 / 10 gewei = number_one % 100 % 10 if baifenwei ** 3 + shifenwei ** 3 + gewei ** 3 = number_one print(f'{number_one}是水仙花数') else:print(f'{number_one}不是水仙花数')
2个月前
理解问题number_one = eval(input()) baifenwei = number_one // 10 shifenwei = number_one // 10 / 10 gewei = number_one % 100 % 10 if baifenwei ** 3 + shifenwei ** 3 + gewei ** 3 = number_one print(f'{number_one}是水仙花数') else:print(f'{number_one}不是水仙花数')
已完成理解「number_one = eval(input()) baifenwei = number_one // 10 shifenwei = number_one // 10 / 10 gewei = number_one % 100 % 10 if baifenwei ** 3 + shifenwei ** 3 + gewei ** 3 = number_one print(f'{number_one}是水仙花数') else:print(f'{number_one}不是水仙花数')」
展开阅读网页
更专业一些
转笔记
专业
number_one = eval(input())
baifenwei = number_one // 10
shifenwei = number_one // 10 / 10
gewei = number_one % 100 % 10
if baifenwei ** 3 + shifenwei ** 3 + gewei ** 3 = number_one
print(f'{number_one}是水仙花数')
else:print(f'{number_one}不是水仙花数')不在提醒
Python代码中判断水仙花数的逻辑存在错误:在提供的代码中,判断水仙花数的逻辑存在问题,导致无法正确判断一个数是否为水仙花数。12345678910111213
代码问题
- 整数除法问题:代码中使用了整数除法
//
来获取百位和十位数字,这会导致结果丢失小数部分,但实际需要的只是分离出各个位上的数字。34 - 逻辑判断错误:在判断是否为水仙花数的条件表达式中,使用了赋值操作符
=
而不是比较操作符==
,这会导致语法错误。67
正确的代码实现
- 分离数字:应使用取余和整除操作正确分离出百位、十位和个位数字。
- 逻辑判断:使用比较操作符
==
来正确判断立方和是否等于原数。
修正后的代码
number_one = eval(input())
bai = number_one // 100 # 百位
shi = (number_one % 100) // 10 # 十位
ge = number_one % 10 # 个位
if bai ** 3 + shi ** 3 + ge ** 3 == number_one:
print(f'{number_one}是水仙花数')
else:
print(f'{number_one}不是水仙花数')