为什么会出现NameError:此列表变量中未定义名称[variable]?

时间:2018-07-15 07:35:00

标签: python

每当我尝试运行代码时,都会出现此错误。我认为列表的summary_namesummary列表均无效。

错误:

  File "C:/Users/Asus/Google Drive/Sun Gleam & Fine Works/System Improvement/Accounting/Voucher Reports/Voucher Reports", line 12, in <module>
    summary_name[i] = data_listofaccounts['Account Name']
NameError: name 'summary_name' is not defined

代码:

import pandas as pd
import matplotlib.pyplot as plt

entries_csv = "C:\\Users\\Asus\\Desktop\\Entries.csv"
listofaccounts_csv = "C:\\Users\\Asus\\Desktop\\List of Accounts.csv"

data_entries = pd.read_csv(entries_csv)
data_listofaccounts = pd.read_csv(listofaccounts_csv)

i = 0
for account_name in data_listofaccounts['Account Name']:
    summary_name[i] = data_listofaccounts['Account Name']
    for debit_account in data_entries['DEBIT ACCOUNT']:
        if account_name == debit_account:
            summary[i] += data_entries['DEBIT AMOUNT']
    i += 1

for p in range(i):
    print(summary[p])
    print(summary_name[p])

1 个答案:

答案 0 :(得分:1)

summary_name[i]

假定已经存在名称为summary_name的东西,并且允许使用[i]进行访问。由于Python是一种动态语言,因此可以是任何东西。在对象上使用[i]所需要做的就是实现object.__getitem__用于读取,object.__setitem__用于写入。 Python应该如何知道要让summary_name成为实例的众多类中的哪一个?

因此,您首先必须定义summary_name,例如,将其定义为空列表

summary_name = ["I", "am", "a", "list"]

元组

summary_name = ("I", "am", "a", "tuple")

或字符串

summary_name = "I am a string."

所有这些都允许使用summary_name[i]进行 read 访问。

由于要使用 write 访问权限,因此必须定义一个允许summary_name[i] = something的对象。可以使用

创建一个包含100个条目的列表,所有条目都初始化为None
summary_name = [None] * 100

只有在此之后,您才能设置此列表的条目。