Skip to content

Commit 279cf54

Browse files
authored
Merge pull request mouredev#4936 from eamartin96/main
#5 - Python
2 parents 1e368a9 + f2c8226 commit 279cf54

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# #05 VALOR Y REFERENCIA
2+
'''
3+
EJERCICIO
4+
- Muestra ejemplos de asignación de variables "por valor" y "por referencia". según
5+
su tipo de dato.
6+
- Muestra ejemplos de funciones con variables que se les pasan "por valor" y
7+
"por referencia", y como se comportan en cada caso en el momento de ser modificadas.
8+
'''
9+
10+
# Paso de dato por valor
11+
'''
12+
Si usamos un párametro pasado por valor, se creará una copia local de la variable, lo que implica que cualquier
13+
modificación sobre la misma no tendrá efecto sobre la original
14+
'''
15+
x = 10
16+
17+
def funcion(entrada):
18+
entrada = 0
19+
20+
funcion(x)
21+
print(x)
22+
23+
# Paso de dato por referencia
24+
'''
25+
Con una variable pasada como referencia, se actuará directamente sobre la variable pasada, por lo que las
26+
modificaciones afectarán a la variable original.
27+
'''
28+
x = [10, 20, 30]
29+
30+
def funcion(entrada):
31+
entrada.append(40)
32+
33+
funcion(x)
34+
print(x)
35+
36+
# DIFICULTAD EXTRA
37+
print("\n----------------------------------------------------")
38+
print("EXTRA DIFFICULT")
39+
'''
40+
Crea dos programas que reciban dos parámetros (cada uno) definidos como variables anteriormente
41+
- Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
42+
Estos parámetros los intercambia entre ellos en su interior, los retorna y su retorno
43+
se asigna a dos variables diferentes a las originales. A continuación, imprime el valor de las
44+
variables originales y las nuevas, comprobando que se ha invertido su valor en las segundas.
45+
Comprueba también que se ha conservado el valor original en las primeras.
46+
'''
47+
48+
# Por valor
49+
var1 = 10
50+
var2 = 20
51+
52+
def valor(var1, var2):
53+
temp = var1
54+
var1 = var2
55+
var2 = temp
56+
return var1, var2
57+
58+
var3, var4 = valor(var1, var2)
59+
60+
print(f"{var1}, {var2}")
61+
print(f"{var3}, {var4}")
62+
63+
# Por referencia
64+
list_a = [10, 20]
65+
list_b = [30, 40]
66+
67+
def referencia(var1: list, var2: list):
68+
temp = var1
69+
var1 = var2
70+
var2 = temp
71+
return var1, var2
72+
73+
list_c, list_d = referencia(list_a, list_b)
74+
print(f"{list_a}, {list_b}")
75+
print(f"{list_c}, {list_d}")

0 commit comments

Comments
 (0)