def square(x):
int(x)
return 2(x * x)
def my_map(func, arg_list):
result = []
for i in arg_list:
result.append(func(i))
return result
squares = my_map(square, [1,2,3,4,5])
print(squares)
我正在尝试将数字传递给函数,并使其打印结果,我有一个方程def square()
的函数,以及一个接收数字和函数的函数
我不断收到此错误:
“ TypeError:'int'对象不可调用”
我是编程的新手,正在YouTube上看核心的shaffer,他编写了与此类似的程序。我开始尝试它,现在被卡住了。
我希望print语句打印出arg_list(i)
并让我经历def square(x)
并将答案存储在结果中
答案 0 :(得分:3)
这是您的square
函数的修复程序(您缺少*
运算符)
def square(x):
int(x)
return 2*(x * x)
但是,根据您的函数名称,我猜测您希望该函数返回x的平方:
2 --> 4
3 --> 9
4 --> 16
在这种情况下,这也是一个错误修复程序:
def square(x):
return x**2
答案 1 :(得分:2)
第2(x * x)
行导致python将整数2视为具有参数x*x
的函数,因此错误"TypeError: 'int' object is not callable"
In [16]: x = 1
In [17]: 2(x*x)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-14e610e542ba> in <module>
----> 1 2(x*x)
TypeError: 'int' object is not callable
要平方一个数字,您需要使用x**2
,或者使用内置的pow pow(x, 2)
def square(x):
int(x)
return x**2
答案 2 :(得分:0)
问题出在2(x * x)
语句上。在Python编程语言中,我们需要在表达式中明确提及所有运算符。例如,该语句应为2*(x*x)
,并且在使用圆括号时,实际上是在调用函数。
此外,上述程序可以简化为
In [54]: list(map(lambda no: int(no)**2, [1, 2, 3, 4, 5]))
Out[54]: [1, 4, 9, 16, 25]