Как использовать метода lower?
Здание было следующее: Выводить номер недели принимая от пользователя день недели.
Я написал следующий код
day = input('Введите день недели:')
if day == 'понедельник' or day == 'Понедельник':
print('День № 1')
elif day == 'вторник' or day == 'Вторник':
print('День №2')
...
преподаватель сказал, что задача решена правильно, но нужно сделать её через метод lower, покопался в сети, посмотрел про него( он записывает все символы в нижнем регистре, но не могу применить её в данной задаче.
Ответы (2 шт):
Так как вам не известно в каком регистре введут данные целесообразно сразу привести input() к нижнему регистру. и после этого сравнивать ответ:
day = input('Введите день недели').lower()
if day == 'понедельник':
...
Вот ещё один вариант решения :)
days = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье']
day = input('Введите день недели: ').lower()
if day in days:
print(f"Номер дня недели: {days.index(day) + 1}")
else:
print("Введите день недели!")
То, что в квадратных скобках - это список (массив, другими словами): более подробно прочитать можно здесь.
if day in days - это проверка, находится ли пользовательский ввод в нашем списке (массиве) значений. В days лежат наши дни недели, а в переменной day то, что вводит пользователь. Например, если юзер напишет ЧеТвЕрГ, то с помощью функции lower() ввод сконвертируется в нижний регистр и получится четверг. И как видно, в списке days есть наш день недели четверг.
Функция index() это одна из большого количества функций, которые можно применять к спискам. index() возвращает номер элемента в списке. То есть мы ищем, каким по счёту находится введённый пользователем день в массиве days.
Например:
days = ['понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье']
day = 'четверг'
print(days.index(day)) # 3
Вернет нам число 3, потому что элементы в списках всегда начинаются с нуля. 0 - первый элемент, 1 - второй, и так далее.
Более подробно можно прочитать здесь.