只是想知道是否有人可以帮我解决一个小问题。当我将startNum与常量(startNum< 11)进行比较时,while条件正常工作,但当我与endNum进行比较时,它会进入无限循环。我很想知道我在这里做错了什么?
startNum = 1
endNum = raw_input('please enter the end number')
def main():
print startNum
print endNum
sumNatural()
print listNumBoth
print listNumThree
print listNumFive
def sumNatural():
global startNum
global endNum
print startNum
print endNum
while startNum < endNum:
listNumThree=[]
listNumBoth=[]
listNumFive=[]
#startNum=1
#endNum=raw_input('please enter the end number')
startNum = startNum+1
print 'StartNUM ',startNum,'EndNum ',endNum
if startNum%3==0 and startNum%5==0:
listNumBoth.append(startNum)
elif startNum%3==0:
listNumThree.append(startNum)
elif startNum%5==0:
listNumFive.append(startNum)
else:
print 'number not divisible',startNum
else:
print 'while loop ended'
main()
答案 0 :(得分:1)
endNum是一个字符串,startNum是一个数字....
你的问题应该在这里......
尝试使用int(endNum)
将输入字符串解析为数字。
答案 1 :(得分:1)
raw_input
会返回一个字符串,因此您不会进行您认为正在进行的整数比较。
将endNum
转换为整数:
endNum = int(raw_input('please enter the end number'))
答案 2 :(得分:1)
raw_input将返回一个非整数字符串。您需要将其转换为整数值:
while True:
endNum = raw_input('please enter the end number')
try:
endNum = int(endNum)
break
except ValueError:
print "Please enter a valid number"