我无法在这里使用while循环。我想要做的是让程序一旦运行就跳回“请输入你要翻译的单词”并提供输出。
当我在我认为合适的位置使用while true
和continue
时,它会继续打印输出。我翻译的这个词。希望有道理。
下面列出的是我工作的代码。第二个块是我添加while循环并遇到问题的地方。
def silly_alpha():
print("Looks like we're going with the Impossible alphabet.")
word_trans = input('Please enter the word you wish to translate: ')
if word_trans.isalpha():
for letter in word_trans:
print(impossible.get(letter.lower()), end=' ')
else:
print("There's no numbers in words. Try that again.")
这是有问题的代码
def silly_alpha():
print("Looks like we're going with the Impossible alphabet.")
while True:
word_trans = input('Please enter the word you wish to translate: ')
if word_trans.isalpha():
for letter in word_trans:
print(impossible.get(letter.lower()), end=' ')
continue
else:
print("There's no numbers in words. Try that again.")
continue
答案 0 :(得分:1)
要让它重复循环,并接受要翻译的新单词,您只需删除那些continue
语句。我在IDLE中进行了测试,它运行得很好。
def silly_alpha():
print("Looks like we're going with the Impossible alphabet.")
while True:
word_trans = input('Please enter the word you wish to translate: ')
if word_trans.isalpha():
for letter in word_trans:
print(impossible.get(letter.lower()), end=' ')
else:
print("There's no numbers in words. Try that again.")
然而,你现在有一个无限循环。您可能需要考虑允许用户输入将终止循环的命令的某种方式。也许是这样的事情:
def silly_alpha():
print("Looks like we're going with the Impossible alphabet.")
while True:
word_trans = input('Please enter the word you wish to translate, "x" to cancel: ')
if word_trans == 'x':
print('Exiting translation...')
break
elif word_trans.isalpha():
for letter in word_trans:
print(impossible.get(letter.lower()), end=' ')
else:
print("There's no numbers in words. Try that again.")
答案 1 :(得分:1)
continue
适用于最近的循环,并允许跳过此循环中的下一条指令。
所以你的第一个continue
适用于for
,因为它是循环的最后一条指令,它没有效果。
你的第二个continue
适用于while True
,因为它是循环的最后一条指令,它没有效果。
您要找的是break
终止最近的循环。在你的情况下,我想是while True
。
请删除第一个continue
,然后用break
替换第二个。