python-小练习(11、判断是否是水仙花数,并逆序打印)
"""
水仙花数:一个三位数,他的个位数、十位数、百位数的立方和等于它本身
需求:判断输入的数是不是水仙花数,如果是水仙花数请打印,并逆序单独打印
思路:
输入一个数
判断这个数是几位数
gewei=i%10
shiwei=i//10%10
baiwei=i//100%10
判断输入的数是不是水仙花数
逆序打印
抛出异常
"""
class shuixianhua:
def b(self):
print(f"-------水仙花数-------")
try:
print(">>>开始执行程序")
i = input(">>>请输入一个三位数整数:")
if len(str(i))!=3:
print(">>>输入错误,不是大于0的三位数整数!")
raise Exception(">>>报错了,请重新输入")
else:
gewei =int(i) % 10
shiwei =int(i) // 10 % 10
baiwei =int(i)// 100 % 10
if gewei**3+shiwei**3+baiwei**3==int(i):
print(f">>>{i}是水仙花数")
print(f">>>逆序是:{gewei}{shiwei}{baiwei}")
else:
print(f">>>{i}不是水仙花数")
except ValueError as e:
print(">>>输入错误,不是大于0的三位数整数!", e)
raise Exception(">>>报错了,请重新输入")
else:
print(">>>计算完成")
finally:
print(">>>程序结束")
if __name__ == '__main__':
a=shuixianhua()
a.b()
执行结果
D:\app\workspace\pycharm\study_python\venv\Scripts\python.exe D:/app/workspace/pycharm/study_python/shuixianhua.py
-------水仙花数-------
>>>开始执行程序
>>>请输入一个三位数整数:371
>>>371是水仙花数
>>>逆序是:173
>>>计算完成
>>>程序结束
Process finished with exit code 0