Python-入门级编程

时间:2016-09-29 02:35:29

标签: python random iteration

我需要设置一个代码,该代码有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

2 个答案:

答案 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

这将在从母亲和父亲中选择之间交替。