martes, 20 de agosto de 2019

Programación en Python - Variables

Hola estimados lectores, en la sección anterior se presentó la instalación de Python y logramos crear y ejecutar un programa. Nótese que la intención no era desarrollar algo complejo sino presentarles la forma en la que se crearán y ejecutarán los programas. En esta oportunidad estudiaremos el concepto de variables y constantes, y cómo se aplican en éste lenguaje de programación.

Variables

En resumidas cuentas una variable es un identificador que apunta a un espacio de almacenamiento en la cual podemos almacenar un dato para posteriormente manipularlo.

Es común en otros lenguajes de programación que al momento de definir una variable se deba establecer, en el mismo instante, el tipo de dato que almacenará, esto es: Indicar si el dato será un número entero, un número con decimal (número real), una cadena de caracteres o booleano; para python no es necesario, pues el tipo de dato se establecerá dependiendo de la información que este almacene.

Si una variable recibe como dato un número entero, su tipo de dato será int, será float si el dato es un número real, str si es una string o cadena de caracteres y si el dato corresponden a una valoración binaria (True o False), este será bool.

Ahora, probemos esto. Abra la consola interactiva de python, creemos unas variables y asignémosle un dato, para posteriormente ver que tipo de datos asumen:

>>>a = 1
>>>type(a)
int

>>>b = 2.3
>>>type(b)
float

>>> s = ‘A’
>>>type(s)
str

>>>c = True
>>>type(c)
bool

Fíjense que tenemos 4 variables: a, b, s, c cuyos valores asignados son 1, 2.3, 'A', True, respectivamente, las cuales al verificar que tipo de datos son -con la función type()- obtenemos int, float, str, bool. Con esto comprobamos que, las variables en python, no requieren se le indiquen que tipo de datos almacenarán, pues esta la asumirán dependiendo del valor que reciba.

Sin embargo, si queremos evitar ambigüedades al asignar un valor a una variable, podemos establecer que tipo al dato que recibirá. Para los casos anteriores sería:

>>> a = int(1)
>>>b = float(2.3)
>>> s = str(‘A’)
>>>c = bool(True)

Esto generará el mismo resultado anterior; si no me crees intentan corroborarlo verificando el tipo de datos con type(). Ahora, estas funciones también son útiles para cambiar el formato de las variables por ejemplo: Supongamos que tenemos un número real y queremos solo su valor entero; esto lo podemos lograr formateando el dato con int(); probésmolo:

>>> a = int(4.5)
>>>a
4
>>>b = 2.3
>>>a = int(b)
>>>a
2

Lo mismo ocurre con las otras funciones:

>>>s = str(23)
>>>s
‘23’
>>>b = float(3)
>>>b
3.0

Si deseas juega un rato con el cambio de formato para que se adapte un poco y también conozca sus limitaciones, por ejemplo: No se puede pasar un carácter a entero si este no es numérico. Con esto quiero decir:

>>>a = int(‘G’)
Traceback (most recent call last):
 File "", line 1, in 
ValueError: invalid literal for int() with base 10: 'G'

Esto genera un error debido a que el dato que se desea pasar a entero no corresponde a un dígito base 10. En otras palabras, no es un número.

Operadores

Ahora que ya conocemos como se crea una variable, veamos que operaciones se puede hacer usando los operadores por defecto.

Operador +: La función de este operador dependerá sobre que datos se esté ejecutando. Si se aplica en valores numéricos (enteros o reales) se realizará una suma algebraica; por otro la si se aplica en caracteres, se obtendrá una concatenación (unión de caracteres). Como siempre, probemos esto:
>>>a = 3
>>>b = 5
>>>a+b
8
>>>a = 3.6
>>>b = 5.4
>>>a+b
9.0
>>>a = 3
>>>b = 5.4
>>>a+b
8.4
>>>c=”Hola”
>>>s=”Mundo”
>>>c+s
“HolaMundo”

Nota: No se puede intentar sumar/concatenar un número con caracteres, esto generaría un error.

Operador -: Este operador sólo puede ser usado en valores numéricos y dependiendo de su uso puede representa una sustracción algebraica (resta) o una negación. Estudiemos los casos:
# Resta
>>>a = 3
>>>b = 5
>>>a-b
-2

# Negación
>>>a = 3
>>>-a
-3

Nota: No se puede intentar substraer un número con caracteres, esto generaría un error.

Operador *: Este operador también se puede aplicar tanto para valores numéricos como caracteres. En el primer caso funciona como una operación de multiplicación y en el segundo como repetidor de caracteres. Acá unos ejemplos:
>>>a = 3
>>>b = 5
>>>a*b
15

>>>c=”Hola”
>>>c*3
'HolaHolaHola'

Operador **: Esta forma de presentar el símbolo (doble **) indica que se debe aplicar como un exponente y solo puede ser usado para datos numéricos. Esto es:
>>>a = 3
>>>a**3  # a elevado a la 3
27

Operador /: Acá se realiza una división, la cual puede ser usado con valores numéricos.
>>>b = 5.6
>>>b / 2
2.8

