sábado, 25 de febrero de 2023

CURSO VARIABLES Y ESTRUCTURAS DE CONTROL EN PYTHON 2022: TERMINOS DE TIPOS DE DATOS

 Fuente: https://tinyurl.com/25yhh7ye

 

2. Tipos de datos

En Python se encuentran diferentes tipos de datos con sus respectivas características y clasificaciones. A continuación se detallarán los tipos de datos básicos y otros tipos de datos predefinidos por el lenguaje.

Arias (2019) se refiere a los siguientes tipos de datos básicos de Python:

Numéricos

Booleanos

Cadenas de caracteres

Python también define otros tipos de datos, entre los que se encuentran:

Secuencias: list, tuple y range

Conjuntos: set

Mapas: dict

2.1 Conceptos: datos numéricos, booleanos, cadena de caracteres, otros tipos de datos

A

Datos numéricos

Python define tres tipos de datos numéricos: enteros, punto flotante y números complejos.

Números enteros

Se denominan int. Este tipo de dato comprende el conjunto de todos los números enteros, cuyo límite depende de la capacidad de memoria del computador.

Un número de tipo int se crea a partir de un literal que represente un número entero, o como resultado de una expresión o como una llamada a una función.

# Ejemplo

# v es de tipo int y su valor asignado es -3

>>> v = -3

# m es de tipo int y su valor calculado es 5

>>> m = v + 8

>>>print (m)

5

# z es de tipo int y con la función redondeo es 2

>>> z = round(m/2)

>>> print(z)

2

También se pueden representar los números enteros en formato binario, octal o hexadecimal.

Para crear un número entero en binario, se antepone 0b a una secuencia de dígitos 0 y 1.

Para crear un número entero en octal, se antepone 0o a una secuencia de dígitos del 0 al 7.

Para crear un número entero en hexadecimal, se antepone 0x a una secuencia de dígitos del 0 al 9 y de la A la F.

Ejemplo

>>> decimal = 8

>>> binario = 0b1101

>>> octal = 0o11

>>> hexadecimal = 0xc

>>> print(decimal)

8

>>> print(binario)

13

>>> print(octal)

9

>>> print(hexadecimal)

12

Números de punto flotante

Se denominan float. Se usa el tipo float para representar cualquier número real que represente valores de temperaturas, velocidades, estaturas y otras.

# Ejemplo

>>> real = 1.1 + 2.2 # real es un float

>>> print(real)

3.3000000000000003 # representación aproximada de 3.3

>>> print(round(real,1))

3.3 # real mostrando únicamente 1 cifra decimal

Números complejos

Este tipo de datos en Python se denomina complex.

Los números complejos tienen una parte real y otra imaginaria y cada una de ellas se representa como un float. Los números imaginarios son múltiplos de la unidad imaginaria (la raíz cuadrada de -1).

Para definir un número complejo, se hace así:

<parte_real> + <parte_imaginaria> j

Ejemplo: 4 + 7j

Para acceder a la parte real se usa el atributo real.

Para acceder a la parte imaginaria se usa el atributo imag.

# Ejemplo

>>> complejo = 5+3j

>>> complejo.real

5.0

>>> complejo.imag

3.0

Para tener acceso a los equivalentes complejos del módulo math, se debe usar cmath.

Aritmética de los tipos numéricos

Para todos los tipos numéricos se pueden aplicar las operaciones: suma, resta, producto o división. Para exponentes se usa ** y para la división entera se usa //.

Se permite realizar una operación aritmética con números de distinto tipo. En este caso, el tipo numérico “más pequeño” se convierte al del tipo “más grande”, de forma que el tipo del resultado siempre es el del tipo mayor.

El tipo int es menor que el tipo float, el tipo float es menor que el tipo complex.

Si vamos a sumar un int y un float, el resultado es un float.

Si vamos a sumar un int y un complex, el resultado es un complex.

# Ejemplo

>>> x = 2

>>> a = x**3 # a es 8 elevado a la 3

>>>print(a)

8

>>> b = 31

>>> c = b//4 # c es la parte entera de dividir b entre 4

>>> print(c)

7

>>> g = 31.0

>>> h = d/4 # h es la parte entera de dividir g entre 4

>>>print(h)

7.0

>>> 1 + 2.0

3.0

>>> 2+3j + 5.7

(7.7+3j) 

 

B

Datos numéricos

En Python se representan los valores booleanos con bool. Esta clase solo se puede instanciar con dos valores: True para verdadero y False para falso.

Una particularidad del lenguaje es que cualquier variable puede ser usada en un contexto donde se requiera comprobar si algo es verdadero o falso.

Los siguientes objetos/instancias son consideradas falsas:

None

False

El valor cero de cualquier tipo númerico: 0, 0.0, 0j

Secuencias y colecciones vacías: '', (), [], {}, set(), range(0)

# Ejemplo

>>> a = False

>>> b = True

>>> Type(a)

<class ' bool ' >

>>> print(a)

false

>>> print(b)

True

>>> c = None

>>> print(c)

None

>>> type(c)

<class ' NoneType ' >

C

Datos tipo cadena de caracteres

Salazar (2019) denomina este tipo de dato como string. Para crear un string, se deben encerrar entre comillas simples o dobles una secuencia de caracteres.

En Python las cadenas de caracteres se representan con str.

Se puede usar comillas simples o dobles. Si en la cadena de caracteres se necesita usar una comilla simple, existen dos opciones: usar comillas dobles para encerrar el string, o bien, usar comillas simples, pero anteponer el carácter \ a la comilla simple del interior de la cadena.

# Ejemplo

>>> saludo1 = 'Hola "María"'

>>> type(saludo1)

<class ' str ' >

>>> saludo2 = 'Hola \'María\' '

>>> saludo3 = "Hola 'María' "

>>> print(saludo1)

Hola "María"

>>> print(saludo3)

Hola 'María'

A diferencia de otros lenguajes, en Python no existe el tipo «caracter». Pero se puede simular con un string de un solo caracter:

# Ejemplo

>>> caracter1 = 'z'

>>> print(caracter1)

z

D

Otros tipos de datos

Adicional a los tipos básicos, se encuentran otros tipos fundamentales de Python denominados secuencias (list y tuple), los conjuntos (set) y los mapas (dict).

Pérez (2016) aclara que todos ellos son tipos de datos compuestos y se utilizan para agrupar valores del mismo o diferente tipo.

Las listas son arreglos unidimensionales de elementos donde podemos ingresar cualquier tipo de dato, para acceder a estos datos debemos usar un índice. La posición inicial es la posición 0.

# Ejemplo

>>> lista = [3, 4.2, 'SENA', [8,9] ,5] # lista contiene int, real, cadena, list, int

>>> print lista[0] # la posición 0 de la lista contiene el valor 3

>>> print lista[1] # la posición 1 de la lista contiene el valor 4.2

>>> print lista[2] # la posición 2 de la lista contiene la cadena 'SENA'

>>> print lista[3] # la posición 3 de la lista contiene la lista [8,9]

>>> print lista[4] # la posición 4 de la lista contiene el valor 5

>>> print lista[3][0] # la posición 3,0 de la lista contiene 8

>>> print lista[3][1] # la posición 3,1 de la lista contiene 9

>>> print lista[1:3] # las posiciones de la 1 a la 3 contienen [4.2, 'SENA']

>>> print lista[1:4] # las posiciones de la 1 a la 4 contienen [4.2, 'SENA', [8, 9]

>>> print lista[1:5] # las posiciones de la 1 a la 5 contienen [4.2, 'SENA', [8, 9 ],5 ]

Las tuplas se representan escribiendo los elementos entre paréntesis y separados por comas. La función len() devuelve el número de elementos de una tupla. Una tupla puede no contener ningún elemento, es decir, puede ser una tupla vacía. Una tupla puede incluir un único elemento seguido de una coma.

# Ejemplo

>>> tupla= (8, "b", 4.91)

>>> tupla

(8, 'b', 4.91)

>>> len(tupla)

3

>>> len(())

0

>>> (3,)

(3,)

>>> len((3,))

1

Los conjuntos son una colección no ordenada y sin elementos repetidos. Se definen con la palabra set, seguida de llaves que contienen los elementos separados por comas. Si se desea remover un elemento de un conjunto, se puede usar el método remove().

# Ejemplo

>>> frutas = set([ 'mango', 'pera', 'manzana', 'limón' ])

>>> frutas

{'mango', 'manzana', 'pera', 'limón'}

>>> frutas.remove('manzana')

>>> frutas

{'mango', 'pera', 'limón'}

Los diccionarios son un tipo de estructuras de datos que permiten guardar un conjunto no ordenado de pares clave-valor, existiendo las claves únicas dentro de un mismo diccionario (es decir, que no pueden tener dos elementos con una misma clave). El diccionario se declara entre los caracteres '{ }' y los elementos se separan por comas (',').

Los diccionarios denominados dict para Python, son estructuras de datos muy extendidos en otros lenguajes de programación, aunque en otros lenguajes como java se les denominan con distintos nombres como "Map".

# Ejemplo

# Defino la variable 'futbolistas' como un diccionario.

futbolistas = dict()

futbolistas = {

13 : "Mina", 21 : "Lucumi",

17 : "Fabra", 11 : "Cuadrado",

9 : "Falcao", 19 : "Muriel",

15 : "Uribe", 10 : "James Rodriguez",

16 : "Lerma", 5 : "Wilmar Barrios",

3 : "Murillo"

}

>>> futbolistas

{13: 'Mina', 21: 'Lucumi', 17: 'Fabra', 11: 'Cuadrado', 9: 'Falcao', 19: 'Muriel', 15: 'Uribe', 10: 'James Rodriguez', 16: 'Lerma', 5: 'Wilmar Barrios', 3: 'Murillo'}

>>> futbolistas[9]

'Falcao'

Ejemplo completo de listas, tupla, conjunto y diccionario:

# Ejemplo

>>> lista = [1, 2, 3, 8, 9]

>>> tupla = (1, 4, 8, 0, 5)

>>> n=len(tupla)

>>> conjunto = set([1, 3, 1, 4])

>>> diccionario = {'a': 1, 'b': 3, 'z': 8}

>>> print(lista)

[1, 2, 3, 8, 9]

>>> print(tupla)

(1, 4, 8, 0, 5)

>>> print(“Longitud de la tupla= “,n)

Longitud de la tupla= 5

>>> print(conjunto)

{1, 3, 4}

>>> print(diccionario)

{'a': 1, 'b': 3, 'z': 8}

2.2 Identificar el tipo de variable

Guzdial (2013) afirma que existen dos funciones en Python para determinar el tipo de dato que contiene una variable: type() e isinstance():

type()

Recibe como parámetro un objeto y devuelve el tipo del mismo.

isinstance()

Recibe dos parámetros: un objeto y un tipo. Devuelve True si el objeto es del tipo que se pasa como parámetro y False en caso contrario.

# Ejemplo

>>> type(5)

<class 'int'>

>>> type(3.14)

<class 'float'>

>>> type('Hola mundo')

<class 'str'>

>>> isinstance(7, float)

False

>>> isinstance(8, int)

True

>>> isinstance(2, bool)

False

>>> isinstance(False, bool)

True

2.3 Conversión de tipos de datos

En algunos casos se requiere convertir el tipo de datos a otro que sea más adecuado. Por ejemplo, si una cadena contiene el valor “10” para poderlo sumar a otra variable tipo entero, se debe convertir la cadena en un dato tipo entero.

Según Cuevas (2017), Python ofrece las siguientes funciones:

str(): devuelve la representación en cadena de caracteres del objeto que se pasa como parámetro.

int(): devuelve un int a partir de un número o secuencia de caracteres.

float(): devuelve un float a partir de un número o secuencia de caracteres.

NOTA

Si a las funciones anteriores se les pasa como parámetro un valor inválido, el intérprete mostrará un error.

# Ejemplo

>>> edad=”25”

>>> edad = int(edad) + 10 # Convierte edad a int

>>> edad # edad es un int

35

>>> edad = str(edad) # Convierte edad a str

>>> edad # edad es un str (se muestran las '')

'35'

>>> loat('18.66') # Convierte un str a float

18.66

>>> float('hola') # Convierte un str a float (pero no es válido)

Traceback (most recent call last):

File “<input>” , line 1, in <module>

ValueError: could not convert string to float: 'hola'

CURSO VARIABLES Y ESTRUCTURAS DE CONTROL 2022: 2. ENTRADA Y SALIDA DE DATOS CON PYTHON

 2.1 INTRODUCCIÓN

Es importante para un programador definir los datos de entrada y el formato adecuado para ellos. Igualmente es valioso saber cómo realizar cálculos y aplicar funciones predefinidas por Python, para generar unos resultados que deben ser entregados al usuario en un formato legible y claro.

En este componente formativo se explicará paso a paso cómo codificar la entrada y salida de datos, el uso de instrucciones secuenciales para manejo de constantes y variables y la aplicación de funciones definidas por el lenguaje. Además, se detallará el procedimiento para importar las librerías disponibles de Python con funciones de fecha, de números aleatorios y de matemáticas. 

 

1. Entrada de datos

Cuando se usa la consola o el terminal, es común solicitar al usuario introducir datos a través del teclado. A continuación se detallará la codificación para realizar la entrada de información por consola.

1.1 Entrada estándar

Para solicitar al usuario que introduzca algún dato a través del teclado, se debe usar el método input().

Este método recibe como parámetro un mensaje al usuario entre comillas:

Ejemplo 1

>>> edad = input(“¿Cuántos años tienes?”)

¿Cuántos años tienes? 28

>>> edad

'21'

Otra forma de realizar la entrada de datos a través del teclado sería:

Ejemplo:

print("¿Cómo se llama?")

nombre = input()

