Conviértete en desarrollador Django: Día 2
Índice de contenido
Resumen:
Aprenda los fundamentos de Python y desarrolle las habilidades necesarias para crear aplicaciones básicas.
¿Cómo citar el presente artículo?
Romero, J. (15 de agosto de 2023). Título. python-data-engineer. https://www.python-data-scientist.com/es/blog/programacion/dia_1/.
¿Qué es la ciencia de datos? by Jeshua Romero Guadarrama, available under Attribution 4.0 International (CC BY 4.0) at https://www.python-data-scientist.com/es/blog/programacion/dia_1/.
Día 2. Tipos de datos y variables
Descripción general
Python es un lenguaje de programación versátil, potente y popular para el desarrollo web, big data y secuencias de comandos. Django es un marco basado en Python que requiere conocimiento práctico de Python. En este módulo interactivo, aprenderemos los fundamentos de Python y manejaremos el lenguaje de programación más popular del mundo. Para cuando terminemos, tendremos las habilidades necesarias para crear aplicaciones básicas en Python.
Objetivos de aprendizaje
- Familiaridad con los componentes centrales de Python, incluidos los tipos de datos, variables y operadores.
- Experiencia práctica que implementa declaraciones condicionales y bucles en Python.
- La capacidad de escribir funciones y recursión en Python.
- Un conocimiento práctico de diferentes estructuras de datos en Python.
Contenido
¿Qué son los tipos de datos y las variables?
En esta lección, aprenderemos sobre los diferentes tipos de datos en Python.
Definición
Los tipo de datos de un elemento define el tipo y rango de valores que puede tener el elemento.
El concepto de tipos de datos se puede encontrar en el mundo real. Hay números, alfabetos, caracteres, etc., que tienen propiedades únicas debido a su clasificación.
Dicha clasificación también se realiza en muchos lenguajes de programación, incluido Python.
Tipos de datos de Python
A diferencia de muchos otros idiomas, Python no pone un fuerte énfasis en definir el tipo de datos de un objeto, lo que simplifica mucho la codificación. El idioma proporciona tres tipos de datos principales:
- Números
- Cadenas
- Booleanos
Variables
Una variable es simplemente un nombre para el que puede ser un valor asignado.
Las variables nos permiten dar nombres significativos a los datos.
La forma más sencilla de asignar un valor a una variable es a través de = operador.
Figura 1. Variable - Valor / Expresión.
Una gran ventaja de las variables es que nos permiten almacenar datos para que podamos usarlos más adelante para realizar operaciones en el código.
Las variables son mutable. Por lo tanto, el valor de una variable siempre se puede actualizar o reemplazar.
Convención de nombres
Hay ciertas reglas que debemos seguir al elegir el nombre de una variable:
- El nombre puede comenzar con un alfabeto en mayúsculas o minúsculas.
Por ejemplo, puede definir su variable de ingresos como Income o income, ambos son válidos.
- Todos los nombres distinguen entre mayúsculas y minúsculas.
Por ejemplo, Income y income son dos variables diferentes y no una.
- Un número puede aparecer en el nombre, pero no al principio.
Por ejemplo, 12income no es un nombre válido pero income12 o in12come son válidos.
- Las características
_pueden aparecer en cualquier lugar del nombre.
Por ejemplo, _income o income_ son nombres válidos.
- Los espacios no están permitidos. En cambio, debemos usar caja de serpiente para hacer legibles los nombres de variables.
Por ejemplo, monthly_income Es un nombre válido.
- El nombre de la variable debe ser algo significativo que describa el valor que contiene, en lugar de ser caracteres aleatorios.
Por ejemplo, inc o incluso income no daría ninguna información útil pero nombres como weekly_income, monthly_income, o annual_income explicar el propósito de nuestra variable definida
Números
Esta lección proporciona una discusión en profundidad sobre los números en Python.
Python es uno de los lenguajes más potentes cuando se trata de manipular datos numéricos.
Está equipado con soporte para varios tipos de números, junto con utilidades para realizar cálculos en ellos.
Hay tres tipos principales de números en Python:
Figura 2. Números en Python.
Enteros
El tipo de datos enteros se compone de todos los números enteros positivos y negativos.
La cantidad de memoria que ocupa un número entero depende de su valor. Por ejemplo, 0 tomará 24 bytes mientras 1 ocuparía 28 bytes.
Aquí hay algunos ejemplos de enteros:
Figura 3. Enteros en Python.
print(10) # Un número entero positivo
print(-3000) # Un número entero negativo
numero = 123456789 # Asignando un número entero a una variable
print(numero)
numero = -16000 # Asignando un nuevo número entero
print(numero)
10
-3000
123456789
-16000
Nota: En Python, todos los números negativos comienzan con el símbolo -.
Números de punto flotante
Números de punto flotante, o flotadores, se refieren a números decimales positivos y negativos.
Python nos permite crear decimales hasta un decimal muy alto.
Esto garantiza cálculos precisos para valores precisos.
Un flotador ocupa 24 bytes de memoria.
A continuación, podemos encontrar algunos ejemplos de flotadores:
Figura 4. Números de punto flotante en Python.
print(1.00000000005) # Un número flotante positivo
print(-85.6701) # Un número flotante negativo
pt_flt = 1.23456789 # Asignando un número flotante a una variable
print(pt_flt)
1.00000000005
-85.6701
1.23456789
Nota: En Python, 5 se considera un entero mientras 5.0 es un flotador.
Números complejos
Python también admite números complejos, o números compuestos de una parte real e imaginaria.
Al igual que el print() la declaración se usa para imprimir valores, complex() se usa para crear números complejos.
Requiere dos valores. El primero será el real parte del número complejo, mientras que el segundo valor será el imaginario parte.
Aquí está la plantilla para hacer un número complejo:
complex(real, imaginary)
Veamos algunos ejemplos:
print(complex(10, 20)) # Representa el número complejo (10 + 20j)
print(complex(2.5, -18.2)) # Representa el número complejo (2.5 - 18.2j)
complejo_1 = complex(0, 2) # Asignando un número complejo a una variable
complejo_2 = complex(2, 0) # Asignando otro número complejo a una variable
print(complejo_1)
print(complejo_2)
(10+20j)
(2.5-18.2j)
2j
(2+0j)
Nota: En matemáticas normales, la parte imaginaria de un número complejo se denota por i. Sin embargo, en el código anterior, se denota por j. Esto se debe a que Python sigue el ingeniería eléctrica convención que usa j en lugar de i. No dejes que eso te confunda.
Los números complejos son útiles para modelar modelos de física e ingeniería eléctrica en Python. Si bien pueden no parecer muy relevantes en este momento, ¡nunca está de más saberlo!
Un número complejo generalmente toma 32 bytes de memoria.
Booleanos
Esta lección destaca las características clave del tipo de datos booleanos.
Los Booleano (el tipo de dato también conocido como bool) nos permite elegir entre dos valores: cierto y falso.
Figura 5. Datos booleanos en Python.
En Python, simplemente podemos usar True o False para representar un bool:
print(True)
dato_bool = False
print(dato_bool)
True
False
Nota: La primera letra de un bool necesita ser capitalizada en Python.
Un booleano se usa para determinar si la lógica de una expresión o una comparación es correcta. Desempeña un papel muy importante en las comparaciones de datos.
Cadenas o strings
Esta lección destaca las características clave del tipo de datos de cadena.
Un grupo de caracteres como este es un ejemplo del tipo de datos de cadena.
Una cadena es una colección de caracteres cerrados dentro de comillas simples, dobles o triples.
Una cadena también puede contener un solo carácter o estar completamente vacía.
print("¡Harry Potter!") # Comillas dobles
got = 'Game of Thrones...' # Comillas simples
print(got)
print("$") # Un solo carácter
vacio = ""
print(vacio) # Simplemente imprime una línea vacía
multiple_lineas = '''Las comillas triples permiten
cadenas de texto de varias líneas.'''
print(multiple_lineas)
¡Harry Potter!
Game of Thrones...
$
Las comillas triples permiten
cadenas de texto de varias líneas.
De los ejemplos anteriores podemos ver:
- Un espacio en blanco dentro de las comillas de cadena también se considera un carácter.
- Para agregar una cadena de varias líneas podemos usar comillas triples.
La longitud de una cuerda
La longitud de una cadena se puede encontrar usando el len() función incorporada. Esta longitud indica el número de caracteres en la cadena:
cadena_aleatoria = "Yo soy Batman" # 13 carácteres
print(len(cadena_aleatoria))
13
Indexación
En una cadena, cada carácter recibe un número índice basado en su posición.
Una cadena en Python está indexada de 0 a n-1 donde n es su longitud. Esto significa que el índice del primer carácter en una cadena es 0.
Figura 6. Indexación en Python.
Acceder a carácteres
Se puede acceder a cada carácter de una cadena utilizando su índice. El índice debe cerrarse entre corchetes, [], y adjunto a la cadena.
Batman = "Bruce Wayne"
primera = Batman[0] # Accediendo al primer carácter
print(primera)
espacio = Batman[5] # Accediendo al espacio vacío en la cadena
print(espacio)
ultima = Batman[len(Batman) - 1]
print(ultima)
# Lo siguiente producirá un error ya que el índice está fuera de los límites:
# error = Batman[len(Batman)]
B
e
Si intentamos ejecutar el código en línea 12, obtendríamos un error porque el índice máximo es len(Batman) - 1. Un valor más alto no está dentro de los límites de la cadena. Desde len(Batman) es más grande que len(Batman) - 1, producirá un error.
Indexación inversa
También podemos cambiar nuestra convención de indexación utilizando índices negativos.
Los índices negativos comienzan desde el extremo opuesto de la cadena. Por lo tanto, el -1 el índice corresponde al último carácter:
Batman = "Bruce Wayne"
print(Batman[-1]) # Corresponde a Batman[10]
print(Batman[-5]) # Corresponde a Batman[6]
e
W
Inmutabilidad de la cuerda
Una vez que asignamos un valor a una cadena, no podemos actualizarlo más tarde. ¿Qué tal verificarlo con un ejecutable a continuación?
cadena = "Inmutabilidad"
# Lo siguiente producirá un error
# string[0] = 'O'
El código anterior da TypeError porque Python no admite la asignación de elementos en caso de cadenas.
Recuerde, asignar un nuevo valor a la variable de cadena no significa que haya cambiado el valor. Vamos a verificarlo con el método id() a continuación.
cadena_final = "Hola"
print(id(cadena_final)) # Imprime el identificador de la cadena "Hola"
cadena_final = "Bye"
print(id(cadena_final)) # Imprime el identificador de la cadena "Bye"
1706321181808
1706321349360
Aviso, cuando asignamos un nuevo valor a cadena_final (en la segunda línea) su identidad no cambia el valor.
ASCII Versus Unicode
En Python 3.x, todas las cadenas son unicode. Pero, las versiones anteriores de Python ( Python 2.x ) solo admiten caracteres ASCII. Para usar unicode en Python 2.x, precediendo la cadena con un u es imprescindible. Por ejemplo:
cadena = u"Esto es unicode"
Rebanando cadenas
En esta lección, entenderemos qué es el corte y cómo se puede aplicar a las cadenas.
Definición
Rebanada es el proceso de obtener una porción ( subcadena ) de una cadena mediante el uso de sus índices.
Dada una cadena, podemos usar la siguiente plantilla para cortarla y obtener una subcadena:
Cadena[Inicio:Final]
Inicioes el índice desde donde queremos que comience la subcadena.Finales el índice donde queremos que termine nuestra subcadena.
El caracter en el índice Final de la cadena, no se incluirá en la subcadena obtenida a través de este método.
Figura 7. Cadenas en Python.
Veamos algunos ejemplos:
mi_cadena = "¡Esta es mi cadena!"
print(mi_cadena[0:4]) # Desde el inicio hasta antes del índice 4.
print(mi_cadena[1:7]) # Desde el índice 1 hasta antes del índice 7.
print(mi_cadena[8:len(mi_cadena)]) # Desde el índice 8 hasta el final.
¡Est
Esta e
mi cadena!
Rebanando con un paso
Python 3 también nos permite cortar una cadena definiendo un paso a través del cual podemos omitir caracteres en la cadena. El paso predeterminado es 1, así que iteramos a través de la cadena un carácter a la vez.
El paso se define después del índice Final:
Cadena[Inicio:Final:Pasos]
Veamos cómo funciona esto:
mi_cadena = "¡Esta es mi cadena!"
print(mi_cadena[0:7]) # Un paso de 1
print(mi_cadena[0:7:2]) # Un paso de 2
print(mi_cadena[0:7:5]) # Un paso de 5
¡Esta e
¡sae
¡
Figura 8. Cortando cadenas en Python.
Figura 9. Cortando cadenas en Python.
Figura 10. Cortando cadenas en Python.
Figura 11. Cortando cadenas en Python.
Figura 12. Cortando cadenas en Python.
Figura 13. Cortando cadenas en Python.
Figura 14. Cortando cadenas en Python.
Rebanada inversa
Las cuerdas también se pueden cortar para devolver una subcadena invertida. En este caso, tendríamos que cambiar el orden del índice de Inicio y Final.
También se debe proporcionar un paso negativo:
mi_cadena = "¡Esta es mi cadena!"
print(mi_cadena[13:2:-1]) # Retrocede 1 paso cada vez
print(mi_cadena[17:0:-2]) # Retrocede 2 pasos. Lo opuesto de lo que ocurre en el deslizamiento anterior
ac im se at
aea ms tE
Rebanado parcial
Una cosa a tener en cuenta es que especifica del índice de Inicio y Final es opcional.
Si el Inicio no se proporciona, la subcadena tendrá todos los caracteres hasta que el índice Final.
Si el Final no se proporciona, la subcadena comenzará desde el índice Inicio y llegar hasta el Final.
Veamos esto en acción:
mi_cadena = "¡Esta es mi cadena!"
print(mi_cadena[:8]) # Todos los caracteres antes de 'M'
print(mi_cadena[8:]) # Todos los caracteres a partir de 'M'
print(mi_cadena[:]) # Toda la cadena
print(mi_cadena[::-1]) # Toda la cadena en reversa (paso es -1)
¡Esta es
mi cadena!
¡Esta es mi cadena!
!anedac im se atsE¡
Eso es casi todo lo que necesitamos saber sobre el corte de cuerdas. Juegue con las cuerdas de arriba para comprender mejor cómo funciona el corte.
El presente blog ha sido patrocinado mediante crowdfunding con el siguiente mensaje: Nuestro Señor Jesucristo, el único Dios verdadero, es misericordioso y nuestro Salvador.
