我尝试使用python来提示用户输入不同的数字,并保留最大的数字,并在用户输入" done"时结束。但我发现它无法使用不同数字的数字。例如,第一个条目:91,第二个:94,它将运行良好。但是第一个条目:91和第二个:100,它不能记录100作为最大数字。有人知道发生了什么吗?非常感谢你!
代码:
largest = None
smallest = None
while True:
num = raw_input("Enter a number: ")
if num == "done":
break
try: int (num)
except:
print "Please enter a numeric number"
if largest is None and smallest is None:
largest = num
smallest = num
#print "l", largest
#print "s", smallest
if num > largest:
largest = num
print largest, num
#if num < smallest:
# smallest = num
# print "s2", smallest
print num
print "Maximum is ", largest
#print "Minimum is ", smallest
答案 0 :(得分:1)
你正在进行ASCII比较,而不是数字。您需要实际分配number = int(num)
之类的内容并使用number
进行比较。
答案 1 :(得分:0)
问题是你没有将num
转换为整数,所以它使用字符串比较而不是数字比较。变化:
try: int (num)
为:
try:
num = int(num)
答案 2 :(得分:0)
你有很多问题。看看这个,也许你可以将它合并到你自己的代码中?
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
答案 3 :(得分:0)
raw_input
返回一个字符串。因此,当您比较num > largest
时,您正在使用字符串(字母)比较。你想比较数字。最简单的方法是简单地将比较重写为int(num) > int(largest)
。
try: int (num) ...
已检查输入是否为数字,但不会更改变量的值。
注意:没有异常类型的except
通常不是一个好主意。您应该明确记下要捕获的异常:ValueError