#python
#python
Вопрос:
Этот код представляет собой цикл, который проверяет словарные слова. По какой-то причине мой break не работает.
Вот мои слова, которые использует эта программа:
Vocab ={'Adherent' : "a person who follows or upholds a leader, cause, etc.; supporter; follower.",
'Incoherent' : "without logical or meaningful connection; disjointed; rambling",
'Inherent' : "existing in someone or something as a permanent and inseparable element, quality, or attribute" ,
'DiffuseADJ' : "characterized by great length or discursiveness in speech or writing; wordy"}
Вот мой цикл:
while 1:
ques1= raw_input("Would you like a list of the vocabulary words, or would you like to play a game? Type 'words' or 'game': ")
if ques1 == 'words':
ques11= raw_input("Type 'w' for words only, type 'wd' for words and definitions, type 'd' for definitions only: ")
if ques11 == "w":
for key,value in Vocab.iteritems():
print key
elif ques11 == "wd":
for key,value in Vocab.iteritems():
print key,"-", value
elif ques11 == "d":
for key,value in Vocab.iteritems():
print value
elif ques1 == 'game':
game=raw_input("Type 'rw' for random words: ")
if game == 'rw':
while 1:
y = random.choice(Vocab.keys())
print y
t2=raw_input("What is the definition?: ")
if t2 in Vocab[y]:
print 'All those words were in the definition!'
print Vocab[y]
elif t2 not in Vocab[y]:
print Vocab[y]
elif t2 == 'menu': break
raw_input("Hit 'enter': ")
else:
raw_input("Hit 'enter': ")
По какой-то причине разрыв игрового цикла не возвращается к ‘ques1’. Почему этот разрыв не сработает?
Комментарии:
1. Потому что ваш код завернут в
while 1
. даже если онbreaks
включен во внутренний цикл, он все равно будет продолжаться во внешнем while2. @Pilot Я хочу, чтобы он вернулся к исходному вопросу, но он не будет
Ответ №1:
Проблема с вашим кодом заключается в том, что break
оператор никогда не будет достигнут, если t2
не находится внутри Vocab
. Вы можете изменить
elif t2 == 'menu': break
Для
if t2 == 'menu': break