循环语句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_numberint(input(请输入一个三位数的数字: )) aArmstrong_number//100#百位 b(Armstrong_number-a*100)//10#十位 cArmstrong_number%10#个位 suma*a*ab*b*bc*c*c if sumArmstrong_number: print(f{Armstrong_number}就是水仙数) else: print(不是水仙数) narcissistic_number()Armstrong_numberint(input(请输入一个三位数的数字: )) # aArmstrong_number%100%10#个位 可以但是复杂不够简便 # b(Armstrong_number%100-a)/10#十位 # c(Armstrong_number-b*10-a)/100 100#百位 suma*a*ab*b*bc*c*c用了/所以b,c变成了浮点数eg:b50/105.0 浮点数suma*a*ab*b*bc*c*c浮点数计算会导致精度误差可能算出来是153.000001和整数Armstrong_number整数比较时153.000001153是False所以永远输出“不是水仙数”#水仙数 def findnumber(): for item in range(100,1000): aitem//100#百位 b(item-a*100)//10#十位 citem%10#个位 #suma*a*ab*b*bc*c*c suma**3b**3c**3 if sumitem: print(f{item}就是水仙数) findnumber()