【问题标题】:Error, list object not callable错误,列表对象不可调用
【发布时间】:2017-11-15 15:24:48
【问题描述】:

这是我的代码:

firstname = ["Mark", "Rohan", "Matt" , "Anthony" , "Teddy" , "Kyle" , "Bob"]
lastname = ["Wightman", "Red", "Silver" , "Blue" , "Green" , "Orange" , "Purple"]
age = ["15",'5', '16', '21years', '17.6', '19', '-18', '917']

input_firstname = input('What is first name?: ')
input_lastname = input('What about your last name?: ')
input_age = input('What is your age?: ')

firstname.append(input_firstname)
lastname.append(input_lastname)
age.append(input_age)

index = 0
valid = True
for original in age:
    if len(original) < 2:
        valid = False
    elif original.isdigit() == False:
        valid = False
    elif (len(original) > 2) and original[2].isdigit():
        valid = False
    elif len(original) > 2 and original[2] == ".":
        neworiginal = original[0:2]
        original = neworiginal
    elif valid == True:
        print ("%s, %s, %s") %(firstname(original), lastname(original), age(original))
    index = index +1

这个程序应该打印名字列,然后是姓氏列,然后是年龄列,例如: 马克·怀特曼,15 岁 罗汉,红,5

等等。但是,当代码运行时,有一个错误说在“打印(”%s,%s,%s“)%(名字(原始),姓氏(原始),年龄(原始)”行“列表" 对象不可调用。这个项目的目标是使用列表、for 循环和条件来清理年龄数据并将其打印到 3 列中。

【问题讨论】:

  • 您希望firstname(original) 做什么?索引到您的列表中?如果是这样,索引符号的语法为 firstname[index],其中 index 是一个整数。
  • 谢谢,改了一点,还是有错误。我期待它索引我的列表。它现在抛出的错误是“列表索引必须是整数或切片,而不是 str”

标签: python python-3.5 pythonanywhere


【解决方案1】:

当你想要获取列表元素时,使用方括号而不是圆形

我的意思是名字[原始]而不是名字(原始)

【讨论】:

  • 这给出了错误“列表索引必须是整数或切片,而不是 str”
  • 将其转换为整数 int(original)
【解决方案2】:

正如其他答案所述,您需要使用括号[],但您还需要将original 转换为integer 所以firstname[int(original)] 等等:

print ("%s, %s, %s") % (firstname[int(original)], lastname[int(original)], age[int(original)])

编辑:

for i in range(len(firstname)):
    print ("%s, %s, %s") % (firstname[i], lastname[i], age[i])

【讨论】:

  • 这是因为您尝试访问列表 firstname,例如索引为 15 的列表不存在。无论如何,您想通过 firstname[original] 达到什么目的?
  • 我正在尝试将所有名字打印在一个列中。
  • 那你为什么要验证年龄列表中的年龄?您可以遍历任何列表的长度并打印项目吗?
  • 我会尝试下一节课,非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-06
  • 2021-02-16
  • 2016-09-02
  • 2017-02-19
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多