Jump to content
msmsms

repetir 5 vezes uma mesma função

Recommended Posts

msmsms

criei uma função e fiz uma nova função para repetir a inicial atraves de um loop for

mas quando faço a repetição com a função criada para o efeito apenas os inputs são repetidos x vezes e nunca os resultados de return

quero saber pork isto acontece

grato desde ja

# sendo colocado 0 como paramentro formal (genero) é determinado o pedo ideal para o homem
# sendo colocado 1 é determinado o peso ideal para a mulher
# sendo colocado qualquer outro valor (número) é retornada uma string de alerta
def peso_ideal():
   altura = eval(input('altura: ')) # eval() garante que o input será um número
   genero = eval(input('genero 0/1: ')) # eval() garante que o input será um número	   

   if genero == 0:
    return (72.7*altura)-58
   elif genero == 1:
    return (62.1*altura)-44.7
   else:
    return 'coloque 0 para homem ou 1 para mulher'

def repetir(numero_vezes):
   for i in range(numero_vezes):
    peso_ideal()

Share this post


Link to post
Share on other sites
KTachyon

Não os estás a imprimir, estás a retornar.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
thoga31

Outra coisa. Não uses eval, pode ser perigoso uma vez que ele executa código Python. Usa int:

altura = int(input("Altura? "))

Mais, recomendo que o input do género seja feita numa estrutura de repetição. Se eu não inserir 0 ou 1, nada acontece a não ser um aviso. Se o ciclo for de 10 iterações e falhar o input de todas, nunca obterei o peso ideal.

while genero not in [0, 1]:
   # input

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites
msmsms

Não os estás a imprimir, estás a retornar.

eu tentei fazer pint da função como deixo em baixo mas dá erro? como se faz o print para este caso?

def repetir(numero_vezes):
for i in range(numero_vezes):
		print peso_ideal()

eu estou a usar python versao 3

quando eu faço no python 2: print 'abc'' obtenho a cadeia abc na consola

quando o faço no python 3 obtenho um erro logo deve haver alguma coisa de diferente no print

Edited by msmsms

Share this post


Link to post
Share on other sites
msmsms

já consegui descobrir porque não dava

tenho de colocar parenteces ( ) no print em python 3, era por isso

# sendo colocado 0 como paramentro formal (genero) é determinado o pedo ideal para o homem
# sendo colocado 1 é determinado o peso ideal para a mulher
# sendo colocado qualquer outro valor (número) é retornada uma string de alerta
def peso_ideal():
altura = float(input('altura: ')) # float() garante que o input será um número com virgula
genero = int(input('genero 0/1: ')) # int () garante que o input será um número inteiro

if genero == 0:
 return (72.7*altura)-58
elif genero == 1:
 return (62.1*altura)-44.7
else:
 return 'coloque 0 para homem ou 1 para mulher'

def repetir(numero_vezes):
for i in range(numero_vezes):
 print (peso_ideal()) # como é python 3 tem de levar parentices aqui

Edited by msmsms

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.