Skip to content

Commit c8e67ca

Browse files
authored
Merge pull request mouredev#7769 from idiegorojas/main
#5 - Python
2 parents 482cc36 + 3bff040 commit c8e67ca

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Asignacion de variables en python
2+
# En python los enteros, flotantes, cadenas y tuplas, sea signan por valor.
3+
# Esto significa que cuando asignas una variable a otra, se crea una copia independiente del valor.
4+
5+
# Asignacion por valor
6+
a = 10
7+
b = a
8+
print(f'a: {a}, b: {b}') # 'b' recibe una copia de del valor de 'a'
9+
10+
# Modificamos b
11+
b = 20
12+
print(f'a:{a}, b:{b}') # 'a' no se ve afectada ya que los enteros son inmutables.
13+
14+
15+
# Asignacion por referencia
16+
# En python las listas, diccionarios y conjuntos, se asignan por referencia.
17+
# Esto significa que cuando asignas una variable a otra, ambas apuntan al mismo objeto en memoria.
18+
19+
lista_1 = [1, 2 ,3]
20+
lista_2 = lista_1
21+
print(f'Lista 1: {lista_1}, Lista 2: {lista_2}')
22+
23+
# Modificamos la lista 2
24+
lista_2.append(4)
25+
print(f'Lista 1: {lista_1}, Lista 2: {lista_2}') # Al modificar la lista 2, tambien se modifica la lista 1
26+
27+
# Crear una copia independiente de un objeto mutable
28+
lista_1 = [1, 2 ,3]
29+
lista_2 = lista_1.copy() # Lista 2 es una copia independiente de lista 1
30+
print(f'Lista 1: {lista_1}, Lista 2: {lista_2}')
31+
32+
lista_2.append(4)
33+
print(f'Lista 1: {lista_1}, Lista 2: {lista_2}') # Lista 1 no se ve afectada por los cambios de lista 2
34+
35+
36+
# Extra
37+
38+
# Función para intercambiar valores por valor
39+
def intercambiar_por_valor(a, b):
40+
temp = a
41+
a = b
42+
b = temp
43+
return a, b
44+
45+
x = 10
46+
y = 20
47+
48+
nuevo_x, nuevo_y = intercambiar_por_valor(x, y)
49+
50+
print(f"Originales: x = {x}, y = {y}")
51+
print(f"Nuevos: nuevo_x = {nuevo_x}, nuevo_y = {nuevo_y}")
52+
53+
54+
55+
56+
# Función para intercambiar valores por referencia
57+
def intercambiar_por_referencia(lista1, lista2):
58+
temp = lista1[:]
59+
lista1[:] = lista2[:]
60+
lista2[:] = temp
61+
return lista1, lista2
62+
63+
lista_a = [1, 2, 3]
64+
lista_b = [4, 5, 6]
65+
66+
nueva_lista_a, nueva_lista_b = intercambiar_por_referencia(lista_a, lista_b)
67+
68+
print(f"Originales: lista_a = {lista_a}, lista_b = {lista_b}")
69+
print(f"Nuevas: nueva_lista_a = {nueva_lista_a}, nueva_lista_b = {nueva_lista_b}")
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Ejercicio
2+
3+
def contar_atras(n):
4+
if n < 0:
5+
return
6+
print(n)
7+
contar_atras(n-1)
8+
9+
print(contar_atras(100))
10+
11+
# Calcular el factorial de un número
12+
def factorial(n):
13+
if n == 0 or n == 1:
14+
return 1
15+
else:
16+
return n * factorial(n - 1)
17+
18+
print(factorial(5))
19+
20+
21+
# Fibonacci
22+
def fibonacci(posicion):
23+
if posicion == 0:
24+
return 0
25+
elif posicion == 1:
26+
return 1
27+
else:
28+
return fibonacci(posicion - 1) + fibonacci(posicion - 2)
29+
30+
posicion = 10
31+
print(f"El valor en la posición {posicion} de la sucesión de Fibonacci es: {fibonacci(posicion)}")

0 commit comments

Comments
 (0)