2013-04-25 2 views
0
player_number=name_to_number(name) 
player_number=int() 

# compute random guess for comp_number using random.randrange() 
comp_number=random.randrange (0,4) 

# compute difference of player_number and comp_number modulo five 
rpsls_match = (player_number-comp_number)%5 

# use if/elif/else to determine winner 
if rpsls_match == 1 or 2: 
    rpsls_winner = 'Player wins!' 
elif rpsls_match == 3 or 4: 
    rpsls_winner = 'Computer wins!' 
else: 
    rpsls_winner = 'Player and computer tie!' 

    #print "Player chooses " + name 

    # convert comp_number to name using number_to_name 
print 'Computer chooses ', number_to_name(comp_number),comp_number 
print 'player chooses ' , name, player_number 
return rpsls_winner 

код правильно работать, но я не получил ответ, что я хочу ,, это дать мне ответ, каккод запуска, но ответ не правильный (питон)

Computer chooses paper 2 
player chooses rock 0 
Player wins! 

Computer chooses lizard 3 
player chooses paper 0 
Player wins! 

Computer chooses spock 1 
player chooses scissors 0 
Player wins! 

Computer chooses paper 2 
player chooses lizard 0 
Player wins! 

incorrect input 
Computer chooses lizard 3 
player chooses Spock 0 
Player wins! 

, но я хочу, как

Player chooses rock 
Computer chooses scissors 
Player wins! 

Player chooses Spock 
Computer chooses lizard 
Computer wins! 

Player chooses paper 
Computer chooses lizard 
Computer wins! 

Player chooses lizard 
Computer chooses scissors 
Computer wins! 

Player chooses scissors 
Computer chooses Spock 
Computer wins! 
+1

логический оператор или не используется должным образом, вы пишете, как если бы 1 == 2 или 3, но если он не возвращается 3, это не логический оператор, который вы хотите использовать, например, в том случае, если var in (1 , 2) – Denis

ответ

3

rpsls_match == 1 or 2 должен быть

rpsls_match in (1, 2) или

rpsls_match == 1 or rpsls_match == 2.

Оцените 1 or 2 на странице REPL. Ответ 1, потому что or возвращает первый не-ложнодействующий операнд.

2

Линия

player_number=int() 

всегда будет установлен player_number значение по умолчанию для int, которая равна нулю. Вы должны удалить эту строку, чтобы сохранить значение, установленное в предыдущей строке.