我是编程的新手,我正在尝试从一个函数返回一个字典并在另一个函数中使用它,但是我一直得到与标题中所述相同的错误。这是我的代码:
def read_qa(filename = 'data.csv'):
database = {}
f_in = open(filename, 'r')
for line in f_in:
line_list = line.strip().split(',')
question = line_list[0]
answers = line_list[1:]
database[question] = answers
f_in.close()
return database
def take_quiz(database):
name = input("Enter your name: ")
num_questions = eval(input("How many questions?: "))
if num_questions < len(database):
print('The quiz will have', num_questions, 'questions.')
else:
print('The quiz will have', len(database), 'questions.')
print()
read_qa()
take_quiz()
Error:
Traceback (most recent call last):
File "/Users/BA/PycharmProjects/p/b.py", line 22, in <module>
take_quiz()
TypeError: take_quiz() missing 1 required positional argument: 'database'
Process finished with exit code 1
答案 0 :(得分:0)
您正在从read_qa()返回一个值。因此,您必须将此函数分配给可以存储返回值的变量。 同样在take_quiz()的def中,它期望一个在函数声明中被称为“数据库”的参数。所以你需要在调用take_quiz()时传递一个类似的正确参数。 temp = read_qa(),然后, take_quiz(温度)。 您可以使用任何有效的变量名称而不是temp。 我希望这有帮助...