Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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 3.x 在Python3.8中混淆UnboundLocalError_Python 3.x_Global Variables_Local Variables - Fatal编程技术网

Python 3.x 在Python3.8中混淆UnboundLocalError

Python 3.x 在Python3.8中混淆UnboundLocalError,python-3.x,global-variables,local-variables,Python 3.x,Global Variables,Local Variables,我刚刚开始学习如何编码,所以我希望我问的是正确的。为了练习,我想创建一个程序,它将打印出类,因为表单实际上没有改变。它将接受输入,修改它们,然后将它们按正确的顺序排列 我在从列表中提取单词、删除空格、添加下划线和修改值时遇到问题。在下面代码上面的函数中,我获取输入并将它们放入一个名为required的全局列表中。我把global required放在def modify():下面,但这并没有改变任何事情。注释掉的行是那些一直标记错误“UnboundLocalError:赋值前引用的局部变量“i”

我刚刚开始学习如何编码,所以我希望我问的是正确的。为了练习,我想创建一个程序,它将打印出类,因为表单实际上没有改变。它将接受输入,修改它们,然后将它们按正确的顺序排列

我在从列表中提取单词、删除空格、添加下划线和修改值时遇到问题。在下面代码上面的函数中,我获取输入并将它们放入一个名为required的全局列表中。我把
global required
放在
def modify():
下面,但这并没有改变任何事情。注释掉的行是那些一直标记错误“UnboundLocalError:赋值前引用的局部变量“i”的行。我想替换原来的单词并添加一个修改过的单词。我试过移动压痕,但没有成功

它对我来说没有意义,因为在代码的前面,它打印“i”没有问题,在代码的后面,它做我要找的事情也没有问题。为什么它在工作正常的部分与“i”之间有问题

作为参考,我使用了“名字”、“姓氏”、“城市”、“公司名称”、“城镇”等值。它正确地打印带有空格的字符串的结果,修改单个单词字符串并将其正确地放入列表中

def modify():
    
    for i in range(0,len(required)+1):
        print()
        print(i)
        print()
        if chr(32) in str(required[i]):
            
            no_space = ""
            underscore = ""
            
            for l in str(required[i]):
            
                if ord(l) !=32:
                    
                    no_space += l
                    underscore += l
                
                elif ord(l) == 32:
                    
                    del i
                    underscore += "_"
                    
            
            print()
            print(no_space)
            print(underscore)
            # required.index[c] = no_space
            # required.append(underscore)
        
            # required.insert(i+1,underscore)
            # required[i] = no_space  
                      
                            
        elif chr(32) not in str(required[i]):
            
            if chr(95) in str(required[i]):
                continue
            
            elif chr(95) not in str(required[i]):
            
                additional = "the_" + str(required[i])
            
                required.insert(i+1,additional)
            
    print()
    for t in range(len(required)):
        print(str(t+1)+". "+required[t])

谢谢大家!!我希望这不会太令人困惑

我认为错误是由这一行引起的:

del i

您正在删除在该特定时刻分配给i的值,这就是为什么一开始您可以打印它,但之后它会抛出异常。

哦,天哪。这就是问题所在。非常感谢。我删除了错误的变量。我现在已将其更改为“L”,因此它正确地删除了空格。