翻译字符串有困难吗

2024-06-26 02:31:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我决定在春假期间开始一个项目,从一个网络喜剧中选取角色,翻译文本,就好像那个角色在说一样。我已经设法让它很好地为一个字符,但有一个小问题。你知道吗

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语句,但是它根本不会发布原始文本。如有任何建议,将不胜感激。你知道吗


Tags: textin文本角色forinputifitems
1条回答
网友
1楼 · 发布于 2024-06-26 02:31:28
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语句未停止循环时才会执行该子句。你知道吗

你之所以看到两次输出是因为你的dict中有两个条目,我认为你只希望在没有替换匹配的情况下打印原文。你知道吗

相关问题 更多 >