viernes, 8 de mayo de 2020

Unidad 4

PROGRAMAS U4

Programa 1

def a(x, y):#FUNCION CONVENCIONAL
#DEVUELVE UN RESULTADO Y RECIBE 2 ARGUMENTOS

    return x+y

print("a", a (2,3))##LAMA A FUCNION


'''f= lambda argumentos: resultado'''




Programa 2


def f(x,y,z=1): #FUNCION CONVECIONAL
 return (x+y)*z 


print(f(5,6))



f=lambda x,y,z=1: (x+y)*z 

print(f(5,6))

def f():
 return
print("F VACIA ", f())


f=lambda :
print("f NONE EN LAMBDA", f())




Programa 3


def a(x): 
 return x*5
print("a", a(3))


b=lambda x: x*5
print("b", b(3))


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




Programa 4


class Miclase: #CREACION DE UNA CLASE
 i=12345
 f='HOLA MUNDO 

print("SIMPLE", Miclase)

print("SIMPLE EN f", Miclase.f)#MUESTRA EL PARAMETRO DE LA CLASE



Programa 5


class Prueba(): #CLASE LLAMADA PRUEBA
 pass 
p=Prueba()#P ES UN OBJETO DENTRO DE LA CLASE LLAMADO POR EL MAIN

print('PRUEBA: ', type(Prueba))

print("p: ",type(p))



class Persona:
 def __init__(self,nom): 
  self.nombre=nom
 def imprime(self): #METODO IMPRIME
  print("NOMBRE: {0}".format(self.nombre))
  
p1=Persona('JUAN')
p2=Persona('PEDRO')

print(type(Persona))
print(type(p1))
print(type(p2))
print(p1)
print(p2)
p1.imprime()
p2.imprime()




Programa 6



def f(jamon: str, huevos: str = 'huevos') -> str:#VALIDA QUE LOS ARGUMENTOS SEAN CADENA
#FUNCION  CON ARGUMENTOS PREDEFINIDOS , ->  ASIGNA VALORES ALOS ARGUMENTOS

 print("ANOTACIONES:", f.__annotations__)
 print("ARGUMENTOS:", jamon, huevos)
 return jamon + ' y ' + huevos

f('carne')



Programa7



class Hogar:
 calido='SI'

class Perro:  #CLASE CON PARAMETROS
 tipo='CANICO'
 raza='PASTOR ALEMAN'
 genero='HEMBRA'
 def __init__(self,nombre): 
  self.nombre=nombre#VAR DE INSTANCIA UNICA


d=Perro('SVETLANA')
e=Perro('CUBO')

print('VIVEN EN UN HGAR CALIDO: ')
print(Hogar.calido)
print(d.nombre)
print(d.tipo)
print(d.raza)
print(d.genero)




Programa 9


salir = False #BOOLENAO

while not salir: #MIENTRAS SALIR SEA FALSE NEGADO, TRUE
     
 entrada=input()#RECIBE ALGO
 if entrada=='ADIOS': #SI SE INGRESA UN ADIOS
  salir=True #SALIR SE HACE TRUE Y SALE DEL WHILE
 else:
  print(entrada)#MUESTRA LO QUE RECIBE


Programa 10

edad=0

while edad<18: #MIENTRAS SEA MENOR
     
 edad=edad+1#AUMENTA EN 1 SU VALOR
 if edad%2==0:#SI ES DIVISIBLE ENTRE DOS
  continue #CONTINUA Y
 print('FELICICDADES TIENES ' + str(edad))#MUESTRA LETRERO


Programa 11


a,b=0,1#ASIGNACION DE VARIABLES

while b<10:
 print(b)
 a,b=b,a+b #a=b Y b=b+a


a,b=0,1

while b<1000: 
 print(b,end=',')#MUESTRA B SIN SALTO
 a,b=b,a+b 



Programa 12

while True:
 pass

class MyEmptyClass:
 pass



Programa 13

for n in range(2,10): 
     
 for x in range (2,n):#FOR ANIDADO EMPIEZA EN 2 Y ACABA EN n

  if n%x ==0:#SI n/X DA EXACTO
   print(n, ' ES IGUAL A ', x, '*', n/x)
   break
 else: #DE LO CONTRARIO
  print(n,' ES NUMERO PRIMO ')



 Programa 14


def ciclo():#FUNCION
 for num in range(2,10):
  if num %2==0:
   print('ENCONTRE UN NUM PAR ', num)
   continue
  print('ENCONTRE UN NUMERO ', num)

ciclo()



Programa 15

edad=int(input('TECLEAR EDAD '))

peso=int(input('TECLEAR PESO '))

nombre=input('TECLEAR NOMBRE ')

print(nombre, edad, ' AÑOS ', peso, ' KG ')



Programa 16

tramos=0
total=0

while True:
 try: 
  distancia=int(input('DISTANCIA: '))
  if distancia==0:#UN 0 INGRESADO ROMPE EL CICLO
   break
  else:
   tramos+=1
   total+=distancia

   print("LOS {} TRAMOS MIDEN {} KM". format(tramos, total))#MUESTRA CON FORMATO
   
 except:
  print('DEBES TECLEAR UN ENTERO ')



try: #VALIDA QUE LO INGRESADO SEA LO QUE SE PIDE
 edad=input('CUANTOS 365 TIENES ')
 dias=int(edad)*365
 print('HAS VIVIDO '+ str(dias) + ' DIAS' )
except ValueError:
 print('ESO NO ES UN NUMERO ')



Programa 17


import datetime#IMPORTA LIBRERIA

while True:
 try: 
  fecha=input('INTRODUCIR FECHA DD-MM-AAAA ')
  fecha =datetime.datetime.strptime(fecha, '%d-%m-%Y')
  break
 except:
  print('FECHA INCORRECTA ')
  
print(fecha)




Programa 18

import matplotlib.pyplot as plt
#IMPORTA LA LIBRERIA matplot

lista1=[11,2,3,15,8,13,21,34]#LISTA
plt.plot(lista1)#HACE UNA GRAFICA CON LOS DATOS
plt.show()#MUESTRA GRAFICA

     

Programa 19


from pylab import *
#IMPORTA DE LA LIBRERIA matplot EL pylab

lista1=[11,2,3,15,8,13,21,34]
plt.plot(lista1)
plt.show()




Programa 20

from pylab import*

lista1=[2,3,4,5,8,9,10,11,11.5,12,12.5,10,9,8,7,6,5,3]#CREA LISTA
plt.plot(lista1)#HACE LA GRAFICA DE LA LISTA 1

plt.title("GRAFICA 3 ")
plt.xlabel('ABSCISA')#AGREGA UNA ETIQUETA AL EJE X
plt.ylabel('ORDENADA')#AGREGA UNA ETIQUETA AL EJE Y
lista2=[2,3,4,2,3,6,4,10]
plt.plot(lista2)

plt.grid(True)#APLICA LA CUADRICULA


plt.show()


Programa 21



from pylab import*#IMPORTA PYLAB

lista1=[20,30,25,34,55,34]
lista2=[18,24,25,34,28,33]
lista3=[56,34,23,56,45,56]

plt.title("VENTAS DEL AÑO")#AGREGA TITULO AL GRAFICO


#AÑADE ETIQUETAS AL GRAFICO CON UN COLOR
plt.plot(lista1,color='b',label="ENERO")#ETIQUETA LISTA 1 COLOR AZUL
plt.plot(lista2,color='g',label="FEBRERO")#ETIQUETA LISTA 2 COLOR VERDE
plt.plot(lista3,color='r',label="MARZO")#ETIQUETA LISTA 3 COLOR ROJO

plt.legend(loc="upper right")#POSICIONA LAS ETIQUETAS ARRIBA A LA DERECHA

'''
upper  --> ARRIBA
lower  --> ABAJO
center --> ENMEDIO O AL CENTRO
left   --> IZQUIERDA
right  --> DERECHA
'''

plt.show()#MUESTRA GRAFICAS



Programa 22


from pylab import* 

li1=[200,500,300,200,600,400]
li2=[300,400,100,300,500,200]
li3=[200,100,300,250,350 ,400]

plt.title("VENTAS DEL PRIMER TRIMESTRE")

plt.plot(li1)
plt.plot(li2)
plt.plot(li3)

plt.plot(li1,marker = 'x',linestyle= ':',color='b',label="ENERO")
plt.plot(li2,marker = '*',linestyle= '-',color='r',label="FEBRERO")
plt.plot(li3,marker = 'o',linestyle= '--',color='g',label="MARZO")

plt.legend(loc="upper right")

plt.grid(True)
plt.show()


Programa 23


import matplotlib.pyplot as plt 

l1=[]
l2=[]
l3=[]

print("LISTA 1 ")
for i in range(5):#PIDE 5 DATOS NUMERICOS Y
    l1.append(int(input("DAME EL DATO: ")))
print("LISTA 2")
for i in range(5):
    l2.append(int(input("DAME EL DATO: ")))
print("LISTA 3")
for i in range(5):
    l3.append(int(input("DAME EL DATO: ")))

plt.plot(l1, label="EDAD 1")
plt.plot(l2, label="EDAD 2")
plt.plot(l3, label="EDAD 3")

plt.grid()#CUADRICULA
plt.legend()

plt.title("EDADES")
plt.xlabel("TIEMPO")
plt.ylabel("EEDAD")

plt.show()



Programa 24


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,10,0.1) 
                
print(x)

y = x*np.cos(x)
print(y)

plt.plot(x,y)

plt.xlabel('X')
plt.ylabel('Y')
plt.title('Y = X*COS(X)')
plt.grid()

plt.show()


