我需要设置一个代码,该代码有50%的几率选择母字符串的第一个字符或父字符串的第一个字符,并将其添加到子字符串,依此类推每个字母。
import random
mama_string = "0>Y!j~K:bv9\Y,2"
papa_string = "OkEK=gS<mO%DnD{"
child = ""
while len(child) < 15:
random_number = random.randint(0,100)
if random_number <= 50:
for mama_char in mama_string:
child += mama_char
break
if random_number > 50:
for papa_char in papa_string:
child += papa_char
break
print("The mother string is:",mama_string)
print("The father string is:",papa_string)
print("The child string is:",child)
母串是:0&gt; Y!j~K:bv9 \ Y,2
父字符串是:OkEK = gS&lt; MO%的DnD {
子字符串是:0O0O0O0OO00OO00
答案 0 :(得分:0)
您希望在while循环的每次迭代中添加一个字符(每次一次生成一个随机数)。而不是运行遍历mama_string或papa_string的每个字符的for循环。只是做
if random_number <= 50:
child += mama_char[len(child)]
else:
child += papa_char[len(child)]
子字符串排序的长度跟踪您接下来要添加的字符(在mama或papa字符串中)。
答案 1 :(得分:0)
你可以这样做:
import numpy as np
counter = 0
while len(child) < 15:
choice = np.random.choice([0,1])
if choice == 0:
child += papa_string[counter]
else:
child += mama_string[counter]
counter += 1
这将在从母亲和父亲中选择之间交替。