繁体   English   中英

如何将 function 的变量用于另一个变量? (Python)

[英]How to use variable of function for another one? (Python)

我是 Python 的初学者。 我开始为一个名为“井字游戏”的游戏编写一些代码。 为此,我在下面创建了一些函数:

import random
def choose_first():
    random.randint(1, 2)
    if random.randint(1,2) == 1:
        print('Player 1 is first to play')
        player1_input()
    elif random.randint(1,2) == 2:
        print('Player 2 is first to play')
        player2_input()

def player1_input():
    player1=''
    marker=''
    while marker !='X' and marker !='O':
        marker=input('Player 1, choose X or O: ')
        return marker
    player1==marker
    if player1=='X':
        player2='O'
    else:
        player2='X'
    return (player1,player2,marker)

def player_choice(board):
    position = int(input('Which position you want to choose? '))
    if space_check is True:
        return position

def place_marker(board, marker, position):
     board[position] = marker

这是使用这些功能的一段代码:

def game_on():
    board = ['#','','','','','','','','','']
    choose_first()
    while not full_board_check(board): 
        player_choice(board)
        place_marker(board, marker, position)
        display_board(board)
    while full_board_check(board):
        if win_check(board, mark):
            print('Player using', marker, 'won')
        else:
            print("It's a tie!")

当我选择 position 时,它返回此错误:

<ipython-input-117-d37edecdd743> in game_on()
      5     while not full_board_check(board):
      6         player_choice(board)
----> 7         place_marker(board, marker, position)
      8         display_board(board)
      9     while full_board_check(board):

NameError: name 'marker' is not defined

似乎“标记”变量没有从player_input()返回,但我需要在另一个 function 中使用他(在这种情况下放置标记)。 怎么做? 如果可以的话请帮忙。

我认为您应该做的是在获取输入之前放置global marker

global marker
marker=input('Player 1, choose X or O: ')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM