<jupyter_start><jupyter_text>TIPOS DE DATOS - Los tipos de datos son esenciales en los lenguajes de programación. - Aunque Python no exige declarar qué tipo de variable es y nos permite cambiarlo, cada variable asume un TIPO según el dato que tenga almacenado.  Tipo Cadena de texto *(str):*- String. Nombrada así porque contiene una cadena de letras. - Se identifican al estar encerradas entre comillas.<jupyter_code>a = 'Hola a todos!'

cadena_multilinea = """
Este es un ejemplo 
de varias lineas
"""
print (a)
print (cadena_multilinea)<jupyter_output>Hola a todos!

Este es un ejemplo 
de varias lineas<jupyter_text>- Con la función type(), puedes obtener el tipo de dato de la variable.<jupyter_code>type (a)<jupyter_output><empty_output><jupyter_text>Tipo Numérico *(int), (float), (complex):* Entero *(int)*:<jupyter_code>edad = 45 
type (edad)<jupyter_output><empty_output><jupyter_text>Decimal *(float)*:- Los números con un punto decimal pertenecen al tipo *float*. Estos se representan en un formato de punto flotante.<jupyter_code>peso = 78.3 
type (peso)<jupyter_output><empty_output><jupyter_text>Complejos *(complex)*: - Los números con un punto decimal pertenecen al tipo *float*. Estos se representan en un formato de punto flotante.<jupyter_code>c = 2j
type (c)<jupyter_output><empty_output><jupyter_text>Tipo secuencias *(list), (tuple), (set), (dict):* Listas *(list):* - En una lista puedo almacenar varios elementos (cualquier tipo de datos) en una sola variable.- Identifica las listas entre corchetes y separa los datos con comas.<jupyter_code>mi_lista1 = ["pedro", "juan", "santiago"]

type (mi_lista1)

mi_lista2 = [2,34,55,112,3,291,43,391,8,8192,222,9134]

type (mi_lista2)<jupyter_output><empty_output><jupyter_text>- ¿Cómo haría para determinar cuántos elementos tiene la lista 2?. Utilicemos la función len():<jupyter_code>len(mi_lista2)<jupyter_output><empty_output><jupyter_text>- Si quisiera mostrar en pantalla algún elemento de la lista, puedo hacer referencia al número de índice, ya que los datos quedan indexados. *Nota: Inicia con 0 para el primer elemento.*<jupyter_code>print (mi_lista1[0])<jupyter_output>pedro<jupyter_text>- También puedo cambiar, agregar o eliminar algún elemento de la lista. Probemos cambiando el segundo elemento de lista1, llamando el index 1 entre corchetes:<jupyter_code>mi_lista1[1] = "maria"
print (mi_lista1)<jupyter_output>['pedro', 'maria', 'santiago']<jupyter_text>Tuplas *(Tuple)*:- Con las tuplas también puedo almacenar varios elementos en una variable.- Identifica las tuplas entre paréntesis.<jupyter_code>tupla1 = ("pedro", "juan", "santiago")
type(tupla1)<jupyter_output><empty_output><jupyter_text>- Las tuplas a diferencia de las listas, son inmutables, no me permiten cambiar, agregar o eliminar elementos después de creada.<jupyter_code>tupla1[1] = "maria"
print (tupla1)<jupyter_output><empty_output><jupyter_text>Conjunto *(set):*- Con los sets también puedo almacenar varios elementos en una variable.- Identifica los conjuntos entre llaves.<jupyter_code>mi_set1 = {"pedro", "juan", "santiago"}
type (mi_set1)<jupyter_output><empty_output><jupyter_text>A diferencia de los anteriores, los conjuntos no están ordenados ni indexados.Cada vez que los uso, pueden aparecer en un orden diferente, y no se puedo hacer referencia a ellos por índice.<jupyter_code>print (mi_set1[0])<jupyter_output><empty_output><jupyter_text>Diccionarios *(dict):*- Los diccionarios se usan para crear una lista de datos una manera mas ordenada y accesible.- Almacenan los datos como pares de clave - valor:key:value- Identifica los diccionarios siempre entre corchetes y de la siguiente manera:<jupyter_code>mi_dict = {
  "nombre": "laura",
  "edad": 45,
  "genero": "f"
}
type(mi_dict)<jupyter_output><empty_output><jupyter_text>- Como para cada clave está asignado un valor, podemos usar get() para obtener el valor de una clave determinada.<jupyter_code>mi_dict.get("edad")<jupyter_output><empty_output><jupyter_text>Tipo Booleano *(bool):*- Representando 2 valores únicos: *True / False*- En general las cadenas son *True*, excepto las nulas o vacías  *False*.- Cualquier número es True, excepto 0<jupyter_code>m = True
type(m)<jupyter_output><empty_output><jupyter_text>- Tipo Booleano es generalmente usado para problemas de lógica y toma de decisiones en los programas.<jupyter_code>def check(num):
    return(bool(num%2==0))
 
num = 4;

if(check(num)):
    print("Es par")
else:
    print("Es impar")<jupyter_output>Es par
{'fraction_non_alphanumeric': 0.10433815350389321, 'fraction_numerical': 0.014460511679644048, 'mean_word_length': 6.518394648829432, 'pattern_counts': {'":': 3, '<': 65, '<?xml version=': 0, '>': 65, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '17', 'dir': 'jupyter-structured-clean-dedup', 'id': '468314', 'license': 'MIT', 'n_tokens_mistral': 1680, 'n_tokens_neox': 1649, 'n_words': 485, 'path': '2_Tipos_Datos.ipynb', 'repo_name': 'EdissonM/Python_101', 'size': '4495'}