error de sintaxis en función

Iniciado por Astergoth, 15 Junio 2017, 02:37 AM

0 Miembros y 1 Visitante están viendo este tema.

Astergoth

hola,

estoy intentando como puedo montar un programa que calcule la tasa metabolica basal del usuario,
pero no se por que errore de sintaxis que antes no me salian ahora si y me estan volviendo loco,

os redacto como lo tengo comentado todo actualmente:

Código (python) [Seleccionar]
#!/usr/bin/env python

def sexo():
print ('''Calculadora de TMB (Tasa Metabolica Basal)
1> Hombre
2> Mujer
3> Salir''')

def calculo():
sexo()
opc = input ('Selecciona tu sexo')
while (opc>0 and opc<3):
peso = float(input ("Cuantos kg pesas?"))
altura = int(input ("Cuantos cm mides?"))
edad = int(input ("Que edad tienes?"))
if (opc==1):
print "Tu tasa metabolica basal es:"
print (peso * 10) + (altura * float(6.25) - (edad * 5) + 5

calculo()


tal como esta ahora, el terminal me marca error de syntaxis donde ejecuto la función definida "calculo()" en la linia 20... no lo entiendo :-[ :-[

alguien me puede ayudar por favor?
gracias por adelantado

engel lex

#1
linea 18 no cierra parentesis


por toro lado en esa cuenta ningún parentesis es necesario (incluyendo ese "float" ahí, si un numero tiene coma es ya de coma flotante)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tincopasan

mirando rápido supongo que usas 3.x
si es así en la línea 17 tampoco has usado parentesis, por otro lado te va a dar error porque en  opc input esta devolviendo cadena y while compara enteros.
Si es 2x aclaralo para la próxima.

engel lex

Cita de: tincopasan en 15 Junio 2017, 03:50 AM
mirando rápido supongo que usas 3.x
si es así en la línea 17 tampoco has usado parentesis, por otro lado te va a dar error porque en  opc input esta devolviendo cadena y while compara enteros.
Si es 2x aclaralo para la próxima.


no, es python 2.x, de ser 3 la cabecera dijera python3
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

tincopasan

no me gusta hablar de 2.x pero entonces ¿para que usa int  en los input?

engel lex

en linea 18 usa
Código (python) [Seleccionar]
float(6.25)


XD es lo mismo que los int en los input
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Astergoth

Vale,

Ya he quitado los float y los int, los puse por que en un principio m salio error de sintaxis con el 6.25 y pense que seria mejor especificar los int y los float.
Ya esta solucionado el tema😊😊😊
Engel eres el amo tio

Muchas gracias