print("Usted”, nombre, “es un aprendiz SENA: ” )

La entrada siempre es tipo cadena de caracteres (str). Esto es útil para la entrada de datos tales como nombre, ciudad, cargo, deporte, etc.

Por tanto, si lo que se necesita es un dato de cierto tipo especial, por ejemplo, un int, habrá que hacer la conversión correspondiente en input, de esta manera:

Ejemplo 2:

>>> celular = int(input(“Danos tu número de celular:”))

Danos tu número de celular: 3125320125

>>> celular

3125320125

Pero si lo que se requiere es un dato de tipo float, habrá que hacer la siguiente conversión:

Ejemplo:

>>> estatura = float(input(“Cuál es tu estatura?”)

Cuál es tu estatura? 1.75

>>> estatura

1.75

1.2 Entrada por script

Hasta ahora se ha escrito código directamente en la consola del intérprete, pero es necesario aprender a realizar programas informáticos que contengan todas las instrucciones en archivos llamados scripts (o guiones de instrucciones). Luego se envía este archivo al intérprete desde la terminal y se ejecuta todo el bloque de instrucciones. Guzdial y Vidal (2013) recomiendan aplicar buenas prácticas en programación.

De esta forma se pueden realizar todas las variaciones deseadas, sencillamente modificando el bloque de instrucciones almacenadas en un archivo con extensión .py

Para poder crear y ejecutar scripts se necesita un editor (IDE) y una terminal.

Ejemplo 3:

Si el bloque de instrucciones se almacena en el archivo "programa1.py" en la carpeta c:\sena conteniendo las siguientes instrucciones:

>>

 print("hola, bienvenido a tu primer script")

a=input("digite un nombre")

b=int(input("digite un número"))

print("su nombre es ", a)

print("su número es ", b)

c=b**2

print("el valor del número al cuadrado es", c)

 >>

Se ejecuta el bloque de instrucciones en el computador digitando este comando:

c:\sena> python programa1.py <ENTER>

>>

C:\sena>python programa1.py

Hola, bienvenido a tu primer script

digite un nombre MARIA

digite un número 5

su nombre es MARIA

su número es 5

el valor del número al cuadrado es 25

Realizando cambios en las instrucciones y regrabando el archivo, se verifican nuevamente los resultados ejecutando el programa1.py en el intérprete de Python.

 

IDE para Python

Existen múltiples IDE (Entornos de Desarrollo Integrado o Integrated Development Environment), los cuales pueden usarse para digitar bloques de código en lenguaje Python.

Según Salazar (2019), un IDE consta de un editor de código fuente, un resaltador de sintaxis, unas herramientas de construcción automáticas y un depurador. La mayoría de los IDE tienen auto-completado inteligente de código.

Entre los IDE más utilizados para Python tenemos: Sublime Text, PyCharm, Atom, Pythonista, Eclipse, Komodo, CodePad, VIM y Spyder Python.

Utilizar el IDLE (Integrated DeveLopment Environment for Python) el cual es un entorno gráfico que permite editar, guardar y ejecutar programas en Python.

IDLE es también un entorno interactivo similar a una consola, en el que se pueden ejecutar instrucciones directas de Python.

En Windows, el IDLE viene junto con el intérprete de Python, es decir, al instalar Python en Windows también se instala el IDLE.

 La ventana del IDLE tiene un tamaño predeterminado que es posible modificar con el menú Options > Configure IDLE > General. La gama original de colores de la ventana del IDLE se puede modificar con el menú Options > Configure IDLE > Highlights.

 

Para crear un nuevo programa se selecciona File New-File, o se oprime el atajo CTRL+N.

El IDLE aplica color al texto de acuerdo con su sintaxis. Los colores facilitan identificar los distintos tipos de datos y permiten detectar errores:

Las palabras reservadas de Python se muestran en color naranja.

Las cadenas de texto se muestran en verde.

Las funciones se muestran en púrpura.

Los resultados de las instrucciones se escriben en azul.

Los mensajes de error aparecen en rojo.

Para guardar el programa se selecciona File Save o se oprimen CTRL+S. El programa queda almacenado con el nombre deseado y la extensión de Python que es .py.

Para ejecutar el programa digitado, seleccionar en el menú Run > Run Module u oprimir la tecla F5.

 

SOLUCION AL EJERCICIO 5 CONDICIONAL (IF). FUENTE: APRENDE CON ALF

 Ejercicio 5


Para tributar un determinado impuesto se debe ser mayor de 16 años y tener unos ingresos iguales o superiores a 1000 € mensuales. Escribir un programa que pregunte al usuario su edad y sus ingresos mensuales y muestre por pantalla si el usuario tiene que tributar o no.

Solución:

 Variables:

  • Edad
  • Ingresos

Datos de entrada:

  • Edad del usuario
  • Ingresos mensuales del usuario en euros 
 Proceso:
  • Evaluar si la edad del usuario es mayor a 16 años
  • Evaluar si los ingresos mensuales son iguales o superiores a 1000 euros

Datos de salida:

  •  Si el usuario tiene que tributar o no

Algoritmo: 

INICIO

     LEA: EDAD, INGRESOS 

     SI (EDAD) > 16  & INGRESOS >= 1000   ENTONCES:

               ESCRIBA: "EL USUARIO TIENE QUE TRIBUTAR"

     SINO

     ESCRIBA: "EL USUARIO NO TIENE QUE TRIBUTAR"  

FIN_INICIO

 

Python:

print('Inicio de programa')


edad = int(input('Favor ingrese la edad del usuario: '))
ingresos = int(input('Favor ingrese el valor de los ingresos del usuario en euros: '))
if edad > 16 and ingresos >= 1000:
  print('El usuario tiene que tributar')
else:
  print('El usuario no tiene que tributar')


print('Fin de programa')

Entradas recientes

PYTHON BASICO / NUMEROS Y OPERACIONES ARITMETICAS

 FASE 1: Números y operadores aritméticos La primera fase de este objetivo consiste en el aprendizaje de la utilización de números y de las ...

Entradas Populares