BusinessBOK:Python

Python[1] es un lenguage de programación de código abierto que entre muchas otras cosas se puede utilizar sin necesidad de pagar por el. Es decir, Python es gratis. Python es un lenguaje de programación de última generación multiparadigma. En Python se pueden desarrollar aplicaciones procedurales conocidas como párrafos o conjuntos de frases, comúnmente conocidos como scripts. Python también puede implementar funciones de usuario como ocurre en el caso de lemguaje C. Python integra aplicaciones web y de escritorio elaboradas con el paradigma orientado a objetos, tal y como se puede realizar con PHP.

Python

Python implementa todas utilerías empleadas para datos masivos, aplicaciones Web con Jypyter Notebook. Incluye muchas utilerías para aplicaciones de inteligencia artificial, aprendizaje de la máquinas, aprendizaje profundo y ciencia de datos. Python implementa una infinidad de librerías para desarrollar aplicaciones de usuario de todo tipo. Al igual que PHP, las aplicaciones de Python nunca son compiladas en otro código objeto, como ocurre en el caso de los archivos *.class que se deben compilar en Java. Por lo que todas las aplicaciones de Python son interpretadas a tiempo real durante la ejecución del programa. Tal y como ocurre con las aplicaciones de PHP. Las aplicaciones de Python se pueden ejecutar en los más populares sistemas operativos, tales como:

Archivo:Microsoft Windows.png
Microsoft Windows
Archivo:Apple macOS X.png
Apple macOS X
Archivo:GNU Linux.png
GNU Linux

Python editar

Para instalar Python[2] se pueden utilizar una de diversas distribuciones auspiciadas por distintos fabricantes de software en el mercado.

Anaconda editar

 
Anaconda

Anaconda es la mejor herramienta para procesar una gran cantidad de datos para el propósito requerido. Python es un lenguaje versátil que permite crear las aplicaciones necesarias para la industria de la ciencia de datos, así como aplicaciones de usuario de todo tipo. La distribución de Anaconda es una implemetación de código abierto de Python, que al igual que otras distribuciones realizadas bajo esta misma filosofía ofrece varias versiones disponibles. Esta es una distribución ¨Python es una aplicación de entorno independiente. Lo que permite ejecutar cuantas instancias de Python se requieran. Por lo que es posible ejecutar varias distribuciones en una misma computadora. Anaconda se distribuye en las siguientes ediciones: Individual, Commercial, Team y Enterprise y Cloud.

:Jupyter Notebook editar

[[File::Jupyter Notebook.png | thumb | left | link=:Jupyter Notebook | Jupyter Notebook]] Jupyter Notebook es una aplicación Web de código abierto que permite ejecutar aplicaciones elaboradas con Python desde un navegador Web. Este programa de software antes era conocido como IPython. Jupyter Notebook es una aplicación que implementa contenidos integrados por instrucciones de código, textos, imágenes y ecuaciones matemáticas dentro de un mismo archivo. Gracias a esto los archivos de Jupyter Notebook son utilizados para representar los datos e implementar las aplicaciones de ciencia de datos con Python. Existe algunos servicios públicos disponibles de Jupyter Notebook, entre los que se encuentran:

Archivo:Microsoft Azure.png
Microsoft Azure Notebooks
Archivo:Google Cloud.png
Google Colab
Archivo:IBM Watson.png
Watson Studio Cloud
Archivo:ModeAnalytics.png
ModeAnalytics
Archivo:Quantopian.png
Quantopian

Para que Jupyter Notebook pueda ejecutar un archivo *.ipynb, este puede estar en cualquier carpeta a la que tenga acceso el usuario a través del explorador de archivos del sistema operativo. Jupyter Notebook nos permite navegar por la estructura de directorios. Para crear una instancia independiente de Jupyter Notebook solo debe duplicar el acceso directo que se encuentra en la carpeta de Anaconda3 de su menú de inicio. Una vez duplicado, deberá modificar la variable %USERPROFILE% por la ruta de la carpeta que contiene los archivo fuente de Jupyter Notebook que desea publicar dentro del siguiente comando:

C:\ProgramData\Anaconda3\python.exe C:\ProgramData\Anaconda3\cwp.py C:\ProgramData\Anaconda3 C:\ProgramData\Anaconda3\python.exe C:\ProgramData\Anaconda3\Scripts\jupyter-notebook-script.py "%USERPROFILE%/"

Spider editar

 
Spyder

Spyder[3] es un entorno de desarrollo de software científico gratuito y de código abierto escrito en Python, para Python, y diseñado por y para científicos, ingenieros y analistas de datos. Spyder presenta una combinación única de funciones avanzadas de edición, análisis, depuración y creación de perfiles de una herramienta de desarrollo integral con la exploración de datos, ejecución interactiva, inspección profunda y hermosas capacidades de visualización de un paquete científico. El editor multilingüe de Spyder integra una serie de herramientas poderosas listas para usar para una experiencia de edición eficiente y fácil de usar. Las características clave del editor incluyen resaltado de sintaxis (pigmentos); análisis de estilo y código en tiempo real; finalización bajo demanda, sugerencias de llamadas y funciones de definición; un navegador de funciones y clases, división horizontal y vertical, y mucho más.

Conda editar

Archivo:Conda.png
Conda

Conda[4] es un gestor de paquetes y un sistema de gestión de entornos de código abierto,​ multiplataforma​ y de lenguaje agnóstico.​​​ Conda está publicado bajo la licencia BSD[5] por Continuum Analytics. La licencia BSD es la licencia de software otorgada principalmente para los sistemas BSD (Berkeley Software Distribution), un tipo del sistema operativo Unix-like. Es una licencia de software libre permisiva como la licencia de OpenSSL o la MIT License. Es muy similar en efectos a la licencia MIT. Conda está escrito en el lenguaje de programación Python. Pero puede gestionar proyectos que contengan código escrito en otros lenguajes, como R, así como proyectos multilenguajes.​ Conda puede instalar la versión de Python que se necesite en el entorno de desarrollo-​ Al contrario que otros gestores de paquetes basados en Python, como pip o wheel. Conda cuenta con «canales» (channels), que son las ubicaciones de los repositorios en los que Conda busca paquetes. Debido a que los canales se organizan jerárquicamente, al instalar un paquete Conda comprobará qué canal tiene el mayor índice de prioridad. Este orden de prioridad se puede cambiar, así como también añadir nuevos canales. Los canales que se establecen por defecto son los repositorios de Continuum. ​ Existen canales más generales, que ofrecen una amplia gama de paquetes, como Conda-forge​ y otros más específicos, como Bioconda, que proporciona paquetes especializados en bioinformática.​ Conda está incluido en todas las versiones de Anaconda, Miniconda​ y Anaconda Repository.

PyPI editar

Archivo:PyPI.org.png
PyPI].org

