0

I have looked at the other posts about this topic but still can not find what I'm doing wrong at the beginning. Instead of rock, paper, and scissors, I am using python, ruby, and java. It is not close to being done yet. I'm not into the if loops yet for, but if the user inputs something different then "python", "ruby", or Java", I want it too print "The game is over". I get an error saying the string i entered is not defined. Could someone guide me in the direction I need to go? I think I'm confused when comparing userInput to gameList, since gameList is a list.

import random
def pythonRubyJava():
    gameList = ["python","ruby","java"]
    userInput = input("python, ruby, or java?:")
    randomInput = random.choice(gameList)
    if userInput != gameList:
        print "The game is over"

I got that part figured out. Do I need to store "python", "ruby", and "java" as variables to continue now? Or where would you go?

import random
def pythonRubyJava():
    gameList = ["python","ruby","java"]
    userInput = raw_input("python, ruby, or java?:")
    randomInput = random.choice(gameList)
    print randomInput
    if userInput not in gameList:
        print "The game is over"
    if userInput == "python" and randomInput == "python":
        print "stalemate"
    if userInput == "ruby" and randomInput == "ruby":
        print "stalemate"
    if userInput == "java" and randomInput == "java":
        print "stalemate"        

Instead of getting the same answer, I want to be able to run the game again and not have it print the stalemate to end the game, just start over. I know I would have to delete "print "stalemate"" but I just wanted to show that.

4

6 に答える 6

2

文字列とリストを比較しているため、条件は常に false になります。あなたがしたいことは、次のように、文字列がリスト内にあるかどうかを確認することです:

if userInput not in gameList:
    print "game is over"
于 2013-09-25T22:57:01.857 に答える
1

raw_input()の代わりに使用する必要がありますinput()

import random
def pythonRubyJava():
    gameList = ["python","ruby","java"]
    userInput = raw_input("python, ruby, or java?:")
    randomInput = random.choice(gameList)
    if userInput != randomInput:
        print "The game is over"

を使用する場合input()、ユーザーは入力を正しくフォーマットする必要があります。つまり、'java' と引用符を付けます。

于 2013-09-25T22:54:16.867 に答える
0

実際、答えは、これまでに見た答えの両方のバージョンを組み合わせたものです。

まず、input()文字列を返すのではなく、入力した文字をそのまま返すので、「python」と入力すると、python存在しない変数を探します。

入力を機能させるには、入力を引用符で囲む必要がありますが、より良い方法があります。raw_input()入力を文字列値として受け取る which を使用します。

また、それを修正すると、6 行目でエラーになります。6 行目では、回答をリスト全体と比較していますが、リストの各項目と比較する必要があります。

以下で簡単に解決:

if userInput not in gameList:
    #execute
于 2013-09-25T23:15:41.873 に答える
0

not in次の演算子を使用します。

if userInput not in gameList:
    print "The game is over"
于 2013-09-25T22:56:20.320 に答える