UNIDAD 1,2,3,4

 PROGRAMA 1

#programa que calcula el area de un circulo

#se sabe que el area de un circulo es  π/r2

radio=5 #el numeral o gato es para poner comentarios en python

area=3.1416\

*radio**2   #pi=3.1416 r=5...aqui lo que hicimos es aplicar la formula 

            #3.1416x5^2

            # / y el slash invertido es para dar un salto de linea

            #pero solo se vera al mostrar el resultado de tu codigo

            #NO SE DEBE ESCRIBIR NADA ADELANTE del "/"

print (area)# print(nos imprime ) lo que tengamoos dentro de ()

            #help ()es funcion integrada que nos da "ayuda de algun comando" nos explica...

print(int)

print(type(radio))

print(type(area))#cuando le decimos print type area lo que le queremos decir es

                 #impreme de que tipo es la vareable area,como area es decimal

                 #el programa te dira que la variable area es de tipo float

                 #lo mismo para radio


 PROGRAMA 2

#programa que calcula el area de un circulo

#se sabe que el area de un circulo es  π/r2

radio=5 #el numeral o gato es para poner comentarios en python

area=3.1416\

*radio**2   #pi=3.1416 r=5...aqui lo que hicimos es aplicar la formula 

            #3.1416x5^2

            # / y el slash invertido es para dar un salto de linea

            #pero solo se vera al mostrar el resultado de tu codigo

            #NO SE DEBE ESCRIBIR NADA ADELANTE del "/"

print (area)# print(nos imprime ) lo que tengamoos dentro de ()

            #help ()es funcion integrada que nos da "ayuda de algun comando" nos explica...

print(int)

print(type(radio))

print(type(area))#cuando le decimos print type area lo que le queremos decir es

                 #impreme de que tipo es la vareable area,como area es decimal

                 #el programa te dira que la variable area es de tipo float

                 #lo mismo para radio


NOTA:PROGRAMA 1 Y 2 SON EL MISMO,EN ESA CLASE NO LLEVE MI LAPTOP, Y AL HABLAR 1 Y 2 DEL AREA DE UN CIRCULO...LOS JUNTE PARA NO PERDER LA SECUENCIA DE ENUMERACION

 PROGRAMA 3

#tipos de datos 

#numericos 

entero=5

flotante=5.3445334

complejo=7+5j

print("entero",entero)#lo que esta en "" es un mensaje y ,entero es mandar a hablar a mi variable entero

print("flotante",flotante)

print("complejo",complejo)

print(type(entero))#recordando,con type nos dice de que 

print(type(flotante))

print(type(complejo))

print("*****************")#separador visual

#cadenas

#literal,cadena,registro

cad1='sencilla'

cad2="doble"

cad3="""

triple

con algo mas

formato

"""

print("comilla sencilla",cad1)

print("comilla doble",cad2)

print("comilla triple",cad3)

print(type(cad1))

print(type(cad2))

print(type(cad3))\

#BOLEANOS

verdadero=True

falso=False

print("verdadero",verdadero)

print("falso",falso)

print(type(verdadero))

print(type(falso))\

#octal y hexadecimal

num_octal=oct(2005)

num_hex=0x256

print(num_octal)

print(num_hex)

print(type(num_octal))

print(type(num_hex))



 PROGRAMA 4

#operadoes arimeticos

res=0

res=5+3

print("suma 5+3=",res)

print("suma 5+3=",5+3)

print("resta 5-3=",5-3)\

#

print("negacion aritmetica",-(res))#res es 5+3 y al poner -(res) estamos negando por lo que si 5+8=8, sera-8

print("multiplicacion",8*10)

print("exponente",2**5)# 2 elevado ala 5

print("division",10/5)#10 entre 5

