簡體   English   中英

Python將其余單詞視為語音標記

[英]Python treats the rest of the word as if it were speech marks

我是python的新手,我制作了一個加密文本的程序。 唯一的問題是語音標記和撇號。起初似乎沒什么問題,我做了一個if語句,如果有撇號或語音標記,它將添加一個“`”,然后我的解密程序可以將其轉換回去。

elif word[lettercount] == "'" or word[lettercount] == '"':
      Newletter = ("`")

但是,說我要加密的單詞是“ You're”,它會像這樣出現:

<JT```

如您所見,最后三個字母也被視為撇號。 如果我鍵入“您真了不起!” 它將顯示為:

<]p``` -2-*.!?

所以是的...它只會將其中的單詞變成其余單詞,然后恢復正常。

我試過了:

Plaintext = Input.replace("'", "`")

Plaintext = Input.replace('"', "`")

但同樣的事情發生了。 提前致謝,如果我真的很討厭,抱歉。

這是轉換單詞中每個字母的部分:

        for f in range(wlen):
        torf = True
        while torf == True:
            if word[lettercount] == "'" or word[lettercount] =='"':
                Nlett = "`"
                torf = False
            elif word[lettercount] == CS[ccount]:
                if (ccount + key) >= CSlen:
                    Nlett = (CS[(key-(CSlen-ccount))])
                else:
                    Nlett = CS[(ccount + key)]
                torf = False
                lettercount = lettercount + 1
                ccount = 0
            else:
                ccount = ccount + 1
        eword = eword + Nlett
    etran = (etran + eword + "~")
print(etran)

很抱歉,如果這是非常愚蠢且明顯的:(

在我們確切地看到您在做什么之前,仍然缺少一些代碼,但是似乎wlen是當前單詞的長度,如果是這種情況,我認為問題是您看到時並沒有增加lettercount'" 。其結果是,你的第一個塊if語句將繼續測試True 。對於這個詞的其余部分看起來像你想要的:

if word[lettercount] == "'" or word[lettercount] =='"':
    Nlett = "`"
    torf = False
    lettercount += 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM