私はいくつかの Python チュートリアルを進めていますが、ユーザー入力が引き続き発生することの 1 つであり、それを正しく検証していることを確認したかっただけで、長い道のりではありません。
私は以下のコードを書きましたが、月と年を尋ねるだけで済みますが、住所、電話番号、名前などを尋ね始める必要がある場合、これはどんどん大きくなっていきますが、それは正常ですか?
def get_input( i ):
while True:
# We are checking the day
if i == 'd':
try:
day = int( raw_input( "Please Enter the day: " ) )
# If the day is not in range reprint
if day > 0 and day < 32:
#Need to account for short months at some point
return day
else:
print 'it has to be between 1 and 31'
except ( ValueError ):
print "It has to be a number!"
elif i == 'm':
# We are checking the month
month = raw_input( 'Please enter ' +
'in words the month: '
).strip().lower()
if month in months: # use the dict we created
return month
else:
print 'Please check you spelling!'
elif i == 'y':
# Now the year
try:
year = int( raw_input( "Please Enter the year" +
"pad with 0's if needed: " ) )
#make we have enough digits and a positive
if year > 0 and len( year ) == 4:
return year
except ( ValueError, TypeError ):
print "It has to be a four digit number!"