如何在 Python 中的字符串中每第 n 个字母插入数字?
How to insert number every nth letter in a string in Python?
我正在编写一个程序来加密字符串输入。我有一个随机数生成器,以及一些将随机数转换为字母的代码。我将如何在每次说第三封信之后插入这封信? IE。之前的字符串:abcdef,之后的字符串:abcldefk.
随机数生成器的代码(如果有帮助的话):
Letter = random.randrange(1,26)
print chr(Letter + ord('A'))
您可以使用 str.join
、enumerate
,起始索引等于 1 并取模:
print("".join([x if i % 3 else x + random_letter for i, x in enumerate(s,1)]))
如果只想插入一个随机字母,可以使用string.ascii_letters
和random.choice
:
from random import choice
from string import ascii_letters
s = "abcdef"
print("".join([x if i % 3 else x + choice(ascii_letters) for i, x in enumerate(s,1)])
abcQdefN
我从 Padraic 的回答中得到启发,想补充一点。
import random
Letter = random.randrange(1,26)
def encrypt_string(string, n):
return ("".join([x if i % n else chr(Letter + ord('A')) for i, x in enumerate(string)]))
这是一个字符串 "encryption"(松散地使用它)方法,用于每个 'nth' 字母。
结果(答案可能因随机而异):
print(encrypt_string("0123456789", 2)) # Every other letter
M1M3M5M7M9
print(encrypt_string("0123456789", 3)) # Every third letter
D12D45D78D
希望对您有所帮助。
我正在编写一个程序来加密字符串输入。我有一个随机数生成器,以及一些将随机数转换为字母的代码。我将如何在每次说第三封信之后插入这封信? IE。之前的字符串:abcdef,之后的字符串:abcldefk.
随机数生成器的代码(如果有帮助的话):
Letter = random.randrange(1,26)
print chr(Letter + ord('A'))
您可以使用 str.join
、enumerate
,起始索引等于 1 并取模:
print("".join([x if i % 3 else x + random_letter for i, x in enumerate(s,1)]))
如果只想插入一个随机字母,可以使用string.ascii_letters
和random.choice
:
from random import choice
from string import ascii_letters
s = "abcdef"
print("".join([x if i % 3 else x + choice(ascii_letters) for i, x in enumerate(s,1)])
abcQdefN
我从 Padraic 的回答中得到启发,想补充一点。
import random
Letter = random.randrange(1,26)
def encrypt_string(string, n):
return ("".join([x if i % n else chr(Letter + ord('A')) for i, x in enumerate(string)]))
这是一个字符串 "encryption"(松散地使用它)方法,用于每个 'nth' 字母。
结果(答案可能因随机而异):
print(encrypt_string("0123456789", 2)) # Every other letter
M1M3M5M7M9
print(encrypt_string("0123456789", 3)) # Every third letter
D12D45D78D
希望对您有所帮助。