min1=0max1=0while True: num=input("enter a number") if (num=='done'): break elif (num.isdigit()==False): print("sorry enter integers or done") elif (int(num)>max1): max1=num elif (int(num)<min1): min1=numprint(max1)print(min1)这是在“int”和“str”的实例之间不支持的错误“>”。我不能接受整数输入,因为当用户输入完成时我必须中断。另外,我必须考虑用户输入的非整数值。如何纠正此代码。
2 回答
MYYA
TA贡献1868条经验 获得超4个赞
假设num='5'
。然后elif (int(num)>max1):
持有并分配'5'
给max1
。在下一次迭代中,max1
是一个字符串,因此会出现错误。解决方案是 - max1=int(num)
(和 相同min1
)。
白衣染霜花
TA贡献1796条经验 获得超10个赞
解决此问题的另一种方法是将输入转换为整数一次,而不是int(num)在整个代码中多次使用。这使以后更容易阅读。
这方面的一个例子是正在改变
elif (num.isdigit()==False):
至
elif (num.isdigit()==True):或elif (num.isdigit())(他们做同样的事情)。
然后你可以将字符串转换为整数 num = int(num)
例子:
min1=0
max1=0
while True:
num=input("enter a number")
if (num=='done'):
break
if num.isdigit():
num = int(num)
else:
print("sorry enter integers or done")
continue
if (num>max1):
max1=num
elif (num<min1):
min1=num
print(max1)
print(min1)
添加回答
举报
0/150
提交
取消