[[Python#PyPI | Python Package Index (PyPI)]][6] es el repositorio de software para el lenguaje de programación Python. PyPI le ayuda a encontrar e instalar software desarrollado y compartido por la comunidad de Python. Los autores de los paquetes de Python que utilizar PyPI para distribuir su software. AL igual que otros repositorios de software, la integración de los paquetes en una plataforma como GitHub le permite a la comunidad de desarrolladores de Python compartir librerías completas que implementas variadisimas implementaciones. Si requiere más información sobre el uso de los paquete publicados en Python Package Index (PyPI).

Python.org editar

 
Python

Python se desarrolló bajo una licencia de código abierto aprobada por la OSI. Esto es lo que permite su libre uso y distribución, incluso para usos comerciales. La licencia de Python es administrada por Python Software Foundation. Python es fácil de aprender. Ya sea que sea usted un programador que por primera vez en este lenguaje, o bien, sea usted un experimentado desarrollador en otros lenguajes de programación. ÿthon es uno de los más avanzados lenguajes de programación de alto nivel del mercado. La comunidad de Python organiza conferencias y reuniones, colabora con el desarrollo del código y mucho actividades más. La documentación de Python le permitirá utilizar el lenguaje aprovechan al máximo esta tecnología-.

Programación con Python editar

 
Coding

Tipos de datos editar

Los tipos de datos de Python[7] definen los conjuntos de valores que tienen una serie de características y propiedades determinadas. Estos son los distintos conjuntos de números. Es decir, los naturales (1, 2, 3, 4, ...), los números enteros (..., -2, -1, 0, 1, 2, ...), los números reales (... -1.1, -0.3, 2.1, ...), etc. En Python) cada uno de estos conjuntos de es un tipo de datos. En Python todo es un objeto de una clase instanciada, y por defecto, todo objeto es verdadero a menos de que se indique lo contrario. En Python es posible comparar objetos de distinta clase con mayor facilidad que otros lenguajes de programación basados en el paradigma orientado a objetos, como en el caso de Java. Los tipos de datos en Python son:

Booleanos editar

En Python la clase que representa los valores booleanos es bool . Esta clase solo se puede instanciar con dos valores u objetos. True para representar verdadero y False para representar falso. Una particularidad del lenguaje es que cualquier objeto puede ser usado en el contexto donde se requiera comprobar si algo es verdadero o falso. Por tanto, cualquier objeto se puede usarse en la condición de un if o un while o como operandos de una operación booleana. Por defecto, cualquier objeto es considerado como verdadero con dos excepciones:

  • Que implemente el método __bool__() y que este devuelva False.
  • Que implemente el método __len__() y que este devuelva 0.

Además, los siguientes objetos e instancias también son consideradas falsas:

  • None
  • False

Números enteros editar

El tipo de dato para los números enteros se define mediante la palabra reservada int . Este tipo de dato comprende el conjunto de todos los números enteros. En Python este conjunto está limitado realmente por la capacidad de la memoria disponible. Ya que mo existe un límite de representación impuesto por el lenguaje. Por ejemplo:

>>> a = -1  # a es de tipo int y su valor es -1
>>> b = a + 2  # b es de tipo int y su valor es 1
>>> print(b)
1

También podemos representar los números enteros en formato binario, octal o hexadecimal:

  • Los números octales se crean anteponiendo 0o a una secuencia de dígitos octales (del 0 al 7).
  • Para crear un número entero en hexadecimal, hay que anteponer 0x a una secuencia de dígitos en hexadecimal (del 0 al 9 y de la A la F).
  • En cuanto a los números en binario, se antepone 0b a una secuencia de dígitos en binario (0 y 1). Por ejemplo:
>>> diez = 10
>>> diez_binario = 0b1010
>>> diez_octal = 0o12
>>> diez_hex = 0xa
>>> print(diez)
10
>>> print(diez_binario)
10
>>> print(diez_octal)
10
>>> print(diez_hex)
10

El valor cero de cualquier tipo de dato entero es 0 .

Números de punto flotante editar

Los números de punto flotante se utilizan para representar el conjunto de los números reales con la suficiente precisión para garantizar la precisión matemática de todas las operaciones realizadas. Si ejecutamos el siguiente código con el intérprete de Python obtenemos el resultado de la expresión 1.1 + 2.2 obtendremos el siguiente resultado:

>>> 1.1 + 2.2
3.3000000000000003

Al igual que ocurre con los números enteros, los números reales son infinitos y, por tanto, es imposible representar todo el conjunto de números reales con una computadora. Para representar el mayor número posible de los números reales con las limitaciones de memoria (tamaños de palabra de 32 y 64 bits), se adaptó la notación científica de representación de números reales al sistema binario. Qe es el sistema que se utiliza en programación para representar los datos e instrucciones. En esta notación científica, los números se representan de la siguiente manera:

101.1
1.011 * 102
0.032
3.2 * 10-2

El caso es que la suma de la representación en punto flotante en binario del número 1.1 y de la representación en punto flotante en binario del número 2.2 , dan como resultado 3,3000000000000003 . Por ejemplo la representación del número 1/3 requiere que la computadora trunque el número periódico resultante. La explicación es que los números de punto flotante se representan en el hardware de la computadora como fracciones de base binaria. Por lo que el problema se halla en la mayoría de las fracciones decimales que no se pueden representar de forma exacta como fracciones binarias porque tienen infinitos números decimales. Una consecuencia es que, en general, los números decimales de punto flotante que usas ñas aplicaciones son una aproximación de los números binarios de punto flotante realmente almacenados en la máquina. Los números de punto flotante se definen utilizando el tipo de datos en Python es float o decimal . Se puede utilizar el tipo float para representar cualquier número real. Por tanto para longitudes, pesos, frecuencias, …, en los que prácticamente es lo mismo 3.3 que 3.3000000000000003 el tipo float es el más apropiado. Por ejemplo:

>>> real = 1.1 + 2.2  # real es un float
>>> print(real)
3.3000000000000003  # Representación aproximada de 3.3
>>> print(f'{real:.2f}')
3.30  # real mostrando únicamente 2 cifras decimales

Al igual que los números enteros, un float se crea a partir de una literal, o bien como resultado de una expresión o una función. Por ejemplo:

>>> un_real = 1.1  # El literal debe incluir el carácter .
>>> otro_real = 1/2  # El resultado de 1/2 es un float
>>> not_cient = 1.23E3  # float con notación científica (1230.0)

En caso de requerir una mayor precisión con los números reales, Python puede utilizar el tipos de datos Decimal . El tipo Decimal es ideal, por ejemplo, para representar cantidades de dinero o tipos de interés. Este tipo de dato trunca la parte decimal del número para ser más preciso. Finalmente, el valor cero de cualquier tipo de dato de punto flotante es 0.0 .

Números complejos editar

El último tipo de dato numérico básico que tiene Python es el de los números complejos que se definen utilizando la palabra reservada complex . Los números complejos tienen una parte real y otra imaginaria y cada una de ellos se representa como un float. Para crear un número complejo, se sigue la siguiente estructura <parte_real>+<parte_imaginaria>j. Para acceder a la parte real o imaginaria de un número complejo se deben utilizar los atributos real e imag :

>>> complejo = 1+2j
>>> complejo.real
1.0
>>> complejo.imag
2.0

El valor cero de cualquier tipo de dato entero es 0+0j .

Aritmética editar

Con todos los tipos de datos numéricos se pueden aplicar las operaciones de la aritmética: suma, resta, producto, división, ... En Python está permitido realizar una operación aritmética con números de distinto tipo de datp. En este caso, el tipo de datos numérico «más pequeño» (menos preciso) se convierte al del tipo «más grande» (más preciso), de manera que el tipo de dato del resultado siempre será el del tipo de dato más grande (más preciso). Se entiende que el tipo de dato int es menor (menos preciso) que el tipo de dato float que a su vez es menor (menos preciso) que el tipo de dato complex . Por lo tanto, es posible, por ejemplo, sumar un int y un float :

>>> 1 + 2.0
3.0
>>> 2+3j + 5.7
(7.7+3j)

Cadenas de caracteres editar

Archivo:String.png
string

Otro tipo básico de Python, e imprescindible, son las secuencias o cadenas de caracteres. Este tipo es conocido como string aunque su clase verdadera es str</code. Un string es una secuencia inmutable de caracteres en formato Unicode. Para crear un string</code, simplemente tienes que encerrar entre comillas simples o dobles "" una secuencia de caracteres. Se puede usar indistintamente comillas simples o dobles, con una particularidad. Si en la cadena de caracteres se necesita usar una comilla simple, tienes 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. El caso contrario es similar. Por ejemplo:

>>> hola = 'Hola "Pythonista"'
>>> hola_2 = 'Hola \'Pythonista\''
>>> hola_3 = "Hola 'Pythonista'"
>>> print(hola)
Hola "Pythonista"
>>> print(hola_2)
Hola 'Pythonista'
>>> print(hola_3)
Hola 'Pythonista'

A diferencia de otros lenguajes, en Python no existe el tipo «carácter». No obstante, se puede simular con un string de un solo carácter. Por ejemplo:

>>> caracter_a = 'a'
>>> print(caracter_a)
a

str editar

El tipo de dato str en Python[8] se utiliza para representar cadenas de caracteres. La clase str en Python se utiliza para representar texto o cadenas de caracteres, al igual que el tipo de dato string. El tipo de dato str es una secuencia inmutable de caracteres Unicode. Por lo que, al igual que list, tuple y range son tipos de datos secuenciales y como son inmutables. Es decir, son objetos de este tipo de datos que no se puede modificar después de haber sido creados. Cuidado cuando se trabaja con texto procedente de archivos u otras fuentes de datos se debe verificar la codificación y realizar las transformaciones para evitarse problemas. Por defecto, la codificación de un string en Python es Unicode, concretamente UTF-8.

>>> s = 'Hola Pythonista'
>>> s
'Hola Pythonista'
>>> type(s)
<class 'str'>
>>> s2 = "Me gusta Python"
>>> s2
'Me gusta Python'
>>> type(s2)
<class 'str'>

Si se requiere que un string ocupe más de una línea, entonces se debe encerrar el texto entre tres comillas simples ... o dobles """...""". Por ejemplo:

>>> s = '''
... Este string
...    ocupa más
...     de
...  una línea'''
>>> s
'\nEste string\n   ocupa más\n    de\n una línea'
>>> print(s)
Este string
   ocupa más
    de
 una línea

Como se puede observar, el uso de las tres comillas (simples o dobles) guarda el carácter de fin de línea. Esto se puede evitar añadiendo el carácter \ al final de cada línea.

>>> s = '''Este string \
...    ocupa más \
...     de \
...  una línea'''
>>> s
'Este string    ocupa más     de  una línea'
>>> print(s)
Este string    ocupa más     de  una línea

No confundas un string multilínea con un docstring. Un docstring es un string multilínea que se utiliza para documentar un módulo, función, clase o método, entre otros tipos. Además, dos cadenas se pueden concatenar con el operador +, o incluso repetir, usando el operador *. El resultado en ambos casos es un nuevo string.

>>> hola = 'hola'
>>> s = hola + ' Pythonista'
>>> s
'hola Pythonista'
>>> s2 = hola * 3 + ' Pythonista'
>>> s2
'holaholahola Pythonista'

Dos strings literales se pueden concatenar si aparecen juntos uno tras otro. Por ejemplo:

>>> s = 'Hola' ' Pythonista'
>>> s
'Hola Pythonista'
>>> s = ('Hola'
... ' Pythonista'
... ' ¿Te gusta Python?')
>>> s
'Hola Pythonista ¿Te gusta Python?'

Como el resto de tipos secuencia, podemos acceder a los caracteres de una cadena a través de un índice numérico. Un índice es un número entero que indica la posición de un carácter en la cadena. Siempre el primer carácter de la secuencia tiene como índice 0.

>>> s = 'Hola Pythonista'
# Primer carácter de la cadena
>>> s[0]
'H'
# Sexto carácter de la cadena
>>> s[5]
'P'
# Tercer carácter de la cadena
>>> s[2]
'l'

Si se intenta acceder a un índice que está fuera del rango del string, el intérprete lanzará la excepción IndexError. De igual modo, si se utiliza un índice que no es un número entero, se lanzará la excepción TypeError

>>> s = 'Hola Pythonista'
>>> s[30]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
IndexError: string index out of range
>>> s[1.0]
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: string indices must be integers

Los índices también puede ser negativos. En este caso, el índice -1 hace referencia al último carácter, -2 al penúltimo, y así, sucesivamente.

>>> s = 'Hola Pythonista'
>>> s[-1]
'a'
>>> s[-2]
't'

En Python es posible recorrer todos los caracteres de una cadena usando la sentencia for. Para ello, lo más fácil es seguir la siguiente plantilla:

>>> saludo = 'Hola'
>>> for c in saludo:
...     print(c)
...     
H
o
l
a

Para comprobar si un carácter está contenido en una cadena, utiliza el operador de pertenencia in. Esto nos devolverá True si al menos hay una ocurrencia del carácter en el string o False en caso contrario.

>>> saludo = 'Hola'
>>> print('o' in saludo)
True
>>> print('p' in saludo)
False
>>> print('p' not in saludo)
True

En Python, para comparar si dos cadenas de caracteres son iguales, se utiliza el operador de igualdad ==. Dos strings son iguales si y solo si ambas cadenas contienen la misma secuencia de caracteres (se distingue entre mayúsculas y minúsculas).

>>> s1 = 'hola'
>>> s2 = 'hola'
>>> print(s1 == s2)
True
>>> s3 = 'Hola'
>>> print(s1 == s3)
False

Como con cualquier otro tipo contenedor o secuencia, para obtener la longitud de una cadena se debe utilizar la función de Python len(). A esta función se le pasa como argumento la cadena en cuestión y nos devolverá el número de caracteres que tiene.

>>> saludo = 'Hola'
>>> len(saludo)
4

Como un string está limitado por los caracteres o "", ¿qué ocurre si necesito usar el carácter ' o " dentro de una cadena? Lo más fácil si tienes que usar el carácter ' en tu cadena, es encerarla entre comillas dobles. Por el contrario, si necesitas usar " dentro del string, enciérralo entre comillas simples.

>>> s = 'Dijo: "Hola Pythonista"'
>>> print(s)
Dijo: "Hola Pythonista"
>>> s = "Dijo: 'Hola Pythonista'"
>>> print(s)
Dijo: 'Hola Pythonista'

También puedes usar la combinación \' para mostrar una comilla simple o \" para mostrar una comilla doble, independientemente de si la cadena está encerrada entre comillas simples o dobles.

>>> s = 'Dijo: \'Hola Pythonista\''
>>> print(s)
Dijo: 'Hola Pythonista'
>>> s = "Dijo: \"Hola Pythonista\""
>>> print(s)
Dijo: "Hola Pythonista"

Además del carácter ' y ", hay otros caracteres especiales que para ser usados dentro de una cadena necesitan ser «escapados» con el carácter \. Son, entre otros, los siguientes: tabulador (\t), barra invertida (\\), retroceso (\b</ode>), nueva línea (\n) o retorno de carro (\r).

# Ejemplo para declarar una ruta en Windows
>>> s = 'C:\\Users\\Documents\\'
>>> print(s)
C:\Users\Documents\
# Nueva línea más tabulador
>>> s = 'Hola\n\tPythonista'
>>> print(s)
Hola
    Pythonista

En relación con la sección anterior, puede haber ocasiones en que se quiera usar el carácter \ pero sin ser utilizado como carácter de escape. Para ello, se puede hacer uso de las raw strings. Una cadena de este tipo comienza anteponiendo el carácter r a las comillas (simples o dobles).

# Aquí, \n es interpretado como nueva línea
>>> s = 'C:\python\noticias'
>>> print(s)
C:\python
oticias
# En una raw string no se interpreta el carácter \
>>> s = r'C:\python\noticias'
>>> print(s)
C:\python\noticias

Una singularidad de la clase stres que a su constructor se le puede pasar cualquier objeto. Al hacer esto, la función str() devuelve la representación en forma de cadena de caracteres del propio objeto (si se pasa un string devuelve el string en sí). Normalmente, al llamar a la función str(objeto) lo que se hace internamente es llamar al método __str__() del objeto. Si este método no existe, entonces devuelve el resultado de invocar a repr(objeto).

Listas editar

Las listas son secuencias mutables de valores.

>>> lista = [1, 2, 3, 8, 9]
>>> print(lista)
[1, 2, 3, 8, 9]

Secuencias y colecciones vacías (veremos estos tipos en otros tutoriales): , () , [] , {} , set() , range(0) .

Tuplas editar

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

Secuencias y colecciones vacías (veremos estos tipos en otros tutoriales): , () , [] , {} , set() , range(0) .

Rangos editar

Secuencias y colecciones vacías (veremos estos tipos en otros tutoriales): , () , [] , {} , set() , range(0) .

Mapas editar

Secuencias y colecciones vacías (veremos estos tipos en otros tutoriales): , () , [] , {} , set() , range(0) .

Conjuntos editar

Los conjuntos se utilizan para representar conjuntos únicos de elementos, es decir, en un conjunto no pueden existir dos objetos iguales. Secuencias y colecciones vacías (veremos estos tipos en otros tutoriales): , () , [] , {} , set() , range(0) .

Conjuntos editar

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

Iteradores editar

Secuencias y colecciones vacías (veremos estos tipos en otros tutoriales): , () , [] , {} , set() , range(0) .

Diccionarios editar

Los diccionarios son tipos especiales de contenedores en los que se puede acceder a sus elementos a partir de una clave única.

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

Clases editar

Instancias editar

Excepciones editar

Oata conocer el tipo de una variable tenemos dos funciones: type() e isinstance() .

  • type() recibe como parámetro un objeto y te 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.
>>> type(3)
<class 'int'>
>>> type(2.78)
<class 'float'>
>>> type('Hola')
<class 'str'>
>>> isinstance(3, float)
False
>>> isinstance(3, int)
True
>>> isinstance(3, bool)
False>>> isinstance(False, bool)
True

Imagine que tiene una variable edad de tipo string cuyo valor es '25'. Se podría decir que edad, aunque realmente es una cadena de caracteres, contiene un número. Sin embargo, si intentas sumar 10 a edad, el intérprete te dará un error porque edad es de tipo stry 10 un tipo numérico.

>>> edad = '25'
>>> edad = edad + 10
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: can only concatenate <code>str</code>(not "int") to str

¿Cómo puedo tratar la variable edad como un número? Convirtiéndola a un tipo numérico, por ejemplo, al tipo int. Para ello, 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.
  • complex(): Devuelve un complex a partir de un número o secuencia de caracteres.

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

>>> 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 <code>str</code>(se muestran las '')
'35'
>>> float('18.66')  # Convierte un <code>str</code>a float
18.66
>>> float('hola')  # Convierte un <code>str</code>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'

Referencias editar

  1. Universidad Politécnica de Valancia 2020: UPValenciaX PY101x Python: Aprender a programar curso en línea consultado el lunes 30 de noviembre de 2020 desde la URL https://courses.edx.org/courses/course-v1:UPValenciaX+PY101x+2T2020/course/.
  2. Anaconda Documentation 2020: