python___let`s try it 3---计算水仙花数
📅 2026/7/5 14:31:21
👁️ 阅读次数
📝 编程学习
循环语句: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()
编程学习
技术分享
实战经验