Python Forum

Full Version: General programming question (input string)[
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
#!/usr/bin/python3

list_item_two = ['apples', 'oranges', 'pears', 'apricots']

list_item_two.append("celery")

print("ADD (1) or REMOVE (2) elements\n")

user_input = input("> ")

if user_input == "1":
    print("Add Element to List")
    special_val = "add"
elif user_input == "2":
    print("Remove Element to List")
    special_val = "remove"

i = 1

while i < 4: # Output list
    for fruit in list_item_two:
      print(f"{i} fruit of type: {fruit}")
      i += 1

print("\nLength of elements: ", len(list_item_two))

input_val = input(f"What element to {special_val}? ") # if add or remove

# insert element
i = 1
while i < 2:
    if special_val == "add":
      list_item_two.insert(0, input_val)

    elif special_val == "remove":
      list_item_two.remove(input_val) # this works
      i += 1

print("Now the list is: ", list_item_two)
please, this line right here,

      list_item_two.insert(0, input_val)
Is there a better way to write so the code runs successfully, currently under Debian Linux the program is hanging after typing '1' (ADD'ing an element) after program execution. Thanks!
Your insertion while loop (line 31) has no exit unless i >= 2.

But the "add" section does not modify i. So if you enter the loop with special_val == "add", there is no way to terminate.

I don't understand why there is a while loop there at all. Is there a case where you would expect to run the insertion or removal more than one time? Why not just get rid of the while?
@bowlofred is correct. Remove the loop and you code performs as expected.
#!/usr/bin/python3
 
list_item_two = ['apples', 'oranges', 'pears', 'apricots']
 
list_item_two.append("celery")
 
print("ADD (1) or REMOVE (2) elements\n")
 
user_input = input("> ")
 
if user_input == "1":
    print("Add Element to List")
    special_val = "add"
elif user_input == "2":
    print("Remove Element to List")
    special_val = "remove"
 
i = 1
 
Output:
ADD (1) or REMOVE (2) elements > 1 Add Element to List 1 fruit of type: apples 2 fruit of type: oranges 3 fruit of type: pears 4 fruit of type: apricots 5 fruit of type: celery Length of elements: 5 What element to add? grapes Now the list is: ['grapes', 'apples', 'oranges', 'pears', 'apricots', 'celery']