我决定在春假期间开始一个项目,从一个网络喜剧中选取角色,翻译文本,就好像那个角色在说一样。我已经设法让它很好地为一个字符,但有一个小问题。你知道吗
def meulin():
replace = {'EE':'33', 'ee':'33'}
originalText = input('Input text -> ')
while True:
for i, j in replace.items():
if i in originalText:
newText = originalText.replace(i,j)
print(newText.upper())
else:
print(originalText.upper())
originalText = input('Input text (type "quit" to end program.) -> ')
if originalText in ('quit', 'end', 'exit', 'stop', 'q'):
sys.exit('Program ended.')
当我运行PyScripter的调试器时,它告诉我在获得输入后,程序从for i, j in replace.items():
行开始,完全跳过if语句,转到else语句,然后转到if语句。所以与其只是发帖
CH33SE
会贴出来的
CHEESE
CH33SE
我可以完全删除else语句,但是它根本不会发布原始文本。如有任何建议,将不胜感激。你知道吗
break
语句意味着循环将在第一次替换之后停止。Python允许在for
循环上使用else
子句,只有在break
语句未停止循环时才会执行该子句。你知道吗你之所以看到两次输出是因为你的dict中有两个条目,我认为你只希望在没有替换匹配的情况下打印原文。你知道吗
相关问题 更多 >
编程相关推荐