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


posted @ 2022-08-03 22:33  NiceTwocu  阅读(141)  评论(0编辑  收藏  举报