如何在Python中使用定义中的局部变量返回? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python中使用定义中的局部变量返回? [关闭]相关的知识,希望对你有一定的参考价值。
我正在尝试创建一个简单的AI程序,它可以玩棒游戏。问题是我想从总棒数中减去所选择的棒。这个简单的代码显示了一些错误,例如不存在的值。我无法为我的值分配返回值。还有另一种方法可以用函数减去价值吗?
import random
msg = input('Determine stick numbers:')
print('Stick number is determined as:', msg)
# First player move
def robot(stick):
y = stick % 4
if y==0:
y=randint(1,3)
mov=int(y)
print('machine chose:', mov)
total = stick-mov
return total
def human(stick2):
mov2= int(input('your turn:'))
print('human chose:', mov2)
total = stick2-mov2
return total
players= {
'1': robot,
'2': human
}
number1= input('Determine first player machine(1) or human(2):')
number2= input('Determine second player (1) or (2):')
player1=players[number1]
player2=players[number2]
print(player1, player2)
print('the game begins')
while True:
player1(int(msg))
if msg == 0: break
print('remained sticks:', msg)
player2(int(msg))
print('remained sticks:', msg)
if msg == 0: break
答案
你的玩家是参考函数:
players= {
'1': robot,
'2': human
}
后来你称他们为player1
和player2
:
player1=players[number1]
player2=players[number2]
但是当您使用这些函数时,您不会对返回值执行任何操作:
player1(int(msg))
...
player2(int(msg))
所以这些函数会返回一些东西,但是你会忽略它的值。您需要打印该返回值或将其分配给变量,以便稍后可以对该值执行某些操作。
由于您的返回值称为total
,您可能需要:
total = player1(int(msg))
print('new total:', total)
另一答案
当然,return
确实有效;它返回一个值。但是,在您的代码中,您没有捕获该值,它会立即被丢弃。
它真的不清楚你想要什么,但也许你想要这样的东西:
msg = player1(int(msg))
以上是关于如何在Python中使用定义中的局部变量返回? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章