我正在编写程序并继续遇到错误:
File "C:/Users//Documents///", line 47, in <module>
print(operations(sorted_list_desc))
NameError: name 'sorted_list_desc' is not defined
即使你看不到我正在使用的文件,我也提供了我的代码。我应该循环这些年,并随机选择每年的运营商。但是,我继续得到上面的错误。任何想法,我继续得到它?
import csv
#List to store different operators
list_operators = ["+","-","*","/"]
#Function to read file of list
def read_file():
#List to store data
sorted_list_desc = []
year = csv_file.readline()
population = csv_file.readline()
return sorted_list_desc
print(read_file())
def operations(sorted_list_desc):
for i in range(len(sorted_list_desc)):
operator = random.choice(list_operator)
return operator
print(operations(sorted_list_desc))
##
答案 0 :(得分:1)
sorted_list_desc
由read_file()
生成。将您的最后一行更改为:
print(operations(read_file()))
该行:
print(read_file())
并没有神奇地创建名为sorted_list_desc
的全局对象。
您需要明确地将其交给operations()
。
或者,你可以写:
sorted_list_desc = read_file()
print(operations(sorted_list_desc))
答案 1 :(得分:1)
您仅在内部sorted_list_desc
分配了read_file()
。因此,您的错误告诉您sorted_list_desc
未分配给您的功能范围之外的任何内容。请参阅Python scoping rules,并注意您甚至不需要将sorted_list_desc
作为参数传递,因为它无论如何都会在您的函数内部分配。
答案 2 :(得分:0)
看起来sorted_list_desc
在read_file()
函数的范围内定义,因此您无法在该函数之外引用它。您可以在'read_file()'中调用print(operations(sorted_list_desc))
,也可以在全局范围内定义sorted_list_desc = []
。