[ Foro de Python ]

Ayuda para un codigo

24-Nov-2022 11:36
Invitado (Danilo Gonzalez)
2 Respuestas

a)Crear una función que tome una lista de valores flotantes, calcule la media de
los valores y la devuelva como valor de retorno.
b) Crear una función que tome una lista de valores flotantes, calcule la mediana
de los valores y la devuelva como valor de retorno.
c) Crear una función que tome una lista de valores flotantes y calcule la
desviación estándar.
d) Crear un programa principal que cumpla con los siguientes puntos:
i) Solicite que se ingrese por teclado el número de valores a ingresar.
Validar que el número ingresado sea mayor a 1 y en caso contrario
volver a pedirlo tantas veces como sea necesario.
ii) Crear una lista de valores flotantes ingresados por teclado. La lista
debe tener tantos valores como indique el número obtenido en el
punto anterior.
iii) Mostrar por pantalla los valores ingresados bajo el mensaje “Los
valores son:” y luego los valores.
iv) Calcular y mostrar por pantalla la media, la desviación estándar y la
mediana de los valores.
v) Si la media es igual a la mediana tomando una tolerancia de 0.0001,
mostrar el mensaje: “Distribución simétrica”. Si la media es menor que
la mediana mostrar el mensaje: “Distribución asimétrica negativa”. Si
la media es mayor que la mediana mostrar el mensaje: “Distribución
asimétrica positiva”
Me podrían ayudar???


02-Dec-2022 20:30
Invitado (ayudante)

madre de dios...
buenas tardes:

a)Crear una función que tome una lista de valores flotantes, calcule la media de
los valores y la devuelva como valor de retorno:

def funcion_a(*args):
   sumatoria = 0
   i = 0
   for arg in args:
       if type(arg) is float:
           sumatoria += arg
           i += 1    
   return sumatoria/i

print(f'\nMedia = {funcion_a(1.5, 1.3, 1.23)}') # imprime Media = 1.343333333333333  y si queres se puede redondear con método round. Googlea round() python e improvisa...

__________________

b) Crear una función que tome una lista de valores flotantes, calcule la mediana
de los valores y la devuelva como valor de retorno.

def funcion_b(*args):
   data = sorted(args)
   index = len(data) // 2
   if type(args) is float and len(args) % 2 != 0:
       return data[index]
   return (data[index - 1] + data[index]) / 2

print(f'\nMediana = {funcion_b(1.1, 2.2, 3.3, 4.4)}') # imprime Mediana = 2.75 (la suma de los dos del medio/2)

print(f'\nMediana = {funcion_b(1.1, 2.2, 3.3, 4.4, 5.5)}') # imprime Mediana = 3.3 (el del medio)

__________________

c) Crear una función que tome una lista de valores flotantes y calcule la
desviación estándar

def funcion_c(*args):
   lista = []
   for arg in args:
       if type(arg) is float:
           lista.append(arg)
   return np.std(lista)

print(f'\nDesviación standar = {funcion_c(1.1, 2.2, 3.3, 4.4, 5.5)}') # imprime Desviación standar = 1.5556349186104046

__________________

d)

import numpy as np
import sys, math


def media(lista):
   sumatoria = 0
   for i in range(len(lista)):
       sumatoria += lista[i]
       
   return sumatoria/(i+1)

def mediana(lista):
   data = sorted(lista)
   index = len(lista) // 2
   if len(lista) % 2 != 0:
       return data[index]
   
   return (data[index - 1] + data[index]) / 2

def desviacion(lista):
   return np.std(lista)

def distribucion_tipo(_media, _mediana):
   if math.isclose(_media, _mediana, rel_tol = 0.0001):   # creo que esto es así...si no google
       return "Distribución simétrica"
   elif _media < _mediana:
       return "Distribución asimétrica negativa"
   elif _media > _mediana:
       return "Distribución asimétrica positiva"
   else:
       return "Error al calcular el tipo de distribución..."
       
def show_floats(lista):
   datas = ""
   for i in range(len(lista)):
       datas = f'{datas} {str(lista[i])}\n'
       
   return "\n" + datas
   
