Как позволить Python распознавать как строчные, так и прописные буквы для ввода?

Сейчас я делаю домашнее задание и хочу, чтобы Python распознавал как строчные, так и прописные буквы для ввода. Вот сценарий:

print("Welcome to the student checker!")

student_lists = {"Mary A","Tony Z","Sophie L","Zoe J","Joey M","Connie O","Olivia L","Mark Z","Donny M"}

while True:

    name=input("Please give me the name of a student (enter 'q' to quit):")

    if name in student_lists:
        print("Yes, that student is enrolled in the class!")

    else:
        print("No, that student is not in the class.")

    if name= = "q":
        break

print("Goodbye!")

Пожалуйста, дайте мне знать, как это исправить. Очень признателен!!

Я не понимаю, на каком этапе нужно распознать регистр букв? и что с этим делать?

YOLO 31.12.2018 02:07

Вы можете преобразовать ввод и все элементы в списке в сравнение bevor в нижнем регистре

Thomas Sablik 31.12.2018 02:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
2 131
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Сначала преобразуйте все элементы в наборе student_lists в строчные буквы:

student_lists = {name.lower() for name in student_lists}

а затем вместо

if name in student_lists:

использовать

if name.lower() in student_lists:

чтобы при сравнении все буквы были строчными.

lower() - это правильный ответ почти, но он не будет правильно работать с различными интернационализированными строками. str.casefold() - это то, что вам, вероятно, следует использовать (см. Ответ Veedrac в предлагаемом дубликате).
Daniel Pryden 31.12.2018 02:15

Спасибо вам, ребята!! Я сделал все имена строчными буквами в student_lists и использовал lower (), который теперь работает !!

Lyn S 31.12.2018 03:01

@LynS, предпочтительная форма «спасибо» в StackOverflow - голосование за ответ.

MarianD 06.01.2019 03:02
Ответ принят как подходящий
#Making a copy of the student_list list and parsing all names as lowercase.
student_list_lowercase = []
for item in student_list:
    student_list_lowercase.append(item.lower())

name=input("Please give me the name of a student (enter 'q' to quit):")

#Testing that the lowercase version of the student's name is present in the newly created list.
if name.lower() in student_lists_lowercase():
    print("Yes, that student is enrolled in the class!")

else:
    print("No, that student is not in the class.")

if name= = "q":
    break
lower() - это правильный ответ почти, но он не будет правильно работать с различными интернационализированными строками. str.casefold() - это то, что вам, вероятно, следует использовать (см. Ответ Veedrac в предлагаемом дубликате).
Daniel Pryden 31.12.2018 02:17

Спасибо! str.casefold () тоже работает! Идеально!! :)

Lyn S 31.12.2018 03:04

Другие вопросы по теме