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)

Entradas relacionadas: