Ввод с клавиатуры без различения верхнего и нижнего регистра в Python - PullRequest
0 голосов
/ 30 мая 2020

Я хочу создать что-то вроде этого:

answer = input("What's your name?")
if answer == "Mike":
    # code
if answer == "John":
    # code
else:
    # code

Я хочу написать Mike или MIKE или mIke ... (и то же самое с John) и сделать все эти случаи True, но я не знаю, как это сделать, вместо использования answer.lower(), answer.upper() ...

Ответы [ 2 ]

1 голос
/ 30 мая 2020

Если вам нужно заново изобрести колесо, вот go:

def is_upper(letter):
    return ord(letter) > 64 and ord(letter) < 91

def to_lower(word):
    lowered = ""
    for letter in list(word):
        if is_upper(letter):
            lowered += chr(ord(letter) + 32)
        else:
            lowered += letter
    return lowered

print(to_lower("MIKE"))
# >>> mike
print(to_lower("MikE"))
# >>> mike
print(to_lower("mIKe"))
# >>> mike
1 голос
/ 30 мая 2020

Как насчет того, чтобы сделать это вручную с помощью простого понимания списка, если не использовать .lower() или .upper()?

def convert(s):
    return "".join(i if 65 <= ord(i) <= 90 else chr(ord(i) - 32) for i in s)


answer = input("What's your name?")
if convert(answer) == convert("Mike"):
    # code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...