[英]Concatenate strings in 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()
您需要添加到cadena
而不是每次循环都重新分配。
您还需要检查while len(cadena + str(cadena_aleatoria(x)))
因为一旦在检查之后的cadena
内将str(cadena_aleatoria(x)))
到cadena
,就可能要cadena
。
while len(cadena + str(cadena_aleatoria(x))) < 256:
cadena += clave + str(cadena_aleatoria(x))
如果您不想在cadena字符串中添加None's
则还需要return(b)
def cadena_aleatoria():
cadena = []
cadena.append(x)
while len(cadena)<10:
x = random.randint(0,9)
cadena.append(x)
b = "".join(str(i) for i in cadena)
return b
def cadena_inicio():
clave = "5275328525062135755"
cadena = ""
while len(cadena + cadena_aleatoria(x)) < 256:
cadena += clave + cadena_aleatoria(x)
print (cadena)
您的第一个功能可以使用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)
您遇到了一些问题。
首先,您不会从cadena_aleatoria(x)
函数返回任何内容,因此调用它会返回None
并且您不想将None
添加到字符串中。 因此,如果您想返回b
,则应该return b
。
另一个问题是您没有在while循环中为cadena添加任何长度。 您可能想这样做:
cadena += clave + str(cadena_aleatoria(x))
您也不会从cadena_inicio()
返回任何内容,但这也许是有意的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.