如何在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中为一个字节以上)吗?减去一后不应该得到与以前相同的结果吗?

我有一个字符串This is some sample text!。运行代码时,字符串将转换为Ukkz%kz%zqoh%zboqmh%zhzz%

然后,它应该将其解密,但显示为Tees es sole salole sess

python str-replace
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.