为什么不同的数字号码在这个python代码中不起作用?

时间:2015-12-28 06:50:55

标签: python

我尝试使用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

4 个答案:

答案 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