使用 Python 生成随机字符串,直到生成给定的字符串
pythonprogrammingserver side programming
给定一个字符串,我们的任务是使用字符、特殊字符、数字等的随机组合生成一些字符串。
示例
Input PP Output AK AK . . . . .
算法
步骤 1:输入一个字符串。 步骤 2:在这里,我们将所有可能的小写、大写和特殊字符组合存储在一个变量中。 步骤 3:使用两个循环并使用随机函数。由此,我们可以得到所有可能的字符、符号组合。 步骤 4:最后显示与输入字符串相同的字符串,并将每个随机字符串与给定的输入字符串匹配。 步骤 5:如果两个索引值相同,则存储索引并迭代剩余部分。
示例代码
import string import random import time my_possibleCharacters = string.ascii_lowercase + string.digits + string.ascii_uppercase + ' ., !?;:' t = "ab" my_attemptThis = ''.join(random.choice(my_possibleCharacters) for i in range(len(t))) my_attemptNext = '' com = False iteration = 0 # 当完成为假时进行迭代 while com == False: print(my_attemptThis) my_attemptNext = '' com = True for i in range(len(t)): if my_attemptThis[i] != t[i]: com = False my_attemptNext += random.choice(my_possibleCharacters) else: my_attemptNext += t[i] # 增加迭代次数 iteration += 1 my_attemptThis = my_attemptNext time.sleep(0.1) # 驱动代码 print("String matched after " + str(iteration) + " iterations")
输出
36 G sM ,L jt g1 FN uR ;W Ja 3n 4o Gl kY NR oR Nw Lg Jt Od wN z0 J 3a 9J sF v g6 HO Ia AB Xa OX :N Wo Dp f; tt kf Er In ou bD T a0 aH aW a a8 ai ax az aN aJ ah a0 a. aq ar ax ai am a; aO as a; aS aL aQ a8 a3 ae a5 aS ao al aV ar aj aT aS ad ab String matched after 83 iterations