Python 错误,列表对象不可调用

Python 错误,列表对象不可调用,python,python-3.5,pythonanywhere,Python,Python 3.5,Pythonanywhere,这是我的密码: 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 = in

这是我的密码:

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
firstname=[“马克”、“罗汉”、“马特”、“安东尼”、“泰迪”、“凯尔”、“鲍勃”]
lastname=[“Wightman”、“红色”、“银色”、“蓝色”、“绿色”、“橙色”、“紫色”]
年龄=[“15”、“5”、“16”、“21岁”、“17.6”、“19”、“18”、“917”]
input_firstname=input('名字是什么?:')
input\u lastname=input('你的姓呢?:')
输入\年龄=输入('你的年龄是多少?:')
firstname.append(输入\u firstname)
追加(输入\u lastname)
age.append(输入\年龄)
索引=0
有效=真
对于原始年龄:
如果长度(原件)<2:
有效=错误
elif original.isdigit()=假:
有效=错误
elif(len(原件)>2)和原件[2]。isdigit():
有效=错误
elif len(原件)>2且原件[2]=”:
neworiginal=原始[0:2]
原件=新原件
elif valid==True:
打印(“%s,%s,%s”)%(名字(原件)、姓氏(原件)、年龄(原件))
索引=索引+1
此程序应先打印“名字”列,然后打印“姓氏”列,然后打印“年龄”列,例如: 马克,威特曼,15岁 罗汉,红色,5号


等等。但是,当代码运行时,在“print(“%s,%s,%s”)%行(firstname(原始)、lastname(原始)、age(原始)”上出现一个错误,表示“列表”对象不可调用。此项目的目标是使用列表、for循环和条件清除年龄数据,并将其打印到3列中。

如果要获取列表元素,请使用方括号而不是四舍五入


我的意思是firstname[原件]而不是firstname(原件)

如其他答案所述,您需要使用括号
[]
,但您还需要将
原件
转换为
整数
所以
firstname[整数(原件)]
等等:

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


您希望
firstname(original)
做什么?索引到您的列表中?如果是这样,索引符号的语法是
firstname[Index]
,其中
Index
是一个整数。谢谢,这稍微改变了一点,仍然有一个错误。我希望它为我的列表编制索引。它现在抛出的错误是“列表索引必须是整数或切片,而不是str”这会产生错误“列表索引必须是整数或切片,而不是str”将其转换为整数int(原始)这是因为您试图访问列表
firstname
,例如,索引为
15
,但它不存在。您试图通过firstname[原始]实现什么无论如何?我正在尝试将所有的名字打印在一列中。那你为什么要验证年龄列表中的年龄?你可以循环遍历任何列表的长度并打印项目?我将尝试下一节课,非常感谢你的帮助。
for i in range(len(firstname)):
    print ("%s, %s, %s") % (firstname[i], lastname[i], age[i])