2016-06-14 109 views
0

所以基本上我必须告诉用户在电话商店工作的员工是否已经获得了奖金。如果员工售出4部或更多手机,他们将获得奖金。TypeError:'int'对象不可订阅

问题是我不断收到此错误。

if list[member_number]>=4: 
TypeError: 'int' object is not subscriptable 

这是我的代码 -

How_Many_Members= int(input("Enter the number of staff members:")) 

list=[] 
member=1 

while len(list)!= How_Many_Members: 

    print("how many phones did the member", member,"sold?",end=" ") 

    Sales=int(input("")) 
    list.append(Sales) 
    member=member+1 


member_number=0 

for list in range(0,How_Many_Members,1): 
    if list[member_number]>=4: 
     print("member",member_number,"has earned a bonus") 
     member_number=member_number+1 
    else: 
     print("member",member_number,"has not earned a bonus") 
     member_number=member_number+1 

回答

0

你有两个list对象。一个是一个数组,另一个是for语句的一个对象,在这里:

for list in range(0,How_Many_Members,1): 

您使用的重复,这是不好的,是造成你的程序吐了错误的事情。它正在使用list而不是阵列list。并且由于for循环中的list是一个整数对象,所以会引发错误。你基本上试图在数组上使用下标,但是它将它作为for循环中的整数错误,因为它是不明确的。请尝试以下操作:

How_Many_Members = int(input("Enter the number of staff members:")) 

list = [] 
member = 1 

while len(list) != How_Many_Members: 
    print("how many phones did the member", member, "sold?", end=" ") 

    Sales = int(input("")) 
    list.append(Sales) 
    member += 1 

member_number = 0 

for _ in range(0, How_Many_Members, 1): 
    if list[member_number] >= 4: 
     print("member", member_number + 1, "has earned a bonus") 
     member_number += 1 
    else: 
     print("member", member_number + 1, "has not earned a bonus") 
     member_number += 1 

别的东西,你拼错在少数地方member_number,我固定的为您服务。我还简短地发表了一些声明,并让其打印member 1而不是member 0

0

你的问题是在这里:

for list in range(0,How_Many_Members,1): 
    if list[member_number]>=4: 
     print("member",memeber_number,"has earned a bonus") 
     member_number=member_number+1 
    else: 
     print("member",memeber_number,"has not earned a bonus") 
     member_number=member_number+1 

您是说在范围列表(0,How_Many_Members),所以名单正在整数值从0到How_Many_Members-1。所以它不再是一个列表,你不能列出[member_number]。