我试图循环一个函数并使用在程序主作用域中定义的变量,但由于某些原因,它没有传递到我的函数中。这是我第一次在Python中使用函数和变量作用域,我仔细阅读了Python文档以及这里的一些文章,但似乎无法找出我做错了什么。你知道吗
这个函数将是递归的,因此我不能在函数的头部定义它们,否则每次都会重新定义。我试着在我的文件中执行thispost中所做的操作,但似乎不起作用。你知道吗
我在一个文件中有main+函数,并在要使用它们的函数中定义了希望用作全局变量的变量。你知道吗
lv1Count = 12
lv2Count = 14
lv3Count = 18
lv4Count = 4
AL = []
def opt(target):
global lv4Count
global lv3Count
global lv2Count
global lv1Count
global AL
goal = target
if (goal <= 0 & lv4Count < 0):
pass
if (goal <= 1 & lv1Count < 0):
pass
if (goal == 2 & lv2Count < 0):
pass
if (goal == 3 & lv3Count < 0):
pass
if (goal == 4 & lv4Count < 0):
pass
opt(4)
我用pass替换了所有if语句以避免过多的代码,但是基本上每当从这些语句返回一些东西时,使用计数器的比较就不起作用,因为它没有成功地读取这个变量的值,并且功能也没有出现。你知道吗
您的函数工作正常:这确实是您使用全局变量的方式,尽管这通常是个坏主意。(在递归中,最常见的方法是将必要的值作为参数传递给函数。)如果您提供了有关要执行哪种递归的详细信息,我可以提供帮助。你知道吗
问题在于您的
if
语句:您使用的是按位的&
,而不是普通的逻辑运算符and
。因为&
是按操作顺序首先计算的,所以您会遇到问题。考虑:为什么?因为这被评估为:
与以下内容相同:
相关问题 更多 >
编程相关推荐