Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未定义函数?_Python - Fatal编程技术网

Python 未定义函数?

Python 未定义函数?,python,Python,我不确定为什么会出现游戏未定义的错误: #!/usr/bin/python # global variables wins = 0 losses = 0 draws = 0 games = 0 # Welcome and get name of human player print 'Welcome to Rock Paper Scissors!!' human = raw_input('What is your name?') print 'Hello ',human # start g

我不确定为什么会出现游戏未定义的错误:

#!/usr/bin/python

# global variables
wins = 0
losses = 0
draws = 0
games = 0

# Welcome and get name of human player
print 'Welcome to Rock Paper Scissors!!'
human = raw_input('What is your name?')
print 'Hello ',human

# start game
game()

def game():
    humanSelect = raw_input('Enter selection: R - Rock, P - Paper, S - Scissors, Q - Quit:  ')
    while humanSelect not in ['R', 'P', 'S', 'Q']:
        print humanSelect, 'is not a valid selection'
        humanSelect = raw_input('Enter a valid option please')

    return humanSelect

main()

您必须先定义函数
game
,然后才能调用它

def game():
    ...

game()

因为,在执行语句
game()
时,您尚未到达语句
def game():
,因此,game是未定义的


如果将
game()
移动到
def game()
之后,您将在
main()
上遇到类似的错误,这很难修复,因为您似乎没有在代码中的任何地方定义名为
main
的函数。

好的,我今天花了一些时间对其进行修补,现在有以下内容:

import random
import string

# global variables
global wins
wins = 0
global losses
losses = 0
global draws
draws = 0
global games
games = 0
# Welcome and get name of human player
print 'Welcome to Rock Paper Scissors!!'
human = raw_input('What is your name? ')
print 'Hello ',human

def readyToPlay():
    ready = raw_input('Ready to Play? <Y> or <N> ')
    ready = string.upper(ready)

    if ready == 'Y':
        game()
    else:
        if games == 0:
            print 'Thanks for playing'
            exit
        else:
            gameResults(games, wins, losses, draws) 

    return

def game():

    global games
    games += 1
    human = humanChoice()
    computer = computerChoice()
    playResults(human, computer)
    readyToPlay()


def humanChoice():
    humanSelect = raw_input('Enter selection: R - Rock, P - Paper, S - Scissors:  ')
    while humanSelect not in ['R', 'P', 'S']:
        print humanSelect, 'is not a valid selection'
        humanSelect = raw_input('Enter a valid option please')
    return humanSelect

def computerChoice():
    computerInt = random.randint(1, 3)
    if computerInt == '1':
        computerSelect = 'R'
    elif computerInt == '2':
        computerSelect = 'P'
    else:
        computerSelect = 'S'

    return computerSelect

def playResults(human, computer):

    global draws
    global wins
    global losses

    if human == computer:

        print 'Draw'
        draws += 1

    elif human == 'R' and computer == 'P':

        print 'My Paper wrapped your Rock, you lose.'
        losses += 1

    elif human == 'R' and computer == 'S':

        print 'Your Rock smashed my Scissors, you win!'
        wins += 1

    elif human == 'P' and computer == 'S':

        print 'My Scissors cut your paper, you lose.'
        losses += 1

    elif human == 'P' and computer == 'R':

        print 'Your Paper covers my Rock, you win!'
        wins += 1

    elif human == 'S' and computer == 'R':

        print 'My Rock smashes your Scissors, you lose.'
        losses += 1

    elif human == 'S' and computer == 'P':

        print 'Your Scissors cut my Paper, you win!'
        wins += 1

def gameResults(games, wins, losses, draws):
    print 'Total games played', games
    print 'Wins:  ', wins, ' Losses:  ',losses, ' Draws:  ', draws
    exit

readyToPlay()
完成
def game
if game == 0:
    greeting = 'Would you like to play Rock, Paper, Scissors?'
else:
    greeting = 'Play again?'

ready = raw_input(greeting)