Podemos hacerlo de diferentes manera pero mostraré dos, la primera usando statistics y la segunda con código similar a bajo nivel. El código lee los valores desde un archivo de texto que tiene los datos a manera de columna, solo consideramos enteros y datos con una sola moda pues mas de una moda no podría ser calculada con el código dos.
Código uno:
import statistics as stats
archi=open('datos_nums.txt','r')
contnum=0
sumanums=0
numeros=[]
auxiliar=[]
for linea in archi:
numeros.append(int(linea))
auxiliar.append(0)
sumanums=sumanums+int(linea)
contnum=contnum+1
archi.close()
#ordenar la lista
numeros.sort()
print('Los números son:')
print(numeros)
#calcular la media
print('La media es: '+str(stats.mean(numeros)))
#calcular la mediana
print('La mediana es: '+str(stats.median(numeros)))
#calcular la moda
print('La moda es: '+str(stats.mode(numeros)))
Código dos:
archi=open('datos_nums.txt','r')
contnum=0
sumanums=0
numeros=[]
auxiliar=[]
for linea in archi:
numeros.append(int(linea))
auxiliar.append(0)
sumanums=sumanums+int(linea)
contnum=contnum+1
archi.close()
#ordenar la lista
numeros.sort()
print('Los números son:')
print(numeros)
#calcular la media
v_media=sumanums/contnum
print('La media es:' +str(v_media))
#calcular la mediana
if contnum % 2==0:
v_mediana=(numeros[int((contnum/2)-1)]+numeros[int((contnum/2))])/2
else:
v_mediana=numeros[((contnum-1)/2)]
print('La mediana es:' +str(v_mediana))
#Calcular la moda
for i in range(contnum):
numero=numeros[i]
posicion=i
for j in range(contnum):
if numero==numeros[j]:
auxiliar[j]=auxiliar[j]+1
print(auxiliar)
No hay comentarios:
Publicar un comentario