1.1 – Primeros pasos con variables

Primeros pasos con variables

Python es un lenguaje no tipado. Por tanto, no es necesario (ni posible) definir los tipos de datos utilizados al declarar variables.

En general, en Python las variables se declaran en el momento en el que éstas van a usarse, por lo que la declaración va acompañada del valor que se asigna.

 # El siguiente es un ejemplo de declaración de una variable.
a = 10
print("'a' vale:")
print(a)
print("")

a = "abcd"
print("Ahora 'a' vale:")
print(a)

Tipos de datos básicos (primitivos):

– int: Números enteros, positivos o negativos.
Ejemplo:

x = 10
y = -5

– float: Números decimales.
Ejemplo:

pi = 3.14159

– complex: Números complejos (con parte real e imaginaria).
Ejemplo:

z = 2 + 3j

– bool: Valores lógicos: True o False.
Ejemplo:

is_active = True

– str: Cadenas de texto.
Ejemplo:

name = "Python"

Tipos de datos compuestos (colecciones):

– list: Lista ordenada, modificable y que puede contener elementos heterogéneos.
Ejemplo:

numbers = [1, 2, 3, 4]

– tuple: Tupla ordenada, inmutable y que puede contener elementos heterogéneos.
Ejemplo:

coordinates = (10, 20)

– dict: Diccionarios, que almacenan pares clave-valor.
Ejemplo:

person = {"name": "Alice", "age": 25}

Función type()

Sin embargo es importante conocer cuál es el tipo real de los datos que estamos utilizando. Es posible conocer el tipo de cualquier variable (y objeto en general) usando la función type()

var_1 = 100
type(var_1)

Respuesta: int

var_1 = "abcd"
type(var_1)

Respuesta: str

Trabajando con números

En Python existen los siguientes tipos numéricos:

  • – integer: 10
  • – float: 10.0
  • – complex: 10+10j

Así es como se realizan operaciones matemáticas sencillas con Python:

# Suma
a = 10
b = 5
resultado = a + b
print(resultado) # Imprime 15

# Resta
a = 10
b = 5
resultado = a - b
print(resultado) # Imprime 5

# Multiplicación
a = 10
b = 5
resultado = a * b
print(resultado) # Imprime 50

# División
a = 10
b = 5
resultado = a / b
print(resultado) # Imprime 2.0

# Potencia
a = 10
b = 2
resultado = a ** b
print(resultado) # Imprime 100

# Módulo (resto de la división)
a = 10
b = 3
resultado = a % b
print(resultado) # Imprime 1

Resumen de las operaciones aritmeticas

