我正在尝试创建一个python脚本,它使用string并在字符串的[[random parts中添加random number。例如:
str = 'PinguinsAreFun'
output = 'Pi2ngu2in4sAre4F7un'
我试图搜索执行此任务的模块,但是我没有运气。因此,我认为编写自己的代码以完成工作将是一个好主意……嗯..当然,这不是一个好主意...这是我想出的:
import random num = '0123456789' str = 'This_Is_A_String' while k > 15: k =+ 1 rndm = random.choice(num) result = str[:int(rndm)] + rndm + str[int(rndm):] print(result)
问题是它仅可使用1次。它输出类似:
This_i7s_A_String
因为我在挑战rndm
inside
while
循环,所以我猜想在每个循环上它的值都会改变,但事实并非如此。分配给rndm
的随机值不太可能恰好是15次相同:/所以...对发生的事情有什么想法吗?str
来生成每个循环的result
。您应该使用循环的前一个result
在每个循环中产生新的字符串。k
未初始化k =+ 1
应该是k += 1
str
result
(您只需在原始字符串中插入一个数字)from random import randrange
strg = 'This_Is_A_String'
for _k in range(15):
rndm = randrange(len(strg))
strg = f'{strg[:rndm]}{rndm}{strg[rndm:]}'
print(strg)
使用下面的代码可轻松实现:
import random
num = '0123456789'
mystr = 'This_Is_A_String'
k = 0
while k < len(mystr):
rndm = random.choice(num)
randompositioninstring = random.randint(0, len(mystr))
k += 2
mystr = mystr[:randompositioninstring] + str(rndm) + mystr[randompositioninstring:]
print(mystr)