Programa 25

import matplotlib.pyplot as plt 
import numpy as np


plt.figure() 

lista1 = [11,2,3,15,8,13,21,34]
plt.title("GRAFICA")
plt.xlabel("ABSCISA")
plt.ylabel("ORDENADA")

indice = np.arange(8)   

plt.xticks(indice, ("A", "B", "C", "D", "E", "F", "G", "H"))
#PONE LETRAS EN LOS VALORES DEL EJE  X
plt.yticks(np.arange(0,51,10)) #PONE NUMEROS DE 0 A 50 CAMBIANDO DE 10 EN 10 AL EJE Y

plt.plot(lista1)
plt.show()




Programa 26

import matplotlib.pyplot as plt
import numpy as np

plt.figure()

x=np.linspace(2,8,4)#VECTOR X  DE 2 A 8, AUMENTANDO DE 4 EN 4 ([2,4,6,8])
y=x**2#VECTOR AL CUADRADO CON LOS NUMEROS DE X

plt.plot(x,y,'r')a

plt.xlabel('X')
plt.ylabel('Y')
plt.title('GRAFICO')

plt.figure(1)#ACTIVA EL GRAFICO
plt.title('Y=X^2')
plt.show()



Programa 27


import matplotlib.pyplot as plt
import numpy as np

plt.figure('REGIONES')
plt.figure('DISPERSION')

elemx=np.random.rand(10)
elemy=np.random.rand(10)

plt.scatter(elemx,elemy)

plt.figure('REGIONES')#LLAMA A LA GRAFICA
plt.plot(elemx,elemy)

plt.figure('DISPERSION')
plt.xlabel('X')#PONE ETIQUETAS
plt.ylabel('Y')


plt.show()#MUESTRA



Programa 28


import matplotlib.pyplot as plt 

x=[1,2,3,4,5]
y1=[3,4,5,1,7]
y2=[2,6,8,1,3]

plt.subplot(1,3,1)
plt.plot(x,y1)

plt.subplot(1,3,2)#SUBGRAFICA 2
plt.plot(x,y2)

plt.subplot(1,3,3)#SUBGRAFICA 3
plt.plot(x,y1)

plt.show()#MUESTRA GRAFICAS



Programa 29


import matplotlib.pyplot as plt
import numpy as np


paises=['FRANCIA', 'ALEMANIA', 'ESPAÑA', 'ITALA']

p_y=np.arange(len(paises))
   
u=(235,321,220,350)#NUMEROS ASOCIADOS A LA LISTA
plt.bar(p_y,u,align="center")

plt.xticks(p_y,paises)#PONE LOS NOMBRES EN EL EJE HORIZONTAL

plt.ylabel('PUNTAJE')
plt.title('EUROCOPA')

plt.show()

plt.barh(p_y,u,align="center")#HACE UNA GRAFICA DE BARRAS HORIZONTAL

plt.yticks(p_y,paises)
plt.xlabel('PUNTAJE')
plt.title('EUROCOPA')

plt.show()
paises=['FRANCIA', 'ALEMANIA', 'ESPAÑA', 'ITALA']
p_y=np.arange(len(paises))
u=(235,321,220,350)
plt.barh(p_y,u,align="center")
plt.yticks(p_y,paises)
plt.xlabel('PUNTAJE')
plt.title('EUROCOPA')

plt.show()
'''


Programa 30


import matplotlib.pyplot as plt
import numpy as np


nombres=[]
calif=[]

for i in range(0,3):
        nombres.append(input('NOMBRE: '))

for j in range(0,3):#Y PIDE SUS 3 CALIFICACIONES
        calif.append(float(input('CALIFICACION: ')))


print(nombres)
print(calif)

plt.title('CALIFICACIONES')

p_y=np.arange(len(nombres))
plt.xticks(p_y,nombres)

plt.ylabel('CALIFICACION')
plt.plot(calif)
plt.grid()
plt.show()



Programa 31


from matplotlib import pyplot


def f1(x):#FUNCION CUADRATICA
 return 2*(x**2) + 5*x -2
def f2(x):#FUNCION LINEAL
 return 4*x +1

x=range(-10,15)


pyplot.plot(x,[f1(i) for i in x])

pyplot.plot(x,[f2(i) for i in x])

pyplot.axhline(0,color="black")
pyplot.axvline(0,color="black")#NEGRO

pyplot.xlim(-10,10)
pyplot.ylim(-10,10)

pyplot.savefig('GRAFICA.png')
pyplot.show()




Programa 32


import matplotlib.pyplot as plt
import  numpy as np 

datos=[[1,2,3,4],[3,5,3,5],[8,6,4,2]]#LISTA CON SUB LISTAS

x=np.arange(4)

plt.bar(x+0.00, datos[0], color="b", width=0.25)
plt.bar(x+0.25, datos[1], color="r", width=0.25)
plt.bar(x+0.50, datos[2], color="g", width=0.25)

plt.xticks(x+0.25,['A','B', 'C', 'D'])
plt.title('MULTIPLES')
plt.show()



Programa 33


import matplotlib.pyplot as plt
import  numpy as np

labels=['RANAS', 'DRAGONES','UNICORNIOS', 'SERPIENTE']
sizes=[5,28,31,15]

explode=(0,0,0.1,0)
figl, axl=plt.subplots()

axl.pie(sizes,explode=explode,labels=labels,
autopct='%1.1f%%',shadow=True,startangle=180)

axl.axis=('equal')
plt.show()



Programa 34

import matplotlib.pyplot as plt
import  numpy as np


nombres=[]
calif=[]

n=int(input('CUANTAS PERSONAS? '))

for i in range(0,n):
    print('SUJETO ', i+1)
    nombres.append(input('NOMBRE: '))#PIDE EL NOMBRE

    calif.append(float(input('CALIFICACION: ')))#PIDE CALIFICACION


sep=(0.1,0.1,0.1)#SECCIONES SEPARADAS 0.1 VECES EL RADIO

plt.pie(calif, explode=sep, labels=nombres,
autopct='%1.1f%%', shadow=True)
#TOMA LOS ELEMENTOS DE CLIF, HACE LA SEPARACION, PONE EQTIQUETAS A CADA PARTE
#DEL GRAFICO, MUESTRA EL PORCENTAJE

'''
figl, axl=plt.subplots()

