python___let`s try it 3---计算水仙花数

📅 2026/7/5 14:31:21 👁️ 阅读次数 📝 编程学习
python___let`s try it 3---计算水仙花数

循环语句:for语句和while语句

在循环体正常执行结束时才会执行else语句,如果发生中断,则不执行else语句

提示:通过while语句计算水仙花数。提示:水仙花数是一个三位数,三位数的各位的立方之和等于三位数本身。

/:浮点数类型

//:取整数部分

10杯咖啡分给3个牛马,一个人分到3.333333333杯

如果10%3结果就是1,因为%是取余数

如果10/3结果就是3.33333333

如果10//3结果就是3,取的是整数部分

以153为例子

153除以100----1余53

如果是153/100---1.53

如果是153%100----53

如果是153//100-----1

#======计算水仙花数====== print("计算水仙花数") def narcissistic_number(): Armstrong_number=int(input("请输入一个三位数的数字: ")) a=Armstrong_number//100#百位 b=(Armstrong_number-a*100)//10#十位 c=Armstrong_number%10#个位 sum=a*a*a+b*b*b+c*c*c if sum==Armstrong_number: print(f"{Armstrong_number}就是水仙数") else: print("不是水仙数") narcissistic_number()
Armstrong_number=int(input("请输入一个三位数的数字: ")) # a=Armstrong_number%100%10#个位 可以但是复杂不够简便 # b=(Armstrong_number%100-a)/10#十位 # c=(Armstrong_number-b*10-a)/100 100#百位 sum=a*a*a+b*b*b+c*c*c

用了/,所以b,c变成了浮点数

eg:b=50/10=5.0 浮点数

sum=a*a*a+b*b*b+c*c*c,浮点数计算会导致精度误差,可能算出来是153.000001,和整数Armstrong_number(整数)比较时,153.000001==153是False,所以永远输出“不是水仙数”

#=======水仙数========= def findnumber(): for item in range(100,1000): a=item//100#百位 b=(item-a*100)//10#十位 c=item%10#个位 #sum=a*a*a+b*b*b+c*c*c sum=a**3+b**3+c**3 if sum==item: print(f"{item}就是水仙数") findnumber()