Operador //: Cuando el símbolo es doble se realiza una división, pero a diferencia del anterior el resultado será la parte entera de la división. Ejemplo:
>>>b = 5.6
>>>b // 2
2.0

Operador %: Es usado en valores numéricos para obtener el resto de una división.
>>>b = 7
>>>b % 2
1

Constantes

Las constantes son variables cuyo valor no cambia durante el proceso de ejecución del programa. Un ejemplo podría ser los días de los meses del año, las cuales, a excepción de febrero, siempre tiene la misma cantidad de días: Enero = 31, Marzo = 31. Ellos son datos que no variaran por lo que podrían establecerse como constantes.

Bien, en otros lenguajes de programación se coloca un prefijo para indicar que esa variable será constante y, aunque intentes modificarlo, el programa no te dejará cambiar su valor. En Python no existe esta característica; en otras palabras no podemos establecer una constante y que el programa impida su cambio, por lo que como buena práctica se establece una notación como recordatorio o notificación de que esa variable se trata de una constante. Usando el ejemplo de los meses, en Python colocaríamos:

>>>ENERO = 31
>>>MARZO = 31
>>>PI = 3.1415

Ejercicios

Bien, yo creo que ya estamos listo para entrenar un rato. Todos los ejemplos que presenté anteriormente fueron probados en la consola interactiva de python. Esta vez crearemos un archivo con extensión .py y escribiremos allí nuestros programas ¿Te parece? Estos ejercicios los podrás encontrar en mi cuenta github presionando aquí

Ejercicio 1: Solicitar la usuario que ingrese su nombre y mostrar en pantalla “Bienvenido al Curso de Programación en Python Wilfred!”

# -*- coding: utf-8 -*-
#bienvenido_name.py
nombre = input("Introduzca su nombre: ")
print("Bienvenido al Curso de Programación en Python "+nombre+"!")


Explicación:
  • La primera línea de instrucción (# -*- coding: utf-8 -*-) permite que se pueda colocar caracteres especiales en las cadenas de texto. Ejemplo de caracteres especiales son las vocales con acento, la letra ñ, entre otros. No es obligatorio colocarlo, sin embargo si no aparece y se intenta colocar un texto con una letra con acento, la ejecución dará error.
  • Solicitamos al usuario que ingrese su nombre, esto lo hacemos con la instrucción input(), la que permite que se muestre en pantalla el texto que esta entre comillas “Ingrese su nombre” y además detiene el programa esperando que el usuario ingrese información por teclado y presione Enter. Lo que ingresa el usuario se guardará en la variable nombre.
  • Con la instrucción print() mostramos una información por pantalla. En esta ocasión mostramos un texto concatenado (con el operador +) con la variable nombre, lo que nos permite imprimir el string deseado.

Ejercicio 2: Solicitar al usuario que ingrese una cadena de texto y la cantidad de veces que desea que imprima ese texto.
 
# -*- coding: utf-8 -*-
#n_veces_cadena.py
cadena = input("Ingrese el string que desea imprimir: ")
veces = int(input("Indique las veces a repetir: "))
print(cadena*veces)

Explicación:
  • Al igual del anterior se solicita con input() al usuario que ingrese la información deseada (La cadena de caracteres a imprimir y las veces que se mostrará). Una característica de la instrucción input() es que lo ingresado por el usuario se almacena como caracter, por lo que para almacenar la cantidad de veces que se desea se imprima el texto debo convertirlo a entero, para ello lo antecedo con la instrucción int().
  • Para imprimir el texto la cantidad de veces uso el operador * dentro de la instrucción print().

Ejercicio 3: Solicitar al usuario ingrese dos número enteros o reales y aplicar sobre ellos: suma, resta, multiplicación, división y exponente.
 
# -*- coding: utf-8 -*-
#operaciones_aritmeticas.py
num1 = float(input("Ingrese el primer número: "))
num2 = float(input("Ingrese el segundo número: "))
suma = num1 + num2
print("La suma es: "+str(suma))
resta = num1 - num2
print("La resta es: "+str(resta))
print("La multiplicación es: "+str(num1*num2))
print("La división es: "+str(num1/num2))
print("El exponente es: "+str(num1**num2))

Explicación:
  • Se solicita al usuario que ingrese dos número y, en esta ocasión, se formatean tipo float. Esto es así para que, aunque se ingrese un valor entero, se almacene como real.
  • Se hace la suma y la sustracción y se muestran en pantalla. Nótese que esas variables suma y resta son tipo float, por lo que para poder concatenarlo lo formateo a str dentro de la instrucción print().
  • Para mostrar que no es necesario guardar los datos de la operación en una variable (como el caso de la suma y resta), la multiplicación, división y exponente se muestran en el print() formateando a str la operación directamente.
Con esto concluimos este capítulo. Hemos visto las variables y como se relacionan entre sí para crear pequeños programas. Para la próxima ocasión estudiaremos las listas, tuplas y diccionarios; estructuras que son muy utilizadas en los programas en Python. Espero haya sido de su agrado. Nos vemos en la próxima ocasión.

0 comentarios:

Publicar un comentario