Python与大整数的比较不正确



刚刚开始学习一些python,出于某种原因,我刚刚编写的脚本返回了一个数字,例如10000000000000000<5.我认为这是由于int类型在大值时的本机不准确,但我不确定,也许我只是做错了什么!

这是我的(我知道写得不好)剧本:

def checkValue(n):
    while True:
        if n == '':
            print 'You didn't enter anything!'
            return False
        else:
            try:
                n = int(n)
            except ValueError:
                print 'That is not an integer!'
                return False
            else:
                break
    return True
while True:
    firstNum = raw_input('Enter the first number: ')
    if checkValue(firstNum) == False:
        continue
    else:
        break
while True:
    secNum = raw_input('Enter the second number: ')
    if checkValue(secNum) == False:
        continue
    else:
        break
while True:
    thirdNum = raw_input('Enter the third number: ')
    if checkValue(thirdNum) == False:
        continue
    else:
        break
if thirdNum > secNum and thirdNum > firstNum:
    print 'The third number is the biggest.'
elif secNum > firstNum:
    print 'The second number is the biggest.'
else:
    print 'The first number is the biggest.'

在"checkValue"函数中,您正在将中的输入转换为"int"。但在比较时,您使用输入的字符串值。因此,您可以在输入阶段转换"firstNum"、"secNum"one_answers"thirdNum"。看看区别。

In [2]: firstNum = raw_input('Enter the first number: ')
In [3]: firstNum
Out[3]: '5'
In [4]: int_first = int(firstNum)
In [5]: int_first
Out[5]: 5

您需要使用intfirstNum = int(firstNum)将原始输入firstNum等转换为整数。

最新更新