11. Diccionario con peso

Consigna

Realizar un programa que permita:

a)  cargar un número N. Validar que sea positivo sino reingresar.  Luego cargar un diccionario con los nombres de N pacientes y su peso. Validar peso entre 0 y 250 kg B

b) Mostrar un menú como el siguiente:

1.- Cantidad de personas que pesan mas que A

2.- Hay personas de menos de X kg?

3.- Promedio de pesos

F.- Finalizar

c) Si elige 1. ingresar un valor A y llamar a una función pasandole ese valor como argumento y retornar la cantidad de personas que superen en peso A pasado como argumento. El valor retornado mostrarlo en el programa.

d) Si elige 2. llamar a una función que pida que ingrese un valor X e informe si hay o no personas con menos de X kg. Si hubiere mostrar el nombre de esas personas en la función.

e) Si elige 3. llamar a una funcion que calcule y retorne el promedio de los pesos de las personas cargadas. El valor retornado mostrarlo en el programa.

f) El programa solo termina con F para finalizar. Si ingresa cualquier otro valor mostrar “Error”

Resolución

# -*- coding: utf-8 -*-
"""
Created on Tue Jun 15 19:53:34 2021
@author: Andrea
"""
def ejer (peso):
    cont=0
    for j in pacientes:
        if (pacientes[j]>=peso):
            cont+=1
    return (cont)
def fun2 (peso):
    band = False
    
    for j in pacientes:
        if (pacientes[j]<=peso):
            band=True
            print ("Nombre conmenos  de {} kg: {}". format(peso,j))
    if (not band):
            print("No hubo personas con menos del peso ingresado")
    
def prom():
    suma=0
    for j in pacientes:
        suma+=pacientes[j]
    print ("El promedio de pesos es ", suma/len(pacientes))
    
    
    
N = int (input ("Ingrese el valor N"))
while N<0:
    N = int (input ("Erro. Re Ingrese el valor N"))
pacientes= {}
for i in range(N):
    clave=input('Ingrese el nombre del paciente: ')
    peso=float(input('Ingrese el peso del paciente: '))
    while peso < 0 or peso >250:
         peso=float(input('Error. ReIngrese el peso del paciente: '))
    pacientes[clave]=peso
print (pacientes)
opc=(input("Menu...1.- cantidad 2.- hay  3.- Promedio F.- Fin"))
while opc!='F'and opc!='f':
    if (opc=='1'):
        a = float(input('Ingrese el peso A a buscar: '))
        c = ejer(a)
        print("la cantidad de valores que supera los {} kg es {}".format(a,c))
    elif (opc=='2'):
        X=float(input('Ingrese el peso X a buscar: '))
        fun2(X)
    elif (opc=='3'):
        prom()
    elif (opc=='F') or (opc=='f'):
        print ("chauuu")
    else:
        print ("error. opcion incorrecta")
    opc=(input("Menu...1.- cantidad 2.- hay  3.- Promedio F.- Fin"))