• print("me ayudan con un problema de función en python ?")

 #494778  por Kv-7
 02 Jun 2019, 07:14
como hago que cuando el usuario ingrese el valor de una variable dentro de una función y después fuera de la función quiera imprimir esa variable me de el mismo valor ingresado por el usuario ?   ej:
. a=0
. def funcion():
.    a=int(input("ingrese un numero: ")) 
.    print(a)
# llamada a la funcion 
funcion(a):
> 10  # lo que ingresa el usuario
>>> 10    # muestra por pantalla "a"
# después le digo que me muestre la variable "a" otra vez y me sale que es cero
print(a)
>>> 0 



perdón si no soy claro 
 #494788  por Teja
 04 Jun 2019, 15:25
Si no me equivoco tu problema es que no retornas datos en la función. De esta manera, si alteras una variable se queda siempre dentro de la función (es una variable local).

Prueba con el siguiente código:

a=0
. def funcion():
.    a=int(input("ingrese un numero: ")) 
.    return a

# llamada a la funcion

a = funcion()
 #494790  por Teja
 04 Jun 2019, 15:34
Te había respondido y no se ha publicado, es posible que acabe habiendo dos mensajes contestándote.

Creo que tu problema es que no retornas ningún valor en tu función.

Una función es como una "caja negra", cuando declaras variables y manipulas datos dentro de ella se quedan en local (por eso se las llama variables locales) y si quieres manipular datos externos a la función o extraer datos de la función tienes que o bien meter parámetros, o bien devolver valores.

De todas maneras, no sé mucho python así que me podría equivocar.

Esto en tu código se traduciría en algo así:

. a=0
. def funcion():
.    a=int(input("ingrese un numero: ")) 
.    return a #así devuelves un valor en una función

# llamada a la funcion 
a=funcion(a) #cuando una función devuelve un valor, tiene que tener una variable del tipo adecuado que lo recoja