Python 如何使用在另一个函数中引用的函数中的变量?编辑

Python 如何使用在另一个函数中引用的函数中的变量?编辑,python,python-3.x,function,Python,Python 3.x,Function,很难用一句话来解释,但希望您能通过代码理解。我想将dice_game_round中的total变量的值输入到我的函数dice_game_user1中。人们可能会说让它全球化,但这不起作用,因为它需要我写“def dice_game_user1(total)”,但这对我来说不起作用。我不能写“total=dice\u game\u round()”,因为它会打印“” 这是密码 这是针对Python3.7.3的 随机导入 总数=0 def骰子游戏回合(回合数): roll1=random.randi

很难用一句话来解释,但希望您能通过代码理解。我想将dice_game_round中的total变量的值输入到我的函数dice_game_user1中。人们可能会说让它全球化,但这不起作用,因为它需要我写“def dice_game_user1(total)”,但这对我来说不起作用。我不能写“total=dice\u game\u round()”,因为它会打印“

这是密码

这是针对Python3.7.3的

随机导入
总数=0
def骰子游戏回合(回合数):
roll1=random.randint(1,6)
打印(“第一卷是…”,第1卷)
roll2=random.randint(1,6)
打印(“第二卷是…”,第二卷)
总计=滚动1+滚动2
如果总计%2==0:
总计=总计+10
打印(“偶数加10分!”
其他:
总计=总计-5
打印(“您因获得奇数而损失5分!”)
如果roll1==roll2:
打印(“您收到了额外的一卷”)
输入(“按回车键滚动”)
打印(“滚动…”)
额外滚动=随机。随机数(1,6)
打印(“奖金卷是…”,额外卷)
总计=总计+额外滚动
如果总数<0:
总数=0
打印(“您的分数不能低于0,新分数为0”)
打印(“您的轮数总计”,轮数,“为…”,总计)
输入(“按回车键继续”)
返回总数
def dice_game_user1():
打印(“第一轮!”)
四舍五入
骰子游戏轮(轮数)
总计=掷骰子游戏回合
打印(“第二轮!”)
第二轮
骰子游戏轮(轮数)
总计=总计+总计
打印(“第三轮!”)
四舍五入编号=“三”
骰子游戏轮(轮数)
总计=总计+总计
打印(“第四轮!”)
四舍五入
骰子游戏轮(轮数)
总计=总计+总计
打印(“第五轮!”)
四舍五入编号=“五”
骰子游戏轮(轮数)
总计=总计+总计
打印(*****)
打印(“您的总数为:”,总计)
打印(*****)
骰子游戏用户1()

我希望dice_game_round的total值会转移到dice_game_user1,但它不会,它显示:

您不需要使用该变量。函数返回一个值,因此使用返回的值

def function1():
    total = function2()
    total += function2()
    total += function2()
    print(total)
如果要使用变量,可以编写

    v1 = function2()
    total += v1

您能否重申一下为什么不能使用
total=function2()
?您需要重新阅读有关函数和传递值的教程。你离做到这一点还差一步。。。本教程将帮助您回答尚未回答的问题。这是使变量成为全局变量的最简单方法,但我认为这不是最好的方法:
global viariable1
def function2()
中分配变量之前,您无法访问变量1,因为它存在于函数2中,原因有几个。函数2返回后,无法保证variable1仍然存在于内存中,因为堆栈空间已释放,可以自由覆盖。第二,函数的部分目的是抽象;任何给定的函数都应该能够在不了解其工作原理的情况下使用。引用内部变量违反了这个抽象原则。