ADD dia 05
This commit is contained in:
parent
6700d1e9f0
commit
78bd19b27b
34
dia_05/01_metodos_ayuda_docs.py
Normal file
34
dia_05/01_metodos_ayuda_docs.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
"""
|
||||||
|
Métodos, ayuda y documentación
|
||||||
|
"""
|
||||||
|
|
||||||
|
dic = {'clave1': 100, 'clave2': 500}
|
||||||
|
|
||||||
|
a = dic.popitem()
|
||||||
|
|
||||||
|
print(a)
|
||||||
|
print(dic)
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 1
|
||||||
|
exer1 = ",:_#,,,,,,:::____##Pyt%on_ _Total,,,,,,::#".lstrip(",:%_#")
|
||||||
|
|
||||||
|
print(exer1)
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 2
|
||||||
|
frutas = ["mango", "banana", "cereza", "ciruela", "pomelo"]
|
||||||
|
|
||||||
|
frutas.insert(3, "naranja")
|
||||||
|
|
||||||
|
print(frutas)
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 3
|
||||||
|
marcas_smartphones = {"Samsung", "Xiaomi", "Apple", "Huawei", "LG"}
|
||||||
|
|
||||||
|
marcas_tv = {"Sony", "Philips", "Samsung", "LG"}
|
||||||
|
|
||||||
|
conjuntos_aislados = marcas_smartphones.isdisjoint(marcas_tv)
|
||||||
|
|
||||||
|
print(conjuntos_aislados)
|
32
dia_05/02_funciones.py
Normal file
32
dia_05/02_funciones.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
"""
|
||||||
|
funciones
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Simpple
|
||||||
|
|
||||||
|
def suma5(nombre):
|
||||||
|
"""
|
||||||
|
Esto es una función para decir hola
|
||||||
|
"""
|
||||||
|
print("Hola! " + nombre)
|
||||||
|
|
||||||
|
name = input("Dime tu nombre: ")
|
||||||
|
|
||||||
|
for i in range(5):
|
||||||
|
suma5(name)
|
||||||
|
|
||||||
|
# return
|
||||||
|
def sumar(num1,num2):
|
||||||
|
total = num1 + num2
|
||||||
|
return total
|
||||||
|
|
||||||
|
resultado = sumar(10,5)
|
||||||
|
|
||||||
|
print(resultado)
|
||||||
|
|
||||||
|
# Ejercicio de codificación
|
||||||
|
def invertir_palabra(palabra):
|
||||||
|
reverso = palabra[::-1]
|
||||||
|
return reverso
|
||||||
|
|
||||||
|
print(invertir_palabra("Python").upper())
|
61
dia_05/03_funciones_dinamicas.py
Normal file
61
dia_05/03_funciones_dinamicas.py
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
"""
|
||||||
|
funciones Dinamicas
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Simple, comprobar numeros de 3 cifras
|
||||||
|
def chequear_3_cifras(numero):
|
||||||
|
return numero in range(100,1000)
|
||||||
|
|
||||||
|
suma = 347 + 231
|
||||||
|
|
||||||
|
resultado = chequear_3_cifras(suma)
|
||||||
|
print(resultado)
|
||||||
|
|
||||||
|
|
||||||
|
# Comprobar de listas si los numeros tienen 3 cifras
|
||||||
|
# return hará que se pare el bucle, como un break
|
||||||
|
def chequear_3_cifras_listas(lista):
|
||||||
|
for n in lista:
|
||||||
|
if n in range(100,1000):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
# Para que el return false funcione bien debería estar indentado aquí
|
||||||
|
|
||||||
|
|
||||||
|
lista_num = [1,34,21,15,23,2000]
|
||||||
|
comprobacion = chequear_3_cifras_listas(lista_num)
|
||||||
|
print(comprobacion)
|
||||||
|
|
||||||
|
## Siendo falso dará un tipo None
|
||||||
|
print(type(comprobacion))
|
||||||
|
## No tenía un return False
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio comprobar positivos
|
||||||
|
def todos_positivos(lista):
|
||||||
|
for n in lista:
|
||||||
|
if n < 0:
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
return True
|
||||||
|
|
||||||
|
lista_posibles_pos = [13,234,5343,7276,-1]
|
||||||
|
|
||||||
|
print(todos_positivos(lista_posibles_pos))
|
||||||
|
|
||||||
|
# Ejercicio sumar numeros entre 0 y 1000
|
||||||
|
|
||||||
|
def suma_menores(lista):
|
||||||
|
resultado2 = 0
|
||||||
|
for num in lista:
|
||||||
|
if num > 0 and num < 1000:
|
||||||
|
resultado2 += num
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
return resultado2
|
||||||
|
|
||||||
|
lista_numeros = [13,234,5343,7276,-1]
|
||||||
|
ver = suma_menores(lista_numeros)
|
||||||
|
print(ver)
|
34
dia_05/04_ejemplo_funcion.py
Normal file
34
dia_05/04_ejemplo_funcion.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
"""
|
||||||
|
Ejemplo de función
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Para desempacar tuples sin funciones
|
||||||
|
# por ejemplo, para saber el costo de los precios
|
||||||
|
|
||||||
|
precios_cafe = [('capuchino',1.5),('expresso',2.2),('moka',1.9)]
|
||||||
|
|
||||||
|
for cafe,precio in precios_cafe:
|
||||||
|
print(precio * 0.45)
|
||||||
|
|
||||||
|
# Pero para saber cual es el café mas caro no nos sirve
|
||||||
|
# Debemos usar una función:
|
||||||
|
def cafe_mas_caro(lista_precios):
|
||||||
|
precio_mayor = 0
|
||||||
|
cafe_mas_caro = ''
|
||||||
|
|
||||||
|
for cafe,precio in lista_precios:
|
||||||
|
if precio > precio_mayor:
|
||||||
|
precio_mayor = precio
|
||||||
|
cafe_mas_caro = cafe
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return(cafe_mas_caro, precio_mayor)
|
||||||
|
|
||||||
|
## Podemos extraer las variables que retorna la función
|
||||||
|
|
||||||
|
cafe, precio = cafe_mas_caro(precios_cafe)
|
||||||
|
|
||||||
|
print(f"El café más caro es {cafe} con un precio de {precio}")
|
||||||
|
|
||||||
|
|
47
dia_05/05_palito_mas_corto.py
Normal file
47
dia_05/05_palito_mas_corto.py
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
"""
|
||||||
|
Interacción entre funciones
|
||||||
|
|
||||||
|
Programa "Escoge un palito"
|
||||||
|
"""
|
||||||
|
from random import shuffle
|
||||||
|
|
||||||
|
# Lista inicial y presentación
|
||||||
|
palitos = ['-','--','---','----']
|
||||||
|
|
||||||
|
print("¡Hola!\n")
|
||||||
|
print(f"Tenemos estos palitos:")
|
||||||
|
for palito in palitos:
|
||||||
|
print(palito)
|
||||||
|
print("\nVamos a mezclarlos y a relacionarlos con un número.\n")
|
||||||
|
|
||||||
|
# Mezclar palitos
|
||||||
|
def mezclar(lista):
|
||||||
|
shuffle(palitos)
|
||||||
|
return lista
|
||||||
|
|
||||||
|
# Pedir al usuario intento
|
||||||
|
def probar_suerte():
|
||||||
|
intento = ''
|
||||||
|
while intento not in ['1','2','3','4']:
|
||||||
|
intento = input("Elige un número del 1 al 4: ")
|
||||||
|
if intento not in ['1','2','3','4']:
|
||||||
|
print("\nError: Ingresa un valor válido\n")
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
return int(intento)
|
||||||
|
|
||||||
|
# Comprobar intento
|
||||||
|
def chequear_intento(lista,intento):
|
||||||
|
if lista[intento - 1] == '-':
|
||||||
|
print("¡Cogiste el palito más corto!\n")
|
||||||
|
else:
|
||||||
|
print("Lo siento, no es el más corto: \n")
|
||||||
|
|
||||||
|
print(lista[intento-1])
|
||||||
|
print()
|
||||||
|
|
||||||
|
# Invocamos las funciones
|
||||||
|
|
||||||
|
palitos_mezclados = mezclar(palitos)
|
||||||
|
seleccion = probar_suerte()
|
||||||
|
chequear_intento(palitos_mezclados, seleccion)
|
59
dia_05/06_lanzar_dados.py
Normal file
59
dia_05/06_lanzar_dados.py
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
"""
|
||||||
|
Interacción entre funciones
|
||||||
|
LANZAR DOS DADOS
|
||||||
|
"""
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
# Función para obtener dos valores aleatorios
|
||||||
|
# entre el 1 y el 6
|
||||||
|
|
||||||
|
|
||||||
|
def lanzar_dados():
|
||||||
|
dado1 = randint(1, 6)
|
||||||
|
dado2 = randint(1, 6)
|
||||||
|
|
||||||
|
return dado1, dado2
|
||||||
|
|
||||||
|
# Función para evaluar la tirada
|
||||||
|
|
||||||
|
|
||||||
|
def evaluar_jugada(num1, num2):
|
||||||
|
suma_dados = num1 + num2
|
||||||
|
text1 = "La suma de tus dados es "
|
||||||
|
if suma_dados <= 4:
|
||||||
|
suma_dados = str(suma_dados)
|
||||||
|
mensaje = text1 + suma_dados + ". \nLamentable\n"
|
||||||
|
elif suma_dados > 4 and suma_dados <= 7:
|
||||||
|
suma_dados = str(suma_dados)
|
||||||
|
mensaje = text1 + suma_dados + ". \nBueno... esta bien.\n"
|
||||||
|
elif suma_dados > 7 and suma_dados < 10:
|
||||||
|
suma_dados = str(suma_dados)
|
||||||
|
mensaje = text1 + suma_dados + ". \nBuena tirada!\n"
|
||||||
|
else:
|
||||||
|
suma_dados = str(suma_dados)
|
||||||
|
mensaje = text1 + suma_dados + ". \nParece una jugada ganadora\n"
|
||||||
|
|
||||||
|
return mensaje
|
||||||
|
|
||||||
|
|
||||||
|
# Presentación
|
||||||
|
print("¡Vamos a tirar los dados!\n")
|
||||||
|
|
||||||
|
bandera = 's'
|
||||||
|
while bandera.lower() != "n":
|
||||||
|
|
||||||
|
# Control de flujo
|
||||||
|
if bandera.lower() == 's':
|
||||||
|
# Recogida de los valores
|
||||||
|
n1, n2 = lanzar_dados()
|
||||||
|
resultado = evaluar_jugada(n1, n2)
|
||||||
|
print(f"{resultado}")
|
||||||
|
elif bandera.lower() != 'n' or bandera.lower() != 's':
|
||||||
|
print("¿Que me estás contando?\n\t Sí ---> s\n\t No ---> n")
|
||||||
|
bandera = 's'
|
||||||
|
else:
|
||||||
|
print("\n¡Ciao!")
|
||||||
|
break
|
||||||
|
|
||||||
|
# Pregunta si quieres seguir jugando
|
||||||
|
bandera = input("¿Quieres tirar de nuevo? (s/n) ")
|
44
dia_05/07_limpiar_lista_promedio.py
Normal file
44
dia_05/07_limpiar_lista_promedio.py
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
lista_numeros = [1, 2, 15, 7, 2, 3]
|
||||||
|
|
||||||
|
|
||||||
|
def reducir_lista(lista):
|
||||||
|
|
||||||
|
lista.sort()
|
||||||
|
lista_limpia = set(lista)
|
||||||
|
max_value = max(lista_limpia)
|
||||||
|
lista_limpia.remove(max_value)
|
||||||
|
return lista_limpia
|
||||||
|
|
||||||
|
|
||||||
|
def promedio(lista):
|
||||||
|
total = 0
|
||||||
|
for x in lista:
|
||||||
|
total += x
|
||||||
|
resultado = total / len(lista)
|
||||||
|
return resultado
|
||||||
|
|
||||||
|
|
||||||
|
lista2 = reducir_lista(lista_numeros)
|
||||||
|
media = promedio(lista2)
|
||||||
|
|
||||||
|
print(f"La lista limpia es {lista2}")
|
||||||
|
print(f"El valor medio de la lista resultante es {media}")
|
||||||
|
|
||||||
|
# Otra opción de limpiar la lista
|
||||||
|
|
||||||
|
|
||||||
|
def reducir_lista2(lista):
|
||||||
|
lista.sort()
|
||||||
|
lista_limpia = []
|
||||||
|
for n in lista:
|
||||||
|
if n not in lista_limpia:
|
||||||
|
lista_limpia.append(n)
|
||||||
|
|
||||||
|
max_value = max(lista_limpia)
|
||||||
|
lista_limpia.remove(max_value)
|
||||||
|
return lista_limpia
|
||||||
|
|
||||||
|
|
||||||
|
lista3 = reducir_lista2(lista_numeros)
|
||||||
|
|
||||||
|
print(f"Otra opción de limpiar la lista: {lista3}")
|
26
dia_05/08_lanzar_moneda.py
Normal file
26
dia_05/08_lanzar_moneda.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
from random import choice
|
||||||
|
|
||||||
|
|
||||||
|
def lanzar_moneda():
|
||||||
|
lista = ['Cara', 'Cruz']
|
||||||
|
cara_moneda = choice(lista)
|
||||||
|
return cara_moneda
|
||||||
|
|
||||||
|
|
||||||
|
def probar_suerte(resultado, lista):
|
||||||
|
if resultado == 'Cara':
|
||||||
|
print('La lista se autodestruirá')
|
||||||
|
lista.clear()
|
||||||
|
elif resultado == 'Cruz':
|
||||||
|
print("La lista fue salvada")
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return lista
|
||||||
|
|
||||||
|
|
||||||
|
lista_numeros = [1, 3, 5, 2, 3, 145]
|
||||||
|
mon = lanzar_moneda()
|
||||||
|
mensaje = probar_suerte(mon, lista_numeros)
|
||||||
|
|
||||||
|
print(mon, mensaje)
|
172
dia_05/09_args_indeterminados.py
Normal file
172
dia_05/09_args_indeterminados.py
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
"""
|
||||||
|
Argumentos indeterminados
|
||||||
|
|
||||||
|
*args ---> Arguments
|
||||||
|
Para definir funciones que acepten
|
||||||
|
un número indeterminado de variables
|
||||||
|
|
||||||
|
**kwargs ---> Keyword arguments
|
||||||
|
Definen funciones que acepten
|
||||||
|
diccionarios. Podemos añadir un número indeterminado
|
||||||
|
de variables y de key=value
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Ejemplo de *args
|
||||||
|
# Argumentos args es una tupla, no se puede modificar
|
||||||
|
|
||||||
|
|
||||||
|
def suma(*numeros):
|
||||||
|
resultado = 0
|
||||||
|
for numero in numeros:
|
||||||
|
resultado += numero
|
||||||
|
return resultado
|
||||||
|
|
||||||
|
|
||||||
|
calculo = suma(24, 45, 22, 43, 454, 23, 12)
|
||||||
|
|
||||||
|
print(calculo)
|
||||||
|
|
||||||
|
# Ejercicio 1 - Suma cuadrados
|
||||||
|
|
||||||
|
|
||||||
|
def suma_cuadrados(*numeros):
|
||||||
|
resultado = 0
|
||||||
|
for numero in numeros:
|
||||||
|
resultado += numero**2
|
||||||
|
|
||||||
|
return resultado
|
||||||
|
|
||||||
|
|
||||||
|
print(suma_cuadrados(1, 2, 3))
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 2 - Suma solo absolutos
|
||||||
|
|
||||||
|
def suma_absolutos(*numeros):
|
||||||
|
resultado = 0
|
||||||
|
for numero in numeros:
|
||||||
|
resultado += abs(numero)
|
||||||
|
|
||||||
|
return resultado
|
||||||
|
|
||||||
|
|
||||||
|
print(suma_absolutos(1, -2, 3))
|
||||||
|
|
||||||
|
# Ejercicio 3 - mezclar variable y *args
|
||||||
|
|
||||||
|
|
||||||
|
def numeros_persona(nombre, *numeros):
|
||||||
|
suma_numeros = 0
|
||||||
|
for numero in numeros:
|
||||||
|
suma_numeros += numero
|
||||||
|
|
||||||
|
suma_numeros = str(suma_numeros)
|
||||||
|
para_devolver = nombre + " la suma de tus números es " + suma_numeros
|
||||||
|
return para_devolver
|
||||||
|
|
||||||
|
|
||||||
|
print(numeros_persona("Mun", 1, 3, 4, 2, 4))
|
||||||
|
|
||||||
|
|
||||||
|
# Ejemplo de **kwargs - Explicación conceptual
|
||||||
|
# Cuando pasamos los valores al kwargs
|
||||||
|
# este lo convierte en diccionario
|
||||||
|
|
||||||
|
def suma_dic(**kwargs):
|
||||||
|
print(type(kwargs))
|
||||||
|
|
||||||
|
|
||||||
|
suma_dic(x=3, y=5, z=2)
|
||||||
|
|
||||||
|
# Otro ejemplo
|
||||||
|
|
||||||
|
|
||||||
|
def suma_diccio(**kwargs):
|
||||||
|
|
||||||
|
total = 0
|
||||||
|
|
||||||
|
for clave, valor in kwargs.items():
|
||||||
|
print(f"{clave} es igual a {valor}")
|
||||||
|
total += valor
|
||||||
|
return total
|
||||||
|
|
||||||
|
|
||||||
|
print(suma_diccio(x=3, y=5, z=2))
|
||||||
|
|
||||||
|
|
||||||
|
# Con lo cual, también podemos añadir
|
||||||
|
# - Parámetros
|
||||||
|
# - *args
|
||||||
|
# - **kwargs
|
||||||
|
# Y todo en la misma función
|
||||||
|
# Deberían seguir siempre este orden
|
||||||
|
|
||||||
|
def prueba(num1, num2, *args, **kwargs):
|
||||||
|
|
||||||
|
print(f'El primer valor es {num1}')
|
||||||
|
print(f'El segundo valor es {num2}')
|
||||||
|
|
||||||
|
for arg in args:
|
||||||
|
print(f"arg es igual a {arg}")
|
||||||
|
|
||||||
|
for clave, valor in kwargs.items():
|
||||||
|
print(f"{clave} es igual a {valor}")
|
||||||
|
|
||||||
|
|
||||||
|
prueba(15, 50, 100, 200, 300, 400, x='uno', y='dos', z='tres')
|
||||||
|
|
||||||
|
|
||||||
|
# Truco para desempacar listas o tuplas
|
||||||
|
# Poner los astericos en los argumentos que se le pasa a la función
|
||||||
|
|
||||||
|
def la_lista(*lista, **dic):
|
||||||
|
|
||||||
|
for arg in lista:
|
||||||
|
print(f"arg es igual a {arg}")
|
||||||
|
|
||||||
|
for clave, valor in dic.items():
|
||||||
|
print(f"{clave} es igual a {valor}")
|
||||||
|
|
||||||
|
|
||||||
|
para_args = [1000, 2000, 3000, 4000]
|
||||||
|
kwargs = {'x': 'uno', 'y': 'dos', 'z': 'tres'}
|
||||||
|
|
||||||
|
la_lista(*para_args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 1 - cantidad de atributos
|
||||||
|
|
||||||
|
def cantidad_atributos(**cuentas):
|
||||||
|
contador = 0
|
||||||
|
for x in cuentas.items():
|
||||||
|
contador += 1
|
||||||
|
return contador
|
||||||
|
|
||||||
|
print(len(cuentas))
|
||||||
|
|
||||||
|
|
||||||
|
print(cantidad_atributos(x='color_ojos'))
|
||||||
|
|
||||||
|
# Ejercicio 2 - Lista atributos de values
|
||||||
|
|
||||||
|
|
||||||
|
def lista_atributos(**lista):
|
||||||
|
listado = []
|
||||||
|
for clave in lista.values():
|
||||||
|
listado.append(clave)
|
||||||
|
return listado
|
||||||
|
|
||||||
|
|
||||||
|
print(lista_atributos(x='uno', y='dos', z='tres'))
|
||||||
|
|
||||||
|
# Ejercicio 3 -
|
||||||
|
|
||||||
|
|
||||||
|
def describir_persona(nombre, **kwargs):
|
||||||
|
print(f'Características de {nombre}:')
|
||||||
|
|
||||||
|
for nombre_argumento, valor_argumento in kwargs.items():
|
||||||
|
print(f'{nombre_argumento}: {valor_argumento}')
|
||||||
|
|
||||||
|
|
||||||
|
describir_persona("María", color_ojos="azules", color_pelo="rubio")
|
163
dia_05/10_problemas_practicos.py
Normal file
163
dia_05/10_problemas_practicos.py
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
"""
|
||||||
|
Problemas prácticos
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Ejercicio ############
|
||||||
|
# Crea una función llamada devolver_distintos() que reciba 3 integers como parámetros.
|
||||||
|
# Si la suma de los 3 números es mayor a 15, va a devolver el número mayor.
|
||||||
|
# Si la suma de los 3 números es menor a 10, va a devolver el número menor.
|
||||||
|
# Si la suma de los 3 números es un valor entre 10 y 15 (incluidos) va a devolver el número de valor intermedio.
|
||||||
|
|
||||||
|
|
||||||
|
def devolver_distintos(num1, num2, num3):
|
||||||
|
suma = num1 + num2 + num3
|
||||||
|
lista = [num1, num2, num3]
|
||||||
|
if suma > 15:
|
||||||
|
return max(lista)
|
||||||
|
elif suma < 10:
|
||||||
|
return min(lista)
|
||||||
|
else:
|
||||||
|
lista.sort()
|
||||||
|
return lista[1]
|
||||||
|
|
||||||
|
|
||||||
|
print(devolver_distintos(6, 5, 3))
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 2 ############
|
||||||
|
# Escribe una función (puedes ponerle cualquier nombre que quieras)
|
||||||
|
# que reciba cualquier palabra como parámetro,
|
||||||
|
# y que devuelva todas sus letras únicas (sin repetir) pero en orden alfabético.
|
||||||
|
# Por ejemplo si al invocar esta función pasamos la palabra "entretenido",
|
||||||
|
# debería devolver ['d', 'e', 'i', 'n', 'o', 'r', 't']
|
||||||
|
|
||||||
|
def cualquier(palabra):
|
||||||
|
mi_set = set()
|
||||||
|
for letra in palabra:
|
||||||
|
mi_set.add(letra)
|
||||||
|
|
||||||
|
lista = list(mi_set)
|
||||||
|
lista.sort()
|
||||||
|
return lista
|
||||||
|
|
||||||
|
|
||||||
|
print("\n")
|
||||||
|
print(cualquier('entretenido'))
|
||||||
|
print(cualquier('cascarrabias'))
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 3 ############
|
||||||
|
# Escribe una función que requiera una cantidad indefinida de argumentos.
|
||||||
|
# Lo que hará esta función es devolver True
|
||||||
|
# si en algún momento se ha ingresado al numero cero repetido dos veces consecutivas.
|
||||||
|
# Por ejemplo:
|
||||||
|
# (5,6,1,0,0,9,3,5) >>> True
|
||||||
|
# (6,0,5,1,0,3,0,1) >>> False
|
||||||
|
|
||||||
|
def me_gustan_los_ceros(*ceros):
|
||||||
|
|
||||||
|
contador = 0
|
||||||
|
for num in ceros:
|
||||||
|
|
||||||
|
if num == 0:
|
||||||
|
contador += 1
|
||||||
|
if contador == 2:
|
||||||
|
contador = 0
|
||||||
|
return True
|
||||||
|
elif num != 0:
|
||||||
|
contador = 0
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
print("\n")
|
||||||
|
print(me_gustan_los_ceros(5, 6, 1, 0, 0, 9, 3, 5))
|
||||||
|
print(me_gustan_los_ceros(6, 0, 5, 1, 0, 3, 0, 1))
|
||||||
|
|
||||||
|
# Solución curso
|
||||||
|
|
||||||
|
|
||||||
|
def ceros_vecinos(*args):
|
||||||
|
contador = 0
|
||||||
|
|
||||||
|
for num in args:
|
||||||
|
|
||||||
|
if contador + 1 == len(args):
|
||||||
|
return False
|
||||||
|
elif args[contador] == 0 and args[contador + 1] == 0:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
contador += 1
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
print("\n")
|
||||||
|
print(ceros_vecinos(5, 6, 1, 0, 0, 9, 3, 5))
|
||||||
|
print(ceros_vecinos(6, 0, 5, 1, 0, 3, 0, 1))
|
||||||
|
|
||||||
|
|
||||||
|
# Ejercicio 4 ############
|
||||||
|
# Escribe una función llamada contar_primos() que requiera un solo argumento numérico.
|
||||||
|
# Esta función va a mostrar en pantalla todos los números primos existentes
|
||||||
|
# en el rango que va desde cero hasta ese número incluido,
|
||||||
|
# y va a devolver la cantidad de números primos que encontró.
|
||||||
|
# Aclaración, por convención el 0 y el 1 no se consideran primos.
|
||||||
|
|
||||||
|
|
||||||
|
def primo(numero):
|
||||||
|
if numero == 0 or numero == 1 or numero == 4:
|
||||||
|
return False
|
||||||
|
for x in range(2, int(numero/2)):
|
||||||
|
if numero % x == 0:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def primos(rango_max):
|
||||||
|
rango_max += 1
|
||||||
|
|
||||||
|
lista_num = [n for n in range(1, rango_max)]
|
||||||
|
|
||||||
|
primos = []
|
||||||
|
|
||||||
|
for numero in lista_num:
|
||||||
|
es_primo = primo(numero)
|
||||||
|
if es_primo:
|
||||||
|
primos.append(numero)
|
||||||
|
contar = len(primos)
|
||||||
|
|
||||||
|
rango_max -= 1
|
||||||
|
print(f"\nEntre 0 y el {rango_max} hay {contar} números primos:")
|
||||||
|
|
||||||
|
print(*primos, sep=' ')
|
||||||
|
|
||||||
|
|
||||||
|
primos(1000)
|
||||||
|
|
||||||
|
|
||||||
|
# Solución curso
|
||||||
|
|
||||||
|
def contar_primos(numero):
|
||||||
|
primos2 = [2]
|
||||||
|
iteracion = 3
|
||||||
|
|
||||||
|
if numero < 2:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
while iteracion <= numero:
|
||||||
|
for n in range(3, iteracion, 2):
|
||||||
|
if iteracion % n == 0:
|
||||||
|
iteracion += 2
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
primos2.append(iteracion)
|
||||||
|
iteracion += 2
|
||||||
|
|
||||||
|
print(primos2)
|
||||||
|
return len(primos2)
|
||||||
|
|
||||||
|
|
||||||
|
print("\n")
|
||||||
|
print(contar_primos(1000))
|
349
dia_05/11_programa05.py
Normal file
349
dia_05/11_programa05.py
Normal file
@ -0,0 +1,349 @@
|
|||||||
|
'''
|
||||||
|
Programa día 5 - Juego del ahorcado
|
||||||
|
'''
|
||||||
|
from random import choice
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
def clearConsole():
|
||||||
|
# Función limpiar consola
|
||||||
|
command = 'clear'
|
||||||
|
if os.name in ('nt', 'dos'): # If Machine is running on Windows, use cls
|
||||||
|
command = 'cls'
|
||||||
|
os.system(command)
|
||||||
|
|
||||||
|
|
||||||
|
def palabra_aleatoria():
|
||||||
|
# Función que guarda palabras en una lista y escoge una aleatoria con choice
|
||||||
|
lista_palabras = ('Argentina', 'Colombia', 'Guadalupe', 'Herramientas', 'Hogar', 'Murcielago',
|
||||||
|
'Uruguay', 'abdomen', 'abrelatas', 'abrigo', 'abuelo', 'aburrimiento',
|
||||||
|
'accion', 'agridulce', 'aguila', 'aguja', 'ahorcado', 'aire',
|
||||||
|
'alegria', 'Alemania', 'alfabeto', 'alimento', 'alma', 'almacen',
|
||||||
|
'almendra', 'alto', 'altura', 'amanecer', 'amarillo', 'ambiente',
|
||||||
|
'ambulancia', 'amiga', 'amigo', 'amor', 'analisis', 'ancho',
|
||||||
|
'anciano', 'animal', 'anochecer', 'aparato', 'apartamento', 'apoyo',
|
||||||
|
'araña', 'arbol', 'archiduque', 'area', 'aritmetica', 'arma',
|
||||||
|
'arroz', 'arte', 'articulo', 'ascensor', 'asiento', 'asociacion',
|
||||||
|
'aspecto', 'ataque', 'atencion', 'atmosfera', 'atomo', 'atun',
|
||||||
|
'aumento', 'autobus', 'automovil', 'coche', 'auto', 'autopista',
|
||||||
|
'autor', 'autoridad', 'avance', 'avena', 'avenida', 'avion',
|
||||||
|
'ayer', 'ayuda', 'azul', 'año', 'babosa', 'baloncesto',
|
||||||
|
'bambu', 'barba', 'barco', 'barro', 'lodo', 'base',
|
||||||
|
'bateria', 'bebe', 'bebida', 'beneficio', 'bicho', 'bigote',
|
||||||
|
'billete', 'bisabuelo', 'bisnieto', 'blanco', 'boca', 'boleto',
|
||||||
|
'bolsa', 'bolsillo', 'bolso', 'bomberos', 'bondad', 'bosque',
|
||||||
|
'boton', 'bragas', 'calzon', 'brazo', 'buey', 'bufanda',
|
||||||
|
'bus', 'busqueda', 'caballo', 'yegua', 'cabello', 'cabeza',
|
||||||
|
'cable', 'cabo', 'cadera', 'calamar', 'calcetines', 'calculadora',
|
||||||
|
'calendario', 'calidad', 'calle', 'calor', 'calzoncillo', 'cama',
|
||||||
|
'camara', 'camaron', 'cambio', 'camino', 'camisa', 'camiseta',
|
||||||
|
'campaña', 'campo', 'cansancio', 'cantidad', 'capacidad', 'capital',
|
||||||
|
'cara', 'caracol', 'caracter', 'caracteristica', 'cargo', 'carne',
|
||||||
|
'carpeta', 'carrera', 'carretera', 'carta', 'cartera', 'casa',
|
||||||
|
'casco', 'caso', 'castaña', 'castaño', 'causa', 'cebada',
|
||||||
|
'celeste', 'celular', 'centimetro', 'cerdo', 'cerebro', 'cero',
|
||||||
|
'cerradura', 'cerro', 'monte', 'montaña', 'cesped', 'chaqueta',
|
||||||
|
'chino', 'cielo', 'cien', 'ciento', 'ciencia', 'cierre',
|
||||||
|
'ciervo', 'cinco', 'cine', 'cintura', 'cinturon', 'circulo',
|
||||||
|
'ciruela', 'ciudad', 'claridad', 'clase', 'clavel', 'clavo',
|
||||||
|
'clima', 'club', 'cocodrilo', 'codigo', 'codo', 'cola',
|
||||||
|
'colega', 'colegio', 'color', 'coma', 'comercio', 'comida',
|
||||||
|
'comienzo', 'comision', 'compañia', 'competencia', 'competicion',
|
||||||
|
'competencia', 'computadora', 'comunicacion', 'comunidad', 'concepto',
|
||||||
|
'conciencia', 'condicion', 'conejo', 'conexion', 'confianza', 'conflicto',
|
||||||
|
'congreso', 'conjunto', 'conocido', 'conocimiento', 'consecuencia', 'consejo',
|
||||||
|
'constitucion', 'construccion', 'consumo', 'contenido', 'control', 'corazon',
|
||||||
|
'cordones', 'corriente', 'corte', 'cosa', 'costa', 'creacion',
|
||||||
|
'crecimiento', 'cremallera', 'criatura', 'crisis', 'cuaderno', 'cuadro',
|
||||||
|
'cuarto', 'cuatro', 'cucaracha', 'cuello', 'cuenta', 'cuerda',
|
||||||
|
'cordel', 'cordon', 'cuerpo', 'cuervo', 'cuestion', 'culo',
|
||||||
|
'cultura', 'curiosidad', 'curso', 'dama', 'dato', 'decada',
|
||||||
|
'decision', 'decreto', 'dedo', 'defensa', 'demanda', 'democracia',
|
||||||
|
'departamento', 'deporte', 'derecha', 'derecho', 'desarrollo', 'deseo',
|
||||||
|
'desierto', 'despejado', 'destino', 'destruccion', 'deterioro', 'dia',
|
||||||
|
'diagonal', 'diario', 'diarrea', 'dibujo', 'diccionario', 'dictadura',
|
||||||
|
'diente', 'diez', 'diferencia', 'dinero', 'dios', 'direccion',
|
||||||
|
'director', 'disposición', 'documento', 'dolor', 'domingo', 'don',
|
||||||
|
'dormitorio', 'dos', 'doña', 'dragon', 'duda', 'economia',
|
||||||
|
'edad', 'edificio', 'educacion', 'efecto', 'ejemplo', 'eleccion',
|
||||||
|
'electricidad', 'elefante', 'elemento', 'elevador', 'empatia', 'empleo',
|
||||||
|
'empresa', 'encuentro', 'energia', 'enfermedad', 'enojo', 'enfado',
|
||||||
|
'entorno', 'entrada', 'entretenimiento', 'epoca', 'equipo', 'equivocacion',
|
||||||
|
'era', 'escalera', 'escritorio', 'escritura', 'escuela', 'escultura',
|
||||||
|
'esfera', 'esfuerzo', 'espacio', 'espalda', 'español', 'especie',
|
||||||
|
'espectaculo', 'espectador', 'espera', 'espinilla', 'espiritu', 'esposa',
|
||||||
|
'esposo', 'esquina', 'estacion', 'parada', 'estado', 'este',
|
||||||
|
'estilo', 'estomago', 'estrella', 'estructura', 'estruendo', 'estudio',
|
||||||
|
'etapa', 'existencia', 'exito', 'experiencia', 'expresion', 'extasis',
|
||||||
|
'exterior', 'fabrica', 'facilidad', 'falda', 'falta', 'familia',
|
||||||
|
'fase', 'favor', 'fecha', 'ferrocarril', 'figura', 'fin',
|
||||||
|
'final', 'flor', 'fondo', 'forma', 'formacion', 'formalidad',
|
||||||
|
'fracaso', 'frances', 'frente', 'fruta', 'fuego', 'fuerza',
|
||||||
|
'funcion', 'futuro', 'gafas', 'galaxia', 'galleta', 'gallina',
|
||||||
|
'gas', 'gaseosa', 'gato', 'gente', 'geografia', 'gluteos',
|
||||||
|
'gobernador', 'intendente', 'alcalde', 'gobierno', 'gorrion', 'grabado',
|
||||||
|
'grado', 'gramo', 'gripe', 'gris', 'grupo', 'guerra',
|
||||||
|
'guitarra', 'habitacion', 'halcon', 'harina', 'hermano', 'hielo',
|
||||||
|
'hierro', 'higado', 'hijo', 'hilo', 'historia', 'hogar',
|
||||||
|
'hoja', 'hombre', 'hombro', 'hongo', 'hora', 'hotel',
|
||||||
|
'hoy', 'hueso', 'humanidad', 'humano', 'idea', 'extranjero',
|
||||||
|
'imagen', 'individuo', 'informacion', 'informatica', 'informe', 'ingles',
|
||||||
|
'inicio', 'insecto', 'instante', 'instituto', 'intento', 'interes',
|
||||||
|
'interior', 'interrupcion', 'investigacion', 'izquierda', 'japones',
|
||||||
|
'jirafa', 'joroba', 'judias', 'guisantes', 'jueves', 'juguete',
|
||||||
|
'julio', 'kilo', 'kilometro', 'labio', 'lado', 'lagarto',
|
||||||
|
'laguna', 'lago', 'langosta', 'largo', 'longitud', 'leon',
|
||||||
|
'ley', 'libertad', 'libro', 'libros', 'limon', 'litro',
|
||||||
|
'llave', 'llero', 'lluvia', 'logro', 'lombriz', 'loro',
|
||||||
|
'lugar', 'luna', 'lunes', 'luz', 'madre', 'manantial',
|
||||||
|
'manera', 'manga', 'mano', 'manzana', 'mar', 'oceano',
|
||||||
|
'maravilla', 'mariposa', 'marisco', 'marron', 'cafe', 'martes',
|
||||||
|
'matrimonio', 'mausoleo', 'mayoria', 'mañana', 'medida', 'mediodia',
|
||||||
|
'mejora', 'memoria', 'mente', 'mentira', 'mercado', 'mes',
|
||||||
|
'mesa', 'metal', 'metalico', 'metro', 'miedo', 'miercoles',
|
||||||
|
'mil', 'milenio', 'milimetro', 'millon', 'ministro', 'minoria',
|
||||||
|
'minuto', 'modo', 'molecula', 'molusco', 'momento', 'moneda',
|
||||||
|
'mono', 'mosca', 'mosquito', 'movimiento', 'mueble', 'muerte',
|
||||||
|
'mujer', 'mundo', 'municipio', 'musculo', 'musica', 'muslo',
|
||||||
|
'muñeca', 'nacimiento', 'nacion', 'naranja', 'naranja', 'anaranjado',
|
||||||
|
'nariz', 'naturaleza', 'necesidad', 'negro', 'nieto', 'nieve',
|
||||||
|
'nivel', 'niño', 'noche', 'nombre', 'norma', 'norte',
|
||||||
|
'notas', 'noticia', 'nublado', 'nueve', 'nuez', 'numero',
|
||||||
|
'objetivo', 'meta', 'objeto', 'obligacion', 'obra', 'ocasion',
|
||||||
|
'ocho', 'oeste', 'oficina', 'oido', 'ojo', 'olfato',
|
||||||
|
'omnibus', 'orden', 'ordenador', 'oreja', 'organizacion', 'origen',
|
||||||
|
'oro', 'oveja', 'padre', 'pais', 'pajaro', 'palabra',
|
||||||
|
'palma', 'panel', 'pantalla', 'pantalon', 'papel', 'paraguas',
|
||||||
|
'parasol', 'pareja', 'parlamentario', 'congresista', 'senador', 'diputado',
|
||||||
|
'parlante', 'parte', 'partido', 'pasado', 'paso', 'pasto',
|
||||||
|
'cesped', 'pata', 'patatas', 'papas', 'paz', 'pecho',
|
||||||
|
'pelusa', 'pensamiento', 'pera', 'percepcion', 'periferia', 'periodico',
|
||||||
|
'periodismo', 'perjuicio', 'permiso', 'perro', 'persona', 'personalidad',
|
||||||
|
'peso', 'pez', 'pie', 'piel', 'pierna', 'pilar',
|
||||||
|
'pino', 'pintura', 'piscina', 'piso', 'placer', 'planeta',
|
||||||
|
'planta', 'plata', 'platano', 'playa', 'plomo', 'poblacion',
|
||||||
|
'policia', 'polilla', 'politica', 'politico', 'pomelo', 'pomo',
|
||||||
|
'posavasos', 'posibilidad', 'posicion', 'potencia', 'precio', 'tarifa',
|
||||||
|
'pregunta', 'prenda', 'presencia', 'presente', 'presidente', 'primo',
|
||||||
|
'principio', 'probabilidad', 'problema', 'proceso', 'produccion', 'producto',
|
||||||
|
'profesion', 'programa', 'progreso', 'prohibicion', 'provincia', 'proyecto',
|
||||||
|
'pueblo', 'puerta', 'pulpo', 'punto', 'quejido', 'rabano',
|
||||||
|
'raiz', 'raiz', 'origen', 'fuente', 'rana', 'raton',
|
||||||
|
'rata', 'rayo', 'razon', 'realidad', 'rectangulo', 'recuerdo',
|
||||||
|
'reduccion', 'relacion', 'religion', 'representante', 'reproduccion',
|
||||||
|
'resfriado', 'respuesta', 'resultado', 'retroceso', 'reunion', 'revista',
|
||||||
|
'rio', 'rodilla', 'rojo', 'ropa', 'rosa', 'rosado', 'ruta',
|
||||||
|
'sabado', 'sal', 'salchicha', 'saltamontes', 'salud', 'sandia',
|
||||||
|
'sangre', 'sardina', 'secreto', 'sector', 'secuencia', 'segundo',
|
||||||
|
'seguridad', 'seis', 'selva', 'jungla', 'semana', 'semilla',
|
||||||
|
'sensacion', 'sentido', 'ser', 'serie', 'serpiente', 'servicio',
|
||||||
|
'señor', 'señora', 'siete', 'siglo', 'significado', 'silla', 'simbolo',
|
||||||
|
'similitud', 'sistema', 'situacion', 'sobrino', 'sociedad', 'sol',
|
||||||
|
'solapa', 'cuello', 'solicitud', 'solucion', 'sombrilla', 'sonido',
|
||||||
|
'sorpresa', 'subterraneo, metro', 'suciedad', 'suelo', 'suerte',
|
||||||
|
'sugerencia', 'sujetador', 'sosten', 'superficie', 'sur',
|
||||||
|
'sustancia', 'susto', 'tacto', 'tallo', 'talon', 'tamaño', 'tarde',
|
||||||
|
'tarima', 'telefono', 'televidente', 'tema', 'temor', 'texto',
|
||||||
|
'tiempo', 'tierra', 'tigre', 'tio', 'tipo', 'tomate', 'tormenta',
|
||||||
|
'torrefacto', 'total', 'trabajo', 'trafico', 'trancar', 'transaccion',
|
||||||
|
'transcurso', 'transito', 'transporte', 'trasero', 'tren', 'tres',
|
||||||
|
'triangulo', 'trigo', 'tristeza', 'trueno', 'tulipan', 'universidad',
|
||||||
|
'universo', 'uno', 'uso', 'utilizacion', 'utensilio', 'uña', 'vaca',
|
||||||
|
'vacaciones', 'valor', 'vanidad', 'vapor', 'vaso', 'vegetal',
|
||||||
|
'vehiculo', 'velocidad', 'ventana', 'verano', 'verdad', 'verde',
|
||||||
|
'verdura', 'vez', 'via', 'vida', 'vidrio', 'viento', 'viernes',
|
||||||
|
'villa', 'violeta', 'violin', 'visita', 'vista', 'volumen',
|
||||||
|
'voz', 'vuelto, cambio', 'xilofonoGente', 'zanahoria',
|
||||||
|
'region', 'zapatilla', 'zapato', 'zona')
|
||||||
|
|
||||||
|
palabra_secreta = choice(lista_palabras).lower()
|
||||||
|
|
||||||
|
palabra_secreta = palabra_secreta.replace('á', 'a').replace('é', 'e').replace(
|
||||||
|
'í', 'i').replace('ó', 'o').replace('ú', 'u')
|
||||||
|
|
||||||
|
return palabra_secreta
|
||||||
|
|
||||||
|
|
||||||
|
def mostrar_guiones(palabra_secreta):
|
||||||
|
# Recibe la palabra de la función anterior.
|
||||||
|
# Crea los guiones y separa las letras en una lista
|
||||||
|
clave = 0
|
||||||
|
dic = {}
|
||||||
|
rallitas = {}
|
||||||
|
|
||||||
|
for i in palabra_secreta:
|
||||||
|
clave += 1
|
||||||
|
dic[clave] = i
|
||||||
|
|
||||||
|
rallitas[clave] = '-'
|
||||||
|
|
||||||
|
return dic, rallitas
|
||||||
|
|
||||||
|
|
||||||
|
def mostrar_letras_acertadas():
|
||||||
|
|
||||||
|
cuenta_letra = 0
|
||||||
|
for k, v in dic_letras.items():
|
||||||
|
|
||||||
|
if v == letra_user:
|
||||||
|
cuenta_letra += 1
|
||||||
|
dic_guiones[k] = letra_user
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if cuenta_letra == 1:
|
||||||
|
sing_plural = 'letra'
|
||||||
|
else:
|
||||||
|
sing_plural = 'letras'
|
||||||
|
|
||||||
|
print(f'Desvelamos {cuenta_letra} {sing_plural}: ')
|
||||||
|
print(*dic_guiones.values(), sep=' ')
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
def ahorcado_intentos():
|
||||||
|
if intentos == 6:
|
||||||
|
print(" ____")
|
||||||
|
print(" | |")
|
||||||
|
print(" | ")
|
||||||
|
print(" | ")
|
||||||
|
print(" | ")
|
||||||
|
print("_|_")
|
||||||
|
elif intentos == 5:
|
||||||
|
print(" ____")
|
||||||
|
print(" | |")
|
||||||
|
print(" | O")
|
||||||
|
print(" | ")
|
||||||
|
print(" | ")
|
||||||
|
print("_|_")
|
||||||
|
elif intentos == 4:
|
||||||
|
print(" ____")
|
||||||
|
print(" | |")
|
||||||
|
print(" | O")
|
||||||
|
print(" | |")
|
||||||
|
print(" | ")
|
||||||
|
print("_|_")
|
||||||
|
elif intentos == 3:
|
||||||
|
print(" ____")
|
||||||
|
print(" | |")
|
||||||
|
print(" | O")
|
||||||
|
print(" | /|")
|
||||||
|
print(" | ")
|
||||||
|
print("_|_")
|
||||||
|
elif intentos == 2:
|
||||||
|
print(" ____")
|
||||||
|
print(" | |")
|
||||||
|
print(" | O")
|
||||||
|
print(" | /|\\")
|
||||||
|
print(" | ")
|
||||||
|
print("_|_")
|
||||||
|
elif intentos == 1:
|
||||||
|
print(" ____")
|
||||||
|
print(" | |")
|
||||||
|
print(" | O")
|
||||||
|
print(" | /|\\")
|
||||||
|
print(" | / ")
|
||||||
|
print("_|_")
|
||||||
|
|
||||||
|
|
||||||
|
# Limpiar la terminal
|
||||||
|
clearConsole()
|
||||||
|
|
||||||
|
# Mensaje bienvenida
|
||||||
|
print('\n###################')
|
||||||
|
print('JUEGO - El ahorcado')
|
||||||
|
print('###################\n')
|
||||||
|
|
||||||
|
# Escoger palabra aleatoria
|
||||||
|
secret = palabra_aleatoria()
|
||||||
|
|
||||||
|
# Extraer diccionario de guiones con el número de letras de la palabra
|
||||||
|
# Extraer diccionario con letras de la palabra con indice
|
||||||
|
dic_letras, dic_guiones = mostrar_guiones(secret)
|
||||||
|
|
||||||
|
# ############## PRUEBAS
|
||||||
|
|
||||||
|
# print(*dic_letras, sep=' ')
|
||||||
|
# print(*dic_letras.values(), sep=' ')
|
||||||
|
|
||||||
|
# Iniciar variable de INTENTOS
|
||||||
|
intentos = 8
|
||||||
|
SECRET = secret.upper()
|
||||||
|
|
||||||
|
# Instrucciones juego
|
||||||
|
print(
|
||||||
|
f'\nTu palabra tiene {len(dic_letras)} letras y tienes {intentos} intentos para acertarla.\n¡Suerte!\n'
|
||||||
|
)
|
||||||
|
|
||||||
|
# Mostrar guiones
|
||||||
|
print(*dic_guiones.values(), sep=' ')
|
||||||
|
print()
|
||||||
|
|
||||||
|
|
||||||
|
# Pedir letra a usuario
|
||||||
|
comando = ''
|
||||||
|
# listado para letras incorrectas y acertadas
|
||||||
|
incorrectas = list()
|
||||||
|
acertadas = list()
|
||||||
|
|
||||||
|
while comando.lower() != 'salir':
|
||||||
|
|
||||||
|
letra_user = input('Dime una letra: ')
|
||||||
|
comando = letra_user
|
||||||
|
# Validar letra
|
||||||
|
|
||||||
|
# Comando salir
|
||||||
|
if letra_user == 'salir':
|
||||||
|
print('\n\n¡Ciao!\n')
|
||||||
|
break
|
||||||
|
|
||||||
|
# # Letra ya acertada
|
||||||
|
elif letra_user in acertadas:
|
||||||
|
print('\nEsa letra ya la acertaste primo...\n')
|
||||||
|
|
||||||
|
elif letra_user in incorrectas:
|
||||||
|
print('\n¡Perdiendo intentos a lo loco! ¡A lo loco!\n')
|
||||||
|
intentos -= 1
|
||||||
|
ahorcado_intentos()
|
||||||
|
print('\nTe quedan {intentos} intentos\n')
|
||||||
|
# # acierto - Desvelar letra
|
||||||
|
elif letra_user in dic_letras.values():
|
||||||
|
print('\n¡Ole!')
|
||||||
|
acertadas.append(letra_user)
|
||||||
|
|
||||||
|
# Mostrar guiones y letras acertadas
|
||||||
|
mostrar_letras_acertadas()
|
||||||
|
|
||||||
|
# # fallo. Restar intentos
|
||||||
|
else:
|
||||||
|
intentos -= 1
|
||||||
|
incorrectas.append(letra_user)
|
||||||
|
print(f'Lo siento, no has acertado. Te quedan {intentos} intentos\n')
|
||||||
|
ahorcado_intentos()
|
||||||
|
print('\nTus errores por ahora: ')
|
||||||
|
print(*incorrectas, sep=', ')
|
||||||
|
print()
|
||||||
|
|
||||||
|
# Comprobación game over / Win / nuevo intento
|
||||||
|
if intentos == 0:
|
||||||
|
clearConsole()
|
||||||
|
print(" ____")
|
||||||
|
print(" | |")
|
||||||
|
print(" | O")
|
||||||
|
print(" | /|\\ \t\tGAME OVER")
|
||||||
|
print(" | / \\")
|
||||||
|
print("_|_")
|
||||||
|
print(f'\n\nLa palabra era: {SECRET}\n')
|
||||||
|
|
||||||
|
break
|
||||||
|
|
||||||
|
# Controlar si tiene la palabra correcta
|
||||||
|
elif '-' not in dic_guiones.values():
|
||||||
|
clearConsole()
|
||||||
|
print('\n\n\n\n\n\n\n\t\t\tWIN\t\t\t\n\n\n\n\n\n\n')
|
||||||
|
print(f'La palabra era: {SECRET}\nTe sobraron {intentos} intentos\n')
|
||||||
|
break
|
||||||
|
|
||||||
|
# Nuevo intento
|
||||||
|
else:
|
||||||
|
print("¡Inténtalo de nuevo!")
|
Loading…
Reference in New Issue
Block a user