Skip to content

Commit 0b99d8a

Browse files
authored
Merge pull request mouredev#7732 from inmortalnight/main
#5 - Python
2 parents 64dfb86 + 3f5e892 commit 0b99d8a

File tree

1 file changed

+105
-0
lines changed

1 file changed

+105
-0
lines changed
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# 05 - VALOR Y REFERENCIA
2+
3+
# Asignación de variables por valor, se copia, tipo de dato primitivo
4+
5+
# int
6+
valor1 = 10
7+
valor2 = valor1
8+
print("int: ", valor1, valor2, sep=" ")
9+
valor2 = 20
10+
print("int: ", valor1, valor2, sep=" ")
11+
# float
12+
valor1 = 10.5
13+
valor2 = valor1
14+
print("float: " , valor1, valor2, sep=" ")
15+
valor2 = 20.5
16+
print("float: " , valor1, valor2, sep=" ")
17+
# boolean
18+
valor1_1 = True
19+
valor2_2 = valor1_1
20+
print("boolean: " , valor1_1, valor2_2, sep=" ")
21+
valor2_2 = False
22+
print("boolean: " , valor1_1, valor2_2, sep=" ")
23+
# string
24+
valor1 = "Hola"
25+
valor2 = valor1
26+
print("string: " , valor1, valor2, sep=" ")
27+
valor2 = "Adios"
28+
print("string: " , valor1, valor2, sep=" ")
29+
30+
31+
# Asignación de variables por referencia, usa el mismo espacio de memoria, tipo de dato complejo
32+
# list
33+
valor1 = [1, 2, 3]
34+
valor2 = valor1
35+
print("list: " , valor1, valor2, sep=" ")
36+
valor2.append(4)
37+
print("list: " , valor1, valor2, sep=" ")
38+
# tuple
39+
valor1 = (1, 2, 3)
40+
valor2 = valor1
41+
print("tuple: " , valor1, valor2, sep=" ")
42+
# dict
43+
valor1 = {"a": 1, "b": 2}
44+
valor2 = valor1
45+
print("dict: " , valor1, valor2, sep=" ")
46+
valor1["a"] = 3
47+
print("dict: " , valor1, valor2, sep=" ")
48+
# set
49+
valor1 = {1, 2, 3}
50+
valor2 = valor1
51+
print("set: " , valor1, valor2, sep=" ")
52+
valor1.add(4)
53+
print("set: " , valor1, valor2, sep=" ")
54+
# frozenset
55+
valor1 = frozenset({1, 2, 3})
56+
valor2 = valor1
57+
print("frozenset: " , valor1, valor2, sep=" ")
58+
# bytearray
59+
valor1 = bytearray(b"abc")
60+
valor2 = valor1
61+
print("bytearray: " , valor1, valor2, sep=" ")
62+
valor1[0] = 100
63+
print("bytearray: " , valor1, valor2, sep=" ")
64+
65+
66+
# EXTRA
67+
''' * Crea dos programas que reciban dos parámetros (cada uno) definidos como variables anteriormente.
68+
* - Cada programa recibe, en un caso, dos parámetros por valor, y en otro caso, por referencia.
69+
* Estos parámetros los intercambia entre ellos en su interior, los retorna, y su retorno
70+
* se asigna a dos variables diferentes a las originales. A continuación, imprime el valor de las
71+
* variables originales y las nuevas, comprobando que se ha invertido su valor en las segundas.
72+
* Comprueba también que se ha conservado el valor original en las primeras.
73+
def1(a,b), 2 parametros
74+
def2(a,b), '''
75+
76+
# Funcion por valor
77+
def program1(a:int, b: int) -> tuple:
78+
temp = a
79+
a = b
80+
b = temp
81+
return a, b
82+
value1 = 10
83+
value2 = 20
84+
print("value1", value1, "value2", value2)
85+
value3, value4 = program1(value1, value2)
86+
print("value1", value1, "value2", value2)
87+
print("value3", value3, "value4", value4)
88+
89+
# Funcion por referencia
90+
def program2(a:list, b: list) -> tuple:
91+
a, b = b, a
92+
return a, b
93+
value1 = [10, 20]
94+
value2 = [20, 30]
95+
print("value1", value1, "value2", value2)
96+
value3, value4 = program2(value1, value2)
97+
print("value1", value1, "value2", value2)
98+
print("value3", value3, "value4", value4)
99+
100+
'''Explicación:
101+
En ambos casos, lo que se trabaja y se cambia son los variables locales dentro de las funciones.
102+
Aunque salga un error al cambiar por referencia, no afectará a las variables originales.
103+
En el caso de que se quiera cambiar el valor de las variables originales,
104+
se deberá convertir las variables locales en datos compuestos;
105+
listas a[:], b[:] = b[:], a[:].'''

0 commit comments

Comments
 (0)