Кодзиро верно. Вы должны отменить ваше условие для
if abr in days:
return days[abr]
Не забудьте использовать строку для словарных ключей и значений, поскольку пользовательский ввод будет возвращен в виде строки, которую вы будете использовать в качестве ключа.
Вы также должны использовать raw_input
, поскольку input
фактически эквивалентно eval , который потребует от пользователя ввода "Tu" вместо Tu.
Что касается цикла, вы можете использовать цикл while и выйти, когда обнаружите недопустимое сокращение
def abr():
abr = raw_input("Enter a day abbreviation:")
days = {"Su": "Sunday",
"Mo": "Monday",
"Tu": "Tuesday",
"We": "Wednesday",
"Th": "Thursday",
"Fr": "Friday",
"Sa": "Saturday",
"Su": "Sunday"}
if abr in days:
return days[abr]
return None
while(1):
day = abr()
if day is not None:
print day
else:
break