在if / else范围内写入的变量在外部未定义

时间:2018-03-01 03:29:55

标签: python for-loop conditional

循环浏览CSV文件的内容时,我正在尝试创建开始时间和结束时间;

我知道根据row['form']提交的表单,并且我记录了提交这些表单的时间,我正在尝试创建一个startend时间,以便我以后可以获得完成表格的平均时间。

for row in rows:
    branch = Branch(row['user_id'], row['form'], row['time'])
    if branch.id == row['user_id']:
        if branch.form == 'signup':
            time = {i: {'start': branch.time}}
            print(time)
        elif branch.form == 'submit':
            time = {i: {'end': branch.time}}
            print(time)

        print(time) # line 27

上面的代码段问题是条件语句的print() 里面它的工作正常;我得到了开始时间和结束时间。

但是当我尝试在条件语句的打印时,它不起作用:

Traceback (most recent call last):
  File "index.py", line 27, in <module>
    print(time)
NameError: name 'time' is not defined

现在,如果我在print循环之外time for,那么它会给我最后一个值;我无法获得任何以前的值。

1 个答案:

答案 0 :(得分:1)

如果你想要&#34;时间&#34;变量可重新定义且可在多个范围内访问,您需要使用global关键字。请参阅我的回答here

希望它有所帮助。