2013-06-21 202 views
0

我試圖學習python,並開始與此,我試圖運行它時不斷收到語法錯誤。將光標定位在DEF開始部分。林不知道跳轉到接近「的到底哪裏語法錯誤是從我的講話標記所有打印Python岩石,紙,剪刀

#! python3 

# J Presents: Rock, paper, Scissors: The Video Game 

import random 
import time 

rock = 1 
paper = 2 
scissors = 3 

names = { rock: "Rock", paper: "Paper", scissors: "Scissors" } 
rules = {rock: scissors, paper: rock, scissors: paper} 

Player_score = 0 
computer_score = 0 

def start(): 
    print "Let's play a game of Rock, Paper, Scissors." 
    while game(): 
     pass 
    scores() 

def game(): 
    player = move() 
    computer = random.randint(1, 3) 
    result(player, computer) 
    return play_again() 

def move(): 
    while True: 
     print 
     player = raw_input("Rock = 1\nPaper = 2\nScissors = 3\nMake a Move: ") 
     try: 
      player = int(player) 
      if player in (1,2,3): 
       return player 
      except ValueError: 
       pass 
      Print "Oops! I didn't understand that. Please enter 1, 2 or 3." 

def result (player, computer): 
    print "1..." 
    time.sleep(1) 
    print "2..." 
    time.sleep(1) 
    print "3!" 
    time.sleep (0.5) 
    print "Computer threw {0}!".format(names[computer]) 
    global player_score, computer_score 
    if player == computer: 
     print "Tie Game." 
    else: 
     if rules[player} == computer: 
     print "Your victory has been assured." 
     player_score +=1 
    else: 
     print "The computer laughs as you realise you have been defeated." 

def play_again(): 
    answer = raw_input("Would you like to play again? y/n: ") 
    if answer in ("y", "Y", "yes", "Yes", "Of course!"): 
     return answer 
    else: 
     print "Thank you very much for playing our game. See you next time!" 

def scores(): 
    global player_score, computer_score 
    print " HIGH SCORES" 
    print "Player: ", player_score 
    print "Computer: ", computer_score 

if __name__ == '__main__': 
    start() 
+0

['print'是在Python 3的功能](http://docs.python.org/3.0/whatsnew /3.0.html)您必須將要打印的值放在括號中。 print(「讓我們玩一場Rock,Paper,Scissors遊戲。」) –

回答

0
if rules[player} == computer: 

的大括號應該是一個支架來了。

1

1)您有一個壓痕錯誤的位置:同樣

try: 
      player = int(player) 
      if player in (1,2,3): 
       return player 
except ValueError: #Try Except Block Statement 
      pass 
      Print "Oops! I didn't understand that. Please enter 1, 2 or 3." 

2):

if rules[player} == computer: #Error in this line 

應該是:

if rules[player] == computer: 

3)如果其他縮進錯誤。

if player == computer: 
    print "Tie Game." 
else: 
    if rules[player} == computer: 
    print "Your victory has been assured." 
    player_score +=1 
else: #Incorrect indentation 
    print "The computer laughs as you realise you have been defeated." 

這應該是:

if rules[player} == computer: 
     print "Your victory has been assured." 
     player_score +=1 
    else: 
     print "The computer laughs as you realise you have been defeated." 
0
if rules[player} == computer: 
print "Your victory has been assured." 
player_score +=1 

第一個錯誤:規則[播放器} =>規則[播放] 第二個錯誤,你需要的,如果後IDENT線。

else: 
    if rules[player} == computer: 
     print "Your victory has been assured." 
     player_score +=1 
    else: 
     print "The computer laughs as you realise you have been defeated." 

第三錯誤:你不能有2別人的單個如果