一看就是亲学哥学姐了,我来回答一波,方便学弟学妹查看 匿名了
如果按照题意解答,代码如下(前一位答主写的很好,我稍加注释,便于理解)
num=input('请输入多个三位正整数,以-1结尾:')
nums= num.split()#此时num依据空格分成了多个字符串
count=0#用于计数
for i in nums:#分别把nums中的字符串代入
n=eval(i)#将字符串类型转化成数字类型以计算
if n==-1:#到-1停止运算
break
if n!=int(n):#浮点数判断,使得输入浮点数不会报错
print(f"{n}是小数",end=" ")
else:
if n<100 or n>999:
print(f"{n}不是三位正整数",end=" ")
else:
a=n//100#百位
b=(n%100)//10#十位
c=n%10#个位
if n==a**3+b**3+c**3:
print(f"{n}是水仙花数",end=" ")
count+=1
else:
print(f"{n}不是水仙花数",end=" ")
print(f"\n有{count}个水仙花数")
我不是很专业,自己学了一点点,如有错误,还望指正。
但是!!!!可爱的计算机老师的意思其实是让你分别输入这些数,并非一次性输入一组数据,所以你应该提交的代码如下
while True:
nn=eval(input("请输入一个三位正整数:"))
if nn!=int(nn):
print("请不要输入小数,请您重新输入。")
elif nn<100 or nn>999:
print("输入有误,请您重新输入。")
else:
a=nn//100
b=(nn%100)//10
c=nn%10
if nn==a**3+b**3+c**3:
print(f"{nn}是水仙花数。")
else:
print(f"{nn}不是水仙花数。")
e=input("是否继续判断?输入-1结束。")
if e=="-1":
print("感谢使用。")
break