Está en la página 1de 7

Mario Laurie Aravena

21277153821

P4-P5 ,(al final captura de la consola al correr el programa)

import random
import os

def gen_archivo(ruta):
os.mkdir(ruta)

def gen_grupo_cartones():
grupo_cartones = []
for i in range(100):
carton = gen_carton()
while carton in grupo_cartones:
carton = gen_carton()
grupo_cartones.append(carton)
return grupo_cartones

def gen_nombres_cartones():
nombres_cartones = []
for i in range(100):
nombre = str(i + 1) + str(random.randint(100000, 999999))
while len(nombre) < 9:
nombre = "0" + nombre
nombres_cartones.append(nombre)
return nombres_cartones

def gen_carton():
carton = []
for i in range(6):
num_random = random.randint(1,36)
while num_random in carton:
num_random= random.randint(1,36)
carton.append(num_random)
carton.sort()
return carton

def gen_docs_cartones(grupo_cartones, nombre_cartones, numero_concurso):


ruta_basica = os.getcwd()
for i in range(100):
ruta_relativa = os.path.join(numero_concurso, nombre_cartones[i])
ruta_abs = os.path.join(ruta_basica, ruta_relativa + ".carton")
file = open(ruta_abs, 'w')
for j in range(6):
file.write(str(grupo_cartones[i][j]) + "\n")
file.close()

def lector_cartones(nombre_cartones, numero_concurso):


ruta_basica = os.getcwd()
for i in range(100):
ruta_relativa = os.path.join(numero_concurso, nombre_cartones[i])
ruta_abs = os.path.join(ruta_basica, ruta_relativa + ".carton")
file = open(ruta_abs, 'r')
print(file.readlines())

def retornar_cartones_de_archivos(nombre_cartones, numero_concurso):


cartones_cn_espacios = []
ruta_basica = os.getcwd()
for i in nombre_cartones:
ruta_relativa = os.path.join(numero_concurso, i)
ruta_abs = os.path.join(ruta_basica, ruta_relativa)
file = open(ruta_abs, 'r')
cartones_cn_espacios.append(file.readlines())
return cartones_cn_espacios

def quitar_espacios_cartones(cartones_cn_espacios):
for i in range(100):
for j in range(6):
cartones_cn_espacios[i][j] = cartones_cn_espacios[i]
[j].replace("\n", "")
return cartones_cn_espacios

def pasar_lista_a_nums(cartones_sn_espacios):
for i in cartones_sn_espacios:
for j in range(6):
i[j] = int(i[j])
return cartones_sn_espacios

def gen_nums_ganador():
return gen_carton()

def gen_grupo_coincidencias(cartones_en_numeros,nums_ganador):
grupo_coincidencias = []
for i in range(100):
coincidencias_carton_actual = 0
for j in range(6):
for k in range(6):
if cartones_en_numeros[i][j]==nums_ganador[k]:
coincidencias_carton_actual += 1
grupo_coincidencias.append(coincidencias_carton_actual)
return grupo_coincidencias

def contar_coincidencias(grupo_coincidencias):
coincidencias = [0,0,0,0,0,0,0]
for coincidencia in grupo_coincidencias:
match coincidencia:
case 0:
coincidencias[0] += 1
case 1:
coincidencias[1] += 1
case 2:
coincidencias[2] += 1
case 3:
coincidencias[3] += 1
case 4:
coincidencias[4] += 1
case 5:
coincidencias[5] += 1
case 6:
coincidencias[6] += 1
return coincidencias

