江晓夜 发表于 2020-8-7 11:16:40

python函数问题求解

def a(x):
    list(x)
    y = x.reverse
    if y != 5:
      return sum(x)
    else:
      x.pop()
      return sum(x)

运行结果是:
>>> a()
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
    a()
File "F:/文件/研究生/Python/18.1.py", line 4, in a
    if y != 5:
TypeError: 'builtin_function_or_method' object is not subscriptable

求助

zltzlt 发表于 2020-8-7 11:17:37

reverse 方法没有返回值,而且调用函数要加括号

def a(x):
    x = list(x)
    y = x[:]    # 拷贝列表
    y.reverse()
    if y != 5:
      return sum(x)
    else:
      x.pop()
      return sum(x)

小小小菜菜菜 发表于 2020-8-7 11:19:47

应该是x.reverse()然后再y=x就正确了

小小小菜菜菜 发表于 2020-8-7 11:21:50

你这里y = x.reverse只是把方法命给到y当然会报错

永恒的蓝色梦想 发表于 2020-8-7 11:40:30

def a(x):
    x = list(x)
    y = list(reversed(x))
    if y != 5:
      return sum(x)
    else:
      x.pop()
      return sum(x)

江晓夜 发表于 2020-8-7 13:33:19

zltzlt 发表于 2020-8-7 11:17
reverse 方法没有返回值,而且调用函数要加括号

非常感谢!
页: [1]
查看完整版本: python函数问题求解