刚刚开始学习一些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
等转换为整数。