0
I organized my code into functions but I can't return the values. What is wrong?
def jogar(): define_parametros() imprime_mensagem() calcula_imc() def define_parametros(): peso = float(input('Digite seu peso: ')) altura = float(input('Digite sua altura em metros: ')) imc = peso / (altura ** 2) def imprime_mensagem(): print('Seu IMC é {:.1f}'.format(imc)) print('Você está: ', end = '') def calcula_imc(imc): if imc < 18.5: print('Abaixo do peso ideal.') elif imc >= 18.5 and imc <= 25: print('Com o peso ideal.') elif imc >= 25 and imc <= 30: print('Com sobrepeso.') elif imc >= 30 and imc <= 40: print('Em obesidade.') else: print('Em obesidade mórbida.') if(__name__ == "__main__"): jogar()
8 Antworten
+ 2
Hi! and where do you call the jogar function?
+ 2
I updated the code, now it should work?
+ 2
'''
Nícolas Nascimento
you can avoid using globals if you return the imc calculated from define_parametros() as an argument to imprime_mensagen(imc) and calcula_imc(imc)
'''
def jogar():
imc = define_parametros()
imprime_mensagem(imc)
calcula_imc(imc)
def define_parametros():
peso = float(input('Digite seu peso: '))
altura = float(input('Digite sua altura em metros: '))
imc = peso / (altura ** 2)
return imc
def imprime_mensagem(imc):
print('Seu IMC é {:.1f}'.format(imc))
print('Você está: ', end = '')
def calcula_imc(imc):
if imc < 18.5:
print('Abaixo do peso ideal.')
elif imc >= 18.5 and imc <= 25:
print('Com o peso ideal.')
elif imc >= 25 and imc <= 30:
print('Com sobrepeso.')
elif imc >= 30 and imc <= 40:
print('Em obesidade.')
else:
print('Em obesidade mórbida.')
if(__name__ == "__main__"):
jogar()
+ 1
First, you are trying to use the global variable imc, but you are not accessing it as a global variable, that is, in each function you have different variables with the same name imc. Second, you created the calcula_imc function with an argument, but you call it without an argument.
Debug:
imc = 0.0
def jogar():
define_parametros()
imprime_mensagem()
calcula_imc(imc)
def define_parametros():
peso = float(input('Digite seu peso: '))
altura = float(input('Digite sua altura em metros: '))
global imc
imc = peso / (altura ** 2)
And thirdly, the use of global variables is considered not a very good practice, I would get rid of it.
0
probably... can be code run even without calling this function, but it is difficult to check in the sololearn, since you are in the pop-up window at the very beginning when you pressed the run button, and the input window popped up you must enter all the required values at once
0
and you dont have to come up with complex constructs with if. simply write the name of the function to call it and empty brackets (if the function does not require additional parameters)
0
#try to run this code
num1=int(input('enter number 1: \n'))
num2=int(input('enter number 2: \n'))
total=num1+num2
print(total)
0
Thank you so much guys!!!! <3