2016-06-14 3 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 list in range(0,How_Many_Members,1): 

Вы используете дубликаты, и это не хорошо, и это то, чего программу плюнуть ошибку. Он использует этот list вместо массива list. И так как list в цикле for является целым объектом, возникает ошибка. Вы в основном пытаетесь использовать индекс в массиве, но он ошибочно воспринимает его как целое из цикла 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].

Смежные вопросы