axl.pie(calif,explode=explode,labels=nombres,
autopct='%1.1f%%',shadow=True,startangle=180)
'''

plt.show()


Programa 35


import math

var =math.cos(math.pi/4) 

print('COSENO π /4 ',var) 

print(math.log(1024,2))#MUESTRA EL LOG BASE 2 DE 1024



Programa 36

import math
import random#LIBRERIA RANODM

print(random.choice(['MANZANA', 'PERA', 'PLATANO']))

print(random.sample( range(100), 10 ))
print(random.random())


print(random.randrange(6) )



Programa 37

import math
import statistics#IMORTA LA LIBRERIA STATISTICS

datos=[2.75, 1.75, 1.25, 0.25, 0.5, 1.25,3.5]#LISTA CON NUMEROS FLOAT

print('MEDIA ',statistics.mean(datos))#CALCULA LA MEDIA DE LOS DATOS
print('MEDIANA ', statistics.median(datos))#CALCULA LA MEDIANA
print('VARIANZA ', statistics.variance(datos))#CALCULA LA VARIANZA



Programa 38

import numpy as np

a=np.array( [1,2,3,4] )

a=a+1#SUMA 1 A CADA ENTRADA DEL VECTOR
print(a)

b=np.ones(4)+1
print('SUMA MAS 1 ',b)

a=a-b
print('RESTA ', a)

a=a*b#MULTIPLICACION DE VECTORES (ELEMENTO POR ELEMENTO)
print('MULTIPLICACION ', a)

j=np.arange(5)
print('j', j)
print(2**(j+1) - j)



Programa 39


import numpy as np

c=np.ones( (3,3) )
print('C  1s','\n', c)

c=c*c
print('C MULTIP '+ '\n',c)

c=c*3#MULTIPLICA A LA MATRIZ POR 3
print('C MULTIP X 3'+ '\n',c)


d=c.dot(5)
print('c.dot(5)' + '\n', d)
A=np.array( [[2,4,2],[1,-2,3],[5,0,-1]] )
B=np.array( [[3,-1,-2],[0,5,6],[0,0,9]] )
C=np.array( [[2,0,-1],[0,-1,2],[1,-2,5]] )

print('-A-B+C'+ '\n')

print('A+B-C'+ '\n')

print('3*A + C/2'+ '\n')

print(3*A + (C/2))



Programa 40

import numpy as np


a=np.triu(np.ones ((3,3)),1 )
print(a)

print('TRANSPUESTA')
a=a.T
print(a)

print('===========')

x=np.array([1,2,3,4])
print(np.sum(x))

y=np.array(  [[1,1],[2,2]])
print(y.sum(axis=0) ) 
print(y.sum(axis=1) )



Programa 41

import numpy as np

x=np.array([1,2,3,1])
y=np.array([ [1,2,3],[5,6,1] ])

print('MEDIA ', x.mean())
print('MEDIANA ', np.median(x)) 
print('MEDIANA 2 ', np.median (y,axis=-1) )

print('X.STD ', x.std)

print('=============')

x=np.array([1,3,2])
print('MIN ', x.min())
print('MAX ', x.max())
print('I MIN ', x.argmin())
print('I MAX ', x.argmax())

print('=============')

print(np.all([True, True, False]))(
printnp.any([True, True, False]))
print('=============')

a=np.zeros((100,100))
print(a)
print(np.any(a!=0))
print(np.all(a==a))

a=np.array([1,2,3,2])
b=np.array([2,2,3,2])
c=np.array([6,4,4,5])

print('A <=B ', a<=b)
print(a, b)

print('B <=C ', b<=c)
print(b, c)

print('FINAL ', ((a<=b) & (b<=c). all() ))




Programa 42

import  numpy as np

a = np.tile(np.arange(0, 40, 10), (3, 1))

print('a \n', a)
b = np.array([0, 1, 2]
print('b \n', b)

print('a + b \n', a + b)

a = np.arange(0, 40, 10)

print(a, ' ENRREDADO a ',a.shape)

a = a[:, np.newaxis]  
print('  ENRREDADO a ' ,a.shape)
print('a ', a)
print('a + b \n', a + b)

a = np.ones((4, 5))
a[0] = 2  




Programa 43


import numpy as np

a=np.array(4)
print('a ', a)
print('a.resize ', a.resize(8,))#

vector=np.array([1,2,3])
print('vector ', vector)
np.shape(vector)
matrix_col=vector[:,np.newaxis]
print('matrix_col ', matrix_col)
print('np.shape(matrix_col) ', np.shape(matrix_col))
matrix_ver=vector[np.newaxis,:]
print('np.shape(matrix_ver) ',np.shape(matrix_ver)  )

print('====================')

a=np.array([[1,2],[3,4]])
print(a)
print('np.repeat(a,3) ', np.repeat(a,3))
print('np.tile(a,3) ', np.tile(a,3))

print('====================')

b=np.array([[5,6]])

print('np.concatenate((a,b),axis=0) ' , np.concatenate((a,b),axis=0))

print('np.concatenate((a,b.T),axis=1) ', np.concatenate((a,b.T),axis=1))
print('np.vstack((a,b)) ', np.vstack((a,b)))
print('np.hstack((a,b.T)) ' ,np.hstack((a,b.T)))




Programa 44


import numpy as np
a=np.array([1,0,1,0,0])
b=np.where(a)
print('WHERE ', b)

print('===================================')

a=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a)
print('DIAGONAL ',np.diag(a))

print('===================================')
a=np.arange(10,16)#NUMEROS DE 10 A 16
print(a)
indices=[1,3,5]
print('TAKE ', np.take(a,indices))
which=[0,0,1,0]
choice=[[-2,-2,-4,-5],[5,6,7,8]]
print(np.choose(which,choice))

x=np.arange(1,10,1)
print(x)
print('LINSAPCE')
print(np.linspace(0,10,25))
print('LOGSPACE')
print(np.logspace(0,10,10,base=np.e))

x,y=np.mgrid[0:5, 0:5]
print('X', x)
print('Y', y)
print('RANDOM')
print(np.random.rand(5,5))
print('OTRO RANDOM')
print(np.random.randn(5,5))

print('MATRIZ DIAGONAL')
print(np.diag([1,2,3]))
print('DESPLAZAMIENTO EN DIAGONAL ')
print(np.diag([1,2,3], k=1))
print('CEROS')
print(np.zeros((3,3)))#
print('UNOS')
print(np.ones((3,3))) 



Programa 45



import  numpy as np

a=np.array([[1,2,3],[4,5,6]])

print('a.ravel ',a.ravel())
print('a', a) 

b=np.array([1,2,3,4,5,6])
print('b', b)
print('b.T, ',b.T)#HACE EL TRANSPUESTO

c=np.array([[1,4],[2,5], [3,6] ])
print('c ', c)
print('c.T.ravel()' ,c.T.ravel())
print('a.shape', a.shape)
print('b.ravel', b.ravel()) 
print('b.reshape(2,3)', b.reshape(2,3))

a=np.arange(36)
print(a)

b=a.reshape((6,6))
print('a.reshape((6,6)', b)
b=a.reshape((6,-1))
print('a.reshape((6,-1', b)




Proyecto 1


def op1 ():

 def archivo():
  with open(nombre+'.txt', 'w+') as f:
   f.write('MUESTRA' + '\t' + '\t'+ '\t' + '\t' +'LECTURAS' + '\n')

   for i in range(muestra):
    muest=str(i+1)
    f.write(muest)
    for j in range(lectura):
     dato=cuad[i][j]
     dato1=str(dato)
     f.write('\t' + '\t' + dato1)
     if (j+1)==lectura:
      f.write('\n')
       
  f.close()


 '''PROMEDIOS GENERALES '''
 def promedio (*args):
  b=args[0]

  for h in b:
   lista=h
     
   for k in range(0,len(lista)):
    c=k+1

    global prome

    prome=prome+lista[k]

    if c%lectura==0:
     promes.append(prome/lectura)
     global promg
     promg=promg + (prome/lectura)
     prome=0
             
  promg=promg/muestra     

 def rango(z):
  for i in z:
   r1=max(i)
   r2=min(i)
   rangoe= r1-r2
   rangoesp.append(rangoe)
   global rangog
   rangog= (rangog + rangoe)
  rangog =rangog /muestra


 def limites():
  global promg, lci, lcs
  lci=promg - a2*rangog
  lcs=promg + a2*rangog
  global  rs, ri
  
  rs= rangog*d4
  ri= rangog*d3
  

 nombre=input('NOMBRE DEL ARCHIVO: ')
 muestra=int(input('NUM DE MUESTRAS: '))

 lectura=int(input('NUM DE LECTURAS: '))

 while(muestra<=0):
  muestra=int(input('NUM DE MUESTRAS: '))

 while(lectura<=0):
  lectura=int(input('NUM DE LECTURAS: '))


 if lectura==2:
  a2=1.88
  d3=0
  d4=3.268
  d2=1.128

 elif lectura==3:
  a2=1.023
  d3=0
  d4=2.574
  d2=1.693

 elif lectura==4:
  a2=0.729
  d3=0
  d4=2.282
  d2=2.059

 elif lectura==5:
  a2=0.577
  d3=0
  d4=2.114
  d2=2.326

 elif lectura==6:
  a2=0.483
  d3=0
  d4=2.004
  d2=2.534

 elif lectura==7:
  a2=0.419
  d3=0.076
  d4=1.924
  d2=2.704

 elif lectura==8:
  a2=0.373
  d3=0.136
  d4=1.184
  d2=2.847

 elif lectura==9:
  a2=0.377
  d3=0.184
  d4=1.816
  d2=2.970

 elif lectura==10:
  a2=0.308
  d3=0.223
  d4=1.777
  d2=3.078

 elif lectura==11:
  a2=0.285
  d3=0.256
  d4=1.744
  d2=3.173
  
 elif lectura==12:
  a2=0.266
  d3=0.284
  d4=1.717
  d2=3.258

 elif lectura==13:
  a2=0.249
  d3=0.308
  d4=1.692
  d2=3.336
     
 elif lectura==14:
  a2=0.235
  d3=0.329
  d4=1.671
  d2=3.407

 elif lectura==15:
  a2=0.223
  d3=0.348
  d4=1.652
  d2=3.472

 print('a2: ',a2,'d2: ',d2,'d3: ',d3,'d4: ',d4)


 for i in range(muestra):
  print('')
  print('MUESTRA: ', i+1)
  cuad.append([])

  for j in range(lectura):
   print('LECTURA: ', j+1)
   dto=float(input('DA EL DATO: ' ))
   cuad[i].append(dto)

 promes=[]
 promg1=[]
 lcs1=[]
 lci1=[]

 rangoesp=[]
 rangog1=[]
 rs1=[]
 ri1=[]

 archivo()
 promedio(cuad)
 rango(cuad)
 limites()



 tab="{}\t {}\t {}\t {}\t {}\t {}\t".format('PROMEDIO', 'RANGO', 'LIM. INF', 'LIM.SUP', 'RANG.INF', 'RANG. SUP' )



 fprom='{0:.2f}'.format(promg)
 frang='{0:.2f}'.format(rangog)
 flics='{0:.2f}'.format(lcs)
 flici='{0:.2f}'.format(lci)
 fri='{0:.2f}'.format(ri)
 frs='{0:.2f}'.format(rs)

 rest="{}\t\t {}\t {}\t\t {}\t\t {}\t\t {}\t".format(fprom, frang, flici, flics, fri, frs )

 print(tab)

 print(rest)


 for u in range(0, muestra):
  
  promg1.append(promg)
  lcs1.append(lcs)
  lci1.append(lci)
  rangog1.append(rangog)
  rs1.append(rs)
  ri1.append(ri)



 plt.figure('PROMEDIOS')
 plt.figure('RANGOS')

 plt.figure('PROMEDIOS')
 plt.plot(promes)
 plt.plot(lcs1)
 plt.plot(lci1)
 indice = np.arange(0,muestra,1)
 plt.plot(promes,color='r',marker = 's',linestyle= ':',label="PROM")
 plt.plot(promg1,color='b',marker = 'D',linestyle= '-.',label="X")
 plt.plot(lci1,color='m',marker = 'x',linestyle= '--',label="LCI")
 plt.plot(lcs1,color='g',marker = '^',linestyle= '-',label="LCS")
 plt.xticks(indice)
 plt.grid(True)
 plt.title(' GRAFICA DE PROMEDIOS ')
 plt.xlabel('MUESTRAS ')
 plt.legend(loc="upper right")

 plt.figure('RANGOS')
 plt.plot(rangoesp)
 plt.plot(rs1)
 plt.plot(ri1)
 indice1 = np.arange(0,muestra,1)
 plt.plot(rangoesp,color='r',marker = 's',linestyle= ':',label="PROM")
 plt.plot(rangog1,color='b',marker = 'D',linestyle= '-.',label="R")
 plt.plot(ri1,color='m',marker = 'x',linestyle= '--',label="LCI")
 plt.plot(rs1,color='g',marker = '^',linestyle= '-',label="LCS")
 plt.xticks(indice1)
 plt.grid(True)
 plt.title(' GRAFICA DE RANGOS')
 plt.xlabel('MUESTRAS ')
 plt.legend(loc="upper right")


 plt.show()



def op2 ():
 nombre2= input('COMO SE LLAMA EL ARCHIVO? ')
 lectmat=[]
 lectrech=[]
 lecmu=[]
 s1=0
 s2=0
 s3=0


 promes=[]
 promg1=[]
 lcs1=[]
 lci1=[]


 rangog1=[]
 rs1=[]
 ri1=[]



 nmues=[]
matrang=[]

 with open(nombre2+'.txt',"r+") as f:
  cont=f.read()
  print(cont)
  l=cont.split('\n')
  for i in range(1,len(l)):

   lect=l[i].split('\t')

   for j in range(len(lect)):
    dto=lect[j]
         
    if dto=='':
     dto=float(0)
                     
     
    dto=float(dto)
    if dto==0.0:
     lectrech.append(dto)
    else:
     lectmat.append(dto)

  del lectrech

  for k in lectmat:
               
   s1=s1+1
     
   for n in range(len(lectmat)):
                 
    if k == n:
                     

     lecmu.append(s1)
                 
     
         
  delta=((lecmu[-1]-lecmu[-2])-1)
  nmues= lectmat[0::delta+1]
  del lectmat[0::delta+1]
  n1=nmues[-1]
  for i in lectmat:
   
   s2=s2+i
         
         
  if delta==2:
   a2=1.88
   d3=0
   d4=3.268
   d2=1.128

  elif delta==3:
   a2=1.023
   d3=0
   d4=2.574
   d2=1.693

  elif delta==4:
   a2=0.729
   d3=0
   d4=2.282
   d2=2.059

  elif delta==5:
   a2=0.577
   d3=0
   d4=2.114
   d2=2.326

  elif delta==6:
   a2=0.483
   d3=0
   d4=2.004
   d2=2.534

  elif delta==7:
   a2=0.419
   d3=0.076
   d4=1.924
   d2=2.704

  elif delta==8:
   a2=0.373
   d3=0.136
   d4=1.184
   d2=2.847

  elif delta==9:
   a2=0.377
   d3=0.184
   d4=1.816
   d2=2.970

  elif delta==10:
   a2=0.308
   d3=0.223
   d4=1.777
   d2=3.078

  elif delta==11:
   a2=0.285
   d3=0.256
   d4=1.744
   d2=3.173

  elif delta==12:
   a2=0.266
   d3=0.284
   d4=1.717
   d2=3.258
             
  elif delta==13:
   a2=0.249
   d3=0.308
   d4=1.692
   d2=3.336
     
  elif delta==14:
   a2=0.235
   d3=0.329
   d4=1.671
   d2=3.407

  elif delta==15:
   a2=0.223
   d3=0.348
   d4=1.652
   d2=3.472
  
  print('a2: ',a2,'d2: ',d2,'d3: ',d3,'d4: ',d4, 'LECTURAS: ', delta, ' MUESTRAS: ',n1 )
         
         
         
         
  for r in range(len(lecmu)):
   a=lectmat[delta*r: delta*r +delta]
   promes.append(sum(a)/delta)
   matrang.append(max(a)-min(a))

  for s in matrang:
   s3=s3+s
         
  s3=s3/(n1)
             
  global promg, rangog, lcs,lci,ri,rs
  promg =s2 /(delta * n1)
  rangog=s3
  #print(promg)
  tab="{}\t {}\t {}\t {}\t {}\t {}\t".format('PROMEDIO', 'RANGO', 'LIM. INF', 'LIM.SUP', 'RANG.INF', 'RANG. SUP' )

  fprom='{0:.2f}'.format(promg)
  frang='{0:.2f}'.format(rangog)
  flics='{0:.2f}'.format(promg + a2*rangog)
  flici='{0:.2f}'.format(promg - a2*rangog)
  fri='{0:.2f}'.format(rangog*d3)
  frs='{0:.2f}'.format(rangog*d4)
  
  rest="{}\t\t {}\t {}\t\t {}\t\t {}\t\t {}\t".format(fprom, frang, flici, flics, fri, frs )
  
  print(tab)
  print(rest)
  
  for u in range (0,int(n1)):
   promg1.append(promg)
   lcs1.append(promg + a2*rangog)
   lci1.append(promg - a2*rangog)
   rangog1.append(s3)
   rs1.append(rangog*d4)
   ri1.append(rangog*d3)
   
  plt.figure('PROMEDIOS')
  plt.figure('RANGOS')

  plt.figure('PROMEDIOS')
  plt.plot(promes)
  plt.plot(lcs1)
  plt.plot(lci1)
  indice = np.arange(0,n1,1)
  plt.plot(promes,color='r',marker = 's',linestyle= ':',label="PROM")
  plt.plot(promg1,color='b',marker = 'D',linestyle= '-.',label="X")
  plt.plot(lci1,color='m',marker = 'x',linestyle= '--',label="LCI")
  plt.plot(lcs1,color='g',marker = '^',linestyle= '-',label="LCS")
  plt.xticks(indice)
  plt.grid(True)
  plt.title(' GRAFICA DE PROMEDIOS ')
  plt.xlabel('MUESTRAS ')
  plt.legend(loc="upper right")

  plt.figure('RANGOS')
  plt.plot(matrang)
  plt.plot(rs1)
  plt.plot(ri1)
  indice1 = np.arange(0,n1,1)
  plt.plot(matrang,color='r',marker = 's',linestyle= ':',label="PROM")
  plt.plot(rangog1,color='b',marker = 'D',linestyle= '-.',label="R")
  plt.plot(ri1,color='m',marker = 'x',linestyle= '--',label="LCI")
  plt.plot(rs1,color='g',marker = '^',linestyle= '-',label="LCS")
  plt.xticks(indice1)
  plt.grid(True)
  plt.title(' GRAFICA DE RANGOS')
  plt.xlabel('MUESTRAS ')
  plt.legend(loc="upper right")
  
  plt.show()


import matplotlib.pyplot as plt
import numpy as np

cuad=[]
prome=0
promg=0
lis=0
lii=0
rangog=0
lcs=0
lci=0
ri=0
rs=0


a2=0
d2=0
d3=0
d4=0


print ("QUE QUIERES? ")
print('1.- CALCULO POR INGRESO ')
print('2.- CALCULO POR LECTURA ')
opc= int(input())
if opc==1:
    op1()
if opc==2:
    op2()

while opc !=1 and opc!=2:
 opc= int(input('INGRESA BIEN '))
 if opc==1:
  op1()
 if opc==2:
  op2()



Proyecto 2 (examen)


import numpy as np
import statistics as st
import matplotlib.pyplot as plt

d_lis=[]
z=True
while z:
d=int(input("Cuantos datos seran: \n"))
if d<15:
print("Tienen que ser mas de 15 datos bro ;)")
else:
z=False

for i in range(d):
    print(""+str(i+1)+"° dato: \n")
    d=float(input())
    d_lis.append(d)

d=np.array(d_lis)
n=1/len(d)
media=st.mean(d)
mediana=st.median(d)
desviacion=0
dmd=0
varianza=0
rango=0

print("Datos capturados: ", "\n",d)
print("\n")
print("Media: ",  "{0:.2f}".format(media))
print("Mediana: ", "{0:.2f}".format(mediana) )
print("Moda: ", "{0:.2f}".format(st.mode(d)))

desviacion= st.pstdev(d)

for k in d:
    dmd=dmd + (n*abs(k-mediana))
varianza=st.variance(d)
rango=max(d)- min(d)
print('\n')
print('[Datos de Dispersion] \n')

print('[Desviacion estandar]: ', '{0:.4f}'.format(desviacion))
print('[Desviacion media]: ',  '{0:.4f}'.format(dmd))

print('[Varianza]: ', '{0:.4f}'.format(varianza))
print('[Rango]: ' , rango)


lis1=[]
lis2=[]
lis3=[]
lis4=[]
lis5=[]

for x in range(len(d)):
    lis1.append(desviacion)
    lis2.append(dmd)
    lis3.append(varianza)
    lis4.append(rango)
    lis5.append(media)


a1=[rango, varianza]
a=tuple(a1)

plt.figure("1")
plt.figure("2")
plt.figure("3")

plt.figure("1")
plt.title(" Resultados 1 ")
plt.xlabel('Datos')
indice1=np.arange(0,len(d),1)
i1=np.arange(0,len(d),1)
plt.xticks(i1)
plt.grid(True)
plt.plot(d)
plt.plot(lis5,color='purple',marker = '*',linestyle= '--',label="Media ")
plt.plot(d,color='cyan',marker = 'x',linestyle= '-.',label="Datos")
plt.legend(loc="upper right")

plt.figure("2")
plt.title(" Resultados 2 ")
b=["Varianza","D. estandar","D. media","Rango"]
b1=[varianza,desviacion,dmd,rango]
i2=np.arange(len(b))
a=tuple(b1)
plt.bar(i2,a,color="cyan",align="center")
plt.xticks(i2,b)
plt.grid(True)
plt.ylabel('Valor')

plt.figure("3")
plt.title(" Resultados 3")
metc=["Media", "Moda", "Mediana"]
val=[media,st.mode(d),mediana]
explode=(0,0.1,0)
plt.pie(val,explode=explode,labels=metc,startangle=270)
plt.axis("equal")
plt.legend(val)
plt.show()