preloader

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.

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.

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.

Figura 3. Enteros en Python.

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.

Figura 4. Números de punto flotante en Python.

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:

python
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.

Figura 5. Datos booleanos en Python.

En Python, simplemente podemos usar True o False para representar un bool:

python
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.

python
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:

python
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.

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.

python
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:

python
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?

python
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.

python
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]

  • Inicio es el índice desde donde queremos que comience la subcadena.
  • Final es 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.

Figura 7. Cadenas en Python.

Veamos algunos ejemplos:

python
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:

python
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 8. Cortando cadenas en Python.

Figura 9. Cortando cadenas en Python.

Figura 9. Cortando cadenas en Python.

Figura 10. Cortando cadenas en Python.

Figura 10. Cortando cadenas en Python.

Figura 11. Cortando cadenas en Python.

Figura 11. Cortando cadenas en Python.

Figura 12. Cortando cadenas en Python.

Figura 12. Cortando cadenas en Python.

Figura 13. Cortando cadenas en Python.

Figura 13. Cortando cadenas en Python.

Figura 14. 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:

python
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:

python
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.

comments powered by Disqus