我是编程新手,并尝试在python 2.7中构建一个简单的石头剪刀程序。在我的函数中,我有2个主要的if语句
rules = raw_input("Before we being playing would you like to hear the rules first? ")
if rules.lower() == "yes":
print """
Scissors cuts Paper
Paper covers Rock
Rock crushes Scissors"""
和第二个
choice = raw_input("please enter your choice? (Must be either rock, paper or scissors) ")
computer = random.choice(["rock", "paper", "scissors"])
if choice == "rock" or "paper" or "scissors":
if choice == computer :
print "Its a tie !"
elif choice == "rock" and computer == "scissors":
print "Rock beats scissors you win!."
elif choice == "rock" and computer == "paper":
print "Paper beats rock you loose !."
elif choice == "paper" and computer == "scissors":
print "Scissors beats paper you loose !."
elif choice == "paper" and computer == "rock":
print "Paper beats rock you win !."
elif choice == "scissors" and computer == "paper":
print "Scissors beats paper you win !."
elif choice == "scissors" and computer == "rock":
print "Rock beats scissors you loose !."
else :
print "Invalid Entry Please try again."
单独的两位代码都可以正常工作,但是当我尝试将它们放在一个函数中时,第一个if语句询问规则是否有效,但随后在具有该程序主要功能的第二个if语句之前退出。我试过在第一个if语句中缩进第二位代码,但它似乎不起作用
我想知道是否还有使这两段代码在一个简单的函数中工作?或者我应该用这两个函数创建一个类? 如果有人有任何关于如何使我的程序更好的提示,请告诉我。在此先感谢您的帮助。
继承完整代码
import random
def rock_paper_scissors_spock():
rules = raw_input("Before we being playing would you like to hear the rules first? ")
if rules.lower() == "yes":
print """
Scissors cuts Paper
Paper covers Rock
Rock crushes Scissors"""
choice = raw_input("please enter your choice? (Must be either rock, paper or scissors) ")
computer = random.choice(["rock", "paper", "scissors"])
if choice == "rock" or "paper" or "scissors":
if choice == computer :
print "Its a tie !":
elif choice == "rock" and computer == "scissors":
print "Rock beats scissors you win!."
elif choice == "rock" and computer == "paper":
print "Paper beats rock you loose !."
elif choice == "paper" and computer == "scissors":
print "Scissors beats paper you loose !."
elif choice == "paper" and computer == "rock":
print "Paper beats rock you win !."
elif choice == "scissors" and computer == "paper":
print "Scissors beats paper you win !."
elif choice == "scissors" and computer == "rock":
print "Rock beats scissors you loose !."
else :
print "Invalid Entry PLease try again."
rock_paper_scissors_spock()
答案 0 :(得分:2)
您说if choice == "rock" or "paper" or "scissors":
,但Python没有将choice ==
连接到所有选项。你可以在choice == "rock"
附近加上括号,它会做同样的事情。将其更改为if choice in ("rock", "paper", "scissors")