Python判断水仙花数:简单易懂的代码示例与解析
Python判断水仙花数:简单易懂的代码示例与解析
什么是水仙花数?
水仙花数(Narcissistic number)也被称为超完全数字invariant number、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,是指一个 3 位数,其各位数字立方和等于该数本身。例如,153 就是一个水仙花数,因为 1³ + 5³ + 3³ = 153。
Python代码实现
以下是使用 Python 编写的判断水仙花数的程序:
while True:
num = input('请输入一个3位正整数:')
if len(num) == 3 and num.isdigit():
num = int(num)
if (num//100)**3 + ((num%100)//10)**3 + (num%10)**3 == num:
print(f'{num}是水仙花数')
else:
print(f'{num}不是水仙花数')
break
else:
print('输入无效,请重新输入')
代码解析
- **循环输入:**程序使用
while True创建一个无限循环,允许用户反复输入数字进行判断。 - 输入验证:
- 使用
input函数获取用户输入的字符串。 - 使用
len(num) == 3检查输入字符串长度是否为 3。 - 使用
num.isdigit()检查输入字符串是否只包含数字字符。
- 使用
- 水仙花数判断:
- 如果输入有效,则使用
int(num)将其转换为整数。 - 使用
//和%运算符计算百位数、十位数和个位数。 - 计算各位数字的立方和,并与原数比较。
- 根据比较结果输出相应的信息。
- 如果输入有效,则使用
- 循环控制:
- 如果输入有效且完成了水仙花数判断,使用
break语句跳出循环。 - 如果输入无效,输出错误提示信息,并继续等待用户输入。
- 如果输入有效且完成了水仙花数判断,使用
总结
这段 Python 代码简洁清晰地实现了水仙花数的判断逻辑。通过学习这段代码,你可以了解到 Python 中循环、条件语句、类型转换、算术运算符等基本语法的应用,以及如何进行简单的用户输入验证。
原文地址: https://www.cveoy.top/t/topic/bwrw 著作权归作者所有。请勿转载和采集!