2016-10-28 2 views
-1

Я делаю программу, которая создает список покупок для пользователя. Он должен неоднократно запрашивать у пользователя элементы до тех пор, пока они не войдут в «конец», а затем распечатать список. Если пользователь уже добавил элемент, его следует игнорировать в следующий раз. У меня возникла проблема с последней частью, где она должна игнорировать дубликат. Мне также требуется использовать «продолжить», но не знаю, как реализовать мой код.тот же ввод дважды не вводится дважды

shoppingListVar = [] 
while True: 
    item = input("Enter your Item to the List: ") 
    shoppingListVar.append(item) 
    if item in item: 
     print("you already got this item in the list") 
    if item == "end": 
     break 
print ("The following elements are in your shopping list:") 
print (shoppingListVar) 
+0

Вы близко ... вам нужно проверить, если элемент находится в списке * before * добавить его, а затем добавить 'continue' в это' if' заявление ... –

+0

hmm Я все еще не могу получить это правильно, 'если элемент в элементе:' хорошо написанный код? – user3077730

+0

Я думаю, что вы имели в виду 'if item в shoppingListVar' вместо' if item in item' –

ответ

0

в Он должен быть if item in shoppingListVar:.

shoppingListVar = [] 
while True: 
    item = input("Enter your Item to the List: ") 
    if item == "end": 
     break 

    if item in shoppingListVar: 
     print("you already got this item in the list") 
     continue 

    shoppingListVar.append(item) 

print ("The following elements are in your shopping list:") 
print (shoppingListVar) 

проверяет этот код для значения дозорного («конец») первое перед добавлением нового элемента в список, если он уже не присутствует в нем.

Если заказ списка покупок не имеет значения, или вы собираетесь его сортировать в любом случае, вы можете использовать set вместо list. Это будет заботиться о дубликатах и ​​вам не нужно, чтобы проверить их, просто использовать shopping_list.add(item) (и инициализируется с shopping_list = set())

shopping_list = set() 
while True: 
    item = input("Enter your Item to the List: ") 
    if item == "end": 
     break 
    shopping_list.add(item) 

print("The following elements are in your shopping list:") 
print(shopping_list) 
+0

Мне пришлось использовать список для этой тренировки, но я постоянно помню, спасибо – user3077730

+0

@ user3077730: достаточно справедливо. – mhawke

+0

@ user3077730: если использование 'continue' является требованием, вы можете добавить это, когда вы обнаруживаете дублируемую запись. См. Обновленный ответ. – mhawke

0

Вы бы лучше с помощью Условный Элиф-другой структуры в своем коде, чтобы иметь дело с 3-х различных ожидаемых условиях

Также нужно изменить if item in item: к if item in shoppingListVar:

shoppingListVar = [] 
while True: 
    item = input("Enter your Item to the List: ") 
    if item in shoppingListVar: 
     print("you already got this item in the list") 
    elif item == "end": 
     break 
    else: 
     shoppingListVar.append(item) 
print ("The following elements are in your shopping list:") 
print (shoppingListVar) 
+0

ohh я вижу, я пытался 'if item в shoppingListVar:', но я хочу иметь структуру if-elif-else, так что, возможно, именно поэтому он didnt Работа. Есть ли шанс бросить заявление 'continue'? я не знаю, как это работает – user3077730

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