Skip to content

Commit 1a06ec0

Browse files
authored
Merge pull request #8275 from AgustinDamonte17/#3----Python
#3 - Python
2 parents c505085 + 0df41ea commit 1a06ec0

File tree

2 files changed

+216
-0
lines changed

2 files changed

+216
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# -----------------------------
2+
# Función sin parámetros ni retorno
3+
# -----------------------------
4+
def saludar():
5+
print("Hola, mundo!")
6+
7+
saludar()
8+
print()
9+
10+
# -----------------------------
11+
# Función con parámetros
12+
# -----------------------------
13+
def saludar_nombre(nombre):
14+
print(f"Hola, {nombre}!")
15+
16+
saludar_nombre("Agustín")
17+
print()
18+
19+
# -----------------------------
20+
# Función con varios parámetros y retorno
21+
# -----------------------------
22+
def sumar(a, b):
23+
return a + b
24+
25+
resultado = sumar(5, 7)
26+
print("Resultado de sumar(5, 7):", resultado)
27+
print()
28+
29+
# -----------------------------
30+
# Función dentro de función
31+
# -----------------------------
32+
def funcion_externa(x):
33+
def funcion_interna(y):
34+
return y * 2
35+
print("Resultado de funcion_interna:", funcion_interna(x))
36+
37+
funcion_externa(4)
38+
print()
39+
40+
# -----------------------------
41+
# Uso de funciones ya creadas en Python
42+
# -----------------------------
43+
numeros = [4, 2, 8, 1]
44+
print("Lista original:", numeros)
45+
print("Lista ordenada con sorted():", sorted(numeros))
46+
print("Longitud con len():", len(numeros))
47+
print("Máximo con max():", max(numeros))
48+
print()
49+
50+
# -----------------------------
51+
# Variables GLOBAL y LOCAL
52+
# -----------------------------
53+
variable_global = "Soy global"
54+
55+
def prueba_variables():
56+
variable_local = "Soy local"
57+
print("Dentro de la función:")
58+
print("Local:", variable_local)
59+
print("Global (accedida):", variable_global)
60+
61+
prueba_variables()
62+
63+
print("\nFuera de la función:")
64+
print("Global:", variable_global)
65+
# print(variable_local) # Esto daría error si lo descomentás
66+
print()
67+
68+
# -----------------------------
69+
# DIFICULTAD EXTRA
70+
# -----------------------------
71+
def fizzbuzz_personalizado(palabra1, palabra2):
72+
contador_numeros = 0
73+
for i in range(1, 101):
74+
texto = ""
75+
if i % 3 == 0:
76+
texto += palabra1
77+
if i % 5 == 0:
78+
texto += palabra2
79+
if texto:
80+
print(texto)
81+
else:
82+
print(i)
83+
contador_numeros += 1
84+
return contador_numeros
85+
86+
print("Ejecutando FizzBuzz personalizado:")
87+
veces_impreso_numero = fizzbuzz_personalizado("Fizz", "Buzz")
88+
print(f"Números impresos (sin Fizz ni Buzz): {veces_impreso_numero}")
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
# ===================================
2+
# PARTE 1: ESTRUCTURAS Y OPERACIONES
3+
# ===================================
4+
5+
print("====== ESTRUCTURAS DE PYTHON ======")
6+
7+
# LISTA
8+
lista = [3, 1, 4]
9+
print("Lista inicial:", lista)
10+
lista.append(2) # inserción
11+
print("Lista tras append:", lista)
12+
lista[1] = 10 # actualización
13+
print("Lista tras actualización:", lista)
14+
lista.remove(4) # borrado
15+
print("Lista tras remove:", lista)
16+
lista.sort() #ordenación
17+
print("Lista ordenada:", lista)
18+
print()
19+
20+
# TUPLA (inmutable, pero se puede crear)
21+
tupla = (1, 2, 3)
22+
print("Tupla:", tupla)
23+
print()
24+
25+
# SET (Posición variable - no se puede ordenar)
26+
conjunto = {5, 2, 8}
27+
print("Set inicial:", conjunto)
28+
conjunto.add(10) # inserción
29+
print("Set tras add:", conjunto)
30+
conjunto.discard(2) # borrado
31+
print("Set tras discard:", conjunto)
32+
# No se puede ordenar un set directamente, pero sí convertir
33+
print("Set ordenado (como lista):", sorted(conjunto))
34+
print()
35+
36+
# DICCIONARIO
37+
diccionario = {"a": 1, "b": 2}
38+
print("Diccionario inicial:", diccionario)
39+
diccionario["c"] = 3 # inserción
40+
print("Diccionario tras inserción:", diccionario)
41+
diccionario["a"] = 100 # actualización
42+
print("Diccionario tras actualización:", diccionario)
43+
del diccionario["b"] # borrado
44+
print("Diccionario tras borrado:", diccionario)
45+
# Ordenar por clave
46+
print("Diccionario ordenado por clave:", dict(sorted(diccionario.items())))
47+
print()
48+
49+
# STRING
50+
texto = "hola mundo"
51+
print("Texto original:", texto)
52+
print("Texto en mayúsculas:", texto.upper())
53+
print("Texto reemplazado:", texto.replace("hola", "hello"))
54+
print()
55+
56+
57+
# ===================================
58+
# PARTE 2: AGENDA DE CONTACTOS (MENÚ)
59+
# ===================================
60+
61+
def validar_telefono(numero):
62+
return numero.isdigit() and len(numero) <= 11
63+
64+
def mostrar_menu():
65+
print("\n====== AGENDA DE CONTACTOS ======")
66+
print("1. Insertar contacto")
67+
print("2. Buscar contacto")
68+
print("3. Actualizar contacto")
69+
print("4. Eliminar contacto")
70+
print("5. Mostrar todos")
71+
print("6. Salir")
72+
73+
agenda = {}
74+
75+
while True:
76+
mostrar_menu()
77+
opcion = input("Selecciona una opción (1-6): ")
78+
79+
if opcion == "1":
80+
nombre = input("Nombre: ").strip()
81+
telefono = input("Teléfono: ").strip()
82+
if validar_telefono(telefono):
83+
agenda[nombre] = telefono
84+
print(f"Contacto '{nombre}' agregado.")
85+
else:
86+
print("Teléfono inválido. Debe ser numérico y de hasta 11 dígitos.")
87+
88+
elif opcion == "2":
89+
nombre = input("Nombre a buscar: ").strip()
90+
if nombre in agenda:
91+
print(f"{nombre}: {agenda[nombre]}")
92+
else:
93+
print("Contacto no encontrado.")
94+
95+
elif opcion == "3":
96+
nombre = input("Nombre a actualizar: ").strip()
97+
if nombre in agenda:
98+
nuevo_telefono = input("Nuevo teléfono: ").strip()
99+
if validar_telefono(nuevo_telefono):
100+
agenda[nombre] = nuevo_telefono
101+
print("Contacto actualizado.")
102+
else:
103+
print("Teléfono inválido.")
104+
else:
105+
print("Contacto no encontrado.")
106+
107+
elif opcion == "4":
108+
nombre = input("Nombre a eliminar: ").strip()
109+
if nombre in agenda:
110+
del agenda[nombre]
111+
print("Contacto eliminado.")
112+
else:
113+
print("Contacto no encontrado.")
114+
115+
elif opcion == "5":
116+
if not agenda:
117+
print("Agenda vacía.")
118+
else:
119+
print("Contactos:")
120+
for nombre, telefono in agenda.items():
121+
print(f"{nombre}: {telefono}")
122+
123+
elif opcion == "6":
124+
print("¡Hasta luego!")
125+
break
126+
127+
else:
128+
print("Opción inválida. Intenta de nuevo.")

0 commit comments

Comments
 (0)