替换python中的字符串字符[不起作用]

问题描述 投票:0回答:2

我会很简短,因为这应该很容易解决,但我只是迷路了。

for i  in range(len(contents)):
    contents = contents.replace(contents[i],chr(ord(contents[i]) + 1)) 
print(contents)
for i in range(len(contents)):
    contents = contents.replace(contents[i],chr(ord(contents[i]) - 1))
print(contents)

这是让我感到困惑的地方,难道不应该在字符上再加上1个int并给您一个字符(在UNICODE中为一个字节)吗?减去一个字符后是否应该返回相同的结果和以前一样?

我有一句话:这是一些示例文字!

当我运行代码时,它将转换为:Ukkz%kz%zqoh%zboqmh%zhzz%

然后它应该解密回来,但它像这样出来:Tees es唯一的salole sess

有什么想法吗?谢谢大家!

python-3.x
2个回答
0
投票
感谢@Jon Clements,我找到了解决方法:

我将字符串转换为数组,然后循环通过数组,使字符序数加1。

s = list(contents) def encrypt(s): for i in range(len(s)): s[i] = chr(ord(s[i]) + 1) ret = ''.join(s) return ret


0
投票
contents = "This is some sample text!" print(f"Original value of contents: {contents}") for i in range(len(contents)): contents = contents[:i]+contents[i:].replace(contents[i],chr(ord(contents[i]) + 1),1) print(f"Modified value of contents: {contents}") for i in range(len(contents)): contents = contents[:i]+contents[i:].replace(contents[i],chr(ord(contents[i]) - 1),1) print(f"Reversed value of contents: {contents}")
© www.soinside.com 2019 - 2024. All rights reserved.