Números aleatorios en Python y funciones

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

Números aleatorios en Python y funciones

Notapor IrvingProg » Lun Ene 10, 2011 6:56 am

Hola.
Estoy desarrollando una pequeña aplicación que pienso convertir en un juego "rapidez mental",por el momento quiero que la aplicación funcione en consola para después portarla a alguna librería de juegos.

Mi código:

Código: Seleccionar todo
#!/usr/bin/python

import random

def sumar(num1,num2):
   suma=int(num1) + int(num2)
   print "suma", num1, "y", num2
   raw_input("introduce la suma de los numeros: ")
   if suma == entrada:
      print "correcto, el numero es",suma
   else:
      print "Error, pasemos a la siguente operacion"


def restar(num1,num2):
   resta = int(num1) - int(num2)
   raw_input("introduce la resta de los numeros: ")
   if resta == entrada:
      print "correcto, el numero es",resta
   else:
      print "Error, pasemos a la siguente operacion"

def num_aleatorio1():
   num = random.randint(1,99)
   print num

def num_aleatorio2():
   num = random.randint(1,99)
   print num

   
num_a1 = num_aleatorio1()
num_a2 = num_aleatorio2()

restar(num_a1,num_a2)


El código es bastante simple, lo que he hecho es declarar dos funciones, suma y resta, después otras dos donde genero dos números aleatorios.

El problema es, que no puedo pasar esos números aleatorios como parámetros a alguna de las funciones que realizan las operaciones de sumar o restar. Quisiera me dijeran como los puedo pasar como parámetros, y si el código va bien :D

Saludos. Gracias
Avatar de Usuario
IrvingProg
 
Mensajes: 24
Registrado: Vie Ene 07, 2011 7:36 pm
Ubicación: México

Re: Números aleatorios en Python y funciones

Notapor pchack » Lun Ene 10, 2011 7:55 am

saludos IrvingProg

al parecer no utilizaste la palabra clave return
esta se utiliza en una funcion cuando quieres devolver algun valor obtenido
y utilizarlo fuera.

en este caso en particular en la asignacion siguiente
num_a1 y num_a2 no toman ningun valor porque la funcion no retorna ninguno.

Código: Seleccionar todo
num_a1 = num_aleatorio1()
num_a2 = num_aleatorio2()


se soluciona escribiendo lo siguiente:

Código: Seleccionar todo
def num_aleatorio1():
   num = random.randint(1,99)
   print num
   # la sentencia "return  num" envia el resultado contenido en num hacia la variable que queramos.   
   return num


otra cosa que falto, es cuando introduces el resultado de la suma( o resta) en la consola este se debe
almacenar en una variable para que luego podamos compararlo con la suma( o resta) correcta.

entrada = raw_input("introduce la resta de los numeros: ")


aqui dejo el codigo con los cambios anteriormente mencionados.
Código: Seleccionar todo
#!/usr/bin/python

import random

def sumar(num1,num2):
   suma=int(num1) + int(num2)
   print "suma", num1, "y", num2
   entrada = raw_input("introduce la suma de los numeros: ")

   if suma == int(entrada):
      print "correcto, el numero es",suma
   else:
      print "Error, pasemos a la siguente operacion"


def restar(num1, num2):
   resta = int(num1) - int(num2)
   
   entrada = raw_input("introduce la resta de los numeros: ")

   if resta == int(entrada):
      print "correcto, el numero es",resta
   else:
      print "Error, pasemos a la siguente operacion"

def num_aleatorio1():
   num = random.randint(1,99)
   print num
   return num

def num_aleatorio2():
   num = random.randint(1,99)
   print num
   return num

   
num_a1 = num_aleatorio1()
num_a2 = num_aleatorio2()

restar(num_a1, num_a2)


Saludos :D .
pchack
 
Mensajes: 106
Registrado: Lun Dic 13, 2010 12:23 am

Re: Números aleatorios en Python y funciones

Notapor IrvingProg » Lun Ene 10, 2011 8:09 am

Gracias phack

Lo return era lo que me hacia falta :D, ya había leído sobre eso en el manual, pero no pense que se usara en estos casos, sinceramente no la recordaba.

El no almacenar el raw_input en una variable, fue error de copypaste en mi propio código jeje. Por cierto seria int(raw_input("introduce..")) para que el valor se tome como entero.

Saludos.
Avatar de Usuario
IrvingProg
 
Mensajes: 24
Registrado: Vie Ene 07, 2011 7:36 pm
Ubicación: México


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron