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])