Skip to content Skip to sidebar Skip to footer

How To Let Python Recognize Both Lower And Uppercase Input?

I am new to Python. I am writing a program that distinguishes whether or not a word starts with a vowel. The problem is, that the program is only able to correctly handle uppercase

Solution 1:

Convert the word entirely to lowercase (or uppercase) first:

word = input("Please Enter a word:").lower()  # Or `.upper()`

Also, to get the first letter of your word, use word[0], not word[1]. Lists are zero-indexed in Python and almost all programming languages.

You can also condense your code by quite a bit:

word = input("Please Enter a word:")

if word[0].lower() in'aeiou':
    print("The word begins with a vowel")
else:
    print("The word do not begin with a vowel")

Solution 2:

Usually you would use str.lower() (or str.upper()) on the input to normalise it.

Python3.3 has a new method called str.casefold() which works properly for unicode

Solution 3:

Solution 4:

The check for vowels is done using str.startswith which can accept a tuple of multiple values. PEP 8 Style Guide for Python Code recommends the use of startswith with over string slicing for better readability of code:

Use ''.startswith() and ''.endswith() instead of string slicing to check for prefixes or suffixes.

Conditional Expressions are used to set the message indicating whether the word starts with a vowel or not. Then I used the String Formatting method to prepare the message. Also just as a English grammar correction thing I replaced the sentence "The word do not begin with a vowel" with "The word does not begin with a vowel".

word = input("Please Enter a word:")
is_vowel = 'does'if word.lower().startswith(tuple('aeiou')) else'does not'print("The word {} begin with a vowel".format(is_vowel))

Solution 5:

You should use:

word[i] in'AEIOUaeiou'

Post a Comment for "How To Let Python Recognize Both Lower And Uppercase Input?"