Упросить код 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('Ошибка')
→ Ссылка