Я пытаюсь сделать словарь пользовательского ввода для дополнительного кредита в моем классе, и я не могу понять, как правильно завершить программу - PullRequest
0 голосов
/ 28 октября 2019
my_dict = dict()
more = True
while more:
  bad_input = True

  while bad_input:
    user_input = input("Enter key and value seperated buy commas(,):")
    result = user_input.find(',') 
    print ("Substring ',' found at index:", result )

    if result != -1 and user_input != 'quit':
      bad_input = False
      key , value = user_input.split(",")
      key = key.strip()
      value = value.strip()
      my_dict[key] = value
      print (my_dict)
  if user_input == 'quit':
    print(my_dict)
    break

Это мой код, и он мне нужен, чтобы найти ',' в словаре пользовательского ввода, а также когда вы набираете 'quit', программа должна завершиться. Мой учитель недостаточно образован в Python, чтобы помочь мне, пожалуйста, помогите!

1 Ответ

0 голосов
/ 28 октября 2019

break разрывает только внутренний цикл. Чтобы вырваться из вложенных циклов while, не изменяя слишком много логики, вам нужно изменить проверяемые ими значения.

В этом случае установите для bad_input и more значениеFalse будет достаточно:

if user_input == 'quit':
    print(my_dict)
    more = False
    bad_input = False

С учетом сказанного вам даже не нужны обе петли. Используйте один while, тогда вы сможете использовать break:

my_dict = dict()
while True:
    user_input = input("Enter key and value separated buy commas(,):")
    result = user_input.find(',')
    print("Substring ',' found at index:", result )

    if result != -1 and user_input != 'quit':
        bad_input = False
        key , value = user_input.split(",")
        key = key.strip()
        value = value.strip()
        my_dict[key] = value
        print (my_dict)
    if user_input == 'quit':
        print(my_dict)
        break
...