如何替换 Python 中的字符串字符?
How to replace string character in Python?
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
。
感谢@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
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}")
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
。
感谢@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
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}")