#python
Вопрос:
У меня есть задача присвоить каждому дню недели числовое значение. Например, если день один, программа вернется в понедельник. Все, что у меня есть прямо сейчас, работает, за исключением воскресенья, или 7-го дня. Я попытался изменить код, но ничего не работает.
def dayOfWeek(day):
if day not in range(1, 7):
return "Unknown"
elif day == 1:
return "Monday"
elif day == 2:
return "Tuesday"
elif day == 3:
return "Wednesday"
elif day == 4:
return "Thursday"
elif day == 5:
return "Friday"
elif day == 6:
return "Saturday"
elif day == 7:
return "Sunday"
assert (dayOfWeek(0) == "Unknown")
assert (dayOfWeek(7) == "Sunday")
assert (dayOfWeek(1) == "Monday")
assert (dayOfWeek(3) == "Wednesday"
)
Комментарии:
1. Функция диапазона является исключительной (например, диапазон(m, n) позволяет использовать все числа от m до n-1)
2. Если вам нужен диапазон от 1 до 7, вам нужно будет сделать диапазон(1,8).
Ответ №1:
Это предлагается только в качестве будущей альтернативы. Функционально нет никакой разницы.
Вы также можете установить словарь значений
def dayOfWeek(day):
days = {
1: 'Monday',
2: 'Tuesday',
3: 'Wednesday',
4: 'Thursday',
5: 'Friday',
6: 'Saturday',
7: 'Sunday'
}
return days[day] if day in days else 'Unknown'
Ответ №2:
def dayOfWeek(day):
if day not in range(1, 8):
return "Unknown"
elif day == 1:
return "Monday"
elif day == 2:
return "Tuesday"
elif day == 3:
return "Wednesday"
elif day == 4:
return "Thursday"
elif day == 5:
return "Friday"
elif day == 6:
return "Saturday"
elif day == 7:
return "Sunday"
assert (dayOfWeek(0) == "Unknown")
assert (dayOfWeek(7) == "Sunday")
assert (dayOfWeek(1) == "Monday")
assert (dayOfWeek(3) == "Wednesday")
Используйте диапазон от 1 до 8, потому что python отсекает последнее число.
Ответ №3:
В функции диапазона python оставляет последнее число, т. Е. Если это диапазон(a,b), то диапазон изменяется от a до b-1. Таким образом, ваш правильный диапазон будет (1,8), как сказал Ведант Мехта. Если вы путаете с диапазоном, то используйте else
оператор. Ваш код:
def dayOfWeek(day):
if day == 1:
return "Monday"
elif day == 2:
return "Tuesday"
elif day == 3:
return "Wednesday"
elif day == 4:
return "Thursday"
elif day == 5:
return "Friday"
elif day == 6:
return "Saturday"
elif day == 7:
return "Sunday"
else:
return "Unknown"
assert (dayOfWeek(0) == "Unknown")
assert (dayOfWeek(7) == "Sunday")
assert (dayOfWeek(1) == "Monday")
assert (dayOfWeek(3) == "Wednesday")