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

问题描述 投票:1回答:1

循环遍历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那么它给了我最后一个值;我无法获得任何以前的值。

python for-loop conditional
1个回答
1
投票

如果您希望“time”变量可以在多个范围内重新定义和访问,则需要使用global关键字。看我的答案here

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.