在Python中连接字符串?

2024-10-01 15:45:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中连接字符串时遇到了一个问题。我需要连接字符串clave和cadena_aleatoria(x),而cadena_inicio小于256。这是我的剧本:

import sys
import random

x = random.randint(0,9)
def cadena_aleatoria(x):
    cadena = []
    cadena.append(x)
    while len(cadena)<10:
            x = random.randint(0,9)
            cadena.append(x)
    b = "".join(str(i) for i in cadena)

    print(b, end = "")


def cadena_inicio():
    clave = "5275328525062135755"
    cadena = clave + str(cadena_aleatoria(x))
    while len(cadena)<256:
            cadena = clave + str(cadena_aleatoria(x))               
    print(cadena)
cadena_inicio()

Tags: 字符串importlendefrandomprintrandint剧本
2条回答

你有一些问题。在

首先,您没有从函数cadena_aleatoria(x)返回任何内容,因此调用它是返回None,并且您不想将None添加到字符串中。所以如果你想返回b,你应该return b。在

另一个问题是在while循环中没有向cadena添加任何长度。你可能想这样做:

cadena += clave + str(cadena_aleatoria(x))

您也不会从cadena_inicio()返回任何内容,但这可能是有意的。在

您需要添加到cadena,而不是每次都通过循环重新分配。在

您还需要检查while len(cadena + str(cadena_aleatoria(x))),因为一旦您在检查之后将str(cadena_aleatoria(x)))添加到cadena中,您可以检查一下。在

while len(cadena + str(cadena_aleatoria(x))) < 256:
      cadena += clave + str(cadena_aleatoria(x))

如果不想将return(b)添加到cadena字符串中,还需要return(b)

^{pr2}$

您的第一个功能可以使用list comprehension完成:

def cadena_aleatoria():
    return "".join([str(random.randint(0,9)) for x in range(10)])

def cadena_inicio():
    clave = "5275328525062135755"
    cadena = ""
    while len(cadena + cadena_aleatoria()) < 256:
            cadena += clave + cadena_aleatoria()
    print (cadena)

相关问题 更多 >

    热门问题