3 回答

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果我沒(méi)聽錯(cuò),你想用 m 替換 q,用 n 替換 w 等等。嘗試以下
import os, sys, random
dig = 0
text_encoded = ""
text = ""
try:
if os.path.isfile(sys.argv[1]) == True:
with open(sys.argv[1], "r") as text:
text = text.readlines()
except:
pass
if text == "":
print("Write the text to encode")
text = input()
mychars=list("qwertyuiopasdfghjklzxcvbnm ")
myencode=list("mnbvcxzlkjhgfdsapoiuytrewq@")
charmap=zip(mychars,myencode)
_map = dict(charmap)
encoded_text = ''.join(_map.get(c) for c in text)
print("Your encoded text is:\n"+encoded_text)
您問(wèn)題中的字符串提到您想用@替換''。如果您不想這樣做,只需從上述兩個(gè)字符串中刪除最后一個(gè)字符。

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
或者你可以使用str.translate
import os, sys, random
from pathlib import Path
TEXT_MAP = ("qwertyuiopasdfghjklzxcvbnm ", "mnbvcxzlkjhgfdsapoiuytrewq@")
def main():
text = ''
if len(sys.argv) > 1:
fname = sys.argv[1]
p = Path(fname)
if p.is_file():
text = p.read_text().strip()
print(f'Text from {p} is: {text}')
if not text:
text = input("Write the text to encode: ").strip()
trantab = str.maketrans(*TEXT_MAP)
text_encoded = text.translate(trantab)
print("Your encoded text is:\n"+text_encoded)
if __name__ == '__main__':
main()

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
有兩個(gè)列表而不是字符串,例如 from_ = "abc".split() 和 to_ = "def".split() 在 from_ 中查找您的字符并獲取索引,從 to_ 獲取相同的索引字符并將其拼接到一個(gè)新的句子。
example:
from_ = "abc".split()
to_ = "def".split()
old_msg = "ab ab"
new_msg = ""
for each in old_msg.split():
new_msg = new_msg + to_[from_.index(each)]
希望這會(huì)有所幫助,請(qǐng)?zhí)砑尤鄙俚淖址幚砗腿魏纹渌吘壡闆r
添加回答
舉報(bào)