繁体   English   中英

转换字符串时遇到麻烦

[英]Having trouble translating strings

我决定在春假期间开始一个项目,从网络漫画中获取字符并翻译文本,就好像该字符在说。 我设法使它适合一个角色,但是有一个小问题。

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

它会发布

起司

CH33SE

我可以完全删除else语句,但是它根本不会发布原始文本。 任何建议,将不胜感激。

for i, j in replace.items():
    if i in originalText:
        newText = originalText.replace(i,j)
        print(newText.upper())
        break
else:
    print(originalText.upper())

break语句意味着循环将在第一次替换后停止。 Python允许在for循环上使用else子句,该子句只有在break语句未停止循环时才执行。

您两次看到输出的原因是因为您的字典中有两个项目。 我认为您希望仅在所有替换都不匹配时才打印原始文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM