我有以下任务。
“创建5个名为factorN的变量,其中N是1到5的数字,并将它们分别设置为1到5。”
具体来说,分配看起来像这样。
def exercise()
#Create 5 variables named factorN where N is the numbers 1 to 5,
#and set them 1 through 5 respectively.
# ------ Place code below here \/ \/ \/ ------
# ------ Place code above here /\ /\ /\ ------
return factor1, factor2, factor3, factor4, factor5
当我在函数之外运行以下代码时,它可以正常工作。
for n in range(1,6):
name = "factor" + str(n)
vars()[name] = n
print(factor1) #prints 1
print(factor2) #prints 2
但是当我尝试将这段代码放入函数中时,并且如果我还没有先运行上面的函数……
def exercise():
for n in range(1,6):
name = "factor" + str(n)
vars()[name] = n
return factor1, factor2, factor3, factor4, factor5
exercise()
然后出现以下错误:
“ NameError:名称'factor1'未定义。”
有人知道在函数内部工作的vars()[]的替代方法吗?我不希望变量factor1存在于函数之外。
我已经提交了此作业,但是最初我使用globals()而不是vars()。这通过了exercise()的单元测试,返回数字1-5,但是由于将factor1创建为全局变量,因此被标记为错误。我现在了解了在函数内部创建全局变量的风险,但是我不知道如何将factor1作为变量仅存在于函数内部。