How to make string check case insensitive? How to make string check case insensitive? python python

How to make string check case insensitive?


if 'power' in choice.lower():

should do (assuming choice is a string). This will be true if choice contains the word power. If you want to check for equality, use == instead of in.

Also, if you want to make sure that you match power only as a whole word (and not as a part of horsepower or powerhouse), then use regular expressions:

import reif re.search(r'\bpower\b', choice, re.I):


This if you're doing exact comparison.

if choice.lower() == "power":

Or this, if you're doing substring comparison.

if "power" in choice.lower():

You also have choice.lower().startswith( "power" ) if that interests you.


The str type/object has a method specifically intended for caseless comparison.

At the python3 prompt:

>>> help(str)... |  casefold(...) |      S.casefold() -> str |       |      Return a version of S suitable for caseless comparisons....

So, if you add .casefold() to the end of any string, it will give you all lowercase.

Examples:

>>> "Spam".casefold()'spam'>>> s = "EggS">>> s.casefold()'eggs'>>> s == "eggs"False>>> s.casefold() == "eggs"True