Reto: Ordenar palabras
Crear una serie de 10 palabras donde sus letras se obtienen de forma aleatoria. Mostrar estas palabras y mostrar esas mismas palabras ordenadas alfabéticamente.
Método 1
Creamos la listafrase
que contendrá diez palabras compuestas cada una de ellas por cuatro letras aleatorias. La variable L
contienen todo el abecedario en forma de lista. El primer bucle for
contiene diez ciclos para generar las diez palabras. En el segundo bucle for
es donde generamos cada palabra recogida como string en la variable p
. Para ello, se elige aleatoriamente cada letra de la lista L
.Una vez generada la palabra
p
está se añade a la lista L
con append
.import random
frase=[]
L=list('abcdefghijklmnopqrstuvwxyz')
for i in range(0,11):
p=''
for j in range(4):
p+=L[random.randint(0,25)]
frase.append(''.join(p))
print(frase)
print(sorted(frase))
Método 2
Con este método vamos a crear palabras donde se alternen parejas de consonante y vocal. La variablen
contiene el número de parejas elegidas. Si n
es tres obtendremos palabras con seis letras. La variable c
es un string que contiene las consonantes y la variable v
es otra cadena con las vocales. Inicializamos la variable L
como lista vacía. Nos metemos en un primer bucle for
de diez ciclos para generar las diez palabras. El segundo bucle for
añade aleatoriamente una letra consonante y luego una letra vocal para que formen parejas, y se repite n
veces.import random
n=3 # nº de parejas de letras consonante-vocal
c='bcdfghjklmnpqrstvwxyz'
v='aeiou'
L=[]
for i in range(10):
palabra=''
for j in range(n):
palabra+=''.join(random.choice(c))
palabra+=''.join(random.choice(v))
L.append(palabra)
print(L)
print(sorted(L))
que pasa si al imprimir todos lo números son pares? o todos impares. como solucionas eso?
ResponderEliminar