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
  • 97
  • 3
  • 10

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
  • 11,804
  • 9
  • 23
  • 43
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,303
  • 8
  • 24