我做了一个非常简单的函数,它接受一个数字列表并返回一个由一些数字四舍五入的数字列表:
def rounded(lista, digits = 3):
neulist = []
for i in lista:
neulist.append(round(i, digits))
return neulist
但是,我错误地将函数本身放在代码中而不是内置函数中round()
(如下例所示):
def rounded(lista, digits = 3):
neulist = []
for i in lista:
neulist.append(rounded(i, digits))
return neulist
并得到这个输出:
Traceback (most recent call last):
File "<pyshell#286>", line 1, in <module>
rounded(a)
File "<pyshell#284>", line 4, in rounded
neulist.append(rounded(i, digits))
File "<pyshell#284>", line 3, in rounded
for i in lista:
TypeError: 'float' object is not iterable
问题是:解释器如何知道它必须rounded()
在评估函数rounded()
本身时应用函数?rounded()
如果它试图解释那个函数,那么现在它怎么可能是一个浮点函数呢?是否有一种两循环程序来评估和解释函数?或者我在这里有什么问题吗?