7

我是 Python 新手。我正在编写一个程序来区分单词是否以元音开头。问题是,该程序只能正确处理大写字母作为输入。例如,如果我提供单词“Apple”作为输入,结果是True; 但是,如果提供单词“apple”作为输入,则结果为False. 我如何解决它?

word = input ("Please Enter a word:")
if (word [1] =="A") :
    print("The word begins with a vowel")
elif (word [1] == "E") :
    print("The word begins with a vowel")
elif (word [1] == "I") :
    print("The word begins with a vowel")
elif (word [1] == "O") :
    print("The word begins with a vowel")
elif (word [1] == "U") :
    print("The word begins with a vowel")
else:
    print ("The word do not begin with a vowel")
4

8 回答 8

5

通常你会在输入上使用str.lower()(或str.upper()) 来规范化它。

Python3.3 有一个新方法str.casefold(),它适用于 unicode

于 2012-10-04T03:58:35.827 回答
5

首先将单词完全转换为小写(或大写):

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

此外,要获取单词的第一个字母,请使用word[0],而不是word[1]。在 Python 和几乎所有编程语言中,列表都是零索引的。

您还可以将代码压缩很多:

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")
于 2012-10-04T02:39:49.337 回答
1

您可以在比较之前将输入转换为大写。

于 2012-10-04T02:39:54.167 回答
1

你应该使用:

word[i] in 'AEIOUaeiou'
于 2012-10-04T02:42:28.020 回答
0

元音检查是使用str.startswith完成的,它可以接受多个值的元组。PEP 8 Style Guide for Python Code建议使用带有字符串切片的startswith,以提高代码的可读性:

使用 ''.startswith() 和 ''.endswith() 代替字符串切片来检查前缀或后缀。

条件表达式用于设置指示单词是否以元音开头的消息。然后我使用字符串格式化方法来准备消息。同样,作为英语语法校正的事情,我将句子“单词不以元音开头”替换为“单词不以元音开头”。

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))
于 2012-10-04T04:20:31.857 回答
0
swim_wait = input("Alright you reach the river.Do you want to 
Swim or Wait\n")
swim_wa = swim_wait.lower()

我正在使用.lower()将用户输入转换为较低的程序,这在处理输入时很方便。您也可以使用.upper() ,但我认为您不能同时使用两者。

于 2021-09-04T02:28:41.823 回答
0
  1. 您只检查代码中的大写字母。一种方法是将用户的任何输入转换为大写,您当前的代码将起作用。这可以通过像这样更改代码来轻松完成...

    word = input("Please Enter a word: ").upper()
    
  2. 您还需要使用 word[0] 而不是 word[1] 来获取第一个字母。其余的代码可能是这样的:

    if word [0] in "AEIOU" :
        print("The word begins with a vowel")
    else:
        print ("The word does not begin with a vowel")
    

这将使第一个字母大写,其余的将保持原样。

于 2015-11-08T10:14:39.097 回答
-2

我写了一个简单的游戏运行代码希望你能理解

print("Welcome to Treasure Island\nYour Mission is to Find the Treasure\n")
choice1 = input('You are at the crossroad ,where do you want to go.Type "left" or "right".\n').lower()
if choice1 == "left":
    choice2 = input(
        'You\'ve come to a lake.There os a island in the middle of the lake.Type "wait"to wait for the boat.Type "swim" to sim across\n').lower()
    if choice2 == "wait":
        choice3 = input(
        "You arrive at the island unharmed. There is a house with 3 doors. One red, one yellow, and one blue. Which color do you choose?\n").lower()
       if choice3 == "red":
            print("Its room full of fire. Game Over!")
        elif choice3 == "yellow":
            print("You found the treasure you won!")
        elif choice3 == "blue":
            print("You enter a room of beasts.Game over!")
    else:
        print("You chosen the wrong door. Game over!")

如果代码使用选项卡中有一些缩进错误并重新格式化代码行,我不知道如何在 StackOverflow 上准确编写代码,因为我是新来的

于 2021-09-04T02:55:19.670 回答