Variables y Asignaciones
Tipos de Variables
Las variables se crean al asignarles valor. Hay cuatro grandes tipos de variables:
Función | Uso |
---|---|
int |
Números enteros. |
float |
Números flotantes. La parte decimal se indica con un punto. |
string |
'Cadena de caracteres': secuencias de caracteres alfanuméricos, lo más cercano al formato texto simple. |
bool |
Valores lógicos booleanos. Dos opciones: True y False . |
No hay valor límite para las variables numéricas. Python distingue entre mayúsculas y minúsculas a la hora de definir variables.
Es convención en Python que todas las letras en los nombres de variables sean enteramente en minúsculas y si están formados por varias palabras éstas se unan mediante guiones bajos (_
). Pueden añadirse números en los nombres pero no al comienzo.
Tipado dinámico
Python tiene tipado débil y dinámico: las variables pueden cambiar de tipo durante la ejecución, por ejemplo de int
a string
, de string
a float
, etc. a medida que se guardan nuevos valores.
función type()
El tipo de datos de una variable puede averiguarse con la función type()
.
Tip: números complejos
Python incluye la posibilidad de trabajar con números complejos indicados como:
, donde tanto la parte real como la imaginaria pueden ser tantoint
como float
. (Aunque técnicamente los complejos en Python son una clase predefinida)
Asignaciones
Las asignaciones se realizan con el operador '='
No hay carácter de fin de instrucción visible, sino que se interpreta como tal el fin de renglón.
Los espacios en blanco a ambos lados del signo =
son buena práctica en este lenguaje.
entero = 16
flotante = 1.27
mensaje = “Hola mundo” #(también pueden usarse comillas simples)
Tip: asignacion multiple
Se puede crear y asignar valor a múltiples variables en un solo renglón.
Tambien se puede asignar el mismo valor a varias variables en simultáneo:Indexación de strings
En Python el primer valor de las cadenas de caracteres es el cero.
Para conocer la longitud de los string se usa la función len()
:
[]
):
Si el indice cae afuera del string (indice > n-1 )el programa da error de memoria y cancela la ejecución. Sin embargo, en Python se tolera el uso de índices negativos mientras el módulo del índice sea menor a a la longitud de la cadena.
texto = "Hola mundo"
n= len(texto) # n = 10 (diez letras)
letra = texto[ 0] # letra 'H'
letra = texto[ 9] # letra 'o'
letra = texto[10] # Error: fuera de rango
letra = texto[-10] # letra 'H'
letra = texto[-11] # Error: fuera de rango
Tip: indices y listas
Este manejo de índices también se usa en los 'vectores' de Python, que son llamados 'listas' (o 'list'). Ver listas de Python.
Rebanado (Slicing)
El rebanado consiste en seleccionar una parte del vector o string en base a índices numéricos. Algunas formas de usar el rebanado son:
vector[ inicio : ] # copia desde el índice inicial hasta el final;
vector[ : final ] # copia desde el elemento cero hasta (final-1 );
vector[ inicio : final ] #copia desde indice inicial hasta (final-1) ;
vector[ inicio : final : paso ] #copia entre valores de índices pero salteando elementos definidos por 'paso' (valor de incremento);
vector[ : ] # copia todo;
Para invertir el orden de un vector se puede hacer:
Conversion de variables
A veces es necesario convertir los valores de una variable a un tipo de variable distinto. Otras veces se necesita asegurar que el tipo de variable es el requerido para una aplicación y no otro. Para estos casos existen funciones en Python encargadas de la conversion de variables, estas son:
Función | Uso |
---|---|
str( ) |
Convierte a texto |
int( ) |
Convierte a entero |
float( ) |
Convierte a flotante |
bool( ) |
Convierte a valor lógico (booleano) |
Las funciones son rutinas reutilizables con nombre, las cuales se usan así:
pi = 3.1416 # numero flotante ('float')
texto = str( pi ) # '3.1416'
entero = int(pi) # '3'
flotante = float(texto) # '3.1416'
Las conversiones de un tipo a otro no siempre dan resultados evidentes. Como ejemplo, se muestra el resultado de convertir a valores lógicos vía la funcion bool()
:
# entrada: enteros
print( bool( 2) ) # True
print( bool( 1) ) # True
print( bool( 0) ) # False
print( bool(-1) ) # True
# entrada: caracteres y texto
print( bool("") ) # False
print( bool(" ") ) # False
print( bool("a") ) # True
# entrada: flotantes
print( bool(3.14) ) # True
print( bool(0.0) ) # False
# Ejemplo Nº1
entero = int( "10" ) # uso correcto
entero = int( "hola" ) # ERROR: ¿qué numero equivale a "hola"?
# Ejemplo Nº2
entero = int('3.1416') # ERROR: se necesita pasar a flotante primero
entero = int(float('3.1416')) # correcto
Tipado de variables
Python permite 'tipar' (preasignar un tipo) a las variables. Esto permitirá que el intérprete pueda detectar inconsistencias al asignar valores a las variables.
La forma de tipar los datos es usando los dos puntos y el nombre del tipo de datos.
Formato:
Reducción de bugs por tipado
El tipado manual en Python es suave: no impedirá la ejecución del programa ni tampoco la abortará al llegar a las asignaciones de valor no compatibles por tipos. En cambio éstas asignaciones serán remarcadas por el entorno de desarrollo, permitiendo que el desarrollador corrija el código de ser necesario durante su escritura y ayudando a prevenir bugs (errores durante la ejecución del programa) los cuales pueden ser difíciles de identificar sin el uso del tipado.
Ejemplo aplicado: indexado de un string
Nótese como el tipado de la variable indice ayuda a prever el fallo de programa al asignarle un texto como valor, mas no impide su ejecuciónMétodos
Los métodos son operaciones comunes que afectan a las variables. Son similares a las funciones pero están dedicados a los elementos. Los métodos se utilizan así:
donde los argumentos son valores de entrada que el método utiliza para procesar y dar su resultado. Los argumentos pueden ser opcionales ú obligatorios, dependiendo de cada método y de la informacion que da cada argumento.Cada tipo de variable tiene sus propios métodos predefinidos. En particular, las variables de tipo string tienen muchos métodos dedicados para manejarlas. Algunos de sus métodos más usados son:
Método (string) | Uso |
---|---|
find( seq ) |
Indica la primera ubicacion de la secuencia indicada |
replace( seq1, seq2 ) |
Reemplaza una secuencia por otra. |
title() |
Formatea como título. |
index() |
Indica posición de comienzo de la secuencia buscada. |
isalnum() |
Verifica si solo hay valores numericos (devuelve True o False ). |
isalpha() |
Verifica si solo hay letras (devuelve True o False ). |
isdecimal() |
Verifica si solo hay decimales (devuelve True o False ). |
isdig() |
Verifica si solo hay dígitos (devuelve True o False ). |
islower() |
Verifica si solo hay minúsculas (devuelve True o False ). |
isupper() |
Verifica si solo hay mayúsculas (devuelve True o False ). |
capitalize() |
Devuelve el texto con primera letra mayúscula y lo demás en minusculas. |
lower() |
Devuelve el texto en minúsculas. |
upper() |
Devuelve el texto en mayúsculas. |
strip() |
Elimina del texto espacios en blanco a derecha y a izquierda. |
lstrip() |
Elimina del texto espacios en blanco a izquierda. |
rstrip() |
Elimina del texto espacios en blanco a derecha. |
split( seq ) |
Divide el texto al detectar un carácter o secuencia indicada. Devuelve una "lista" (arreglo) de strings. El caracter o secuencia seq se elimina del resultado. |
La mayoría de estos métodos mencionados no requiere argumentos obligatorios, aunque muchos de ellos implementan argumentos opcionales.
Una excepción a la regla es el método split()
:
Ejemplo: método split()
Otra excepción es el método replace()
:
Ejemplo: método replace()
Entrada de datos de usuario
Para que el usuario pueda ingresar datos se usa la función input()
:
input()
es un string
. Para convertir strings en entero puede usarse la función int()
, es tanto que para convertir strings en flotante se puede usar la función float()
.
Importante: booleanos
La función bool()
devuelve el valor lógico False
si su entrada es cero ó un string vacío, en caso contrario da True
.
Salida de datos a pantalla
La función print()
permite escribir en pantalla todos los tipos de variables del lenguaje sin importar su tipo. Además elige automáticamente el formato más idóneo para la mayoría de los casos: si la variable es un entero se imprime un entero; si es un numero flotante se escribe como un numero flotante, si es un texto se escribe como un string
, etc.
Para imprimir el valor de una variable en pantalla simplemente se indica su nombre como argumento:
Si se necesita hacer lo mismo con múltiples variables en un mismo renglón se escriben todas en orden, separadas por comas:print()
concatena todos los argumentos que se le da al momento de la llamada.
Es posible combinar textos fijos con variables, nuevamente esto se realiza separando textos y variables con comas.
Hay una alternativa con mejor desempeño en lo referente a la ejecución llamada f-string
, se explica a continuación.
F-Strings
Los formatted-strings son variables de texto que son afectadas por otras variables. Este es el formato:
Se comienza el string con una letra 'f', se abren comillas simples ó dobles y dentro de ellas se escriben los textos y las variables, estas últimas entre llaves. Puede haber múltiples segmentos de texto y múltiples variables, siempre y cuando cada variable tenga sus propias llaves:texto_variable = f'<texto1> {<variable1>} <texto2> {<variable2>} <...>'
Los f-strings son muy usados adentro de print()
directamente:
Colocando dos puntos y un número se reservan espacios para el valor de una variable, los cuales se devan vacíos en caso de ser necesario:
numero = 17
print(f"Valor de la variable: {numero:10}") # diez espacios reservados para el número
Para los números flotantes, colocar un numero tras un punto permite elegir cuántos decimales usar para representar el valor:
flotante = 13.5136717
print(f"Flotante: {flotante:.1}") # Muestra 'Flotante: 1e+01'
print(f"Flotante: {flotante:.2}") # Muestra 'Flotante: 1.4e+01'
print(f"Flotante: {flotante:.3}") # Muestra 'Flotante: 13.5'
print(f"Flotante: {flotante:.4}") # Muestra 'Flotante: 13.51'
Ejemplo: f-strings con espacios y decimales
Nótese que en el ejemplo previo hay una variable de cuatro cifras , un punto y siete espacios, por ello se autocompletará con dos espacios vacíos.Para más opciones de formato ver el manual de entrada y salida de Python