py计算任意三位数是否为水仙花数(该数字位数>=3,此为3位数版)
例如:153 = 1**3 + 5**3 + 3**3,符合此类条件就为水仙花数。
1 1.三位数版水仙花数判断器 2 shuzi, shuzi2, shuzi3 = input("第一个数字:"), input("第二个数字:"), input("第三个数字:") #输入三个数字 3 zongshuzi = str(shuzi + shuzi2 + shuzi3) #变量zongshuzi print 后为字符串三位数字的链接,例如shuzi为5,shuzi2为6,shuzi3为7,那么print后为字符串"567" 4 while not zongshuzi.isdigit(): # isdigit函数有个前提,那就是.前必须为字符串格式,否则会报错。主要用来判断该字符串所有字符是否为数字,True或Falst 5 shuzi, shuzi2, shuzi3 = input("格式错误,请输入数字:"), input("第二个数字:"), input("第三个数字:") 6 # 若用户输入的不是数字,则重新输入 7 zongshuzi = str(shuzi + shuzi2 + shuzi3) 8 # zongshuzi变量重新赋值,并重新到while处判断 9 10 print("您输入的数字是:" + shuzi + shuzi2 + shuzi3) 11 if (int(shuzi)**3 + int(shuzi2)**3 + int(shuzi3)**3) == int(shuzi + shuzi2 + shuzi3): 12 # 先将shuzi, shuzi2, shuzi3转化为数字格式,==后的由于shuzi + shuzi2 + shuzi3为字符串格式的相连,故要转化 13 print("是水仙花数!") 14 else: 15 print("不是水仙花数") 16 17 2.求100到999之间的水仙花数 18 for i in range(100, 999): 19 # 打印出100到999之间的数字 20 i1 = list(str(i)) 21 # 此时的i为数字格式,题目要求是要对i的每个位数判断,故需要拆分i,list是一种可取的方法,但要先将i转化为str格式 22 if (int(i1[0])**3 + int(i1[1])**3 + int(i1[2])**3) == int(i1[0] + i1[1] + i1[2]): 23 print(int(i)) 24 # 也可print(int(i), end = " ")