兩個函數都使用相同的check(x)
函數,並且幾乎相同,但第二個函數必須採用的參數才能使用print
。輸入int
作爲輸入顯示沒有問題。錯誤檢查後,函數返回「NoneType」,但不包含另一個輸入
但是,如果輸入了字母,則enter_num()
的返回結果將變爲NoneType
,但這在enter_amount()
中不會發生。
哪裏出了點問題?
def check(x): #check if user input is integer
try:
int(x)
return True
except ValueError:
return False
def enter_num(): #get user input for lotto numbers
x = input("buy num:")
if check(x) == True: #check int
x = int(x)
return x
else:
print("Please enter integer")
enter_num()
def enter_amount(x): #get user amount of the lottos
print(x) ##if enter_num errored once, this will show None##
y = input("How many?")
if check(y) == True: #check int
y = int(y)
print("%s for %s copies" % (x,y))
return y
else:
print("Please enter integer")
enter_amount(x)
buy_num = enter_num()
amount = enter_amount(buy_num)
什麼是*你得到異常的完整回溯*請不要讓我們猜到這個! –
沒有跡象顯示,因爲它運行沒有錯誤。 –
您對'NoneType'一詞的使用表明您在某處獲得了一個異常*,就像'AttributeError:'NoneType'對象沒有屬性'something'一樣。 –