''Random'python模块在循环内

问题描述 投票:0回答:3

我正在尝试创建一个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次相同:/所以...对发生的事情有什么想法吗?
python random module
3个回答
0
投票
您正在使用原始字符串str来生成每个循环的result。您应该使用循环的前一个result在每个循环中产生新的字符串。

0
投票
您的代码中有很多错误:

    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)


  • 0
    投票
    尝试下面的代码,您需要在字符串中获取随机位置,然后在字符串的该随机位置添加随机数。

    使用下面的代码可轻松实现:

    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)

    © www.soinside.com 2019 - 2024. All rights reserved.