2014-09-05 48 views
0

剛剛開始學習一點python,並由於某種原因,我剛剛放在一起的腳本返回一個數字,如10000000000000000 < 5.我認爲這是由於本地不準確與int鍵入大值,但我不確定,也許我只是做錯了什麼!Python比較不正確與大整數

這裏是我的(寫得不好,我知道)腳本:

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.' 
+1

發生這種情況是因爲您正在比較字符串。將'firstNum','secNum'和'thirdNum'變成'int's – inspectorG4dget 2014-09-05 05:37:35

回答

1

您需要將原始輸入,firstNum等轉換爲整數與intfirstNum = int(firstNum)

2

在您的「checkValue」函數中,您將輸入轉換爲「int」。但在比較中,您使用輸入的字符串值。所以你可以在輸入階段轉換「firstNum」,「secNum」和「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