python - 如何在完全不同的函数中使用函数的返回值
问题描述
我正在写一个井字游戏,目前有以下功能:
# Need: Board, Display Board, Play Game, Alternating Terms, Os, Xs, Wins, Losses
board = ["-", "-", "-",
"-", "-", "-",
"-", "-", "-", ]
def display_board():
print(board[0] + " | " + board[1] + " | " + board[2])
print(board[3] + " | " + board[4] + " | " + board[5])
print(board[6] + " | " + board[7] + " | " + board[8])
def handle_turn():
position = input("\nChoose a position from 1 to 9: ")
position = int(position) - 1
return position
def choose_player_marker(marker):
player_marker = ''
if marker == 'X' or marker == 'x':
player_marker = 'X'
return player_marker
elif marker == 'O' or marker == 'o':
player_marker = 'O'
return player_marker
def opp_move():
opp_marker = ''
if choose_player_marker() == 'X':
opp_marker = 'O'
else:
opp_marker = 'X'
def play_game():
game_current = True
display_board()
marker = input("\nPlease choose a marker: 'X' or 'x' OR 'O' or 'o' : ")
choose_player_marker(marker)
opp_move()
handle_turn()
play_game()
在函数中,def choose_player_marker(marker):
我返回player_marker = 'X'
or player_marker = 'O'
,具体取决于条件。
我想使用结果'X'
或'O'
函数def opp_move():
来确定对手会选择哪个标记。但是,我很难正确委派 return 声明。我尝试marker
在函数中使用作为参数,def opp_move():
也尝试if choose_player_marker(marker) == 'X'
无济于事。
如何正确处理 return 语句,def choose_player_marker(marker):
以便我的def opp_move():
函数能够确定对手会选择什么标记?
解决方案
现在我们可以看到您的完整代码,解决方案很简单。
你已经打电话choose_player_marker()
了main
。你也不需要调用它opp_move
。您需要做的是在 main 中调用它时捕获结果,然后将值传递给 opp_move:
def opp_move(marker):
if marker == 'X':
opp_marker = 'O'
else:
opp_marker = 'X'
return opp_marker
def play_game():
game_current = True
display_board()
marker = input("\nPlease choose a marker: 'X' or 'x' OR 'O' or 'o' : ")
marker = choose_player_marker(marker)
opp_move(marker)
handle_turn()
现在这段代码还有很多其他的问题,比如 handle_turn 没有做任何有用的事情,正如其他人指出的那样,choose_player_marker 可以简单地替换为对 的调用marker.upper()
,但至少这应该能让你继续前进。
推荐阅读
- python-3.x - 多线程 PyOpenCV 显示
- javascript - 如何解决开始时间为上午 10:55 和结束时间为晚上 10:00 的问题?
- javascript - nodejs中如何根据key和salt进行加密?
- nginx - NGINX 的重定向规则
- c++ - 不带参数的可变模板函数
- android - 如何让 Firebase 用户在谷歌登录功能之外颤抖?
- sql - 3706 语法错误:预期介于整数和 ')' 之间
- azure - Azure 成本管理 - 如何将 ResourceGuid 与 ResourceId 匹配
- asp.net - 在 Azure Active Directory 的所有网站集中权限中找不到读写项目和列表
- javascript - 从苹果登录的重定向 uri 响应中读取片段