2016-06-12 36 views
1

查看大量现有问题并未看到完全相同的场景。我正在研究Python的基础知识,并试图创建无处不在的Rock,Paper,Scissors游戏。但是,我得到的变量等于用户的猜测,我无法与代表计算机猜测的随机选择的项目进行比较。一切都评估为“你赢了!:)”,即使它不应该表明这两个变量永远不会相等。我试过没有任何运气使用str(computer_choice)。Python - 将字符串与列表中的随机项目进行比较

下面的代码的全部:

import time 
import random 

rps = ['Rock', 'Paper', 'Scissors'] 

computer_choice = random.sample(rps, 1) 

print("Let's play some Rock, Paper, Scissors") 
print("Hit enter when ready:") 
input("") 

print("Rock...") 
time.sleep(1) 
print("Paper...") 
time.sleep(1) 
print("Scissors...") 
time.sleep(.75) 
print("SHOOT!") 

print("Which is it?") 
user_choice = input(">>>") 



while True: 
    valid_check = user_choice in rps 
    if valid_check == True: 
     break 
    else: 
     print('Bad input, try again:') 
     user_choice = input(">>>") 

print("The computer picked: %s" % computer_choice) 

if user_choice == computer_choice: 
    print("It's a draw!") 

elif user_choice == 'Rock': 
    if computer_choice == 'Paper': 
     print("You lose :(") 

    else: 
     print("You win! :)") 

elif user_choice == 'Paper': 
    if computer_choice == 'Scissors': 
     print("You lose :(") 

    else: 
     print("You win! :)") 

elif user_choice == 'Scissors': 
    if computer_choice == 'Rock': 
     print("You lose :(") 

    else: 
     print("You win! :)") 

回答

3

您需要使用random.choice(rps)可以返回原始列表的元素,而不是random.sample(rps,1)从原始列表返回大小为1的列表。

+0

完美工作,解释有意义。猜猜我是将一个列表与一个总是假的字符串进行比较。谢谢! – mannayz

相关问题