Fundamentos de Programación en Python: Operaciones, Listas y Control de Flujo
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 15,08 KB
Introducción a Python: Primeros Pasos y Operaciones
Operaciones Aritméticas Básicas
Python puede ser utilizado como una calculadora para realizar operaciones matemáticas:
print("2+2=", 2+2)
print("2-5=", 2-5)
print("3*8=", 3*8)
print("45/5=", 45/5)
print("10**2=", 10**2) # Potencia
print("36**(0.5)=", 36**(0.5)) # Raíz cuadrada (original: 36**1/2 que es 18.0)
Función round()
para Redondeo
La función round()
permite redondear números a un número específico de decimales o a múltiplos de 10, 100, etc.
print(round(34.484, 2))
print(round(29874.45, -4))
print(round(29874.45, -3))
print(round(29874.45, -2))
print(round(29874.45, -1))
print(round(29874.45, 1))
print(round(29874.45, 2))
print(round(29874.454, 3))
Función print()
para Mostrar Salida
La función print()
se utiliza para mostrar información en la consola.
Múltiples argumentos y separador por defecto
print("hola", "y", "adiós") # Imprime los argumentos separados por un espacio
print("hola")
print("y", "adiós")
Parámetro end
El parámetro end
permite especificar qué carácter o cadena se imprimirá al final, en lugar del salto de línea por defecto.
print("hola", end="") # No añade un salto de línea al final
print("y", "adiós") # Se imprimirá a continuación de "hola"
Entrada de Datos y Conversión de Tipos
Función input()
para Leer Datos del Usuario
La función input()
permite al programa solicitar información al usuario.
nombre_usuario = input("Introduce tu nombre: ")
print("Hola,", nombre_usuario)
Operaciones con Entrada del Usuario y Conversión de Tipos
Por defecto, input()
devuelve una cadena de texto (string). Para realizar operaciones numéricas, es necesario convertir la entrada a un tipo numérico como int
(entero) o float
(decimal).
# Ejemplo de suma con valores predefinidos
y = 2
x = 3
print("Suma predefinida:", y + x)
Ejemplo de suma con entrada del usuario (convertida a entero)
y_num = int(input("Introduce un número: "))
x_num = int(input("Introduce otro número: "))
print("La suma es:", y_num + x_num)
print("El doble del segundo número es:", x_num + x_num)
Concatenación de cadenas si no se convierte a número
cumpleanos = input("Introduce tu cumpleaños (como texto): ")
print("Concatenación:", cumpleanos + cumpleanos) # Esto concatenará la cadena
Más Ejemplos de input()
y print()
print("¿Cómo te llamas?", end="")
nombre = input()
print("Hola,", nombre)
print("¿Cómo te llamas de nuevo?", end="")
nombre_persona = input()
edad_str = input("¿Cuántos años tienes? ")
print("Eres", nombre_persona, "y tienes", edad_str, "años.")
Operaciones Booleanas
Las operaciones booleanas evalúan expresiones y devuelven True
(verdadero) o False
(falso).
# Ejemplo 1
x_bool = (5 > 4 and (6 < 8 or 5 > 8))
print("x =", x_bool)
Ejemplo 2
y_bool = (54 < 5 and (4 < 5 or 7 < 3) and (2 > 3 or 1 < 2))
print("y =", y_bool)
Ejemplo 3 con 'not'
t_bool = (not (3 < 5) and 5 < 6)
print("t =", t_bool)
Nota: El uso de bool()
como en x=bool(...)
es redundante si la expresión ya evalúa a un booleano.
Listas en Python
Las listas son colecciones ordenadas y mutables de elementos.
Creación de Listas
Usando range()
lista_rango1 = list(range(20))
print(lista_rango1)
lista_rango2 = list(range(34, 100))
print(lista_rango2)
lista_rango_pasos = list(range(25, 100, 5)) # De 25 a 99, con paso 5
print(lista_rango_pasos)
Listas Literales
lista_numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(lista_numeros)
lista_mixta = ["enero", "febrero", [28, "y a veces", 29], "marzo"]
print(lista_mixta)
lista_vacia = []
print(lista_vacia)
Creación de Listas con Entradas del Usuario
nombre_input = input("Nombre: ") # str() es redundante, input() ya devuelve str
edad_input = int(input("Edad: "))
lista_usuario = [nombre_input, edad_input]
print(lista_usuario)
Acceso a Elementos de una Lista (Indexación)
Se accede a los elementos mediante su índice (posición), comenzando desde 0.
lista_ejemplo_index = [2, 5, 7, 3, 7, "paco", "pepa", "martes"]
print("Elemento en índice 4:", lista_ejemplo_index[4])
print("Elemento en índice 7:", lista_ejemplo_index[7])
print("Elemento en índice 0:", lista_ejemplo_index[0])
Acceso en Listas Anidadas
lista_anidada = [1, 2, 3, ["enero", "febrero", "marzo", "abril", ["lunes", "martes"]]]
# Acceder a "martes"
print("Elemento anidado:", lista_anidada[3][4][1])
Indexación en Cadenas de Texto
Las cadenas de texto también permiten acceder a sus caracteres mediante índices.
cadena_ejemplo = "Hola, me llamo Paco y tengo 10 años"
print("Carácter en índice 7:", cadena_ejemplo[7])
print("Carácter en índice 34:", cadena_ejemplo[34])
Operaciones con Listas
Concatenación y Repetición
lista_a = [1, 2, 3, 4, 5, 6, 7, 8]
lista_b = [9, 10, 11, 12, 13, 14, 15]
Imprimir listas (ejemplos de variables usadas en el original)
print(lista_usuario) # lista1 del original
print(lista_ejemplo_index) # lista2 del original
print(lista_anidada) # lista3 del original
print(lista_a) # lista4 del original
print(lista_b) # lista5 del original
print("Lista A y Lista B (separadas):", lista_a, lista_b)
lista_concatenada = lista_a + lista_b
print("Lista A + Lista B (concatenadas):", lista_concatenada)
lista_dias = ["lunes", "martes", 1, 2, 3, 4, 5]
lista_repetida = lista_dias * 3
print("Lista de días repetida 3 veces:", lista_repetida)
elemento_repetido = lista_dias[3] 3 # El elemento en índice 3 (valor 2) multiplicado por 3
print("Elemento en índice 3 (valor 2) 3 =", elemento_repetido)
Modificación de Listas
Modificar un Elemento
lista_dias_mod = ["lunes", "martes", 1, 2, 3, 4, 5]
lista_dias_mod[1] = "miércoles"
print(lista_dias_mod)
Modificar un Elemento en una Lista Anidada
lista_anidada_mod = [1, 2, 3, ["a", "b", "c", 4], 4, 5, 6]
lista_anidada_mod[3][3] = "d" # Cambia el 4 dentro de la sublista por "d"
print(lista_anidada_mod)
Operadores in
y not in
Verifican si un elemento existe o no en una lista.
lista_verificacion = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("¿Está 2 en la lista?", 2 in lista_verificacion)
print("¿Está 0 en la lista?", 0 in lista_verificacion)
print("¿No está 2 en la lista?", 2 not in lista_verificacion)
print("¿No está 4 en la lista?", 4 not in lista_verificacion)
print("¿No está 11 en la lista (usando 'not ... in')?", not (11 in lista_verificacion))
Más sobre Modificación y Verificación
lista_mod_ver = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lista_mod_ver[1] = 11 # Cambia el segundo elemento (índice 1) a 11
print("Elemento en índice 1 * 3 =", lista_mod_ver[1] * 3)
print("¿Está 15 en la lista?", 15 in lista_mod_ver)
print("¿Está 11 en la lista?", 11 in lista_mod_ver)
Métodos Comunes de Listas
len()
: Longitud de una Lista (o Cadena)
lista_longitud = [1, 2, 3, 4, 5, 6]
print("Longitud de la lista:", len(lista_longitud))
palabra = input("Escribe una palabra: ")
print("El número de caracteres de '", palabra, "' es:", len(palabra))
append()
: Añadir un Elemento al Final
lista_append = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lista_append.append(11)
print(lista_append)
lista_append += [11, 12, "ok"] # Equivale a lista_append.extend([11, 12, "ok"])
print(lista_append)
insert()
: Insertar un Elemento en una Posición Específica
lista_insert = [1, 2, 3, 4, 5, 6, 7, 8]
lista_insert.insert(3, "vale") # Inserta "vale" en el índice 3
print(lista_insert)
sort()
: Ordenar la Lista
lista_sort = [1, 7, 2, 4, 3, 5, 8, 6, 9]
lista_sort.sort() # Ordena de menor a mayor
print("Ordenada de menor a mayor:", lista_sort)
lista_sort.sort(reverse=True) # Ordena de mayor a menor
print("Ordenada de mayor a menor:", lista_sort)
count()
: Contar Ocurrencias de un Elemento
lista_count = [1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 7]
print("Número de veces que aparece el 1:", lista_count.count(1))
print("Número de veces que aparece el 2:", lista_count.count(2))
print("Número de veces que aparece el 3:", lista_count.count(3))
print("Número de veces que aparece el 4:", lista_count.count(4))
print("Número de veces que aparece el 5:", lista_count.count(5))
print("Número de veces que aparece el 6:", lista_count.count(6))
print("Número de veces que aparece el 7:", lista_count.count(7))
pop()
: Eliminar un Elemento (por Índice o el Último)
lista_pop = list(range(1, 21)) # Crea lista [1, ..., 20]
lista_pop.pop() # Elimina el último elemento (20)
print(lista_pop)
lista_pop.pop(16) # Elimina el elemento en el índice 16 (que ahora es 17)
print(lista_pop)
Estructuras de Control Condicionales
Permiten ejecutar bloques de código solo si se cumplen ciertas condiciones.
Sentencia if
num1_if = int(input("Introduce un número: "))
num2_if = int(input("Introduce otro número: "))
if num1_if > num2_if:
print(num1_if, "es mayor que", num2_if)
if num1_if < num2_if:
print(num1_if, "es menor que", num2_if) # Corregido para mayor claridad
if num1_if == num2_if:
print(num1_if, "es igual que", num2_if)
Sentencia if-else
numero_rango = int(input("Introduce un número entre 1 y 10: "))
if numero_rango > 1 and numero_rango < 10:
print("¡Vale!")
else:
print("No vale.")
nota_alumno = int(input("Introduce tu nota: "))
if nota_alumno < 5:
print("Suspenso")
else:
print("Aprobado")
if
Anidados
opcion_estudios = input("¿Ciencias o Letras? ")
if opcion_estudios.lower() == "ciencias":
opta_ciencias = input("¿Dibujo o Biología? ")
if opta_ciencias.lower() == "dibujo":
print("Has elegido Ciencias y Dibujo.")
elif opta_ciencias.lower() == "biología":
print("Has elegido Ciencias y Biología.")
else:
print("Opción no válida para Ciencias.")
elif opcion_estudios.lower() == "letras":
opta_letras = input("¿Matemáticas II o Latín? ")
if opta_letras.lower() == "matemáticas ii":
print("Has elegido Letras y Matemáticas II.")
elif opta_letras.lower() == "latín":
print("Has elegido Letras y Latín.")
else:
print("Opción no válida para Letras.")
else:
print("Rama de estudios no reconocida.")
print("Se acabó el formulario.")
Estructuras de Control Iterativas (Bucles)
Permiten repetir bloques de código múltiples veces.
Bucle while
Ejemplo Básico
continuar_bucle = "sí"
while continuar_bucle.lower() == "sí":
print("Hola")
continuar_bucle = input("¿Continuar? (sí/no): ")
print("Fin del bucle.")
Ejemplo con Lista y Contador
respuesta_pares = "sí"
lista_pares = []
contador_pares = 0
while respuesta_pares.lower() == "sí":
num_par_str = input("Introduce un número par: ")
if num_par_str.isdigit():
num_par = int(num_par_str)
if num_par % 2 == 0:
lista_pares.append(num_par)
contador_pares = contador_pares + 1
# Para continuar preguntando explícitamente:
# respuesta_pares = input("¿Desea introducir otro número par? (sí/no): ")
else:
print("El número no es par. Terminando la recolección de números pares.")
respuesta_pares = "no"
else:
print("Entrada no válida. Terminando la recolección de números pares.")
respuesta_pares = "no"
print("Lista de números pares introducidos:", lista_pares)
print("Has puesto", contador_pares, "números pares.")
Cálculo de Media de Notas (Ejemplo Práctico)
nota_lengua = int(input("Nota de Lengua: "))
nota_mates = int(input("Nota de Matemáticas: "))
nota_ingles = int(input("Nota de Inglés: "))
nota_dibujo = int(input("Nota de Dibujo: "))
nota_frances = int(input("Nota de Francés: "))
suma_notas = nota_lengua + nota_mates + nota_ingles + nota_dibujo + nota_frances
media_notas = suma_notas / 5
print("La media de las notas es:", media_notas)
Bucle for
Iterar sobre una Lista
for i in [1, 2, 3]:
print("i vale", i, "y su cuadrado es", i**2)
for elemento in ["hola", "esto es una", "patata"]:
print(elemento)
Iterar con range()
for i in range(7): # Genera números del 0 al 6
print("El valor de i es", i, ", su cuadrado es", i**2, "y su cubo es", i**3)
num_veces = int(input("¿Cuántas veces quieres que te imprima 'Esto'? "))
for valor in range(num_veces):
print("Esto")
Suma de un Rango de Números
num_inicio = int(input("Introduce un número de inicio: "))
num_fin = int(input("Introduce un número de fin: "))
suma_rango = 0
for i in range(num_inicio, num_fin + 1): # Incluye num_fin en la suma
suma_rango = suma_rango + i
print("La suma de los valores comprendidos entre", num_inicio, "y", num_fin, "es", suma_rango)
Bucles Anidados
Un bucle dentro de otro bucle.
for i in range(1, 5): # Bucle exterior (i tomará valores de 1 a 4)
for n in range(6, 10): # Bucle interior (n tomará valores de 6 a 9)
print("i vale", i, "y n vale", n)