0

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() ...

Omar
  • 1,029
  • 2
  • 13
  • 33

2 Answers2

1

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
jizhihaoSAMA
  • 12,336
  • 9
  • 27
  • 49
1

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
adamkgray
  • 1,717
  • 1
  • 10
  • 26