def leer_coincidencias(coincidencias):
indice_coincidencias = 0
for i in range(6):
print("hay "+str(coincidencias[i])+" cartones con
"+str(indice_coincidencias)+" coincidencias")
indice_coincidencias +=1
if coincidencias[6]==1:
print("Tenemos un ganador del sorteo"+"\n")
else:
print("No tenemos un ganador"+"\n")

def repartir_dinero(coincidencias,monto_a_repartir):
monto_restante = monto_a_repartir
if coincidencias[0]>0:
print("Los "+str(coincidencias[0])+" cartones con 0 coincidencias
no se llevan nada"+"\n")
if coincidencias[1]>0:
print("Los "+str(coincidencias[1])+" cartones con 1 coincidencias
tienen: "+str(monto_a_repartir/100)+" pesos a repartir")
print("Por lo que cada carton con 1 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[1])+"\n")
monto_restante -= monto_a_repartir/100
if coincidencias[2]>0:
print("Los "+str(coincidencias[2])+" cartones con 2 coincidencias
tienen: "+str(monto_a_repartir*0.03)+" pesos a repartir")
print("Por lo que cada carton con 2 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[2])+"\n")
monto_restante -= monto_a_repartir*0.03
if coincidencias[3]>0:
print("Los "+str(coincidencias[3])+" cartones con 3 coincidencias
tienen: "+str(monto_a_repartir*0.05)+" pesos a repartir")
print("Por lo que cada carton con 3 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[3])+"\n")
monto_restante -= monto_a_repartir*0.05
if coincidencias[4]>0:
print("Los "+str(coincidencias[4])+" cartones con 4 coincidencias
tienen: "+str(monto_a_repartir*0.1)+" pesos a repartir")
print("Por lo que cada carton con 4 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[4])+"\n")
monto_restante -= monto_a_repartir*0.1
if coincidencias[5]>0:
print("Los "+str(coincidencias[5])+" cartones con 5 coincidencias
tienen: "+str(monto_a_repartir*0.2)+" pesos a repartir")
print("Por lo que cada carton con 5 coincidencia se llevará:
"+str(monto_a_repartir/coincidencias[5])+"\n")
monto_restante -= monto_a_repartir*0.2
if coincidencias[6]>0:
print("El ganador tiene el premio de:
"+str(monto_a_repartir*0.4)+" pesos")
monto_restante -= monto_a_repartir*0.4
print("Ademas la casa se queda con: "+str(monto_restante)+" pesos
como utilidad"+"\n")

def validar_rango_num(num,min,max):
while num>max or num<min:
num = input("Valor invalido, ingrese nuevamente: ")
return num

def menu():
eleccion = input("Que desea hacer?\n 1.-Crear un concurso\n 2.-
Sortear un concurso ya creado \n")
match eleccion:
case "1":
num_concurso = input("ingrese el numero de concurso a
iniciar:\n")
gen_archivo(num_concurso)
grupo_cartones = gen_grupo_cartones()
nombre_cartones = gen_nombres_cartones()
gen_docs_cartones(grupo_cartones, nombre_cartones,
num_concurso)
print("Cartones creados exitosamente")

case "2":
num_concurso = input("Ingrese el numero del concurso a
sortear: \n")
nums_ganador = gen_nums_ganador()
nombres_cartones = os.listdir(num_concurso)
cartones_de_archivos =
retornar_cartones_de_archivos(nombres_cartones, num_concurso)
cartones_sn_espacios =
quitar_espacios_cartones(cartones_de_archivos)
cartones_en_numeros =
pasar_lista_a_nums(cartones_sn_espacios)
coincidencias_cartones =
gen_grupo_coincidencias(cartones_en_numeros, nums_ganador)
coincidencias_acumuladas =
contar_coincidencias(coincidencias_cartones)
monto_a_repartir = int(input("cuanto dinero sera a
repartir?"))
print("Los numeros sorteados son: "+str(nums_ganador))
leer_coincidencias(coincidencias_acumuladas)
repartir_dinero(coincidencias_acumuladas,
monto_a_repartir)

menu()
P6 (captura de la consola del programa posterior al Código):

def leer_txt(nombre):
file = open(nombre+".txt",'r')
cant_lineas = contar_lineas(nombre)
for i in range(cant_lineas):
linea = str(file.readline())
print(linea+"")
print("fin.")
file.close()

def quitar_espacios(palabra):
return palabra.replace("\n,.", "")

def separar_texto_en_palabras(nombre):
file = open(nombre+".txt",'r')
lineas = file.readlines()
cant_lineas = contar_lineas(nombre)
texto_limpio = []
for i in range(cant_lineas):
palabras_en_linea_actual = lineas[i].split()
for palabra in palabras_en_linea_actual:
texto_limpio.append(palabra)
file.close()
return texto_limpio

def contar_lineas(nombre):
file = open(nombre+".txt",'r')
texto = file.readlines()
return len(texto)

def leer_contar_lineas(nombre):
print("El archivo tiene " + str(contar_lineas(nombre)) + " lineas")

def contar_palabras(nombre):
cant_palabras = 0
file = open(nombre + ".txt", 'r')
lineas = file.readlines()
for linea in lineas:
linea = str(linea)
cant_palabras += len(linea.split())
file.close()
return cant_palabras

def leer_contar_palabras(nombre):
print("El archivo tiene "+str(contar_palabras(nombre))+" palabras")

def contar_letras(nombre):
cant_letras = 0
file = open(nombre + ".txt", 'r')
lineas = file.readlines()
for linea in lineas:
linea = str(linea)
grupo_palabras = linea.split()
for i in range(len(grupo_palabras)):
cant_letras += len(grupo_palabras[i])
return cant_letras

def leer_contar_letras(nombre):
print("El texto tiene "+str(contar_letras(nombre))+" letras")

def contar_palabra_el(nombre):
palabras = separar_texto_en_palabras(nombre)
cant_repeticiones = 0
cant_repeticiones += palabras.count("el")
cant_repeticiones += palabras.count("EL")
return cant_repeticiones

ruta = str(input("ingrese el nombre del archivo de texto a examinar \n"))


leer_txt(ruta)
leer_contar_lineas(ruta)
leer_contar_palabras(ruta)
leer_contar_letras(ruta)
texto_limpio = separar_texto_en_palabras(ruta)
print("La palabra el o EL aparece "+str(contar_palabra_el(ruta))+"
veces")

También podría gustarte