Skip to content

Commit f4fcefe

Browse files
#5 - Python
1 parent 91d018f commit f4fcefe

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
'''EJERCICIO:
2+
- Muestra ejemplos de asignación de variables "por valor" y "por referencia", según
3+
su tipo de dato.
4+
- Muestra ejemplos de funciones con variables que se les pasan "por valor" y
5+
"por referencia", y cómo se comportan en cada caso en el momento de ser modificadas.
6+
(Entender estos conceptos es algo esencial en la gran mayoría de lenguajes)
7+
8+
DIFICULTAD EXTRA (opcional):
9+
Crea dos programas que reciban dos parámetros (cada uno) definidos como variables anteriormente.
10+
- Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
11+
Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno
12+
se asigna a dos variables diferentes a las originales. A continuación, imprime el valor de las
13+
variables originales y las nuevas, comprobando que se ha invertido su valor en las segundas.
14+
Comprueba también que se ha conservado el valor original en las primeras.'''
15+
16+
# Asignación de variables por valor
17+
a = 5 # Asignación por valor
18+
b = a # Asignación por valor
19+
a = 10 # Modificación de a
20+
print(a) # a vale 10
21+
print(b) # b sigue valiendo 5
22+
b = 15 # Modificación de b
23+
print(b) # b vale 15
24+
25+
# Asignación de variables por referencia
26+
lista1 = [1, 2, 3] # Asignación por referencia
27+
lista2 = lista1 # Asignación por referencia
28+
lista2.append(4) # Modificación de lista2
29+
print(lista1) # lista1 vale [1, 2, 3, 4]
30+
print(lista2) # lista2 vale [1, 2, 3, 4]
31+
lista1.append(5) # Modificación de lista1
32+
print(lista1) # lista1 vale [1, 2, 3, 4, 5]
33+
print(lista2) # lista2 vale [1, 2, 3, 4, 5]
34+
35+
# Funciones con variables por valor
36+
def int_func(var_int:int):
37+
var_int = 10
38+
return var_int
39+
40+
c = 2
41+
print(int_func(c)) # Imprime 10
42+
print(c) # Imprime 2
43+
44+
# Funciones con variables por referencia
45+
def list_func(var_list:list):
46+
var_list.append(4)
47+
lista = var_list
48+
lista.append(5)
49+
print(var_list) # Imprime [1, 2, 3, 4, 5]
50+
print(lista) # Imprime [1, 2, 3, 4, 5]
51+
52+
var_lista = [1, 2, 3]
53+
list_func(var_lista)
54+
print(var_lista) # Imprime [1, 2, 3, 4, 5]
55+
56+
# EXTRA
57+
'''Crea dos programas que reciban dos parámetros (cada uno) definidos como variables anteriormente.
58+
- Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
59+
Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno
60+
se asigna a dos variables diferentes a las originales. A continuación, imprime el valor de las
61+
variables originales y las nuevas, comprobando que se ha invertido su valor en las segundas.
62+
Comprueba también que se ha conservado el valor original en las primeras.'''
63+
64+
# Por valor
65+
def value(value1:int, value2:int):
66+
temp = value1
67+
value1 = value2
68+
value2 = temp
69+
return value1, value2
70+
71+
value3 = 5
72+
value4 = 10
73+
value5, value6 = value(value3, value4)
74+
75+
print(f'{value3}, {value4}') # Imprime 5, 10
76+
print(f'{value5}, {value6}') # Imprime 10, 5
77+
78+
# Por referencia
79+
def reference(ref1:list, ref2:list):
80+
temp = ref1
81+
ref1 = ref2
82+
ref2 = temp
83+
return ref1, ref2
84+
85+
ref3 = [1, 2, 3]
86+
ref4 = [4, 5, 6]
87+
ref5, ref6 = reference(ref3, ref4)
88+
89+
print(f'{ref3}, {ref4}') # Imprime [1, 2, 3], [4, 5, 6]
90+
print(f'{ref5}, {ref6}') # Imprime [4, 5, 6], [1, 2, 3]

0 commit comments

Comments
 (0)