[英]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.