{"id":13554499,"url":"https://github.com/lenguaje-latino/latino","last_synced_at":"2026-01-12T02:49:40.519Z","repository":{"id":25943074,"uuid":"29384577","full_name":"lenguaje-latino/latino","owner":"lenguaje-latino","description":"Lenguaje de programación de código abierto para latinos y de habla hispana.","archived":false,"fork":false,"pushed_at":"2024-05-14T21:42:27.000Z","size":265119,"stargazers_count":470,"open_issues_count":26,"forks_count":52,"subscribers_count":43,"default_branch":"master","last_synced_at":"2024-11-04T02:32:55.788Z","etag":null,"topics":["espanol","latino","lenguaje-de-programacion","lenguaje-latino","programacion","programming-language"],"latest_commit_sha":null,"homepage":"http://lenguajelatino.org/","language":"Rich Text Format","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lenguaje-latino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-17T08:00:50.000Z","updated_at":"2024-10-22T23:40:16.000Z","dependencies_parsed_at":"2024-03-18T12:07:20.297Z","dependency_job_id":"27328f96-0720-4c51-857e-de70c0922260","html_url":"https://github.com/lenguaje-latino/latino","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenguaje-latino%2Flatino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenguaje-latino%2Flatino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenguaje-latino%2Flatino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lenguaje-latino%2Flatino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lenguaje-latino","download_url":"https://codeload.github.com/lenguaje-latino/latino/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246956478,"owners_count":20860444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["espanol","latino","lenguaje-de-programacion","lenguaje-latino","programacion","programming-language"],"created_at":"2024-08-01T12:02:49.093Z","updated_at":"2026-01-12T02:49:40.513Z","avatar_url":"https://github.com/lenguaje-latino.png","language":"Rich Text Format","funding_links":[],"categories":["Rich Text Format"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/lenguaje-latino\"\u003e\n        \u003cimg width=\"90%\" align=\"center\" src =\"https://raw.githubusercontent.com/MelvinG24/Latino/master/.readme/imgs/banner-300x.png\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n![GitHub release (latest by date)](https://img.shields.io/github/v/release/Lenguaje-Latino/Latino)\n[![https://t.me/joinchat/EBHu7z6l6_paWtcJgu9DVQ](https://img.shields.io/badge/Soporte-Telegram-green.svg)](https://t.me/joinchat/AAAAAD6l6_qIgQAAgu9DVQ)\n[![Join the chat at https://gitter.im/primitivorm/latino](https://badges.gitter.im/primitivorm/latino.svg)](https://gitter.im/primitivorm/latino?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n[![Build Status](https://travis-ci.org/primitivorm/latino.svg?branch=master)](https://travis-ci.org/primitivorm/latino)\n\u003ca href=\"http://lenguaje-latino.org\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/vue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n[![codecov.io](http://codecov.io/github/primitivorm/latino/coverage.svg?branch=master)](http://codecov.io/github/primitivorm/latino?branch=master)\n\n| \u003c!-- | README | [English](.readme/readme_idioma/readme.en-US.md) | [Français](.readme/readme_idioma/readme.fr-FR.md) | [Português](.readme/readme_idioma/readme.pr-BR.md) | [Italiano](.readme/readme_idioma/readme.it-IT.md) |\n| ---- | ------ | ------------------------------------------------ | ------------------------------------------------- | -------------------------------------------------- | ------------------------------------------------- |\u003e\n\n\u003c/div\u003e\n\n\u003ca name=\"tabla\"\u003e\u003c/a\u003e\n# Tabla de contenidos\n* [Tabla de contenidos](#tabla)\n    * [¿Qué es lenguaje Latino?](#queEs)\n        * [Video introductorio](#intro)\n    * [¿Por qué usar Latino?](#porQue)\n    * [Instalar Latino](#inst)\n    * [Documentación](#doc)\n    * [Latino-Wiki](#wiKi)\n    * [Otras Ayudas](#ayuda)\n    * [Contribuciones](#contri)\n    * [SINTAXIS DE LATINO](#sintx)\n        * [Comentarios](#comt)\n        * [Variables](#var)\n            * [Un identificador puede](#puede)\n            * [Un identificador NO puede](#NOpuede)\n        * [Constantes](#const)\n        * [Tipos de datos](#datos)\n        * [Operadores](#opds)\n        * [Estructura de control](#estrCtrl)\n            * [si (if)](#si)\n            * [elegir (switch case)](#elegir)\n            * [desde (for loop)](#desde)\n            * [mientras (do while)](#mientras)\n            * [repetir-hasta (repeat)](#rept)\n        * [Funciones](#fun)\n        * [Lista](#lista)\n        * [Diccionarios](#dic)\n        * [Palabras reservadas](#plbrsRvds)\n    * [Licencia](#lic)\n\n\u003ca name=\"queEs\"\u003e\u003c/a\u003e\n# ¿Qué es lenguaje Latino?\n*Latino* es un lenguaje de programación con sintaxis en Español creado en [C](https://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)), inspirado en [Lua](https://www.lua.org/) y [Python](https://www.python.org). Éste proyecto nace de la necesidad de incrementar la educación de nivel básico y avanzado, para que niños, adolescentes y también adultos se motiven a entrar en el mundo de la programación y desarrollar aplicaciones en una sintaxis a su idioma. Además, *Latino* es también para desarrolladores que les gustaría programar en Español, ya que *Latino* es completamente funcional en cualquier [API](https://es.m.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones) en raw.\n\n\u003ca name=\"intro\"\u003e\u003c/a\u003e\n### Vídeo introductorio de Latino (clic en la imagen)\n[![Video Introductorio de Latino](https://j.gifs.com/GvrEK0.gif)](https://www.youtube.com/watch?v=LzA5FRt8Oqo)\n\n\u003ca name=\"porQue\"\u003e\u003c/a\u003e\n# ¿Por qué usar Latino?\n*Latino* al ser un lenguaje de programación con sintaxis en Español nos provee de ciertas ventajas a la hora de programar en el.\n1. **Intuitivo**:\n    \u003e Su sintaxis en Español hace más fácil la comprensión del código, reduciendo así el tiempo de aprendizaje al programar.\n2. **Fácil**:\n    \u003e *Latino* tiene una sintaxis limpia y no requiere del uso de punto y coma (`;`) al final de cada código como en el caso se Java, Javascript, C/C++, entre otros.\n3. **Lenguaje de alto nivel**:\n    \u003e Esto significa que es un lenguaje que se asemeja a la gramática que usamos para leer y escribir. Sin embargo, los [lenguajes de bajo nivel](https://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel) son aquellos que entiende la máquina tales como el [código binario](https://es.wikipedia.org/wiki/Lenguaje_de_m%C3%A1quina) o el [Lenguaje ensamblador](https://es.wikipedia.org/wiki/Lenguaje_ensamblador).\n4. **Portátil**:\n    \u003e Cuando escribes tu código en *Latino* este puede ser ejecutado en cualquier otra plataforma de manera fácil y segura a diferencia de otros lenguajes de programación como es el caso de [Visual Basic](https://es.wikipedia.org/wiki/Visual_Basic) que solo opera en plataformas MS-Windows.\n5. **Código abierto**:\n    \u003e Cualquiera puede descargar el código fuente de *Latino*, modificarlo, extender sus librerías y aportar en su desarrollo si así lo desea.\n\n---\n\n![Captura_de_Pantalla-Latino](https://raw.githubusercontent.com/MelvinG24/Latino/master/.readme/imgs/latino_sublime.png)\n\n\u003ca name=\"inst\"\u003e\u003c/a\u003e\n# Instalar Latino\n## Windows\n- [Windows](.readme/OS_install/instalacion_windows.md)\n- [Mac](.readme/OS_install/instalacion_mac.md)\n- [Debian/Ubuntu](.readme/OS_install/instalacion_debian.md)\n- [Fedora](.readme/OS_install/instalacion_fedora.md)\n- [RHEL/CentOS](.readme/OS_install/instalacion_centos.md)\n- [ArchLinux/Manjaro](.readme/OS_install/instalacion_archlinux.md)\n\nPuedes instalar Latino en Linux usando los paquetes de instalación disponibles en el \"release\" o utilizar el siguiente \"bash script\" para una instalación totalmente automatizada (solo en Linux)\n```bash\ngit clone https://github.com/lenguaje-latino/instalacion.git \u0026\u0026 cd instalacion \u0026\u0026 sudo chmod +x latino_instalacion-linux.sh \u0026\u0026 ./latino_instalacion-linux.sh\n```\nPara mayor información sobre el script de arribe, mirar aquí [git:lenguaje-latino/instalacion](https://github.com/lenguaje-latino/instalacion)\n\n\u003ca name=\"doc\"\u003e\u003c/a\u003e\n# Documentación\nAprende sobre este lenguaje de programación visitando su documentación oficial en el siguiente enlace.\n- [Manual Latino](https://manual-latino.readthedocs.io/es/stable/)\n- [API de Latino](https://manuallatinoapi.blogspot.com)\n\n\u003ca name=\"wiKi\"\u003e\u003c/a\u003e\n# Latino-Wiki\nVisita la Wiki de Latino aquí en GitHut para saber como colaborar en este proyecto y para aprender a como compilar Latino en cada sistema operativo.\n- [Latino-Wiki](https://github.com/MelvinG24/Latino/wiki)\n\n\u003ca name=\"ayuda\"\u003e\u003c/a\u003e\n# Otras Ayuda\n*Latino* dispone de un foro en su página web oficial, así como también un grupo en Telegram y Gitter, además de un canal en Youtube a las que puedes dirigirte en caso de cualquier duda.\n- [Stack Overflow](https://es.stackoverflow.com/questions/tagged/latino)\n- [Chat en Telegram](https://t.me/joinchat/AAAAAD6l6_qIgQAAgu9DVQ)\n- [Chat en Discord](https://discord.com/invite/YgMGNhv3)\n- [Chat en Gitter](https://gitter.im/primitivorm/latino?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n- [Canal en Youtube](https://www.youtube.com/channel/UCLVTJpQn-TDbBSwR732kvnQ/featured)\n\n\u003ca name=\"contri\"\u003e\u003c/a\u003e\n# Contribuciones\nSi deseas contribuir en este proyecto reportando errores, proponiendo sugerencias o aportando al código fuente, te dejamos el siguiente enlace con nuestras normas.\n- [Normas para contribuyentes](CONTRIBUTING.md)\n\n\u003ca name=\"sintx\"\u003e\u003c/a\u003e\n# SINTAXIS DE LATINO\nA continuación se explica de manera general la definición del lenguaje de programación *Latino*\n\u003ca name=\"comt\"\u003e\u003c/a\u003e\n##  I. Comentarios:\nLos comentarios de una linea empezaran por el signo de gato `#` (como en python) o `//` (como en C).\n```js\n#Este es un comentario estilo python\n//Este es un comentario estilo C\n```\nLos comentarios multilínea son al estilo C. inician con `/*` y terminan con `*/`.\n```c\n/*\nEste es un\ncomentario\nmultilínea\n*/\n```\n\u003ca name=\"var\"\u003e\u003c/a\u003e\n## II. Variables:\nLas variables son identificadores asociados a valores.\n```python\nnombre = \"Juan Perez\"\ncalificacion = 10\nnumeros = [1, 2, 3, 4, 5]  //esto es una lista ó arreglo.\nsueldos = { \"Jesus\" : 10000, \"Maria\" : 20000, \"Jose\" : 30000 } //esto es un diccionario\n```\n\nEs posible asignar más de una variable en una sola línea de código\n```python\na, b, c = 1, 2, 3   #a = 1  b = 2  c = 3\na, b, c = 1, 2      #a = 1  b = 2  c = nulo\na, b    = 1, 2, 3   #a = 1  b = 2  se descarta el valor 3\n```\n\u003ca name=\"puede\"\u003e\u003c/a\u003e\n### __Un identificador puede:__\n1. Empezar por guión bajo `_` o letras `a-z ó A-Z`. No son validas las letras acentuadas ni la `ñ` como letras en los identificadores.\n2. Contener caracteres en mayúsculas y minúsculas.\nLatino  es sensible a mayúsculas y minúsculas. Por lo que los siguientes identificadores no son los mismos.\n```python\nmensaje = \"Hola mundo\"\nMensaje = \"¡Hasta la vista baby!\"\n```\n\u003ca name=\"NOpuede\"\u003e\u003c/a\u003e\n### __Un identificador NO puede:__\n1. Empezar por un número.\n2. Empezar por un símbolo, ni tampoco que sea una palabra reservada.\n\n\u003ca name=\"const\"\u003e\u003c/a\u003e\n## III. Constantes:\nCuando se declara una constante, también se debe asignar el valor forzosamente.\n\nLas constantes se deben declarar en **mayúsculas**.\n```python\nPI = 3.14159\nG = 9.8\n```\n\n\u003ca name=\"datos\"\u003e\u003c/a\u003e\n## IV. Tipos de datos\n| latino           | tipo de dato en C |\n| ---------------- | :---------------: |\n| lógico           |     **bool**      |\n| numérico         |    **double**     |\n| cadena o literal |    **`char*`**    |\n| lista (arreglo)  |    **struct**     |\n| diccionario      |    **struct**     |\n\n\u003ca name=\"opds\"\u003e\u003c/a\u003e\n## V. Operadores:\nA continuación se listan los operadores:\n| Categoría              | Operadores                             |\n| ---------------------- | -------------------------------------- |\n| Aritmético             | `+, -, *, /, % (modulo), ^ (potencia)` |\n| Lógico                 | \u0026\u0026 (y), \u0026#124;\u0026#124; (o)               |\n| Concatenación          | `..`                                   |\n| Incremento, decremento | `++, --` (valido solo en post)         |\n| Relacional             | `==, !=, \u003c, \u003e, \u003c=, \u003e=, ~= (regex)`     |\n| Asignación             | `=`                                    |\n| Acceso a miembro       | `.`                                    |\n| Operador ternario      | `(condicion) ? opcion1 : opcion2`      |\n\nLa precedencia de operadores es la misma que otros lenguajes de programación como C / Python / Lua.\n\nEl operador ternario se puede usar para asignar valores basado en una condición, los paréntesis son requeridos para obtener el resultado esperado.\n```python\nnumero = -5\nmensaje = (numero \u003c 0) ? \" es negativo\" : \" es positivo\"\nescribir(\"El número \" .. numero .. mensaje)\n#salida: El número -5 es negativo\n```\n\u003ca name=\"estrCtrl\"\u003e\u003c/a\u003e\n## VI. Estructuras de control:\n\u003ca name=\"si\"\u003e\u003c/a\u003e\n### si (if)\nEvalua una condición y si el resultado es `verdadero` ejecuta\nlas instrucciones a continuación. Los paréntesis son opcionales en la condición.\n```python\nsi (condicion)\n   #codigo\nfin\n\nedad = 18\nsi edad \u003e= 18\n    escribir(\"Eres mayor de edad, ya puedes votar.\")\nfin\n#salida: Eres mayor de edad, ya puedes votar.\n```\n\nEn caso de que el resultado de la condición sea `falso` se deberá de ejecutar el código después de la palabra reservada `sino`.\n```python\nsi condicion\n   #codigo\nsino\n   #codigo\nfin\n\nedad = 5\nsi edad \u003e= 18\n    escribir(\"Eres mayor de edad, ya puedes votar.\")\nsino\n    escribir(\"Eres un niño, tienes que ir a la escuela.\")\nfin\n#salida: Eres un niño, tienes que ir a la escuela.\n```\n\nEs posible el anidamiento de las sentencias `si-sino` de la siguiente manera:\n```python\nsi condicion\n   #codigo\nsino\n    si condicion\n        #codigo\n    sino\n        #codigo\n    fin\nfin\n```\nExiste una forma más elegante de escribir el código anterior con la palabra reservada `osi`. En python es `elif expresion:`.\n```python\nsi condicion1\n    #codigo\nosi condicion2\n    #codigo\nosi condicion3\n    #codigo\nsino\n    #codigo\nfin\n```\n\n---\n\n\u003ca name=\"elegir\"\u003e\u003c/a\u003e\n### elegir (switch case)\nEvalúa una opción de múltiples posibles casos.\nLa opción puede ser una expresión, en caso de que ninguna opción se cumpla en algún caso se ejecuta el código después de la palabra reservada `otro` o `defecto`.\nLos valores de los casos solo pueden ser numéricos o cadenas.\n```python\nelegir (opcion)\n    caso valor1:\n        #codigo\n    caso valor2:\n        #codigo\n    caso valor3:\n        #codigo\n    defecto:\n        #codigo\nfin\n\ncalificacion = 'B'\nelegir(calificacion)\n    caso 'A':\n        escribir(\"Excelente!.\")\n    caso 'B':\n        escribir(\"Bien echo!.\")\n    caso 'C':\n        escribir(\"Bien echo!.\")\n    caso 'D':\n        escribir(\"Todavia pasas.\")\n    caso 'F':\n        escribir(\"Estas reprobado.\")\n    otro:\n        escribir(\"Calificación invalida.\")\nfin\n#salida: Bien echo!\n```\nNotese que se tiene que repetir el caso para `B` y `C` por el momento no se permiten casos múltiples como una sola opción.\n\n---\n\n\u003ca name=\"desde\"\u003e\u003c/a\u003e\n### desde (for loop)\nHace que una instrucción o bloque de instrucciones se repitan\ndesde una condición inicial y mientras la condición se cumpla (es decir sea `verdadero`), en esta sentencia los paréntesis si son requeridos.\n```python\ndesde (condicion_inicial; condicion; incremento)\n     #codigo\nfin\n\ndesde (i=0; i \u003c= 10; i++)\n     escribir(i)\nfin\n#salida: 0 1 2 3 4 5 6 7 8 9 10\n\ndesde (i=10; i \u003e= 0; i--)\n     escribir(i)\nfin\n#salida: 10 9 8 7 6 5 4 3 2 1 0\n```\n\nSe puede especificar un salto diferente cambiando la expresión de incremento.\n```python\ndesde(i=0; i \u003c 50; i=i+10)\n    imprimir(i)\nfin\n#salida: 0 10 20 30 40\n```\n\n---\n\n\u003ca name=\"mientras\"\u003e\u003c/a\u003e\n### mientras (do while)\nHace que una instrucción o bloque de instrucciones se repitan\nmientras la condición sea `verdadero`, los paréntesis son opcionales en la condición.\n```python\nmientras (condicion)\n    #codigo\nfin\n\ni=0\nmientras i \u003c 10\n    escribir(i)\n    i++ #incremento\nfin\n#salida: 0 1 2 3 4 5 6 7 8 9\n```\n\n---\n\n\u003ca name=\"rept\"\u003e\u003c/a\u003e\n### repetir-hasta (parecido al `repeat` de Lua)\nHace que una instrucción o bloque de instrucciones\nse repitan mientra la condición sea `falso`,\nlas instrucciones de código se ejecutan al menos una vez.\nLos paréntesis son opcionales en la condición.\n```python\nrepetir\n    #codigo\nhasta condicion\n\ni=0\nrepetir\n    escribir(i)\n    i++ #incremento\nhasta i == 10\n#salida: 0 1 2 3 4 5 6 7 8 9\n```\n\nSe puede salir de los bucles (`desde`, `mientras` y `repetir`) con la palabra reservada `romper`.\n```python\ndesde(i=0; i \u003c 10; i++)\n    si (i == 5)\n        romper    #se sale del ciclo desde\n    fin\n    imprimir(i)\nfin\n#salida: 0 1 2 3 4   #se imprime solo hasta el 4\n```\n\u003ca name=\"fun\"\u003e\u003c/a\u003e\n## VII. Funciones\nUna función consiste generalmente de una lista de sentencias a ejecutar, una lista de parámetros de entrada que regularán dicha acción.\n\nLas funciones se definen con la palabra reservada `funcion` o la forma corta `fun`.\n\nSe puede regresar el valor con la palabra clave `regresar`, `retornar` o la forma corta `ret`.\nLa estructura de una función es la siguiente:\n```python\nfuncion nombreFuncion (argumento1, argumento2)\n    #codigo\n    retornar resultado\nfin\n\n#La siguiente función suma dos números\nfun sumar(a, b)\n  ret a + b\nfin\n```\n\nPara invocar (ejecutar) una función se hace con el nombre de la función y la lista de parámetros entre paréntesis.\n```python\nr = sumar(2, 3)  #se almacena el resultado en la variable r\nescribir(r)\n#salida: 5\n```\n\nSe pueden crear funciones con un número variable de argumentos con `...` en el ultimo parámetro de la definición.\n```python\nfuncion varArgs(arg1, arg2, ...)\n  va = [...] #se obtienen los parametros 3 en adelante como una lista y se asignan a la variable va\n  escribir(\"parametro 1: \" .. arg1) #imprime el parametro 1\n  escribir(\"parametro 2: \" .. arg2) #imprime el parametro 2\n  escribir(\"parametro 3: \" .. va[0]) #imprime el parametro 3\n  retornar arg1 + arg2\nfin\n\n#llamada a función varArgs con 2 elementos\nr = varArgs(1, 2)\nescribir(r)\n#salida:\nparametro 1: 1\nparametro 2: 2\nparametro 3: nulo\n3\n\n#llamada a funcion varArgs con 3 elementos\nr = varArgs(1, 2, 3)\nescribir(r)\n#salida:\nparametro 1: 1\nparametro 2: 2\nparametro 3: 3\n3\n```\n\u003ca name=\"lista\"\u003e\u003c/a\u003e\n## VIII. Listas\nUna lista es un tipo de colección. Es equivalente a lo que en otros lenguajes se conoce por arreglos o vectores.\n\nLas listas pueden contener cualquier tipo de dato: lógico, númerico, literal, cadena, listas, diccionarios.\n\nCrear una lista es tan sencillo como indicar entre corchetes y separados por comas los valores que queremos incluir en la lista.\n```python\n#declaracion de listas\nnumeros = [1, 2, 3, 4, 5]\nvacia = []\n```\n\nPodemos acceder a cada uno de los elementos de la lista escribiendo el nombre de la lista e indicando el índice del elemento entre corchetes `[]`.\nTen en cuenta que el índice del primer elemento de la lista es 0:\n```python\nescribir(numeros[1])\n#salida: 2\n```\n\nTambién podemos utilizar este operador para modificar un elemento de la lista si lo\ncolocamos en la parte izquierda de una asignación:\n```python\nnumeros[0] = 99\nescribir(numeros)\n#salida: [99, 2, 3, 4, 5]\n```\n\nPodemos utilizar también números negativos. Si se utiliza un número negativo como índice, esto se traduce en que el índice empieza a contar desde el final, hacia la izquierda; es decir, con [-1] accederíamos al último elemento de la lista, con [-2] al penúltimo, con [-3], al antepenúltimo, y así sucesivamente.\n```python\nescribir(numeros[-1])\n#salida: 5\n```\n\u003ca name=\"dic\"\u003e\u003c/a\u003e\n## IX. Diccionarios\nLos diccionarios, también llamados matrices asociativas, deben su nombre a que son colecciones que relacionan una clave y un valor, entre llaves y separado el valor de la clave con dos puntos.\n```python\n#Diccionario de personajes y actores:\nactores = { \"Chilindrina\": \"Maria Antonieta de las Nieves\",\n     \"El chavo del 8\": \"Roberto Gomez Bolaños\",\n     \"Tres patines\": \"Leopoldo Fernandez\" }\n```\n\nEl primer valor se trata de la clave y el segundo del valor asociado a la clave.\n\nComo clave usamos cadenas, esto es así porque los diccionarios se implementan como tablas hash, y a la hora de introducir un nuevo par clave-valor en el diccionario se calcula el hash de la clave para después poder encontrar la entrada correspondiente rápidamente.\n\nSi se modificara el objeto clave después de haber sido introducido en el diccionario, evidentemente,\nsu hash también cambiaría y no podría ser encontrado.\n\nLa diferencia principal entre los diccionarios y las listas es que a los valores almacenados en un diccionario se les accede no por su índice, porque de hecho no tienen orden, sino por su clave, utilizando corchetes `[]`.\n```python\nescribir(actores[\"Chilindrina\"])\n#salida: Maria Antonieta de las Nieves\n```\n\nAl igual que en listas también se puede utilizar corchetes para reasignar valores.\n```python\nactores[\"Chilindrina\"] = \"Maria Antonieta\"\nescribir(actores[\"Chilindrina\"])\n#salida: Maria Antonieta\n```\n\u003ca name=\"plbrsRvds\"\u003e\u003c/a\u003e\n## X. Palabras reservadas hasta el momento\n```\ncaso\ncierto  | verdadero\ndefecto | otro\ndesde\nelegir\nfalso\nfin\nfuncion | fun\nglobal\nhasta\nmientras\nnulo\npara\nrepetir\nregresar | retornar | ret\nromper\nsi\nsino\nosi\n```\n\u003ca name=\"lic\"\u003e\u003c/a\u003e\n# Licencia\nLicenciado bajo la licencia [MIT](https://github.com/MelvinG24/Latino/blob/master/LICENSE.txt)\u003cbr/\u003e\nCualquier aportación o sugerencia es bienvenida.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flenguaje-latino%2Flatino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flenguaje-latino%2Flatino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flenguaje-latino%2Flatino/lists"}