-3

このプログラムをしばらく実行しようとしていますが、実行しようとしてもエラーの原因がわかりません。

エラーが発生するコード行は次のとおりです。

from math import *
from myro import *
init("simulator")

def rps(score):
    """ Asks the user to input a choice, and randomly assigns a choice to the computer."""
    speak("Rock, Paper, Scissors.")
    computerPick = randint(1,3)
    userPick = raw_input("Please enter (R)ock, (P)aper, or (S)cissors.")
    if userPick = R <#This line is where the error shows up at>
        print "You picked rock."
    elif userPick = P
        print "You picked paper."
    else
        print "You picked Scissors."
    score = outcome(score, userPick, computerPick)
    return score
4

2 に答える 2

6

等価の代わりに代入演算子を使用しています。また、if ステートメントにコロンがなく、文字列を引用していません。

if userPick == 'R':
    ...
elif userPick == 'P':
    ...
else:
    ...

elseただし、ここではケースに使用しないでください'S''S'は別の有効な条件である必要があり、そうでない場合はエラー状態のキャッチオールである必要があります。

これを行う別の方法は次のとおりです。

input_output_map = {'R' : 'rock', 'P' : 'paper', 'S' : 'scissors'}
try:
    print 'You picked %s.' % input_output_map[user_pick]
except KeyError:
    print 'Invalid selection %s.' % user_pick

または:

valid_choices = ('rock', 'paper', 'scissors')
for choice in valid_choices:
    if user_choice.lower() in (choice, choice[0]):
        print 'You picked %s.' % choice
        break
else:
    print 'Invalid choice %s.' % user_choice
于 2012-08-16T18:02:08.540 に答える
2
if userPick = R:

する必要があります

if userPick == "R":
于 2012-08-16T18:02:11.427 に答える