Упросить код If -> for
Всем привет. В задачнике меня попросили сделать так чтобы когда я вводил номер дня недели у меня высвечивался день недели. Я реализовал это через ЕСЛИ.
x = int(input("Введите номер дня недели: "))
if x == 1:
print("Понедельник")
if x == 2:
print("Вторник")
if x == 3:
print("Среда")
if x == 4:
print("Четверг")
if x == 5:
print("Пятница")
if x == 6:
print("Суббота")
if x == 7:
print("Воскресенье")
if x > 7:
print("Ошибка")
if x < 1:
print("Ошибка")
Но мне кажется что можно это как то через оператор FOR реализовать но я не пойму как это сделать подскажите.
Ответы (4 шт):
Автор решения: Tehnorobot
→ Ссылка
Можно сделать через словарь:
x = int(input("Введите номер дня недели: "))
days = {1: 'Понедельник', 2: 'Вторник', 3: 'Среда', 4: 'Четверг', 5: 'Пятница', 6: 'Суббота', 7: 'Воскресенье'}
print(days.get(x, 'Некорректный номер недели'))
Понятно и просто.
Можно через список (Можно также учесть, что вводимый номер может выходить за рамки от 1 до 7):
x = int(input("Введите номер дня недели: "))
days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']
if 0 < x < 8:
print(days[x - 1])
else:
print('Некорректный номер недели')
Автор решения: vadim vaduxa
→ Ссылка
import locale, calendar
locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
day_by_num1 = lambda n, __d=dict(enumerate(calendar.day_name, start=1)): __d.get(int(n), 'ошибка')
print(day_by_num1('2')) # 'вторник'
day_by_num2 = lambda n, __d=dict(zip(map(str, range(1, 8)), calendar.day_name)): __d.get(n, 'ошибка')
print(day_by_num2('w')) # 'ошибка'
Автор решения: SergFSM
→ Ссылка
если хочется именно через for то вот как вариант (но разумеется так не надо, есть лучше способы):
days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']
for i in range(int(input("Введите номер дня недели: "))):
day = days.pop(0)
print(day)
Автор решения: u111
→ Ссылка
d = [
'Понедельник', 'Вторник', 'Среда', 'Четверг',
'Пятница', 'Суббота', 'Воскресенье'
]
x = int(input('Введите номер дня недели: '))
if 1 <= x <= 7: # или x in range(1, 8)
print(d[x - 1])
else:
print('Ошибка')