Consulta de calculadora IMC | Sololearn: Learn to code for FREE!
Novo curso! Todo programador deveria aprender IA generativa!
Experimente uma aula grƔtis
+ 2

Consulta de calculadora IMC

Tengo una duda muy grande me da error en el primer if , Quiero saber quƩ estoy haciendo mal en esta tarea que te da python. Desde ya, gracias. peso=float(input("ponga el peso: ")) altura=float(input("ponga la altura: ")) imc = peso / (altura**2) if imc < 18.5: print("Underweight") elif imc <=18.5 and imc < 24.9: print ("Normal") elif imc <=25 and imc < 29.9: print("overweight") else imc <=25 and imc <30: print("Obesity")

13th Dec 2021, 2:38 AM
Gaspar Guzman
Gaspar Guzman - avatar
13 Respostas
+ 10
Te entiendo, si que sufrĆ­ con este ejercio jajaja y consulte con una amiga programadora pero ella decĆ­a que estaba correcto como lo hice pero sololearn me arrojaba error.. Ok, tuve un dolor de cabeza.. por este ejercicio de 3 dias jajaja pero logrĆ© resolverlo.. Soy diseƱador grĆ”fico, entrando al mundo de programaciĆ³n.. dificil pero cada dĆ­a me encanta mas.. AquĆ­ va mi mĆ©todo de como resolvĆ­.. es mi primer aporte a la comunidad..SaliĆ³ todo correcto en el playground. peso = float(input()) altura = float(input()) imc = peso // altura**2 if imc < 18.5: print ("Underweight") elif (imc == 18.5) or (imc <= 24.9): print ("Normal") elif (imc == 25) or (imc <= 29.9): print ("Overweight") else: if Imc >= 30: print ("Obesity") El punto importante, en mi programa.. es el operador // .. si no hubiera puesto de estĆ  forma me arrojaba error, pero era extraƱo porque de 5 vistos buenos tenia uno no acertado.. que fueron 3 dias ..hasta que lo descrubĆ­ que era .. simplemente ese operador..
18th Feb 2022, 8:40 PM
Andres cedeƱo
Andres cedeƱo - avatar
+ 6
Con funciĆ³n round(): Peso: 52 Altura: 1.85 IMC: 15.2 (este se redondea) weight = int(input()) height = float(input()) imc = round(weight / (height ** 2), 1) if (imc > 0 and imc <= 18.5): print("Underweight") elif (imc >= 18.5 and imc <= 24.9): print("Normal") elif (imc >= 25 and imc <= 29.9): print("Overweight") elif (imc >= 30): print("Obesity")
17th Mar 2022, 7:23 PM
Cristian Rebollo Castillo
Cristian Rebollo Castillo - avatar
+ 4
A ver si puedo ayudar en algo, ya que yo tambiĆ©n estuve bastante tiempo peleando con este ejercicio. El problema que tenemos si utilizamos el operador ā€œ/ā€ al realizar la operaciĆ³n, es que nos devolverĆ” un float con mĆ”s de 10 decimales, cosa que se nos escapa a la hora de meterlo en los condicionales que nos indican. La soluciĆ³n de utilizar el operador de divisiĆ³n ā€œ//ā€œ funciona, pero creo que no serĆ­a lo correcto, ya que este nos devolverĆ” un valor entero con decimal siempre a 0 y si nos fijamos en los rangos de valores proporcionados, estos tienen 1 decimal funcional. Por ejemplo: Con operador /: Peso 52 Altura 1.85 IMC: 15,19357195032871 Con operador //: Peso: 52 Altura: 1.85 IMC: 15.0 PodĆ©is comprobarlo vosotros mismos aƱadiendo un print(resultado) debajo de la operaciĆ³n y asĆ­ poder ver la salida, aunque este muestre error. Aunque no se ha aprendido en lecciones anteriores, creo que lo correcto serĆ­a aƱadir la funciĆ³n round() y especificar cuantos decimales queremos en el resultado.
17th Mar 2022, 7:23 PM
Cristian Rebollo Castillo
Cristian Rebollo Castillo - avatar
+ 4
AsĆ­ me funcionĆ³: peso = float(input()) altura = float(input()) imc = peso // altura**2 if imc < 18.5: print ("Underweight") elif (imc == 18.5) or (imc <= 24.9): print ("Normal") elif (imc == 25) or (imc <= 29.9): print ("Overweight") else: if Imc >= 30: print ("Obesity")
25th Mar 2022, 12:07 AM
N Kowal
N Kowal - avatar
+ 1
Claro es una opciĆ³n mas avanzada.. Para las proximas unidades .. Ese aporte que has dado hay valorarlo..ya que seguro no los enseƱa mas adelante.. En mi caso como novato me parece cool..
17th Mar 2022, 10:27 PM
Andres cedeƱo
Andres cedeƱo - avatar
+ 1
Hermanos, gracias por comentar lo del operador //. Estaba que me deprimĆ­a con ese ejercicio. šŸ˜…
13th Apr 2022, 3:53 PM
Luis AndrĆ© Baroni IstĆŗriz
Luis AndrĆ© Baroni IstĆŗriz - avatar
0
El operador // ha sido clave!! me estaba volviendo loca ya... muchs gracias!
11th Mar 2022, 8:27 AM
Marina
0
Claro.. Me pasĆ³.. La razĆ³n es es que el programa debe recibir valor de decimales de menor dĆ­gito posible.. Y eso lo hace el operador //
11th Mar 2022, 4:17 PM
Andres cedeƱo
Andres cedeƱo - avatar
0
esta es la mejor solucion, volvi despues de un tiempo a este ejercicio y la cosa seria asi: peso = int(input()) altura = float(input()) imc = peso / altura**2 if imc < 18.5: print("Underweight") elif imc >= 18.5 and imc <= 25.9: print("Normal") elif imc >= 25 and imc <= 29.9: print("Overweight") elif imc >= 30: print("Obesity")
14th Aug 2022, 10:27 PM
Gaspar Guzman
Gaspar Guzman - avatar
0
Intente con diferentes maneras usando and y operadores lĆ³gicos y siempre me marcaba error en la declaraciĆ³n de una condiciĆ³n, por lo que no me dejaba ejecutar el programa, lo probĆ© en mi lap y funcionaba perfectamente šŸ¤Ø al final me admitiĆ³ una respuesta en la que no usĆ© operadores booleanos pero los resultados fueron correctos... peso = int(input()) altura = float(input()) imc= peso/(altura**2) imc= round(imc,1) if imc < 30: if imc < 18.5: print("Underweight") else: if imc < 25: print("Normal") elif imc >= 25: print("Overweight") else: print("Obesity")
8th Mar 2023, 1:05 AM
Litzi Yarely SƔnchez Enrƭquez
Litzi Yarely SƔnchez Enrƭquez - avatar
0
En vez de / Pon // Todos mis conocidos programadores me decian que estaba bien el codigo, luego uno me pregunto de donde era el ejercicio y me dijo que era el "/" -_- peso = int(input()) altura = float(input()) IMC = peso // altura ** 2 if IMC < 18.5: print("Underweight") elif 18.5 <= IMC < 24.9: print("Normal") elif 25 <= IMC < 29.9: print("Overweight") else: print ("Obesity")
24th Mar 2023, 5:08 AM
Daniel Barrios
Daniel Barrios - avatar
0
A mi solamente me lo dio vƔlido de esta forma, ya es el segundo dƭa que llevo en este problema jajsjs peso = float(input()) altura = float(input()) imc = peso // altura**2 if imc < 18.5: print ("Underweight") elif (imc == 18.5) or (imc <= 24.9): print ("Normal") elif (imc == 25) or (imc <= 29.9): print ("Overweight") else: if imc >= 30: print ("Obesity")
9th Nov 2023, 2:59 PM
Alexis J CenturiĆ³n
Alexis J CenturiĆ³n - avatar