簡體   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