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

最初に単語全体を小文字 (または大文字) に変換します。

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 に答える
5

通常、入力に対してstr.lower()(または) を使用して正規化します。str.upper()

Python3.3 には、str.casefold()Unicode で適切に機能する新しいメソッドが呼び出されています。

于 2012-10-04T03:58:35.827 に答える
1

比較する前に、入力を大文字に変換できます。

于 2012-10-04T02:39:54.167 に答える
1

以下を使用する必要があります。

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

母音のチェックは、複数の値のタプルを受け入れることができるstr.startswithを使用して行われます。PythonコードのPEP8スタイルガイドでは、コードを読みやすくするために、文字列を超えたスライスで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
  1. コード内の大文字のみをチェックしています。1 つの方法は、ユーザーによる入力を大文字に変換することで、現在のコードが機能します。これは、コードを次のように変更することで簡単に実行できます...

    word = input("Please Enter a word: ").upper()
    
  2. また、最初の文字を取得するには、word[1] の代わりに word[0] を使用する必要があります。コードの残りの部分は次のようになります。

    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 に答える
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 に答える
-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!")

コード使用タブにインデント エラーがある場合、コード行を再フォーマットします

于 2021-09-04T02:55:19.670 に答える