人々が日付を入力できるように、私は小さなコードを書きました。1未満または12を超える月の入力を停止するエラーチェックは、これらの範囲内にある場合にのみ値を返す必要があります。「範囲外」の数値をいくつか入力すると、1か月間再入力するように正しく再要求されますが、すべての値が返されます。何が起こっている?
# the question asked to get the month input for the xml updater
def month_q():
try:
month = int(input('What was the month [MM] which the installers were updated/created by xxx?:'))
except:
print("That was not a valid number. Please re-enter a 2 digit month")
month_q()
updatemonth = month_check(month)
print("Month q returning:", updatemonth)
return updatemonth
# check the update month is a valid month
def month_check(month):
if month < 1:
print("The month must be a number between 01 and 12. Please re-enter")
month_q()
elif month > 12:
print("The month must be a number between 01 and 12. Please re-enter")
month_q()
else:
print("Month_check returning month:", month)
return month
# this updates the xml file with the date of the last installer
def xml_updater():
updatemonth = month_q()
print("Update month:", updatemonth)
xml_updater()
結果は、正しい月「12」を入力する前に、悪い月「15」、「14」、および「13」を入力した結果です。
What was the month [MM] which the installers were updated/created by xxx?:15
The month must be a number between 01 and 12. Please re-enter
What was the month [MM] which the installers were updated/created by xxx?:14
The month must be a number between 01 and 12. Please re-enter
What was the month [MM] which the installers were updated/created by xxx?:13
The month must be a number between 01 and 12. Please re-enter
What was the month [MM] which the installers were updated/created by xxx?:12
Month_check returning month: 12
Month q returning: 12
Month q returning: None
Month q returning: None
Month q returning: None
Update month: None
何が起こっている?