OK 400
OK 400

Reputation: 831

Keyboard input without upper and lower case discrimination in Python

I want to create something like this:

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

What I want to do is to write Mike or MIKE or mIke ... (and same with John) and make all of that cases True, but I don't know how to do that instead of using answer.lower(), answer.upper() ...

Upvotes: 0

Views: 327

Answers (2)

adamkgray
adamkgray

Reputation: 1947

If you need to re-invent the wheel, here you 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

Upvotes: 1

jizhihaoSAMA
jizhihaoSAMA

Reputation: 12672

How about do it manually by an easy list comprehension if don't use .lower() or .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

Upvotes: 1

Related Questions