1

このコードの何が問題なのか誰か教えてくれませんか?コードを実行すると何も表示されませんが、「elif」を削除すると動作します.\

first=input("What is your first name? ");
middle=input("What is your middle name? ");
last=input("What is your last name? ");
test = [first, middle, last];
print ("");
print ("Firstname: " + test[0]);
print ("Middlename: " + test[1]);
print ("Lastname: " + test[2]);
print ("");
correct=input("This is the information you input, correct? ");
if (correct == "Yes" or "yes"):
    print ("Good!")
elif (correct == "no" or "No"):
    print ("Sorry about that there must be some error!");
4

3 に答える 3

6

問題は次のとおりです。

if (correct == "Yes" or "yes"):
    # ...
elif (correct == "no" or "No"):
    # ...

そのはず:

if correct in ("Yes", "yes"):
    # ...
elif correct in ("No", "no"):
    # ...

複数の条件を含む比較を行う正しい方法は次のようになることに注意してください。

correct == "Yes" or correct == "yes"

しかし、通常は次のように記述されます。これはより短いものです。

correct in ("Yes", "yes")
于 2013-09-24T16:45:58.113 に答える
3

in次のキーワードを使用する必要があります。

if correct in ("Yes", "yes"):
    print ("Good!")
elif correct in ("no", "No"):
    print ("Sorry about that there must be some error!")

または、入力全体を同じケースに変換します。

# I use the lower method of a string here to make the input all lowercase
correct=input("This is the information you input, correct? ").lower()
if correct == "yes":
    print ("Good!")
elif correct == "no":
    print ("Sorry about that there must be some error!")

lower個人的には、このソリューションが最もクリーンで最適だと思います。ただし、スクリプトが「Yes」、「yEs」などの入力を受け入れるようになることに注意してください。これが問題になる場合は、最初の解決策を使用してください。

于 2013-09-24T16:46:53.493 に答える