実際に機能が正しくない場合はwhile
ループと一緒にrecursion function
ループを使用していますが、この場合は必要ありません。
しかし、次のコードを試すことができます。これは、関数に基づいて少し変更されていますが、ループはwhile
ループのみを使用しています。
def quantityFunction():
valid = False
while not valid:
quantity = input("Please enter the amount of this item you would like to purchase: ")
for i in quantity:
try:
int(i)
return int(quantity)
except ValueError:
print("We didn't recognise that number. Please try again.")
valid = False
break
けれども、あなたがwhile loop
を使用したい場合は、実際には、簡単な方法でこれを行っている可能性:
def quantityFunction():
while True:
quantity = input("Please enter the amount of this item you would like to purchase: ")
if quantity.isdigit():
return int(quantity)
else:
print("We didn't recognise that number. Please try again.")
をそして、あなたは本当にrecursive function
を使用したい場合は、以下試してください。
def quantityFunction1():
quantity = input("Please enter the amount of this item you would like to purchase: ")
if quantity.isdigit():
return int(quantity)
else:
print("We didn't recognise that number. Please try again.")
return quantityFunction()
注意したいのは、ですあなたが数字を入力すると最終的に返されるのは、else
のreturn quantityFunction()
です。さもなければ最終的に何も返されません。これはまた、最初にあなたがそれを返すことができるが、それを返すことができないときに、なぜあなたが入力したのかというあなたの質問を説明する。
また、この回答を読むことができます - http://stackoverflow.com/a/23294659/471899 – Alik
関数の値を返す必要があります。 'return quantityFunction()'でも正しい方法は@Alikによって投稿されたものです。 – Selcuk
それはそうではありません: '私は範囲(数量):'数量が実際に数であるならば? – shiva