Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何避免在Python中定义变量_Python_Python 3.x_Function - Fatal编程技术网

如何避免在Python中定义变量

如何避免在Python中定义变量,python,python-3.x,function,Python,Python 3.x,Function,我的外部范围中有一些值无法在compvals函数内部访问。我如何访问这些 def compvals(comp_点击数、值): comp_hits=值 comptest(comp_点击数、值) 返回 我花了一段时间试图把这些拼凑起来。我在您的代码中找不到任何附加到comp_hits的地方,也许您可以转到您认为类似comp_hits.append()的地方,并验证它是否存在。这可能是正在打印而不是保存。我认为你应该试着用这个作为草稿重写这段代码。这次试着做这些事情: 1) 尝试构造代码,使函数返回一

我的外部范围中有一些值无法在compvals函数内部访问。我如何访问这些

def compvals(comp_点击数、值):
comp_hits=值
comptest(comp_点击数、值)
返回

我花了一段时间试图把这些拼凑起来。我在您的代码中找不到任何附加到comp_hits的地方,也许您可以转到您认为类似comp_hits.append()的地方,并验证它是否存在。这可能是正在打印而不是保存。我认为你应该试着用这个作为草稿重写这段代码。这次试着做这些事情:

1) 尝试构造代码,使函数返回一些内容。您不必返回某些内容,但以这种方式构造代码将使调试更容易

2) 尽量避免使用带有长串ifs、ELIF和if中断的函数。您应该能够找到逻辑上等价但更简单的东西。看起来是这样 可以工作,但如果逻辑不工作,则很难调试

3) 不要调用在其内部定义的函数。在compshot()的例子中,如果随机生成的数字生成了以前使用过的位置,我认为您试图让它从顶部重新启动。您可以通过使用while循环(未测试)来绕过这种情况

4) 尝试将函数分解为更小的函数

5) 在助手函数中尝试使用层次结构。例如,test()和pick()不应该调用其他函数,反之亦然

6) 将电路板保存到字典或数据框中,并以这种方式进行操作。看起来您可能每次都在重新计算电路板。我可能错了。一般来说,避免这种情况是很好的,因为如果在更新板时出现问题,您知道应该在哪里查找


这一次,当您编写每个函数时,您可以通过几个测试用例来查看它是否按预期工作。希望下次你能加上“X”。很抱歉,我无法提供更多帮助。

请将您的代码缩减为a-我们不需要完整的代码-只是足以看到您的问题。您可以硬编码/消除f.e.名称输入和验证-除非您怀疑您的问题与代码的该部分有关?你的代码做了一些古怪的事情——f,e
values=computer\u values
comp\u hits=values
看起来好像你在试图复制列表-这不起作用-问题是,我找不到问题出在哪里,所以我只是复制了整个代码。我认为你减少了太多的代码示例。当前示例未形成,未定义
comptest
。我已自行修复此问题。我只需要在
compvals()中声明comp\u hits
global comp\u hits
while gen == True:
    row = random.randint(1,5)
    column = chr(random.randint(65,69))
    pos = column+str(row)
    column = ord(column)-65
    if pos not in already:
        gen = False