Hola buenas, mi nombre es claudio y quería comentaros una cosa. Si el tema no es con este foro por favor, cámbienlo.
Hace poco he empezado con Python en programación, y lo más basico que podia hacer era una calculadora. Os dejo el codigo.
#Autor:Thecloudff7
#-Primer programa con Python
print("Bienvenido a Calcel v 0.1!")
num1 = int(input("Introduce el primer numero para calcular: "))
num2 = int(input("Introduce el segundo numero para calcular: "))
signo = input("Elige el signo con que quieres calcular(+, -, *, /): ")
if signo == "+":
resultado = num1+num2
elif signo == "-":
resultado = num1-num2
elif signo == "*":
resultado = num1*num2
elif signo == "/":
resultado = num1/num2
else:
print("Has introducido el caracter mal, porfavor intentelo de nuevo")
print("Calculando...")
print("Tu resultado es: ", resultado)
Este programa funciona a la perfección. Muy basico, metes tus numeros y te sale el resultado.
Pero queria mejorar metiendo funciones, y que cuando hagas una división(pex.2/2) te pida si quieres el resto o no. Tienes que escribir S o N y si no escribes nada de eso, te devuelve la misma pregunta. Cómo puedo hacer eso? Os dejo el codigo que probe yo:
#--Calcel--#
#Versión: 0.1
#Autor:Thecloudff7
#-Primer programa con Python
print("Bienvenido a Calcel v 0.1!")
num1 = int(input("Introduce el primer numero para calcular: "))
num2 = int(input("Introduce el segundo numero para calcular: "))
def resto():
resto = input("¿Quieres saber el resto de la división?(S/N): ")
if resto == "S":
res=num1%num2
return res
elif resto == "N":
return resto
else:
print("Opción incorrecta")
print("Calcular division entera...")
return resto
signo = input("Elige el signo con que quieres calcular(+, -, *, /): ")
if signo == "+":
resultado = num1+num2
elif signo == "-":
resultado = num1-num2
elif signo == "*":
resultado = num1*num2
elif signo == "/":
resultado = num1/num2
resto()
else:
print("Has introducido el caracter mal, porfavor intentelo de nuevo")
print("Calculando...")
print("Tu resultado es: ", resultado)
resto= resto(res)
Muchas gracias de ante mano. Si no entienden algo díganmelo
Mod: Esto no es una duda general, movido
Este tema debería ir en Scripting (http://foro.elhacker.net/scripting-b64.0/).
Bueno con respecto a tu duda... y asumiendo que usas Python 2.
Para declarar una función:
def funcion():
contenido
funcion()
Quedaría algo así (función para sumar):
def suma():
resultado = num1 + num2
signo = raw_input("Elige el signo con que quieres calcular(+, -, *, /): ")
if signo == "+":
suma()
Nótese que en la línea 5 hay que cambiar el input a raw_input, ya que de por sí mismo, input no acepta strings como entrada, y por lo tanto arroja error.
Ahora, por "resto" creo que te refieres a "residuo". ¿No?
Lo que se me ocurre es que deberías hacer que el usuario primero ingrese los valores, los almacene en variables y luego pregunte si quiere ver el resto o no.
Algo como esto:
num1 = int(input("Introduce el primer numero para calcular: "))
num2 = int(input("Introduce el segundo numero para calcular: "))
resto = raw_input("¿Quieres saber el resto de la división?(S/N): ")
if resto == "S":
residuo = num1 % num2
print residuo
elif resto == "N":
resultado = num1 / num2
print resultado
Por cierto, un consejo:
num1 = int(input("Introduce el primer numero para calcular: "))
Puedes modificar esa línea a:
num1 = input("Introduce el primer numero para calcular: ")
Para que también se puedan ingresar floats.
Cita de: gck en 25 Julio 2015, 23:27 PM
Este tema debería ir en Scripting (http://foro.elhacker.net/scripting-b64.0/).
Bueno con respecto a tu duda... y asumiendo que usas Python 2.
Para declarar una función:
def funcion():
contenido
funcion()
Quedaría algo así (función para sumar):
def suma():
resultado = num1 + num2
suma()
signo = raw_input("Elige el signo con que quieres calcular(+, -, *, /): ")
if signo == "+":
suma()
Nótese que en la línea 5 hay que cambiar el input a raw_input, ya que de por sí mismo, input no acepta strings como entrada, y por lo tanto arroja error.
Ahora, por "resto" creo que te refieres a "residuo". ¿No?
Lo que se me ocurre es que deberías hacer que el usuario primero ingrese los valores, los almacene en variables y luego pregunte si quiere ver el resto o no.
Algo como esto:
num1 = int(input("Introduce el primer numero para calcular: "))
num2 = int(input("Introduce el segundo numero para calcular: "))
resto = raw_input("¿Quieres saber el resto de la división?(S/N): ")
if resto == "S":
residuo = num1 % num2
print residuo
elif resto == "N":
resultado = num1 / num2
print resultado
Por cierto, un consejo:
num1 = int(input("Introduce el primer numero para calcular: "))
Puedes modificar esa línea a:
num1 = input("Introduce el primer numero para calcular: ")
Para que también se puedan ingresar floats.
Vale pero sigo con el mismo problema.
mira:
#--Calcel--#
#Versión: 0.1
#Autor:Thecloudff7
#-Primer programa con Python
print("Bienvenido a Calcel v 0.1!")
num1 = input("Introduce el primer numero para calcular: ")
num2 = input("Introduce el segundo numero para calcular: ")
def suma():
resultado = num1+num2
def resta():
resultado = num1-num2
def multi():
resultado = num1*num2
def divi():
resultado = num1/num2
signo =input("Elige el signo con que quieres calcular(+, -, *, /): ")
if signo=="+":
suma()
print("Calculando...")
print("Tu resultado es: ", resultado)
elif signo=="-":
resta()
elif signo=="*":
multi()
elif signo=="/":
divi()
print("Calculando...")
print("Tu resultado es: ", resultado)
resto= resto(res)
if signo =="/":
print("El resto vale: ", resto)
el problema esta ahora en que cuando pongo la variable "resultado" fuera de la definicion(por ejemplo en el print mostrado) me sale esto:
"NameError: name 'resultado' is not defined"
Por cierto muchas gracias por todo! Pero el raw_input me dice que no esta definido. Hay que importar algo?
[MOD] Modificada asignación de etiqueta en colocación erronea.
Asumí que usabas Python 2, es por eso que te nombré el clásico raw_input y por lo que tengo entendido, es que en Python 3 ya no existe.
Bueno con respecto al problema de resultado not defined, solo tienes que declarar la variable como global.
Así:
print("Bienvenido a Calcel v 0.1!")
num1 = input("Introduce el primer numero para calcular: ")
num2 = input("Introduce el segundo numero para calcular: ")
def suma():
global resultado
resultado = num1+num2
print("Calculando...")
print("Tu resultado es: ", resultado)
if signo=="+":
suma()
Ojo! Le moví algo, tenías el if del signo + así:
if signo=="+":
suma()
print("Calculando...")
print("Tu resultado es: ", resultado)
Entonces envíe los dos print directamente a la función, cuidado te confundes!
Ah y te has pasado con la etiqueta GeSHi, mira desde la línea 39.
Cita de: gck en 26 Julio 2015, 01:17 AM
Asumí que usabas Python 2, es por eso que te nombré el clásico raw_input y por lo que tengo entendido, es que en Python 3 ya no existe.
Bueno con respecto al problema de resultado not defined, solo tienes que declarar la variable como global.
Así:
print("Bienvenido a Calcel v 0.1!")
num1 = input("Introduce el primer numero para calcular: ")
num2 = input("Introduce el segundo numero para calcular: ")
def suma():
global resultado
resultado = num1+num2
print("Calculando...")
print("Tu resultado es: ", resultado)
if signo=="+":
suma()
Ojo! Le moví algo, tenías el if del signo + así:
if signo=="+":
suma()
print("Calculando...")
print("Tu resultado es: ", resultado)
Entonces envíe los dos print directamente a la función, cuidado te confundes!
Ah y te has pasado con la etiqueta GeSHi, mira desde la línea 39.
Muchas gracias enserio!! ya lo tengo todo arreglado! Fallaba lo de la variable global jeje. te dejo el codigo final:
def suma():
global resultado
resultado = num1+num2
print("Calculando...")
print("Tu resultado es: ", resultado)
def resta():
global resultado
resultado = num1-num2
print("Calculando...")
print("Tu resultado es: ", resultado)
def multi():
global resultado
resultado = num1*num2
print("Calculando...")
print("Tu resultado es: ", resultado)
def divi():
global resultado
resultado = num1/num2
print("Calculando...")
print("Tu resultado es: ", resultado)
signo =input("Elige el signo con que quieres calcular(+, -, *, /): ")
if signo=="+":
suma()
elif signo=="-":
resta()
elif signo=="*":
multi()
elif signo=="/":
resto=input("Quieres saber el resto?(S/N)?")
if resto=="S":
resi= num1%num2
divi=num1/num2
print("Calculando...")
print("Tu resultado es", divi, "Y tu resto", resi)
elif resto=="N":
divi()
Otra pregunta. sabrias donde puedo conseguir tutoriales para hacer interfaces?
¿Interfaces? ¿Te refieres a elementos gráficos?
Yo personalmente prefiero usar PyGTK, acá un tutorial (PDF) (http://www.pygtk.org/dist/pygtk2-tut-es.pdf). No lo leí todo, pero hasta donde yo llegué lo puedo considerar bastante completo. El punto malo es que usa Python 2, pero basta con un poco de ingenio para que lo adaptes a Python 3.
Encantado de ayudar jejej.
A propósito, si ya has resuelto tu duda agrégale un "[Resuelto]" al título y si puedes cámbiale el ícono.
Muchas gracias por todo enserio!! me gustaria darte puntos de foro si hay jaaj :rolleyes:
Cita de: thecloudff7 en 26 Julio 2015, 22:44 PM
Muchas gracias por todo enserio!! me gustaria darte puntos de foro si hay jaaj :rolleyes:
no hay puntos... esto es un foro de discusión y aprendizaje, no son necesarios... ;-)
soy nuevo que mas quieres
Y mejor que no haya! Ese sistema de puntos, respeto o lo que sea es siempre abusado! jajaj.
Bueno entonces una razon para que no haya :P