我在下面有這個功能,我在某處做了某些錯誤。循環功能
def quantityFunction(product):
valid = False
while True:
if product is not None:
quantity = input("Please enter the amount of this item you would like to purchase: ")
for i in quantity:
try:
int(i)
return int(quantity)
valid = True
except ValueError:
print("We didn't recognise that number. Please try again.")
#If I get here, I want to loop back to the start of this function
return True
return False
要運行通過,該功能是從程序的主要部分被稱爲像這樣:quantity = quantityFunction(product)
返回的代碼的底部假是,如果產品是無,這是做需要在另一個函數中的一些代碼,但不得不在這個功能。
如果用戶輸入數量是一個數字,所有工作正常。如果是其他內容,則會打印「值錯誤」,您可以輸入另一個輸入。如果你再寫一封信等,它會再次重複,如果你輸入一個數字,它會接受它。
但是,它不會返回您在字母后輸入的數字。它只返回0.
我懷疑這是關於如何重複代碼,即代碼應該循環回到函數的開始,如果它擊中值錯誤。
任何想法?
你在return塊中有return語句。只需打印錯誤消息,它應該可以正常工作。 – SilentMonk
爲什麼你定義'valid'?它從未使用過。爲什麼是for循環?爲什麼不嘗試將數量直接轉換爲int? – Ben
現在我已經把除了塊以外的函數返回,函數不會循環,我怎麼能這樣做呢? @SilentMonk –