在Python中,如何在定义中返回局部变量?
我正在尝试创建一个简单的AI程序来玩棍子游戏。问题是我想从棒的总数中减去选择的棒。这个简单的代码显示了一些错误,例如不存在值。我无法为我的值分配返回值。有没有其他方法可以用函数减去值在Python中,如何在定义中返回局部变量?,python,return,definition,subtraction,Python,Return,Definition,Subtraction,我正在尝试创建一个简单的AI程序来玩棍子游戏。问题是我想从棒的总数中减去选择的棒。这个简单的代码显示了一些错误,例如不存在值。我无法为我的值分配返回值。有没有其他方法可以用函数减去值 import random msg = input('Determine stick numbers:') print('Stick number is determined as:', msg) # First player move def robot(stick): y = stick % 4
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
return
当然有效;它返回一个值。但是,在代码中,您没有捕获该值,它会立即被丢弃
确实不清楚你想要什么,但也许你想要这样的东西:
msg = player1(int(msg))
您的播放器具有以下功能:
players= {
'1': robot,
'2': human
}
稍后您将它们称为player1
和player2
:
player1=players[number1]
player2=players[number2]
但当您使用这些函数时,不会对返回值执行任何操作:
这些函数返回了一些东西,但是忽略了值。您需要打印该返回值或将其分配给变量,以便以后可以对该值进行处理
由于返回值被称为total
,因此您可能需要:
total = player1(int(msg))
print('new total:', total)
什么不起作用?定义函数不作为减去的值返回“player2(int(msg))”应该做什么?请创建一个最小的示例,而不是粘贴整个代码。在您的情况下,这将是一个函数、一个函数调用和一个显示“返回不起作用”的打印。最有可能的是,当您创建这样一个最小的示例时,您将自己看到解决方案。如果没有,请在这里询问。欢迎来到StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。这是有意义的,我会尝试一下。非常感谢。非常感谢,我现在明白了。对不起,这个问题。我问错了。
total = player1(int(msg))
print('new total:', total)