Сейчас я делаю домашнее задание и хочу, чтобы 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!")
Пожалуйста, дайте мне знать, как это исправить. Очень признателен!!
Вы можете преобразовать ввод и все элементы в списке в сравнение bevor в нижнем регистре






Сначала преобразуйте все элементы в наборе 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 в предлагаемом дубликате).
Спасибо вам, ребята!! Я сделал все имена строчными буквами в student_lists и использовал lower (), который теперь работает !!
@LynS, предпочтительная форма «спасибо» в StackOverflow - голосование за ответ.
#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 в предлагаемом дубликате).
Спасибо! str.casefold () тоже работает! Идеально!! :)
Я не понимаю, на каком этапе нужно распознать регистр букв? и что с этим делать?