print("divison entera",5//3)# aqui te dara el cociente

print("residuo",5%3)#el resiudo de 5entre 3


 PROGRAMA 5

#operadores nivel Bit

num1=3

num2=2

res=num1&num2

"""

11

10

"""

print("and bit",res)

res=num1|num2

"""

11

10

---

11

"""

print("or bit",res)

print(~num1)#negacion num1

print(num2^num1)

"""

010

011

---

001

"""


 PROGRAMA 6

#DELIMITADORES

n1=3

n2=10

n3=8

n4=7

print(n1*(n2+n3)/n4-(n4**n1))

n1+=n2

print(n1)

n1*=n2

print(n1)

n1/=n3

print(n1)

n1**=n4

print(n1)

n1//=n4

print(n1)

n1%=n2

print(n1)


 PROGRAMA 7

#operadores de desplazamiento

print("3<<1:",3<<1)#desplazar ala izquierda

"""

011 empuja a la izquierda

110  queda esto

"""

print("6<<1",6<<1)

print("12<<1",12<<1)#si cambias el<<1 sera mover 2 veces ala izquierda y lo multiplicas x1

                    #te quedara 24

print("12<<2",12<<2)#ahoara desplazas el 12 2 veces y luegox2

print("48<<2",48<<2)

#ahora desplazamos ala derecha 

print(" 8>>1", 8>>1)


 PROGRAMA 8

#operadoreslogicos2

a = 10

b = 20

#aqui vemos si la variable a y b son verdaderas o falsas

#al preguntar

print("Valor de a: ", a)


print("Valor de a: ", a != b)#difernete


print("Valor de a: ", a >= b)#mayor o igual


print("Valor de a: ", a > b)#mayor


print("Valor de a: ", a <= b)#menor o igual


print("Valor de a: ", a < b)#menor que 


print("Valor de a: ", a == b)# igual igual



#relacionales

res=5==5

print(res)

print(type(res))

res2=5!=3

print(res2)

print(type(res2))



 PROGRAMA 9

#tipos de datos

n1=45 #entero

n2=21448615316864615684651

#long se refiere a numero muy largos 

n3=465.168456

n4=True

n5=False

cad='una cadena'

cad2="otra cadena"

cad3="""otra 

cadena mas"""

lista=[1,2,"algo",True,n3]

#diccionario

diccionario={23150666:"nombre_de_alguien",23150666:"nombre"}

#tuplas

tupla_fija=(1,"algo mas",56,False)


 PROGRAMA 10

#rangos de enteros para una pc de 32 bits

x=2**(31-1)

print(x)\

#rangos de enteros para una pc de 64 bits

y=2**(64-1)

print(y)\

#segun tu memoria python puede representar cualcuier numero

print(250**1000)



 PROGRAMA 11

import sys

#binario

n1=0b1000

print(n1,sys.getsizeof(n1),type(n1))

#hexadecimal

n2=0x13

print(n2,sys.getsizeof(n2),type(n2))

#octal

n3=0o71

print(n3,"    ",sys.getsizeof(n3),type(n3))


 PROGRAMA 12

import sys

x=5**1000

#print(x)

#print(59e200**2)

#print(2e2000**2)

n1=int(1.6)#saca la paorte entera de n.6, como 1.6 es float,aqui le pido que me de la parte int

print(n1)

#booleanos

print(1>0)

print(1<=0)

print(9==9)

print(bool(10))

print(bool(-10))

print(bool("algo"))

print(bool(0.2))

print(bool([]))#bool nos dice si es erdadero o falso

#flotante

f=2.10e-3 #2.10multiplicado por e-3

print(f)

n2=float(True)

print(n2)

n3=float(1)

print(n3)

nf=0.9999999999999999999999999999999999999999999999999

print("nf",nf)

print(sys.float_info.min)#los numeros minimos que soporta es 2.2250738585072014e-308

print(sys.float_info.max)#el maximo que soporta es 1.7976931348623157e+308

#por ejemplo 

f= 1.7976931348623157e+310#como aqui estas superando la cantidad,te dira que es un numero infinito

print(f)

nf2=float("inf")

print(nf2)

print("{:.20f}".format(1.0/3.0))

print(0.1+0.1+0.1-0.3)#0.3-0.3=deveria dar 0 pero no da sero da 5.551115123125783e-17


 PROGRAMA 13

#imaginarios

#compuesto de la parte real y de la imaginaria 

a=5+5j

b=1.3-7j

c=0.3j #real cero

#telecomunicaciones y electromagnetismo y corriente electrica 

print(c)

print(c.real) #flotante

print(c.imag)

print(type(c))

d=complex(3,8)

print(d)

print(a+b)

print(a*b)

print(a/b)

a=1+1j

print(a.conjugate()) #negar la parte imaginaria


 PROGRAMA 14

import cmath


print(cmath.phase(complex(5,0)))  # Fase (ángulo del vector)

print(cmath.polar(complex(5,0)))  # Coordenadas polares (módulo y ángulo)


# Cadenas inmutables

cad = "hola que tal"

print(cad)

print(type(cad))


cad1 = ''  # Cadena vacía


# Secuencias de escape

cad2 = "esto es \"realmente\" genial"

print(cad2)


cad3 = "esto es \n realmente \t genial"

print(cad3)


print("*")


# Concatenación con conversión de tipo

x = 5

s = "el número es: " + str(x)

print(s)


# Formato con %

cad = "los números son %d y %d" % (5, 10)

print(cad)


# Formato con `.format()`

cad1 = "los números son {} y {}".format(8, 13)

print(cad1)


# Formato con f-strings (corregido)

a = 12

b = 23

cad4 = f"los números son {a} y {b}"

print(cad4)


cad5 = f"a + b = {a + b}"

print(cad5)


print("")


# Concatenación de cadenas

s1 = "parte uno"

s2 = "parte dos"

print(s1 + " " + s2)


# Repetición de cadenas

s3 = "hola"

print(s3 * 4)


# Uso de `in`

print("hel" in "hola python")  # Devuelve un valor booleano


# Caracteres Unicode

print(chr(34576))  # Convierte un código Unicode a carácter

print(ord("A"))    # Convierte un carácter a código Unicode



 PROGRAMA 15

import colorama 

from colorama import Fore,init,style

init()

t=13

q=30

d=t*q

e=5

f=38

g=e*f

h=30

i=t*h

j=d+g+i

logotipo="""


  (´。•᎑•`)っ 💕


"""    


cd="|=========================================================="

print(cd)

cd1="|       26/2/2025                      No.{}{}{}{}  =".format(0,0,0,2)

print(cd1)

cd2=f"|         {logotipo}tacos la rojita{logotipo}              ="

print(cd2)

cd3="|                                           ="

print(cd3)

cd4="|      orden                Cantidad     Precio    Total      ="

print(cd4)

cd5=f"| 5 tacos de pastor       {t}           {q}       {d}        ="

print(cd5)

cd6=f"| 2 gringas               {e}            {f}       {g}        ="

print(cd6)

cd7=f"| 2 tacos de chorizo      {t}           {h}       {i}        ="

print(cd7)

cd8=f"| total                                           ${j}       ="

print(Fore.RED + cd8)

cd9="|==========================================================="

print(cd9)



 PROGRAMA 16

"""n=input ("dame un numero:")

print(n,type(n))

n1=input ("dame otro un numero:")

print(n1,type(n1))

#pedir un numero y van imprimir si es un numero 

x=input("dame un numero:")

print(x.isalpha())

#pedir 3 numeros en diferente identificador cada uno 

#los van a unir e imprimir si son numeros todos"""

x=input("dame tu primer numero:")

z=input("dame tu segundo numero:")

c=input("dame tu tercer numero:")

s=x+z+c

print(x+z+c)

print(s.isalpha())

separador='                '

palabras=["UNA ","DOS","TRES"]

cad=separador.join(palabras)

print(cad)

cadena='esto, es, un ,ejemplo'

print(cadena.split(','))

print(cadena[0]+separador+cadena[1]+separador+cadena[2])

#al poner cadena[0]imprimira la cadena pero el caracter 

#de la posicion,tienes que tu cadena tendtra un separador

#y este separador  hace el espacio en las palabras

'''entonces al imprimir cadena [0]+separador+cadena

[1] y asi sucesibamente lo que pasara es que iras separando

los caracteres que le escribas en los corchetes, si tu le pones 

que te sume todos los caracteres que tienes en la cadena

terminaras escribiendo to lo que esta en tu cadena que seria la palabra

'''


PROGRAMA 17

#is devolver verdadero si esta la referencia al objeto 

a=5

b=5

print(a is b)

print(id(a))#id

print(id(b))#id

#lista 

#a=[1,2,3]

#b=[1,2,3]

print(a==b)

print("is",a is b)

print(a!=b) #diferente

print("is not",a is not b )

#in si el elemento esta contenido en 

print(1 in b)

print(5 not in b)

print([1,2]in[4[1,2],true])

cad="hipopotamo"

#tamaño

print(led(cad))


PROGRAMA 18

#listas

lista=[]#tu lista tiene que estar vacia pues para poder llenarla por que si agregas algo a una lista que ya tiene datos 

        # por eso [] vacia

lista1=()

pide=input("dame algo para mi lista:")

lista.append(pide)# el append es como la cola,conforme van llegando es como se van a ir ordenando

                  # por ejemplo vas a pedir 4 numeros y se van a ordenar del primero que pediste al ultimo 

lista1=()

pide2=input("dame algo para mi lista:")

lista.append(pide2)

pide3=input("dame algo para mi lista:")

lista.append(pide3)

pide4=input("dame algo para mi lista:")

lista.append(pide4)

print (lista)

#ahora en el caso de agregar mas elementos

pide5=input("dame algo para mi lista:")

lista.insert(1,pide5)#con el.insert yo le digo en que posicion de la lista lo quiero

print(lista)         #ahi le estoy diciendo que pida un numero y lo guarde en la posicion 0 de mi lista

pide6=input("dame algo para mi lista:")

lista.insert(4,pide6)#aqui con .inster le digo que me lo ponga en el lugar 4 

print(lista)


"""pedir 2 nombres y los van a  agregar

juan 

daniel

cadena=juan,daniel

listacadena=['juan','daniel']

"""

n=input("dame tu primer nombre:")

n2=input("dame tu segundo nombre:")

cad=n+"  "+n2

listanombres=cad.split('   ')

lista.extend(listanombres)

print("despues extend",lista)



PROGRAMA 19

#listas 

estudiantes=["juan",[10,8,9,4],"pedro",[7,8,7,9]]

estudiantes[0]="luis"

print(estudiantes[1][3])

"""

como tenemos una sublista de una lista

como queremos cambiar un valor de esa sublista

por ejemplo:cambiar el 4 por otro numero

como el 4 esta en la posicion 1 de la lista [1]

y de ahi esta en la posiscion 3 seria:

[1][3]

"""

estudiantes[1][3]=7

print(estudiantes)

"""

como queriamos cambiar el 4 por 7 y el 4 esta en 

[1][3]

solo le decimos que ahora :

[1][3]=7

"""

print(len(estudiantes))

#cuantos 7 hay en la lista?

n=estudiantes[1].count(7)+estudiantes[3].count(7) #con .count(x) es para contar

print("la cantidad de 7 son:",n)       

estudiantes[1][3]=[8,7,9,10]#aqui agregaremos una "sub lista de la sublista          

print(estudiantes)

est.pop()

print(est)

est.reverse()

print(est)

print(help(list))#ayuda integradaest[1][3]=[7,7,8]

print(est)

est.pop()

print(est)

est.reverse()

print(est)

print(help(list))#ayuda integrada




PROGRAMA 20

#SET

'''

al poner set lo que quiero conseguir 

es que nadie pueda mover 

mis datos

'''

s=set([7,8,4,6,1])

print(s,type(s))

s1={3,4,9,7}

print(s1,type(s1))

print(len(s1))#longitud de s1

print(s|s1)#los agrupa en orden (solo elementos unicos)

print(s&s1)

print(s^s1)

s.add(10)#aqui le AGREGAMOS el 10 a la lista

print(s)

s.discard(10) #aqui le DESCARTAMOS el 10

print(s)

s.pop()

s.clear()

print(s)

s2={3,5,4,6,7}

print(s1.intersection(s2))

print(s1.union(s2))

print(help(set))



PROGRAMA 21

#tuplas

tupla=(1,2,3)

print(tupla,type(tupla))

tup=4,5,6

print(tup,type(tup))

#inmutables

#up[1]=8

tu=1,2,3,(5,6,7),9

print(tu)

t=1,2,('a','b','c'),8

print(t[2][2])

unalista=[7,8,9]

print (unalista,type(unalista))

unatup=tuple(unalista)

print(unatup,type(unatup))

otratup=(2,)

print(help(tupla))


PROGRAMA 22

#diccionario

dic={100:"erick",101:"tocallo"}

dicest={'nombre':'erick','edad':19,'materias':

['visual','diferenciales','circuitos']}

print(dicest['nombre'])

print(dicest['edad'])

print(dicest['materias'])

print(dicest['materias'][2])

#pograma que capture 3 datos

#convierta en diccionario

#inmprimen el diccionario

# Capturar tres valores

s = input('Dame tu primer valor: ')

s1 = input('Dame tu segundo valor: ')

s2 = input('Dame tu tercer valor: ')


# Crear el diccionario con las claves y sus valores

d1c = {'primer_valor': s, 'segundo_valor': s1, 'tercer_valor': s2}


# Imprimir el diccionario

print(d1c)

#

dic2=dict(zip('abcd',[1,2,3,4]))#aqui es asignarle a a,b,c,d los valores que estan en corchetes

print(dic2)

dic3={'a':1,'b':2,'c':3,'d':4}

elem=dic3.items()

print(elem)

llaves=dic3.keys()

print(llaves)

dicpru.clear()

dicpru=dicest.copy()

print('copiadoo',dicpru)

dic4=dict.fromkeys(['a','b','c','d'],1)

print('fromkeys',dic4)

val=dic4.get('c')

var=dic4.pop('d')

print('borrado',dic4)

var1=dic4.setdefault('a')


var2=dic4.setdefault('b',9)#agrega

print('agregar e',dic4)

dic_1={'a':9,'b':12,'c':7}

dic_2={'c':9,'e':12,'a':7}

dic_1.update(dic_2)

print(dic_1)


PROGRAMA 23

#captura 3 datos con input

#convertir a un diccionario

d1=input("ingresa dato1:")

d2=input("ingresa dato2:")

d3=input("ingresa dato3:")

dic=dict(dato1=d1,dato2=d2,dato3=d3)

print(dic)

#dic2 con zip

dic2=dict(zip(['dato1','dato2','dato3'],[d1,d2,d3]))#otra manera de hacer un diccionario

print(dic2)

'''otra manera de hacer un diccionario es crear tu lista vacia 

lis=[]

y ahi gregarle los datos o mad bien las input con el .append

por que lo que hace el .append e formarlos , como una especie de cola

y ya al final hacer nuestro diccionario,con esas listas

'''

lis=[]

lis1=[]

lis.append('dato1:')

lis.append('dato2:')

lis.append('dato3:')

print(lis)

lis1.extend([d1,d2,d3])

print(lis1)

dic3=dict(zip(lis,lis1))

print(dic3)

dic4=dict.fromkeys(lis1)

'''

el .fromkeys hace un diccionarios con valores

predeterminados, o puede agregarle el valor que quieras a 

todos esos valores, por decir si tengo d1,d2,d3 y yo con input

le agregue valores al azar

con fromkeys le digo que en lugar de ser al azar,d1,d2,d3

todos tengan el valo que le dije

'''

dic4['dato1']=d1

dic4['dato2']=d2

dic4['dato3']=d3

print(dic4)



PROGRAMA 24

desanimados=[]

desanimados.append(71104)#agrega ala lista, posicion 0

desanimados.insert(0,10)#inserta en la posicion 0 el 10

lentes=[]

lentes.append(7)

lentes.append(5)

desanimados.insert(1,lentes)

'''

aqui creamos 2 listas las hicimos primero vacio

y con .append agregamos los datos en forma de cola 

0=7

1=5

pero como queremos una sublista "lentes"

y esa sub litsa este en lugar de el 5 y que ahora 

0=7

1=sublista lentes y sus datos

2=5

'''

print (desanimados)

print (lentes)

desanimados.pop(1)#elimina en la lista "desanimados" el elemento en posicion 1

print (desanimados)

'''

como en la posicion 1 tenia la sub lista

elimine la sublista de la lista de desanimados

'''

UNIDAD 3

programa 1

'''

ESTRUCTURAS DE CONTROL:

if else

while

for

dowhile

'''

edad=20

anuncio=" ya estas viejito"

#if palabra reserbada 'si'condicional: identacion

if edad>18:

print(anuncio)

print("ya sacaste la cartilla militar papa?")

print("hellow sherloms homs")

#else:# palabra reservada else y : identacion


dinero=int(input('cuanto ganas apa?'))

if dinero<=1000:

 print('tienes algo de dinero')

 print('no tienes mas?')

 print('ponte a chambear')

else:

print('woow, no eres tan pobre')


programa 2



#estructuras de control

dinero=float(input('cuanto tienes en tu cuenta bancaria'))

if dinero>=5000:print('bueno ya algo es algo');print('para la proxima no gastes tanto')


programa 3


#ifelse

n=float(input('dame tus digitos'))

if n==3:

print('primer digito')

elif n==2:# Se utiliza para comprobar condiciones adicionales después de que la condición if inicial se evalúa como falsa.

 print('segundo')

elif n==4:

 print('tercero')

else:print('estoy dentro del else')



programa 4

#ifelse

n=float(input('dame tus digitos'))

if n==3:

print('primer digito')

elif n==2:# Se utiliza para comprobar condiciones adicionales después de que la condición if inicial se evalúa como falsa.

 print('segundo')

elif n==4:

 print('tercero')

else:print('estoy dentro del else')


programa 5

'''pedir edad,clasificacion en no nato <1,bb <>3,

niñero 4 <>12,adolecente 13<>17,adulto 18<>25,

tercera edad 66 en adelante 

'''

edad=int(input('dame tu edad y te dire que eres:'))#varieble edad,para evaluar

if edad < 1:                                        #evaluamos

   print('eres un bebe')

elif edad <=3:

    print('eres un bebe todavia')

elif edad <=12:

print('eres un niño')

elif edad <=17:

print('eres un puberto')

elif edad <=65:

print('ya no estas tan pequeño eee')

else:

  print('como pasa la vidad veda')

  



programa 6

#ternarios

#son para atrapar errores

a=5

print("si soy uno" if a==1 else "no soy uno")

"""con esto decimos que a=5 y en el print se hace la pregunta

si soy uno si a==1 si a es !=1 te imprimira no soy uno 

#codigo que se cumple if condicion else codigo que no se cumple

ese es el orden de como se escribe 

"""



programa 7

variable1=int(input("dame tu numero"))

variable2=int(input("dame tu otro numero numero"))

variable3= variable1/variable2 if variable2 !=0 else -1

print(variable3)

#te imprimira un .0 un residuo...si no quieres residuo divide con //

#2 diagonales

variable3= variable1//variable2 if variable2 !=0 else -1

print(variable3)

#ponindo 2 diagonales te dara el entero y NO el residuo


programa 8

#programa que captura solo numeros sin el int del input

var=input("dame tus numero")

var.isdigit()#con sidigit remplazamos a int(entero)


print("si es entero" if var.isdigit else "no es un numero")


programa 9

#pedir la edad, la clasificacion en no nato <1,bb<>3,niño 4<>12,adolecente 13<>17


# Pedir la edad

edad = input("Dame tu edad: ")


# Verificar si la entrada es un número

ed= edad.isdigit()


# Imprimir si es un número o no

print("sí" if ed else "no")



programa 10

#pedir la edad, la clasificacion en no nato <1,bb<>3,niño 4<>12,adolecente 13<>17


# Pedir la edad

edad = input("Dame tu edad: ")


# Verificar si la entrada es un número

ed= edad.isdigit()


# Imprimir si es un número o no

print("sí" if ed else "no")


# Si es un número, convertirlo a entero y clasificarlo, si no, mostrar mensaje de error

print(

    "No nato" if int(edad) < 1 else

    "Bebé" if 1 <= int(edad) <= 3 else

    "Niño" if 4 <= int(edad) <= 12 else

    "Adolescente" if 13 <= int(edad) <= 17 else

    "Adulto" if 18 <= int(edad) <= 65 else

    "Tercera edad" if es_numero else

    "No me diste una edad válida"

) if ed else print("No me diste una edad válida")



programa 11

var=input("dame un valor")

print("pos1",var[0],"pos2",var[1])


try:

edad=int(input("dame tu edad "))

print(edad)

except:

print("no es una edad")




programa 12

"""

while mientras la condicion sea verdadera,

cuando la condicion sea falsa se detiene

"""

x=10

while x>1:

x-=1

print(x)


programa 13

#Tenemos la variable z que será nuestro contador, para que el while 

#se ejecute "z" tiene que ser mayor que cero y dentro del while se 

#imprimirán operaciones realizadas con las varaibles "z" y "x" dentro

#del while se decrementará la variable "z"

z=7

x=1

while z>0:#Condición de inicio de while

print(z*x+z)#Operaciones que se realizarán

x+=2

z-=1


programa 14

usuario = "erick"

clave = "181222"

x = 3


while x > 0:

    pedir_usuario = input("Dame tu usuario: ")

    x -= 1

    print("Intentos restantes:", x)  # Mensaje para depuración


    if pedir_usuario == usuario:

        pclave = input("ingrese su contraseña: ")

        

        if pclave == clave:

            print("bienvenido")

            x=0 # agota los intentos, por lo cual termina el bucle

            break #Sale del bucle termina

        else:

            print("Contraseña incorrecta")

    else:

        print("Usuario incorrecto")


if x == 0:

    print("Has agotado todos tus intento Acceso denegado")


programa 15

x=5

while x<0:

print(x) # nunca entra al bucle por que 5>0


while x>10:

print("aqui tampopco funciona") # no funciona porque x=5 y mientras x>10 entra al bucle


while x>4:

print("aqui si funciona porque x=5 y aqui x>4  para entrar al bucle") #pero se repite infinitamente asi que restale 1

x-=1


while True:

numero=int(input(("dame un numero")))

if numero ==1:

print("adivinaste eres el ganador ")

break

elif numero>=2 and numero<=3:

print('ya casi')

elif numero>=4 and numero<=8:

print(" estas muy  lejos")

else:

print("no papa ya no le diste,ahi para la proxima")

break


programa 16

c=1

temporal=0

while c:

if temporal<3: #con este programa jugamos al "frio,caliente"

numero=int(input(("dame un numero")))

print("adivinaste eres el ganador ")

elif numero>=2 and numero<=3:

print('ya casi')

elif numero>=4 and numero<=8:

print(" estas muy  lejos")

else:

print("no papa ya no le diste,ahi para la proxima")

temporal+=1



programa 17

us = 'erick'  # Usuario correcto

psw = 1234    # Contraseña correcta

c = 1         # Contador de intentos

dentro = 1    # Controla el ciclo while principal


while dentro:  # Bucle principal

    pus = input("Dame tu usuario: ")  # Pide el usuario

    print("pus es:", pus)


    while us == pus:  # Si el usuario es correcto, entra en este bucle

        if c <= 3:  # Permite hasta 3 intentos de contraseña

            try:

                ppsw = int(input("Dame lpassword: "))  # Pide la contraseña

                print("si psw")  

            except:

                print("No es correcto") 

                c += 1  

        else:

            break  # Si se superan los 3 intentos, sale del bucle interno


    print("estoy en el primer while")  


programa 18

#else y while

x=5

while x>0:

x-=1

print(x)

else:

print("fin del whilo")


x=5

while True:

x-=1

print(x)

if x==0:

break

else:print("fin")

print(end="\n")


#permutaciones

j=0

i=0

while i<3:

while j<3:

print("[",i,j,"]",end="\n")

j+=1 #tiene que ir identado pues pertemece al while de j

i+=1 #tambien identado pero de manera que 

     #pertenezca ala identacion del while de i

j=0

print(end="\n")


i,j,k=0,0,0

while i<3:

while j<3:

while k<3:

print("{",i,j,k,"}",end="\n")

k+=1

j+=1

k+=0

print(' ')

i+=1

j=0


programa 19

cz = 7  # Base más grande (altura del triángulo)

x = 1   # Cantidad inicial de asteriscos en la primera línea

z = cz 


while z > 0:  # Mientras 

    print(' ' * z + '*' * x + ' ' * z)  # Imprime espacios + asteriscos + espacios

    x += 2  # Aumenta la cantidad de asteriscos en 2 (para hacer un triángulo)

    z -= 1  # Disminuye los espacios a la izquierda para centrar la figura


programa 20

#pedir el tamaño de la matriz,debe ser cuadrada

'''

es un mecanismo que le permite a los programadores manejar

las excepciones en Python de una manera controlada.

Las excepciones son eventos inesperados que pueden 

ocurrir durante la ejecución de un programa 

y que pueden causar que este se detenga abruptamente.

'''

try:

tam=int(input("de que tamaño quieres la matriz?:"))

if tam%2!=0:

print("impar")

i,j,=0,0

while i<tam:

while j<tam:

#print(i,j,end=' ')

if j==0 or j==0 or i==tam-1 or j==-1:

print('*',end=' ')

else:print(' ',end=" ")

j+=1

i+=1

print(' ')

j=0

else:

print("par")

except:

print ('no me diste numero')


Programa 21

try:

tam=int(input("de que tamaño?"))

i,j=0,0

while i<tam:

while j<tam:

print(i,j,end=" ")

j+=1

print(" ")

i+=1

except:

print("no me diste numero")


Programa 22

a, b = 0, 1  # Inicializa los primeros dos números de la serie de Fibonacci


while b < 1000:  # Mientras b sea menor que 1000

    print(b, end=",")  # Imprime el número actual de la serie, separado por comas

    a, b = b, a + b  # Actualiza los valores: a toma el valor de b, y b se convierte en la suma de ambos


Programa 23

#for

secuencia=["maria","tenia","un","corderito"]

print(secuencia)

for i in secuencia:

print(i)

print("**********************")

"""

aqui con el for para i i= indice (numero de posicion)

al pedirle que imprima i osea cada posicion de la lista

nos lo  imprime 

0= maria

1=tenia

2=un

3=corderito

"""

for j in secuencia[:]:#aqui se cicla si no se especifica "[:]"

print(j,len(j))#nos dice cuantos caracteres tiene 

if len(j)==5:

secuencia.insert(0,"mary had")

print(secuencia)


Programa 24

#for

secuencia=["maria","tenia","un","corderito"]

print(secuencia)

for i in secuencia:

print(i)

#rangos 

print(range(5))#rango de 0-5

for i in range (5):

print(i)

print("\n")

for a in range(len(secuencia)):

print(a,secuencia[a])

print("\n")

print(list(enumerate(secuencia)))

print(tuple(enumerate(secuencia)))

print(dict(enumerate(secuencia)))

print("\n")



Programa 25

#rango a detelle *

for i in (0,1,2,3,4,5):

print(i)

for i in range (6):#si tu pones un rango de 6, te imprime 5 

print(i)       #por que te pone 6-1= 5 ten en connsideracion que el final del rango es -1      

print("\n")

#rango (inicio,fin,salto)

print(list(range(5,30,3)))

print("\n")

for i in range(5,0,-2):#aquiira de -2 en -2 hasta 0 bueno 1 por que con rango es -1

print(i)


Programa 26

#imprime numeros pares e impares en un rango de 2 a 20 

for i in range(2,21):

if i%2==0:

print(i,"par")

else:

print(i,"impar")

print("\n")


Programa 27

import datetime

while True :

try:

fecha=input("que dia es hoy?")

fecha=datetime.datetime.strptime(fecha,"%d-%m-%Y")#para evitar confusiones y escribelo Y

break# aqui te da lla fecha que ingresaste 

except:

print(" no es una fecha")

print(fecha)

print(datetime.datetime.now())#aqui te da la fecha en este momento


Programa 28

import datetime

while True :

try:

fecha=input("cuando naciste?")

fecha=datetime.datetime.strptime(fecha,"%d-%m-%Y")#para evitar confusiones y escribelo Y

break# aqui te da lla fecha que ingresaste 

except:

print(" no es una fecha")

print(fecha)

print(datetime.datetime.now())#aqui te da la fecha en este momento

print(fecha-datetime.datetime.now())


Programa 29

#funciones

def saludo():#palabra reservada , nombre de la variable,()parametro

#argumento:separador

print("hi sis")

print("dentro de la funcion")

print("????")

saludo()

"""

Definir la función (saludo())


En Python, usamos def para decir: "Voy a crear una función".


saludo() es el nombre de la función.


Dentro de la función, hay dos print(), que imprimirán mensajes cuando la función sea usada.


Pero hasta ahora, solo hemos escrito la receta, no la hemos usado.


Imprimir "????"


Como este print("????") está fuera de la función, se ejecuta de inmediato.


Llamar a la función saludo()


Cuando escribimos saludo(), le decimos a Python: "Usa la receta que escribimos antes".


Python entra a la función y ejecuta sus print().


Orden en el que se imprimen las cosas:


Primero "????" porque está fuera de la función.


Luego "hi sis" porque está dentro de saludo().


Finalmente "dentro de la funcion", porque es el siguiente print() dentro de saludo()

"""

Programa 30

def cuadrado(x):

print(x*x)

cuadrado(4)


Programa 31

def mult(x):

    for i in range(1, 11):  # Multiplica del 1 al 10

        print(x, "*", i, "=", x * i)


c = 1

while c:

    try:

        val = int(input("Dame un número: "))  # Pide el número

        mult(val)

        c = 0  # Sale del bucle

    except ValueError:

        print("no se puede multiplicar")


Programa 32

def mult(x,y=1):

print(x*y)

mult(4)

mult(4,5)



Programa 33

def multiplo(*args):

print(args)

multiplo(1,2,3,4,5)

c=0

while c:

sumando=c+i

print(sumando)

brake


Programa 34

def suma(*num): 

    print(type(num))  

    t = 0  # Acumulador para la suma


    for i in num: 

        print(i)  

        t += i  # Suma al total


    return t  # Devuelve la suma total


tot = suma(5, 654, 6, 24)  

print("la suma total es:", tot)  # Imprime la suma de esos numeros


Programa 35

"""def argumentos(*varios):

lista=list(varios)

c=1

while c:

try:

vu=int(input("dame un valor:"))

for i in range(len(lista)):

lista=[i]=

print(i)

return varios

except:

print("no es un numero")

v=argumentos(1,2,5,6,8484,65461,368468,318343)

print(v)

"""

print(end="\n")

def argumentos(*varios):

    lista = list(varios)  # Convertimos los argumentos en una lista

    

    while True:  # Bucle infinito hasta que el usuario ingrese un número válido

        try:

            vu = int(input("Dame un valor: "))  # Pedimos un número al usuario

            

            for i in range(len(lista)):  

                lista[i] = lista[i] + vu  # Sumamos el número ingresado a cada elemento de la lista

            

            return lista  # Retornamos la lista modificada

        except ValueError:

            print("No es un número")  # Mensaje de error y vuelve a pedir el número


# Llamamos a la función con algunos números

v = argumentos(1, 2, 5, 6, 8484, 65461, 368468, 318343)

print(v)


Programa 36

#sprograma que pida peso y estatura 

#determinen en una funcion imc

#regresen el valor y lo imprimen


def imc():

c=1

while c:

try:

pe=float(input("Escribe tu peso: "))

al=float(input("Escribe tu altura: "))

w=pe/(al*al)

c=0

except:

print("Algo fallo")

return w

limc=imc()

print(limc)



Programa 37

"""

diccionario

pedir al usuario cuantos llaves quiere

cada llave tiene un valor numerico


a cada lave preguntar cuantos valores quiere 

capturar, asignar

llave 1 que quiere 3 valores

1 valor lara

2 valor coral

2 valor sara


diccionario 1:[lara,coral,sara]


"""

print("")


def tllave():

c=1

while c:

try:

tolla=int(input("Dame cuantas llaves quieres? "))

print(tolla)

c=0

except:

print("Algo salio mal ")

return tolla

def capvalores(mllave):

mllave=tllave

print(mllave)


Programa 38

diccionario = {}


# Pedir al usuario cuantas llaves quiere

num_llaves = int(input("Cuántas llaves quieres? "))


# Recorrer la cantidad de llaves

for i in range(1, num_llaves + 1):

    valores = []  # Lista para los valores de cada llave

    num_valores = int(input(f"¿Cuantos valores quieres para la llave {i}? "))

    

    # Capturar los valores

    for j in range(num_valores):

        valor = input(f"Valor {j + 1} para la llave {i}: ")

        valores.append(valor)

    

    # Asignar la lista de valores a la llave en el diccionario

    diccionario[i] = valores


print("\nDiccionario final:")

print(diccionario)


Programa 39

def si_suma(a,b):

return a+b

print(si_suma(6,8))


Programa 40

def multi(num:int)->int:

return num*3.2

print(multi(6))



Programa 41

x = [1, 2, 3, 4, 5, 6]  # Creamos una lista


def funcion(entrada):  #  Definimos una función que recibe una lista 

    entrada.append(4)  #  Agregamos el número 4 al final de la lista


funcion(x)  # Llamamos la función pasando 


print(x)  


Programa 42

x=[1,2,3,4,5,6]

def funcion(entrada):

entrada=[]

print("entrada",entrada)

funcion(x)

print(x)


Programa 43

x=10

print(id(x))

def funcion(entrada):

entrada=0

print(id(entrada))

funcion(x)


Programa 44

x=[1,2,3,4,5]

print(id(x))

def funcion(entrada):

entrada.append(6)

print(id(entrada))

funcion(x)


Programa 45

def funcion(a,b,*arg,**args):

print("a=",a)

print("b=",b)

for arg in args:

print("args=",arg)

for key,value in  args,items():

print(key,"=",value)

funcion(10,20,30,40,x="holi",y="hey",z="tu")


Programa 46

def funcion(a,b,*arg,**args):

print("a=",a)

print("b=",b)

for arg in args:

print("args=",arg)

for key,value in  args,items():

print(key,"=",value)

funcion(10,20,30,40,x="holi",y="hey",z="tu")


Programa 47

def funcionar(a, b, *args, **kwargs):  

    print("a =", a)

    print("b =", b)

    

    for arg in args:

        print("args =", arg)

    

    for key, value in kwargs.items(): 

        print(key, "=", value)


args = (1, 2, 3, 4)  # Tupla de argumentos posicionales

kwargs = {"x": "hola", "y": "tu", "z": "hey"}  # Diccionario de argumentos con nombre


funcionar(10, 20, *args, **kwargs) 


Programa 48

def funcionar(a,b,*args,kwargs):

print("a= ",a)

print("b=",b)

for arg in args:

print("args=",arg)

for key,value in kwargs.item():

print(key,"=",value)

lista=(1,2,3,4)

dicc={'x':"hola",'y':"tu",'z':"hey"}

funcionar(10,20,args,*kwargs)


"""

Crear una función llamada funcionar que:


Reciba dos argumentos normales (a y b)


Reciba una cantidad variable de argumentos posicionales extra (*args)


Reciba una cantidad variable de argumentos con nombre (**kwargs)


Luego:


Imprime a y b


Recorre e imprime los valores de *args


Recorre e imprime los pares clave-valor de **kwargs

"""

Programa 49

"""

tarea:

hacer una lista de calificaciones

pedir al usuario numero de estudiantes

hacer un no.de control consecutivo

con el numero de control van a asignar 3 calificaciones por estudiante

en otro diccionario copian lo anterior  y agregan el promedio

"""

num_estudiantes = int(input("Ingrese el número de estudiantes: "))

calificaciones = {}

promedios = {}

for i in range(1, num_estudiantes + 1):

num_control = f"23150{i:03}"  

print(f"Ingresando datos para {num_control}")

notas = []

for j in range(3):

nota = int(input(f"Ingrese la calificación {j + 1} para {num_control}: "))

notas.append(nota)

calificaciones[num_control] = nota

promedio = sum(notas) / len(notas)

promedios[num_control] = {"Calificaciones": notas, "Promedio": promedio}

print("\nLista de calificaciones y promedios:")

for num_control, datos in promedios.items():

print(f"{num_control}: {datos}")


Programa 50

def suma(a:'parametro1',b:'parametro2')->'retorno':

return a+b

print(suma.__anottation__)

"""

Define una función llamada suma con anotaciones de tipo personalizadas.


Luego imprime el contenido de __annotations__, 

que es un diccionario con esas anotaciones.

"""

Programa 51

class claseuno:  # Se define una clase vacia llamada 'claseuno'

    pass


def funcion(a: claseuno) -> claseuno:  # anota que 'a' debe ser de tipo 'claseuno' y que la función devuelve un 'claseuno'

    return a  

a = claseuno  # Aquí estás asignando la CLASE a la variable 'a'


funcion(a)  #Llamas a la función pasando 'a', que en realidad es la clase, no un objeto


Programa 52

def pares(sal: 'lis' = []) -> 'list':  

    return [i for i in sal if i % 2 == 0]  # Devuelve una lista con solo los números pares


    print(pares([1,2,3,5,4,9,6,8]))  # 


Programa 53


#lo usamos como biblioteca

def suma(a,b):

return a+b


def restar(a,b):

return a-b


Programa 54

import u3p53

print(u3p53.suma(10,80))

print(u3p53.restar(10,80))

"""

aqui importamos el pograma 53, lo utilizamos

y como ese programa es de sumar y restar a y b

aqui asignamos a y b

"""


Programa 55

implis=[(x,y)for x in [1,2,3]for y in[3,1,4]if x!=0]

print(implis)

#hacer tabla de multiplicar con intermezzo

#tabla del 8

tablis1=[3*i for i in range(1,11)]

print(tablis1)


Programa 56

def fun(jamon:str,huevos:str='huevos')->str:

print("anotacion:",fun.__annotations__)

print("argumentos:",jamon,huevos)

return(jamon+' y'+huevos)

fun('carne')

UNIDAD 4 

PROGRAMA 1
#intermezzo
li=[(x,y)for x in [1,2,3,4]for y in [3,1,4]if x!=y]
print(li)
"""
con este programa solo vamos a cambiar x,y
por los valores que tenemos en las listas, con un for
si x es diferente de y entonces los imprime
"""

PROGRAMA 2
#funciones lambda
def suma(a,b):
return a+b
#lambda a,b:a+b
s=lambda a,b:a+b
print(s(2,5))  
"""con lambda es una
manera de sustituir la escritura de funciones
en lugar de poner
def nombre():
asignas variable  a la funcion
x=lambda "":""
 lo que hace:return


PROGRAMA 3
def otro(lambda_funcion):
return lambda_funcion(2,4)
print(otro(lambda a,b:a+b))
"""
en este programa tambien demostramos que 
lambda no solo es una funcion...si no que 
tambien podemos puede ir denfto de def...
que es una funcion
"""

PROGRAMA 4
# Listas para guardar los datos por separado
nombre = []      # Aqui se guarda el nombre
Apaterno = []    # Aqui el apellido paterno
Amaterno = []    # Aqui el apellido materno

# Lista de vocales en minusculas
vocales = ['a', 'e', 'i', 'o', 'u']

# Funcion para contar cuantas vocales hay en un texto
def contar_vocales(texto):
    return sum(1 for letra in texto if letra in vocales)  # Cuenta cada letra que sea vocal

# Funcion principal para pedir los nombres
def capturar_nombres():
    while True:  # Bucle que se repite hasta que los datos sean correctos
        try:
            # Pedimos los datos al usuario
            n = input("Dame tu nombre: ").strip().lower()     # .strip() quita espacios extras, .lower() convierte a minusculas
            ap = input("Dame tu apellido paterno: ").strip().lower()
            am = input("Dame tu apellido materno: ").strip().lower()

            # Validamos que solo haya letras (no numeros ni simbolos)
            if not (n.isalpha() and ap.isalpha() and am.isalpha()):
                print("Por favor solo usa letras, sin numeros ni simbolos.")
                continue  # Si hay error, vuelve a pedir los datos

            # Si todo esta bien, guardamos en las listas
            nombre.append(n)
            Apaterno.append(ap)
            Amaterno.append(am)

            # Mostramos el nombre completo
            print("\nNombre completo capturado:")
            print(f"{n} {ap} {am}")

            # Contamos y mostramos cuantas vocales tiene cada parte
            print("\nCantidad de vocales:")
            print(f"Nombre     ({n}): {contar_vocales(n)} vocales")
            print(f"Apellido P ({ap}): {contar_vocales(ap)} vocales")
            print(f"Apellido M ({am}): {contar_vocales(am)} vocales")

            break  # Salimos del bucle porque ya se capturo correctamente
        except:
            # Si algo sale mal, mostramos un mensaje
            print("error, intenta de nuevo.")

# Llamamos a la funcion para empezar
capturar_nombres()

PROGRAMA 5
import time
hora=time.time()
local=time.localtime(hora)
h=local.tm_hour
m=local.tm_min
s=local.tm_sec
print(f"{h}:{m}:{s}")
"""
programa que hicimos para ver el tiempo
jsjsj lo hicimos para ver que tan desfasados lo tenemos
"""

PROGRAMA 6
#archivo=open("")
C,"r")#r es modo de lectura
contiene=archivo.read()#leera todo el docomento
print(contiene)
archivo.close()
#es importante cerrar el archivo

PROGRAMA 7
b=True 
while(b):
nom=input("dame nombre de archivo:")
if nom.isalpha():
b=False
noma=nom+".txt"
print(noma)
archivo=open(noma,"a+")#abrir archivo
contenido=archivo.tell()
print("Tell",Final)
atchivo.write('\n****linea y ya ****')
archivo.seek(Final)
nuevo=archivo.read()
print(nuevo)
archivo.close#cierra el archivo
"""
en este programa abrimos un archivo txt.
y desde aqui lo leemos y escribimos en el 
para posteriormente nos diga como quedo su contenido 

PROGRAMA 8
#programa que abre un archivo de texto
#y te lee lo que tienes dentro

try:
b=True 
while(b):
nom=input("dame nombre de archivo:")
if nom.isalpha():
b=False
noma=nom+".txt"
print(noma)
archivo=open(noma,"a+")
contenido=archivo.read()
final=archivo.tell()
print("Tell",final)
archivo.write(input('que bas a escribir?:'))
archivo.seek(final)
nuevo=archivo.read()
print(nuevo)
archivo.close
except:
print("ups")
"""
otra manera de hacer el programa 7
con un try except
"""


PROGRAMA 9
"""
tienes un archivo llamado "poemea"
con este programa agregaras texto
a tu poema,tu programa te deve de pedir 
cuantas lineas vas a escribr y si te falta
preguntara de nuevo, asi hasta que termines 
tu poema
"""
archivo=open("poema.txt")
while True:
try: numero_de_lineas=int(input("cuantas lineas vas a escribrir?"))
except:
print("????")
archivo.close


PROGRAMA 10
arch=open("u4p6.py","r")# abrimos este programa
cont=arch.read()#lee el archivo
nom=arch.name
modo=arch.mode
enc=arch.encoding
print(nom)
print("modo",modo) # modo en este caso r de read
print("contenido:",cont)
print("codificacion:",enc)
arch.close()
if arch.closed:          #if para comprobar
print("cerrado correcto")
else:
print("sigue abierto")

PROGRAMA 11
with open("u4p10.py","r") as archivo:
con=archivo.read()
print(con)
print(archivo.close)
"""
una manera de abrir un archivo, y mas facil
sin el .close
es mejor con with open
"""


PROGRAMA 12
import glob #importamos libreria
lista=glob.glob("*.py")
for i in lista:
print (i)
"""
con este ,estamos haciendo una
lista que contenga tooooodos
las terminaciones .py
osea todos los programas que tenemos
entonces nos impreme i que i es todos los 
programas que tengo"""

PROGRAMA 13
import os
ar=os.listdir(r'C:\Users\erock\Documents\Programacion Visual')#direccion en la que estoy trabajando
print(os.getcwd())
print(os.curdir)
print(ar)#nos imprime todo los archivos en la direcion

PROGRAMA 14
#lista = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo']
nosale=[]                                #lisa vacia donde se guardaran los datos
tl = int(input('Dame tamaño de lista: '))#varieble input,para guardar datos
for b in range(tl):                      
dato=input("dame dato:")             #se piden tantos datos como yo le indique en mi variable anterior
nosale.append(dato)                  #lo guardamos en la lista
tam = len(nosale)                        #nos da el tamaño de los datos que esta en la lista
nom=input("dame nombre de archivo")      #le damos el nombre
nom=nom+'.txt'                           #lo crea como .txt
alias = open(nom, 'w')                   #lo abre y escribe
for linea in range(tam):
    print(linea)
    alias.write(nosale[linea]+"\n")      #se escribe cada linea 
alias.close()
ali = open(nom, 'r')                     #se abre el archivo pero ahora solo para leer
c = ali.read()
print(c)
ali.close()
"""
"""

PROGRAMA 15
from matplotlib import pyplot as plt
plt.plot([1,2,3],[4,5,6])
plt.show()
"""
con este programa utilizamos 
una libreria de python
y nos da una grafica
plt.show...es mostrar la grafica
"""

PROGRAMA 16
import numpy as np
import matplotlib.pylab as plt #importa las librerias
x=np.linspace(-1,1,50)    #Crea un conjunto de 50 valores entre -1 y 1 (el eje X).        
y1=2*x                 #funcion lineal
y2=2*(x)**2+1          #funcion cuadratica
y3=2*(x)**3-2          #funcion cubica
plt.figure(num="grafico de funciones lineales") #le pondemos nombre,titulo a nuestra clase
plt.plot(x,y1)        #grafica 1
plt.plot(x,y2)        #grafica 2
plt.plot(x,y3)        #grafica 3
plt.show()            #muestra las 3 graficas


PROGRAMA 17
import matplotlib.pyplot as plt
import numpy as np
a = np.linspace(0, 20, 50) #np.linspace(0, 20, 50): genera 50 puntos entre 0 y 20.
b = np.sin(a)              #np.sin(a): aplica la función seno a cada punto por que es sen("a")
plt.plot(a, b, '--k', linewidth=2) #te muestra la grafica punetada "--k"
plt.show()                 #plt.show(): muestra la gráfica.




PROGRAMA 18
import numpy as np               # Para usar numeros de manera facil
import matplotlib.pyplot as plt  # Para hacer graficos

li = []        # Lista vacia donde vamos a guardar todo
subli = []     # Lista temporal donde pondremos los datos por fila
dato = 0       # Aqui guardaremos los numeros que pida

try:
    for x in range(3):             # Vamos a pedir 3 filas de datos
        for i in range(3):         # Cada fila tendra 3 datos
            dato = input("dame dato:  ")  # Pedimos un dato (lo guardamos como texto)
            subli.append(dato)            # Guardamos ese dato en la fila
        li.append(subli)       # Cuando la fila esta llena, la guardamos en la lista general
        subli = []             # Limpiamos la fila para que este lista para la siguiente

    print(li)  # Mostramos como quedo la lista con los textos

    tmp = 0
    stmp = []  # Lista para guardar los numeros de cada fila
    ltmp = []  # Lista para guardar todas las filas con numeros

    for a in range(3):           # Vamos a recorrer las filas
        for b in range(3):       # Y dentro de cada fila, vamos a recorrer las columnas
            tmp = int(li[a][b])  # Convertimos el texto a numero
            print("tmp", tmp, type(tmp))  # Mostramos el numero convertido
            stmp.append(tmp)     # Guardamos el numero en la fila
        ltmp.append(stmp)        # Guardamos toda la fila con numeros
        stmp = []                # Limpiamos la fila para la siguiente

    # Ahora tenemos ltmp como una lista de listas con numeros:
    # ltmp = [[23, 25, 45], [25, 48, 54], [10, 15, 20]]

    y = np.arange(3)  # Creamos una lista [0, 1, 2] para usarla en el grafico

    # Hacemos 3 barras para cada fila (una de cada color)
    plt.bar(y + 0.00, ltmp[0], color='b', width=0.25)  # Barras azules para la primera fila
    plt.bar(y + 0.25, ltmp[1], color='g', width=0.25)  # Barras verdes para la segunda fila
    plt.bar(y + 0.50, ltmp[2], color='r', width=0.25)  # Barras rojas para la tercera fila

    # Ponemos etiquetas para que sepamos que significa cada barra
    plt.xticks(y + 0.38, ['uno', 'dos', 'tres'])

    plt.show()  # Mostramos el grafico

except:
    print("ups, algo salio mal")  # Si pasa algo raro, mostramos este mensaje
PROGRAMA 19
s=1
while s:
try:
print('1.- Circulo')
print('2.- Cuadrado')
print('3.- Rectangulo')
"""
print('1.- Captura materia ')
print('2.- ver archivo de materia ')
print('3.- graficar contenido de materia ')
print('4.- graficar materias barras')
print('0.- para salir')
"""
op=int(input('Dame la opcion, 0 para salir '))
if op==1:
print('dentro de opcion uno ')
elif op==2:
print('dentro de opcion dos ')
elif op==3:
print('dentro de opcion tres')
elif op==0:
s=0
print('cero')
else:
print('no es una de las obsiones::: ')
except ValueError as e:
print(f'el error que ocurrio es: {e} ')
"""
Este programa es un menu interactivo en consola que:

Muestra varias opciones al usuario (como "Círculo", "Cuadrado", "Rectángulo").

Pide al usuario que elija una opción escribiendo un numero.

Según la opción que elijas, imprime un mensaje indicando que estás dentro de esa opcion
"""
PROYECTO

import matplotlib.pyplot as plt
import os

# Primero preguntamos cuantas materias quiere capturar el usuario
num_materias = int(input("Cuantas materias quieres? "))

# Repetimos este bloque por cada materia
for i in range(num_materias):
    materia = input(f"\nNombre de la materia {i+1}: ")
    num_estudiantes = int(input("Numero de estudiantes: "))
    num_unidades = int(input(f"Unidades de la materia {materia}: "))

    estudiantes = {}  # Aqui guardamos el nombre del estudiante y su lista de calificaciones
    todas_las_calificaciones = []  # Aqui juntamos todas las calificaciones de todos los estudiantes

    # Pedimos las calificaciones de cada estudiante
    for estu in range(num_estudiantes):
        nombre = input(f"\nNombre del estudiante {estu+1}: ")
        calificaciones = []

        for unidad in range(num_unidades):
            cal = int(input(f"  Calificacion de la unidad {unidad+1}: "))
            calificaciones.append(cal)
            todas_las_calificaciones.append(cal)  # Tambien las agregamos a la lista general

        estudiantes[nombre] = calificaciones  # Guardamos las calificaciones del estudiante

    # GUARDAMOS en un archivo .txt
    nombre_archivo = materia.replace(" ", "_") + ".txt"
    with open(nombre_archivo, "w", encoding="utf-8") as archivo:
        archivo.write(f"{materia}\n")
        archivo.write(f"{num_unidades}\n")
        archivo.write(f"{num_estudiantes}\n")
        for nombre, califs in estudiantes.items():
            archivo.write(f"{nombre}:{califs}\n")  # Guardamos la lista como texto en una sola linea

    print(f"\nArchivo '{nombre_archivo}' guardado.\n")


resultados = {}

# Buscamos todos los archivos .txt que haya en la carpeta
for archivo_nombre in os.listdir():
    if archivo_nombre.endswith(".txt"):
        with open(archivo_nombre, "r", encoding="utf-8") as archivo:
            lineas = archivo.readlines()
            materia = lineas[0].strip()
            num_unidades = int(lineas[1].strip())

            calificaciones_totales = []  # Aqui juntamos todas las calificaciones de esa materia

            # Leemos desde la cuarta linea porque antes vienen los datos basicos
            for linea in lineas[3:]:
                try:
                    nombre, lista_str = linea.strip().split(":")
                    lista_str = lista_str.strip().strip("[]")
                    califs = list(map(int, lista_str.split(",")))
                    calificaciones_totales.extend(califs)
                except:
                    continue

            # Calculamos los datos generales de esa materia
            if calificaciones_totales:
                promedio = sum(calificaciones_totales) / len(calificaciones_totales)
                maxima = max(calificaciones_totales)
                minima = min(calificaciones_totales)

                resultados[materia] = {
                    "Promedio": promedio,
                    "Maxima": maxima,
                    "Minima": minima
                }


# Imprimimos una tabla con los resultados generales por materia
print("\n******** Tabla de Resultados ********\n")
print(f"{'Materia':<20}{'Promedio':<12}{'Maxima':<12}{'Minima':<12}")

for materia, datos in resultados.items():
    print(f"{materia:<20}{datos['Promedio']:<12.2f}{datos['Maxima']:<12}{datos['Minima']:<12}")



# Hacemos una grafica de barras para comparar materias
materias = list(resultados.keys())
promedios = [datos["Promedio"] for datos in resultados.values()]
maximas = [datos["Maxima"] for datos in resultados.values()]
minimas = [datos["Minima"] for datos in resultados.values()]
x = range(len(materias))

ancho = 0.25
plt.figure(figsize=(12, 6))
plt.bar([pos - ancho for pos in x], promedios, width=ancho, label='Promedio', color='blue')
plt.bar(x, maximas, width=ancho, label='Maxima', color='green')
plt.bar([pos + ancho for pos in x], minimas, width=ancho, label='Minima', color='red')
plt.xlabel('Materias')
plt.ylabel('Calificaciones')
plt.title('estadisticas')
plt.xticks(x, materias)
plt.legend()
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.tight_layout()
plt.show()

















Comentarios

Entradas más populares de este blog

unidad 5