def display_menu():    
   while(True):
       print("Ingrese nro valores a ingresar [ingrese 'x' para salir]: ")
       ingreso = input()
       if ingreso is 'x':
           print("\nBye!")
           sys.exit(0)
       try:
           ingreso = int(ingreso)
           if ingreso > 1:
               lista = []
               for i in range(ingreso):
                   print(f'\nIngrese nro posición {i}: ' )
                   nro = float(input())                    
                   lista.append(nro)
               print(f'\nLos valores son: {show_floats(lista)}')
               _media = media(lista)
               print(f'La media es: {_media}')
               _mediana = mediana(lista)
               print(f'La mediana es: {_mediana}')
               print(f'La desviacion es: {desviacion(lista)}')
               print(f'La distribución es: {distribucion_tipo(_media, _mediana)}\n')
       except:
           print("\nError, pruebe otra vez...\n")
                   
def main():
   display_menu()

if __name__ == '__main__':    
   main()



Si lo anterior no se lee bien, entrá acá que está el compilador con lo mismo identado = https://www.online-python.com/c8Bp32sT1H

saludos


02-Dec-2022 20:38
Invitado (ayudante)

madre de dios...
buenas tardes:

a)Crear una función que tome una lista de valores flotantes, calcule la media de
los valores y la devuelva como valor de retorno:

def funcion_a(*args):
   sumatoria = 0
   i = 0
   for arg in args:
       if type(arg) is float:
           sumatoria += arg
           i += 1    
   return sumatoria/i

print(f'\nMedia = {funcion_a(1.5, 1.3, 1.23)}') # imprime Media = 1.343333333333333  y si queres se puede redondear con método round. Googlea round() python e improvisa...

__________________

b) Crear una función que tome una lista de valores flotantes, calcule la mediana
de los valores y la devuelva como valor de retorno.

def funcion_b(*args):
   data = sorted(args)
   index = len(data) // 2
   if type(args) is float and len(args) % 2 != 0:
       return data[index]
   return (data[index - 1] + data[index]) / 2

print(f'\nMediana = {funcion_b(1.1, 2.2, 3.3, 4.4)}') # imprime Mediana = 2.75 (la suma de los dos del medio/2)

print(f'\nMediana = {funcion_b(1.1, 2.2, 3.3, 4.4, 5.5)}') # imprime Mediana = 3.3 (el del medio)

__________________

c) Crear una función que tome una lista de valores flotantes y calcule la
desviación estándar

def funcion_c(*args):
   lista = []
   for arg in args:
       if type(arg) is float:
           lista.append(arg)
   return np.std(lista)

print(f'\nDesviación standar = {funcion_c(1.1, 2.2, 3.3, 4.4, 5.5)}') # imprime Desviación standar = 1.5556349186104046

__________________

d)

import numpy as np
import sys, math


def media(lista):
   sumatoria = 0
   for i in range(len(lista)):
       sumatoria += lista[i]
       
   return sumatoria/(i+1)

def mediana(lista):
   data = sorted(lista)
   index = len(lista) // 2
   if len(lista) % 2 != 0:
       return data[index]
   
   return (data[index - 1] + data[index]) / 2

def desviacion(lista):
   return np.std(lista)

def distribucion_tipo(_media, _mediana):
   if math.isclose(_media, _mediana, rel_tol = 0.0001):   # creo que esto es así...si no google
       return "Distribución simétrica"
   elif _media < _mediana:
       return "Distribución asimétrica negativa"
   elif _media > _mediana:
       return "Distribución asimétrica positiva"
   else:
       return "Error al calcular el tipo de distribución..."
       
def show_floats(lista):
   datas = ""
   for i in range(len(lista)):
       datas = f'{datas} {str(lista[i])}\n'
       
   return "\n" + datas
   
def display_menu():    
   while(True):
       print("Ingrese nro valores a ingresar [ingrese 'x' para salir]: ")
       ingreso = input()
       if ingreso is 'x':
           print("\nBye!")
           sys.exit(0)
       try:
           ingreso = int(ingreso)
           if ingreso > 1:
               lista = []
               for i in range(ingreso):
                   print(f'\nIngrese nro posición {i}: ' )
                   nro = float(input())                    
                   lista.append(nro)
               print(f'\nLos valores son: {show_floats(lista)}')
               _media = media(lista)
               print(f'La media es: {_media}')
               _mediana = mediana(lista)
               print(f'La mediana es: {_mediana}')
               print(f'La desviacion es: {desviacion(lista)}')
               print(f'La distribución es: {distribucion_tipo(_media, _mediana)}\n')
       except:
           print("\nError, pruebe otra vez...\n")
                   
def main():
   display_menu()

if __name__ == '__main__':    
   main()



Si lo anterior no se lee bien, entrá acá que está el compilador con lo mismo identado = https://www.online-python.com/c8Bp32sT1H

saludos






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)