[英]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.