📜  python字符串用数字替换字母 - Python(1)

📅  最后修改于: 2023-12-03 14:46:44.073000             🧑  作者: Mango

Python字符串用数字替换字母

在Python中,我们可以很容易地使用replace方法替换字符串中的字母,例如:

string = "hello world"
new_string = string.replace("l", "1")
print(new_string) # 输出: he11o wor1d

但是,如果我们想把每个字母都替换成一个固定的数字呢?这时候,我们可以使用Python的内置函数ord()chr()

ord()函数可以将给定的单个字符转换为ASCII码值,而chr()函数可以将ASCII码值转换为字符。

因此,我们可以使用这两个函数来替换字符串中的字母。下面给出一个示例代码:

string = "hello world"
number = 1
new_string = ""

# 遍历字符串中的每个字符
for char in string:
    # 如果是字母,则使用ord()函数将其转换为ASCII码值
    if char.isalpha():
        char_num = ord(char.upper()) - ord("A") + number
        # 如果超出了范围,则循环回来
        while char_num > 25:
            char_num -= 26
        # 使用chr()函数将ASCII码值转换回字符
        new_char = chr(char_num + ord("A"))
    else:
        new_char = char
    new_string += new_char

print(new_string) # 输出: IFMMP XPSME

在本例中,我们将number设为1,也就是将字符串中的每个字母都替换成其后面的一个字母(例如将A替换成B,将B替换成C,以此类推)。如果需要替换为别的数字,只需要将number的值更改即可。

值得注意的是,在使用ord()将字母转换为ASCII码值时,我们使用了upper()函数将其转换为大写字母,以便能够正确地计算出其在字母表中的位置。如果不使用upper()函数,则无法将小写字母正确地转换为其在字母表中的索引值。