Materia Python
Materia Python
● Sintaxis clara y legible: Python utiliza una sintaxis que es intuitiva y similar al
inglés, lo que facilita a los programadores nuevos y experimentados escribir código
claro y comprensible.
● Tipado dinámico: Python es de tipado dinámico, lo que significa que no es
necesario declarar el tipo de una variable al crearla. Esto hace que el lenguaje sea
más flexible y reduce la cantidad de código necesario.
● Gestión automática de memoria: Python gestiona automáticamente la memoria, lo
que incluye la asignación y liberación de memoria, a través de un recolector de
basura. Esto facilita la programación al eliminar la necesidad de que los
programadores manejen manualmente la gestión de memoria.
● Biblioteca estándar extensa: Python viene con una vasta biblioteca estándar que
ofrece módulos y funciones para tareas de programación comunes, lo que permite a
los desarrolladores evitar "reinventar la rueda".
● Interpretado: Python es un lenguaje interpretado, lo que significa que el código se
ejecuta directamente, línea por línea, lo que facilita la depuración y el desarrollo
rápido de aplicaciones.
● Multiplataforma: Python es un lenguaje de programación multiplataforma, lo que
significa que los programas escritos en Python pueden ejecutarse en cualquier
sistema operativo sin necesidad de modificaciones.
Evolución y popularidad
Desde su creación, Python ha experimentado un crecimiento constante en popularidad,
impulsado tanto por su facilidad de aprendizaje como por su poderosa funcionalidad. Su uso
abarca una amplia gama de aplicaciones, desde desarrollo web y automatización de tareas
hasta ciencia de datos, aprendizaje automático e inteligencia artificial. La adopción de
Python en la comunidad científica y de investigación ha sido particularmente notable,
gracias a su simplicidad y la disponibilidad de numerosas bibliotecas especializadas.
Python se distingue por ser un lenguaje que combina eficiencia, claridad y potencia,
ofreciendo un equilibrio ideal entre facilidad de aprendizaje y capacidad para realizar tareas
complejas. Su diseño orientado a mejorar la experiencia tanto de programadores novatos
como experimentados ha llevado a Python a ser uno de los lenguajes de programación más
enseñados en las universidades y más empleados en la industria hoy en día.
Estos hitos no solo marcan el crecimiento técnico de Python, sino que también reflejan la
evolución de una comunidad que valora la claridad, la eficiencia y la accesibilidad en la
programación. A través de estas etapas de desarrollo, Python ha mantenido su compromiso
con la facilidad de uso y la poderosa simplicidad, razones por las cuales continúa siendo un
lenguaje de elección tanto para programadores novatos como experimentados.
¿Por qué elegimos Python?
Facilidad de aprendizaje: Python destaca por su sintaxis intuitiva y legible, que se asemeja
al inglés en muchos aspectos. Esto hace que sea más fácil para los principiantes entender
el código y aprender los conceptos fundamentales de la programación sin distraerse con
una sintaxis compleja o reglas estrictas. Los programas en Python a menudo se sienten
más como leer y escribir instrucciones lógicas que lidiar con código críptico. Además,
Python maneja muchos detalles de bajo nivel, como la gestión de la memoria, lo que
permite a los estudiantes concentrarse en aprender a programar en lugar de en la
complejidad técnica.
Zen de Python
El Zen de Python es una colección de principios filosóficos para escribir programas de
computadora en Python, que enfatizan la importancia de la legibilidad y la simplicidad del
código. Fue escrito por Tim Peters y aunque estos aforismos son algo enigmáticos, ofrecen
una guía valiosa sobre el espíritu con el que se debe escribir código en Python. Aquí está el
Zen de Python:
"Hola, Mundo": Este es el texto que queremos que aparezca en la pantalla. El texto debe
estar entre comillas (pueden ser simples ' o dobles ") para que Python lo reconozca como
una cadena de caracteres (string), que es el tipo de dato que Python utiliza para almacenar
texto.
Variables en Python
En este ejemplo, mensaje es una variable que contiene el texto "Hola, Mundo". La función
print() se utiliza para mostrar el contenido de la variable mensaje en la pantalla.
Formas de asignación
Asignación única: Cada vez que usas el operador de asignación, puedes establecer o
cambiar el valor de una variable. Si la variable ya tiene un valor, este será reemplazado por
el nuevo valor asignado.
Asignación a variables existentes: Puedes usar el valor actual de una variable para
asignar un nuevo valor. Esto es útil para actualizar el valor de una variable basándose en su
valor anterior:
Cambiando el valor de una variable
Una de las características de las variables es que el dato que contienen puede cambiar o
variar a lo largo del tiempo en un programa. Por ejemplo:
Inicialmente, la variable numero contiene el valor 10. Luego, le sumamos 5, y el nuevo valor
de numero se convierte en 15.
Almacenar valores: Puedes guardar valores para usarlos más tarde en tu programa.
Actualizar valores: Permite cambiar los valores de las variables a medida que tu programa
se ejecuta, lo que es esencial para la lógica de programación dinámica y los cálculos.
● Usar minúsculas y guiones bajos para nombres largos: Cuando una variable
representa una idea o un concepto que requiere más de una palabra, es habitual
usar guiones bajos para separar estas palabras. Esta práctica, conocida como
snake_case, es la convención recomendada en la guía de estilo de Python, PEP 8.
Por ejemplo, nombre_usuario o contador_intentos.
● Prefijos para nombres con guión bajo: Un guión bajo (_) al principio del nombre
de una variable (por ejemplo, _privado) tiene un significado especial en Python. Se
utiliza para indicar que una variable o método es privado y está destinado al uso
interno dentro de una clase o módulo. Aunque Python no aplica estrictamente la
privacidad, esta es una convención respetada por los desarrolladores.
Elegir nombres adecuados para las variables es una parte fundamental de la escritura de un
código limpio y mantenible. Siguiendo las reglas y buenas prácticas, puedes hacer que tu
código sea más claro, fácil de entender y de mantener, tanto para ti como para otros
desarrolladores que puedan trabajar con tu código en el futuro.
En Python, entender los tipos de datos es crucial para manejar variables y realizar
operaciones eficientemente. Los tipos de datos determinan la clase de valor que una
variable puede almacenar, cómo se almacena ese valor en la memoria y las operaciones
que son posibles realizar con esos valores. Vamos a profundizar en los tipos de datos
básicos en Python y dejaremos para más adelante algunos tipos de datos más complejos.
Ejemplos:
● edad = 25
● numero_de_estrellas = -100
● años = 2023
Estos ejemplos muestran cómo asignar un número entero a una variable. Se pueden
realizar operaciones matemáticas como edad + 5 para obtener 30.
Los números decimales o flotantes contienen una parte fraccionaria separada por un punto.
Son útiles para representar valores que requieren mayor precisión, como medidas o
cantidades financieras.
Ejemplos:
● altura = 1.75
● temperatura = -20.3
● precio = 19.99
Cada ejemplo asigna un número decimal a una variable. Las operaciones con flotantes
siguen las reglas de la aritmética de punto flotante.
Las cadenas de texto son secuencias de caracteres usadas para almacenar datos textuales.
Python las maneja con mucha flexibilidad, permitiendo operaciones como concatenación,
multiplicación y acceso a elementos individuales.
Ejemplos:
● nombre = "Juan"
● mensaje = "Hola, Mundo"
● letra = 'A'
Aquí, nombre y mensaje son variables que almacenan cadenas de texto. Se pueden
combinar cadenas con el operador +, como en "Hola " + "Mundo" para obtener "Hola
Mundo".
4. Booleano (bool)
Los booleanos representan dos valores: Verdadero (True) y Falso (False). Son muy
utilizados en estructuras de control para tomar decisiones en función de condiciones.
Ejemplos:
● esMayorDeEdad = True
● examenAprobado = False
Los tipos de datos en Python son la base sobre la cual se construyen las estructuras de
datos y se realizan operaciones. Comprender los tipos de datos básicos es esencial para
cualquier programador de Python, ya que facilita la manipulación de datos y la
implementación de lógica compleja en los programas. A medida que avances, trabajaremos
con tipos de datos más complejos (como las listas y diccionarios) y sus métodos asociados,
lo que te permitirá construir programas más potentes y eficientes.
Aquí, str(edad) convierte el número entero 25 a una cadena de texto "25", permitiendo su
concatenación con otras cadenas de texto.
Ejemplo de str a int:
Cada llamada a type() devuelve el tipo del valor asignado a la variable: int para enteros,
float para flotantes, str para cadenas de texto y bool para booleanos.
Cadenas de caracteres
Las cadenas de caracteres, o strings en inglés, son una secuencia de caracteres utilizados
para representar texto en los programas. Python ofrece un manejo robusto y flexible de
estas secuencias, proporcionando un tipo de dato específico (str) para trabajar con ellas. A
continuación, profundizaremos en las características y el manejo de las cadenas de
caracteres en Python.
● Inmutabilidad: Una vez que se crea una cadena de caracteres en Python, no puede
modificarse. Esto significa que cualquier operación que altere una cadena generará
una nueva cadena en lugar de modificar la original.
● Longitud Variable: Las cadenas pueden ser de cualquier longitud, desde cero (una
cadena vacía) hasta el límite de memoria del sistema. La longitud de una cadena se
puede determinar con la función len().
Concatenación y repetición:
El slicing utiliza corchetes [] para encerrar el índice de inicio y el índice de fin, separados por
dos puntos :. Python extraerá los caracteres entre estos índices. La sintaxis general es:
Al omitir el índice de fin, extraemos todo desde "es asombroso" hasta el final de la cadena.
Además, puedes especificar un tercer parámetro para indicar el "salto" entre los caracteres
a extraer.
En este caso, ::2 indica que queremos tomar cada segundo carácter de toda la cadena.
El slicing es una herramienta increíblemente útil y eficiente para trabajar con cadenas en
Python, permitiéndote extraer información relevante con una sintaxis concisa y clara. Es una
de las características que hacen de Python un lenguaje tan poderoso y expresivo para el
manejo de datos de texto.
Explorar y experimentar con el slicing te ayudará a familiarizarte más con cómo Python
maneja las secuencias de caracteres y, en general, con su modelo de datos.
Las cadenas de caracteres (str) son uno de los tipos de datos más utilizados en Python.
Python ofrece una variedad de métodos incorporados que permiten manipular estas
cadenas de manera poderosa y flexible. A continuación, detallaremos algunos de los
métodos más comunes y útiles.
Método .upper()
El método .upper() convierte todos los caracteres de una cadena a mayúsculas.
Método .lower()
.lower(), por su parte, convierte todos los caracteres de la cadena en minúsculas, útil para
uniformizar la entrada de datos o realizar comparaciones insensibles a
mayúsculas/minúsculas.
Método .capitalize()
.capitalize() convierte el primer carácter de la cadena en mayúscula y el resto en
minúsculas. Es especialmente útil para nombres propios o al inicio de oraciones.
Método .title()
El método .title() convierte el primer carácter de cada palabra en mayúsculas y los restantes
en minúsculas, lo que es ideal para títulos de libros, encabezados, etc.
Los métodos para cadenas en Python ofrecen una forma potente y flexible de manipular
texto. Ya sea que estés trabajando con entrada de datos, generando texto para interfaces
de usuario o preparando cadenas para almacenamiento y análisis, conocer estos métodos
simplificará y enriquecerá tu desarrollo de código en Python.
f-strings
Las f-strings, introducidas en Python 3.6 mediante el PEP 498, representan una mejora
significativa en la forma en que los desarrolladores pueden formatear cadenas de texto.
Ofrecen una sintaxis concisa y fácil de leer para incrustar expresiones dentro de cadenas de
caracteres, haciendo que el código sea más limpio y mantenible.
Ejemplos de f-strings
Ejemplo básico:
Aquí, no solo incluimos el valor de una variable sino también el resultado de una expresión
aritmética.
Llamadas a funciones:
Formato específico:
Las f-strings también permiten especificar el formato de los valores incrustados, lo cual es
especialmente útil para controlar el número de decimales en números flotantes, por ejemplo:
.2f dentro de las llaves indica que el número flotante precio debe mostrarse con dos
decimales. ¿Interesante, verdad? Veamos un poco más en profundidad esta característica.
Para especificar el formato de los valores dentro de una f-string, utilizas : seguido de un
código de formato, dentro de las llaves {} que encierran la variable. Esto te da un control
detallado sobre cómo se muestran los valores.
Uno de los usos más comunes del formateo específico es controlar el número de decimales
de un número flotante. Por ejemplo, si quieres redondear un número flotante a dos
decimales (como en el ejemplo anterior), puedes hacerlo de la siguiente manera:
En este ejemplo, .2f indica que el número flotante debe mostrarse con dos decimales.
Las f-strings también permiten especificar la alineación y el relleno de los valores. Por
ejemplo, si quieres alinear texto a la derecha y llenar con ceros:
Aquí, 05d indica que el número debe ser presentado como un entero (d) con un ancho total
de 5 caracteres, rellenando con ceros (0) a la izquierda.
Las f-strings también pueden manejar objetos de fecha y hora, formateándolos según sea
necesario:
Este ejemplo usa %Y-%m-%d %H:%M:%S para formatear la fecha y hora actuales en el
formato de "año-mes-día hora:minuto:segundo".
Las f-strings en Python no sólo simplifican la inclusión de variables en cadenas sino que
también ofrecen un control detallado sobre el formato de estos valores. Desde el formateo
de números flotantes hasta el manejo de fechas y horas, las f-strings se convierten en una
herramienta indispensable para cualquier programador de Python.
La función print()
Consideraciones al usar \t
La tabulación (\t) inserta un número fijo de espacios, que puede variar según el entorno
donde se visualice el texto, pero comúnmente equivale a 4 o 8 espacios. Su efectividad para
alinear texto depende de la longitud de las cadenas que lo preceden o siguen. Si las
cadenas son más largas o más cortas de lo esperado, la alineación puede no ser la
deseada.
La función print() es una de las herramientas más básicas y poderosas en Python, esencial
para la salida de datos. A través de sus parámetros como end y la utilización de caracteres
especiales como \n y \t, permite un control detallado sobre cómo se formatea y presenta la
información en la terminal.
La función input()
La función input() en Python es una herramienta interactiva fundamental que permite a los
programas utilizar datos introducidos por el usuario a través del teclado. Utilizada
comúnmente en aplicaciones de consola, input() pausa la ejecución del programa y espera
que el usuario escriba algo, retornando la entrada como una cadena de texto (string) una
vez que el usuario presiona Enter. Este mecanismo es esencial para crear aplicaciones
interactivas que requieren la participación del usuario.
Propósito de input()
Sintaxis básica
La sintaxis básica de input() es:
prompt: Es un string que se muestra en la consola, indicando al usuario qué debe introducir.
Este parámetro es opcional.
Es importante recordar que input() devuelve un string, así que si deseas realizar
operaciones matemáticas con la entrada, primero debes convertirla al tipo de dato
adecuado, como int o float.
La función input() es la herramienta ideal para hacer que tus programas en Python sean
interactivos y capaces de adaptarse a las necesidades y preferencias de los usuarios. Su
capacidad para pausar la ejecución del programa y esperar por la entrada del usuario abre
un amplio rango de posibilidades para la creación de aplicaciones de consola, scripts
personalizables, y mucho más.
Operadores
Un operador es un carácter o conjunto de caracteres que actúa sobre una, dos o más
variables y/o literales para llevar a cabo una operación con un resultado determinado.
Ejemplos de operadores comunes son los operadores aritméticos. Python posee los mismos
que PSeInt y agrega algunos más. También en Python existen los operadores lógicos y los
operadores relacionales.
Operadores aritméticos
Los operadores aritméticos son símbolos que representan operaciones matemáticas
básicas y son fundamentales para realizar cálculos en cualquier programa de Python. Estos
operadores permiten sumar, restar, multiplicar, dividir y mucho más. A continuación,
analizaremos cada uno de ellos con ejemplos:
División (/): Divide el primer valor entre el segundo. Esta operación siempre retorna un
número flotante, incluso si el resultado es un entero.
División Entera (//): Divide el primer valor entre el segundo y redondea el resultado hacia
abajo para obtener un número entero.
Ejemplo Práctico
Supongamos que queremos calcular el área de un círculo. Podemos usar el operador de
exponenciación para elevar el radio al cuadrado y luego multiplicarlo por Pi (π).
Los operadores aritméticos en Python son herramientas básicas pero poderosas que te
permiten realizar todo tipo de cálculos matemáticos. Conocer cómo y cuándo utilizar estos
operadores es fundamental para cualquier programador, ya que la aritmética es una parte
integral de la mayoría de los programas.
Operadores relacionales
== Igual que
Verifica si el valor o los valores de dos expresiones son iguales.
!= No igual que
Comprueba si dos valores son diferentes.
> Mayor que
Evalúa si el valor de la izquierda es mayor que el valor de la derecha.
Operadores lógicos
Los operadores lógicos en Python son fundamentales para construir expresiones lógicas,
permitiéndote combinar múltiples condiciones o afirmaciones. Estos operadores evalúan
expresiones a valores booleanos True o False y son esenciales para el control de flujo y la
toma de decisiones en tus programas. Python proporciona tres operadores lógicos
principales: and, or, y not.
and
El operador and devuelve True si ambas (o todas) las expresiones que compara son
verdaderas. Si al menos una de ellas es False, el resultado será False.
or
El operador or devuelve True si al menos una de las expresiones que compara es
verdadera. Si todas las expresiones son False, el resultado será False.
not
El operador not invierte el valor de verdad de la expresión que sigue. Si la expresión es
verdadera (True), not la convierte en falsa (False), y viceversa.
Consideraciones
Los operadores lógicos son herramientas poderosas que, cuando se combinan con los
operadores de comparación que veremos pronto, permiten crear expresiones complejas y
lógicas de control en Python. Su comprensión y uso correcto son esenciales para cualquier
desarrollador que trabaje con este lenguaje.