Skip to content

Commit cf06562

Browse files
authored
Merge pull request mouredev#2488 from SergioGI99/#5-python
#5 - python
2 parents 4bd911a + 6713afe commit cf06562

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
"""
2+
------------------
3+
VALOR Y REFERENCIA
4+
------------------
5+
EJERCICIO:
6+
- Muestra ejemplos de asignación de variables "por valor" y "por referencia", según
7+
su tipo de dato.
8+
- Muestra ejemplos de funciones con variables que se les pasan "por valor" y
9+
"por referencia", y cómo se comportan en cada caso en el momento de ser modificadas.
10+
(Entender estos conceptos es algo esencial en la gran mayoría de lenguajes)
11+
12+
DIFICULTAD EXTRA (opcional):
13+
Crea dos programas que reciban dos parámetros (cada uno) definidos como
14+
variables anteriormente.
15+
- Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
16+
Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno
17+
se asigna a dos variables diferentes a las originales. A continuación, imprime
18+
el valor de las variables originales y las nuevas, comprobando que se ha invertido
19+
su valor en las segundas.
20+
Comprueba también que se ha conservado el valor original en las primeras.
21+
"""
22+
23+
# Ejercicio
24+
25+
# Asignación de variable por valor
26+
27+
def fun_one(number: int):
28+
number *= 5
29+
30+
n = 10
31+
fun_one(n)
32+
print(n)
33+
34+
my_int_a = 20 # Otro ejemplo
35+
my_int_b = my_int_a
36+
my_int_b = 30
37+
print(my_int_a)
38+
print(my_int_b)
39+
40+
# Asignación de variable por referencia
41+
42+
def fun_two(my_list: list):
43+
for i, n in enumerate(my_list):
44+
my_list[i] *= 2
45+
46+
l = [1, 2, 3]
47+
48+
fun_two(l)
49+
print(l)
50+
51+
my_list_a = [10, 20] # Otro ejemplo
52+
my_list_b = my_list_a
53+
my_list_b.append(30)
54+
print(my_list_a)
55+
print(my_list_b)
56+
57+
# Ejercicio Extra
58+
59+
value_one = 1
60+
value_two = 2
61+
62+
def my_fun(value_a: int, value_b: int):
63+
temp = value_a
64+
value_a = value_b
65+
value_b = temp
66+
return value_a, value_b
67+
68+
print("\nAsignación por valor:")
69+
value_three, value_four = (my_fun(value_one, value_two))
70+
print(f"Originales: {value_one}, {value_two}")
71+
print(f"Nuevos: {value_three}, {value_four}")
72+
73+
value_ref_one = [10, 20]
74+
value_ref_two = [30, 40]
75+
76+
def my_other_fun(value_a: list, value_b: list):
77+
temp = value_a
78+
value_a = value_b
79+
value_b = temp
80+
value_a.append(50)
81+
value_b.append(30)
82+
return value_a, value_b
83+
84+
print("\nAsignación por referencia:")
85+
value_three, value_four = my_other_fun(value_ref_one, value_ref_two)
86+
print(f"Originales: {value_ref_one}, {value_ref_two}")
87+
print(f"Nuevos: {value_three}, {value_four}")

0 commit comments

Comments
 (0)