|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我在打印“XXX数是水仙花数”以后,实现了遍历所有三位数的水仙花数,但代码明显累赘了,不知道怎么优化,求指导。
# 输入一个三位数
while True:
while True:
num = int(input('输入一个三位数:'))
# 数据验证
# 如果输入的不是三位数,提示输入错误,重新输入
if not (100 <= num < 1000):
print("输入的不是三位数,重新输入!")
else:
break
# 如果输入的是三位数,进行数据处理
# 数据处理 计算公式:输入的这个三位数,百位的三次方+十位的三次方+个位的三次方=这个数本身
# 判断三位数
# print(123 // 100)
# print(123 % 100 // 10)
# print(123 % 10)
baiWei = num // 100
shiWei = num % 100 // 10
geWei = num % 10
result = baiWei ** 3 + shiWei ** 3 + geWei ** 3
# 数据打印
# 如果是,提示是;如果不是,提示不是,重新输入
if result == num:
print('%d是水仙花数' % num)
for num in range(100, 1000):
baiWei = num // 100
shiWei = num % 100 // 10
geWei = num % 10
result = baiWei ** 3 + shiWei ** 3 + geWei ** 3
# 数据打印
# 如果是,提示是;如果不是,提示不是,重新输入
if result == num and result != 153:
print('其他三位数的水仙花数还有:%d' % num)
break
else:
print("%d不是水仙花数" % num)
|
|