为什么不同的数字赢了';在这个python代码中不工作?
我尝试使用python提示用户输入不同的数字,并保留最大的数字,当用户输入“完成”时完成。但我发现它不能与不同的数字一起工作。例如,第一个条目:91,第二个条目:94,它将运行良好。但是第一个条目:91和第二个条目:100,它不能将100记录为最大数字。有人知道发生了什么事吗?非常感谢你 代码:为什么不同的数字赢了';在这个python代码中不工作?,python,Python,我尝试使用python提示用户输入不同的数字,并保留最大的数字,当用户输入“完成”时完成。但我发现它不能与不同的数字一起工作。例如,第一个条目:91,第二个条目:94,它将运行良好。但是第一个条目:91和第二个条目:100,它不能将100记录为最大数字。有人知道发生了什么事吗?非常感谢你 代码: max=None 最小=无 尽管如此: num=原始输入(“输入一个数字:”) 如果num==“完成”: 打破 try:int(num) 除: 打印“请输入数字” 如果最大值为无,最小值为无: 最大=n
max=None
最小=无
尽管如此:
num=原始输入(“输入一个数字:”)
如果num==“完成”:
打破
try:int(num)
除:
打印“请输入数字”
如果最大值为无,最小值为无:
最大=num
最小=num
#打印“l”,最大
#打印“s”,最小
如果num>最大值:
最大=num
打印最大值,num
#如果num<最小值:
#最小=num
#打印“s2”,最小
打印数
打印“最大值为”,最大值为
#打印“最小值为”,最小值为
您正在进行ASCII比较,而不是数字比较。您需要实际分配类似于number=int(num)
的值,并使用number
进行比较。问题是您没有将num
转换为整数,因此它使用字符串比较而不是数字比较。更改:
try: int (num)
致:
你有很多问题。看看这个,也许你可以把它合并到你自己的代码中
largest = 0
while True:
prompt = raw_input("Enter a number: ")
try:
num = int(prompt)
if num > largest:
largest = num
except:
if prompt == 'done':
break
print largest
raw\u input
返回一个字符串。因此,当您比较num>最大值时,您使用的是字符串(字母顺序)比较。你想比较数字。最简单的方法是简单地将比较重写为int(num)>int(max)
try:int(num).
已检查输入是否为数字,但不会更改变量的值
注意:除非
没有异常类型通常不是一个好主意。您应该明确地写下要捕获的异常:ValueError
您是否尝试保留测试结果?问题在于int(num)
——这不会永久地更改num
的类型。是的,我现在就得到了,非常感谢!
try:
num = int(num)
largest = 0
while True:
prompt = raw_input("Enter a number: ")
try:
num = int(prompt)
if num > largest:
largest = num
except:
if prompt == 'done':
break
print largest