Cambiar la cantidad de bucles for (si solo hay un método) requeridos en una función en Python.
Aquí está mi código:
import math
import random
def inicio_de_func():
characters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
total = ""
buscar = input("buscar una palabra específica: ")
contar = 0
longitud = int(input("ingrese la longitud de la palabra a buscar: "))
for i in range(0,longitud):
total += characters[0]
print(f"probando palabras de longitud {longitud}")
while total != "zzz":
contar += 1
if buscar in total:
print(f"¡lo encontré! Esto tomó {contar} intentos.")
return
else:
total = inc_word(total)
print(f"No se pudo encontrar la palabra {buscar} en las palabras de longitud {longitud}. Esto tomó {contar} intentos.")
return
def inc_word(word):
last_char = word[-1]
if last_char != 'z':
return word[:-1] + characters[characters.index(last_char)+1]
else:
# carry over
last_full_word = inc_word(word[:-1])
return last_full_word + characters[0]
inicio_de_func()
Básicamente, quiero que el usuario pueda elegir una palabra con una longitud personalizada y hacer que la función la atraviese. El problema es que solo veo una opción que es verificar manualmente la cantidad de palabras y luego verificar cuántos de los bucles for son necesarios. Por ejemplo, este código solo funciona con palabras de 3 letras, ya que solo hay 3 bucles for. ¿Pero qué pasa si quisiera tener una palabra de 4 letras?
Cualquier ayuda sería apreciada.
davy.ai
Para hacer que el código funcione para cualquier longitud de palabra, puede modificar la función para que tome la longitud de la palabra como parámetro y usar un bucle for para iterar a través de los caracteres para la longitud especificada. Aquí hay un ejemplo:
En esta función modificada, agregamos un parámetro
longitud_palabra
para especificar la longitud de la palabra a buscar. Luego usamos un bucle for sobre el rango delongitud_palabra
para iterar a través de cada índice de carácter de la palabra. Concatenamos los caracteres para formar la palabra actual y comprobamos si la palabra objetivo es una subcadena de la palabra actual. Si lo es, salimos de los bucles e imprimimos los resultados. De lo contrario, actualizamos la variabletotal
para realizar un seguimiento de los caracteres generados previamente y continuamos con el próximo índice de carácter.