Почему я не могу вырваться из цикла while? - PullRequest
0 голосов
/ 10 декабря 2018

Я пытался создать словарь стран и их капитала, основанный на пользовательском вводе, но я не могу вырваться из цикла, хотя я сделал случай, когда он должен закончиться, где пользователь входит "Q"," Q "как пара

capital_dict = {}

country,capital = input("Enter Country, Enter Capital").split(',')

while ('country','capital') != ('Q','Q'):
    capital_dict['country']=capital
    country,capital = input("Enter Country, Enter Capital").split(',')
else:
    print(capital_dict)

Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Проблема в том, что вы используете строки вместо имен переменных для сравнения.

Также обратите внимание, что вы можете избежать повторения логики с помощью предложения while True:

capital_dict = {}

while True:
    country, capital = input("Enter Country, Enter Capital").split(',')
    if (country, capital) == ('Q', 'Q'):
        break
    capital_dict['country'] = capital

print(capital_dict)
0 голосов
/ 10 декабря 2018

Посмотрите на эту строку:

while ('country','capital') != ('Q','Q'):

Эта строка никогда не будет True, потому что строки не меняются, посмотрите на первый кортеж, это кортеж строк, который должен быть кортежемпеременных, так что если вы замените эту строку на:

while (country,capital) != ('Q','Q'):

Это будет работать как ожидалось.

...