En Python podemos realizar varios tipos de operaciones, a continuación podemos ver algunas de ellas.

    x + y:          sum of x and y
    x - y:          difference of x and y
    x * y:          product of x and y
    z / y:          quotient of x and y
    x // y:         (floored) quotient of x and y
    x % y:          remainder of x / y
    -x:             x negated
    +x:             x unchanged
    abs(x):         absolute value or magnitude of x
    int(x):         x converted to integer
    long(x):        x converted to long integer
    float(x):       x converted to floating point
    complex(re,im): a complex number with real part re, imaginary part im. im defaults to zero.
    c.conjugate():  conjugate of the complex number c. (Identity on real numbers)
    divmod(x, y):  _math.trunc(x) the pair (x // y, x % y)
    pow(x, y):      x to the power y
    x ** y:         x to the power y

Adicionalmente, los tipos int y float admiten las siguientes operaciones:

    math.trunc(x):  x truncated to Integral
    round(x[, n]):  x rounded to n digits, rounding ties away from zero. If n is omitted, it defaults to 0.
    math.floor(x):  the greatest integral float <= x
    math.ceil(x):   the least integral float >= x

Coversión de tipos

Si en una expresión aritmética intervienen diferentes tipos de número, Python convierte automáticamente al tipo más general, según el siguiente esquema:


**int -> float -> complex**

También es posible convertir tipos de manera explícita mediante casts explícitos, con la siguiente forma: {nombe_tipo}(variable)

# Trasformación a entero
int(12.5)
# Trasformación a valor en coma flotante
float(12)

Trabajando con textos

Tipo string (cadenas de daracteres). Strings delimitados por comillas dobles.

cadena_a = "Hola"
cadena_b = "Mundo"
# Uso del operador "+" para concatenar
print(cadena_a + " " + cadena_b)

También es posible escribir strings multi-línea fácilmente

string_multi_1 = "Esto es un string escrito en \
dos líneas. En este caso el string se interpreta como una sóla línea."
print(string_multi_1)
string_multi_2 = '''Triples comillas: esto es también es un string escrito
en dos líneas. En este caso se conserva la separación en líneas original.'''
print(string_multi_2)
string_multi_3 = """Triples comillas: Esto es también es un string escrito
en dos líneas. En este caso se conserva la separación en líneas original."""
print(string_multi_3)

El resultado seria:

Esto es un string escrito en dos líneas. En este caso el string se interpreta como una sóla línea.
Triples comillas: esto es también es un string escrito
en dos líneas. En este caso se conserva la separación en líneas original.
Triples comillas: Esto es también es un string escrito
en dos líneas. En este caso se conserva la separación en líneas original.
        

Algunos caracteres deben ser ‘escapados’ para poder incluirse en un string. Los más frecuentes son los siguientes:

   Character  Hexadecimal    Description
    \a	       0x07           Bell or alert
    \b	       0x08           Backspace
    \cx	                      Control-x
    \C-x	 	              Control-x
    \e	       0x1b	          Escape
    \f	       0x0c	          Formfeed
    \M-\C-x	 	              Meta-Control-x
    \n	       0x0a           Newline
    \nnn	 	              Octal notation, where n is in the range 0.7
    \r	       0x0d	          Carriage return
    \s	       0x20	          Space
    \t	       0x09	          Tab
    \v	       0x0b	          Vertical tab
    \x	 	                  Character x
    \xnn	 	              Hexadecimal notation, where n is in the range 0.9, a.f, or A.F
        

Python es muy versatil a la hora de usar operadores, en el caso de los textos podemos aplicar lógica a la propia cadena String

    +         Concatenation - Adds values on either side of the operator
    *         Repetition - Creates new strings, concatenating multiple copies of the same string
    []        Slice - Gives the character from the given index
    [ : ]     Range Slice - Gives the characters from the given range
    in        Membership - Returns true if a character exists in the given string
    not in    Membership - Returns true if a character does not exist in the given string
    r/R       Raw String - Suppresses actual meaning of Escape characters. The syntax for raw strings is exactly     
              the same as for normal strings with the exception of the raw string operator, the letter "r," which
              precedes the quotation marks.
              The "r" can be lowercase (r) or uppercase (R) and must be placed immediately preceding the first Ç
              quote mark.
    f         Format - Performs String formatting
        

Ejemplos:

  "HOLA " * 5
                #->HOLA HOLA HOLA HOLA HOLA
           "J" not in "HOLA"
                #-> True
           name = "Antonio"
            f"Mi nombre es {name}"
                #-> Mi nombre es Antonio

Lectura por Teclado con Python

El comando input() en Python se utiliza para tomar entradas del usuario durante la ejecución de un programa. Permite pausar el programa y esperar a que el usuario ingrese texto, que luego se puede procesar o almacenar en una variable.

input(prompt)

prompt (opcional): Una cadena de texto que se muestra al usuario como mensaje. Es útil para indicar qué tipo de entrada se espera. Si no se proporciona, no se muestra ningún mensaje.

    valor = input()
------------------------
Esto lo escribo yo mismo

# Con esto puedo hacer el típico mensaje de introduce un valor:

numero = input("Introduce un numero: ")

# De esta manera al usuario le aparecerá el mensaje de Introduce un valor
------------------------
Introduce un numero: 50
------------------------

# Si quiero hacer algo con el resultado obtenido de lo anterior, debo pasarle la opción int a la variable de antes:

numero = int(numero)

# Debo poner la variable = int(variable) y ahora ya se puede sumar o hacer lo que quiera:

numero + 50
-------------------------
100
-------------------------

# Si el usuario pone un número decimal, tenemos que poner float, en lugar de int:

numero = input("Introduce un numero con decimales: ")

# Aquí abajo indico que el usuario va a introducir un número con decimales:

numero = float(numero)
-------------------------
Introduce un numero con decimales: 12.5
-------------------------

# Y ya puedo operar con él sin problemas

numero + 10

# Con float puedo introducir números tanto enteros como decimales.
-------------------------
22.5
-------------------------

# También puedo hacer todo lo anterior en una misma línea a la vez, esta vez con número entero:

numero = float( input("Introduce un número decimal o entero: "))

-------------------------
Introduce un número decimal o entero: 20
-------------------------

numero + 40

-------------------------
60.0
-------------------------

# Y ahora lo mismo pero con número decimal:

numero = float( input("Introduce un número decimal o entero: "))

-------------------------
Introduce un número decimal o entero: 10.5
-------------------------

numero + 40

# Como vemos con lo anterior, tenemos la opción de usar números enteros y decimales

-------------------------
50.5
-------------------------

# También puedo hacer esto con nombres; y la variable Mario se me guarda en nombre

nombre = input("Introduce tu nombre: ")

-------------------------
Introduce tu nombre: Mario
-------------------------

nombre = input("Introduce tu nombre ")
apellido = input("Introduce tu apellido ")
edad = int(input("Introduce tu edad ")) # Para número entero
estatura = float(input("Introduce tu estatura ")) # Para número decimal

-------------------------
Introduce tu nombre Mario
Introduce tu apellido Álvarez
Introduce tu edad 26
Introduce tu estatura 1.77
-------------------------
   

Ejercicios

Ejercicio 1: Crea tres variables: una que guarde tu nombre, otra tu edad, y otra tu ciudad. Imprime los valores con un mensaje como:
«Hola, mi nombre es [nombre], tengo [edad] años y vivo en [ciudad].»

Ejercicio 2: Declara una variable con tu edad. Luego usa esta variable para calcular cuántos días, horas y minutos has vivido (aproximadamente).

    Ejemplo:
    Días: edad * 365
    Horas: días * 24
    Minutos: horas * 60

Ejercicio 3: Escribe un programa que pida al usuario su nombre y su comida favorita. Luego imprime un mensaje como:
«Hola [nombre], me alegra saber que te gusta [comida favorita].»

Ejercicio 4: Declara una variable de cada tipo:

  • Un número entero (int), por ejemplo, 42.
  • Un número decimal (float), por ejemplo, 3.14.
  • Una cadena de texto (str), por ejemplo, «Hola».
  • Un valor booleano (bool), por ejemplo, True.
  • Imprime el valor y el tipo de cada variable con type().