Programación en Python 3 - Nivel básico¶
Repositorio de manuales y recursos del entrenamiento «Programación en Python 3 - Nivel básico».
Advertencia
Si esta buscando los manuales y recursos del entrenamiento Programación en Python 2.7 - Nivel básico visite el siguiente enlace: https://entrenamiento-python-basico.readthedocs.io/es/latest/.
Nota
Desde lo básico con explicaciones simples pero detalladas.
Tabla de contenidos
Truco
El curso principal contiene 2 partes que cubren JavaScript como lenguaje de programación y la programación orientada a objeto. También hay series adicionales de artículos temáticos.
Introducción al lenguaje Python¶
Python es un lenguaje de programación de propósito general muy poderoso y flexible, a la vez que sencillo y fácil de aprender.
En esta lección se busca introducir al lenguaje Python, sus características, modos de instalación, soporte comunitario, y los recursos más destacados disponibles en la Web para tomar en cuenta. A continuación el temario de esta lección:
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Introspección del lenguaje Python¶
En Python siendo un lenguaje interpretado tiene a disposición un shell
de comando para hacer introspección del lenguaje, ademas también existe
una forma de hacer más interactiva la introspección del lenguaje, usando
el paquete ipython
o bpython
.
En esta lección se busca introducir a la introspección del lenguaje Python
usando el interprete como el modo interactivo del paquete adicional ipython
,
y las ventajas aplicar la técnica de introspección en sus practicas de
programación diarias con el lenguaje. A continuación el temario de esta lección:
Interprete ipython¶
Para mejorar la experiencia con el interprete Python le sugerimos instalar el
paquete ipython
, según su documentación:
Según Wikipedia
«
ipython
es un shell interactivo que añade funcionalidades extra al modo interactivo incluido con Python, como resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, completado automático mediante tabulador de variables, módulos y atributos; entre otras funcionalidades. Es un componente del paquete SciPy.»
Para mayor información visite su página principal de ipython y si necesita instalar este programa ejecute el siguiente comando, el cual a continuación se presentan el correspondiente comando de tu sistema operativo:
$ pip install ipython
> pip install ipython
Sustituya el comando python
por ipython
correspondiente a tu sistema
operativo de la siguiente forma:
$ ipython
Python 3.11.5 (default, Sep 11 2023, 13:26:23)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.34.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:
> ipython
Python 3.11.5 (default, Sep 11 2023, 13:26:23)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.34.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:
Un ejemplo de uso del comando help
es consultar la ayuda del comando
dir
y se ejecuta de la siguiente forma:
In [1]: help(dir)
Help on built-in function dir in module __builtin__:
dir(...)
dir([object]) -> list of strings
If called without an argument, return the names in the current scope.
Else, return an alphabetized list of names comprising (some of) the attributes
of the given object, and of attributes reachable from it.
If the object supplies a method named __dir__, it will be used; otherwise
the default dir() logic is used and returns:
for a module object: the module's attributes.
for a class object: its attributes, and recursively the attributes
of its bases.
for any other object: its attributes, its class's attributes, and
recursively the attributes of its class's base classes.
Entonces presione la tecla q para salir de la ayuda de la función dir()
.
De nuevo realice la importación de la librería del estándar Python llamada
os
.
In [2]: import os
También consultar los detalles acerca del “objeto” para esto use como ejemplo
la librería os
ejecutando el siguiente comando:
In [2]: os?
Type: module
String form: <module 'os' from '/usr/lib/python3.11/os.py'>
File: /usr/lib/python3.11/os.py
Docstring:
OS routines for NT or Posix depending on what system we're on.
This exports:
- all functions from posix or nt, e.g. unlink, stat, etc.
- os.path is either posixpath or ntpath
- os.name is either 'posix' or 'nt'
- os.curdir is a string representing the current directory (always '.')
- os.pardir is a string representing the parent directory (always '..')
- os.sep is the (or a most common) pathname separator ('/' or '\\')
- os.extsep is the extension separator (always '.')
- os.altsep is the alternate pathname separator (None or '/')
- os.pathsep is the component separator used in $PATH etc
- os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
- os.defpath is the default search path for executables
- os.devnull is the file path of the null device ('/dev/null', etc.)
Programs that import and use 'os' stand a better chance of being
portable between different platforms. Of course, they must then
only use functions that are defined by all platforms (e.g., unlink
and opendir), and leave all pathname manipulation to os.path
(e.g., split and join).
Escriba la librería os. y luego escribe dos underscore y presione dos veces la tecla tabular para usar la completado automático del interprete al estilo de completación de lineas de comandos en el shell UNIX/Linux para ayudar a la introspección del lenguaje y sus librerías.
In [3]: os.__
__all__ __doc__ __name__
__builtins__ __file__ __package__
__cached__ __loader__ __spec__
<unknown>
De nuevo ejecute el método file
para determinar la ubicación de la
librería importada
In [4]: os.__file__
Out[4]: '/usr/lib/python3.11/os.py'
También puede consultar la documentación de la librería os
de la
siguiente forma:
In [5]: print(os.__doc__)
OS routines for NT or Posix depending on what system we're on.
This exports:
- all functions from posix or nt, e.g. unlink, stat, etc.
- os.path is either posixpath or ntpath
- os.name is either 'posix' or 'nt'
- os.curdir is a string representing the current directory (always '.')
- os.pardir is a string representing the parent directory (always '..')
- os.sep is the (or a most common) pathname separator ('/' or '\\')
- os.extsep is the extension separator (always '.')
- os.altsep is the alternate pathname separator (None or '/')
- os.pathsep is the component separator used in $PATH etc
- os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
- os.defpath is the default search path for executables
- os.devnull is the file path of the null device ('/dev/null', etc.)
Programs that import and use 'os' stand a better chance of being
portable between different platforms. Of course, they must then
only use functions that are defined by all platforms (e.g., unlink
and opendir), and leave all pathname manipulation to os.path
(e.g., split and join).
Otro ejemplo es imprimir el nombre de la clase con el siguiente comando:
In[6]: os.__name__
Out[6]: "os"
Y otra forma de consultar la documentación de la librería os
es
ejecutando el siguiente comando:
In [7]: help(os)
Help on module os:
NAME
os - OS routines for NT or Posix depending on what system we're on.
MODULE REFERENCE
https://docs.python.org/3.11/library/os
The following documentation is automatically generated from the Python
source files. It may be incomplete, incorrect or include features that
are considered implementation detail and may vary between Python
implementations. When in doubt, consult the module reference at the
location listed above.
DESCRIPTION
This exports:
- all functions from posix or nt, e.g. unlink, stat, etc.
- os.path is either posixpath or ntpath
- os.name is either 'posix' or 'nt'
- os.curdir is a string representing the current directory (always '.')
- os.pardir is a string representing the parent directory (always '..')
- os.sep is the (or a most common) pathname separator ('/' or '\\')
- os.extsep is the extension separator (always '.')
- os.altsep is the alternate pathname separator (None or '/')
- os.pathsep is the component separator used in $PATH etc
- os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
- os.defpath is the default search path for executables
- os.devnull is the file path of the null device ('/dev/null', etc.)
Programs that import and use 'os' stand a better chance of being
portable between different platforms. Of course, they must then
only use functions that are defined by all platforms (e.g., unlink
and opendir), and leave all pathname manipulation to os.path
(e.g., split and join).
:
Entonces presione la tecla Q para salir de la ayuda del módulo os
.
Y para cerrar la sesión con el ipython
ejecute el siguiente comando:
In [8]: exit()
Do you really want to exit ([y]/n)? y
Como puede apreciar este tutorial no le enseña a programar sino a simplemente
aprender a conocer como manejarse en el modo interactivo usando el paquete
ipython
, con el fin de conocer a través de la introspección del lenguaje,
las librerías estándar y módulos propios escritos en Python que tienes instalado
en tu sistema.
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Tipos y estructuras de datos¶
En Python tiene varios tipos de datos compuestos estándar disponibles por defecto en el interprete, como los tipos numéricos, secuencias, mapeos y conjuntos usados para agrupar otros valores.
Para el caso de las estructuras de datos se usan variables y constantes las cuales usan operadores para tratar los tipos de datos estándar.
En esta lección se describen las variables, operadores y sus tipos de datos en el lenguaje Python, los cuales se resumieron en esta tabla. A continuación el temario de esta lección:
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Bloques de código y estructuras de control¶
En Python tiene las estructuras de control como if
(elif
, else
);
for
, while
(else
, break
, continue
, pass
); la función
range(); ademas de los tipos iteradores.
En esta lección se describen las estructuras de control del lenguaje Python, mostrando ejemplos prácticos y útiles. A continuación el temario de esta lección:
Operadores de pertenencia¶
Estos son los distintos tipos de operadores de pertenencia con los que puede evaluar si se encuentra un objeto en una determinada colección:
Operador in¶
El operador in
, significa, para cualquier colección del valor del lado izquierdo
contenga el valor del lado derecho:
>>> b = [1, 2, 3]
>>> 2 in b
True
>>> 5 in b
False
En el ejemplo anterior, si b
es una lista, este prueba que 2
y 5
sean
elementos de la lista b
.
Operador not in¶
El operador not in
, el contrario de operador in, devuelve
True
cuando un elemento no está en una secuencia.
>>> b = [1, 2, 3]
>>> 4 not in b
True
>>> 1 not in b
False
En el ejemplo anterior, si b
es una lista, este prueba que 4
y 1
sean
elementos de la lista b
.
Ejemplos¶
A continuación, se presentan algunos ejemplos de su uso:
Definir variables usadas en los siguientes ejemplos:
1 2 3 4 5 6 7 8 9 |
datos_basicos = { "nombres": "Leonardo Jose", "apellidos": "Caballero Garcia", "cedula": "26938401", "fecha_nacimiento": "03/12/1980", "lugar_nacimiento": "Maracaibo, Zulia, Venezuela", "nacionalidad": "Venezolana", "estado_civil": "Soltero", } |
Operador de pertenencia in:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
print("\nOperador in") print("===========") print("\nOperador in en tipo cadena de caracteres") print("========================================") print("Maracaibo" in datos_basicos["lugar_nacimiento"]) print("\nOperador in en tipo lista") print("=========================") print("Venezolana" in list(datos_basicos.values())) print("\nOperador in en tipo tupla") print("=========================") print("26938401" in tuple(datos_basicos.values())) print("\nOperador in en tipo diccionario") print("===============================") print("Soltero" in datos_basicos.values()) |
Operador de pertenencia not in:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
print("\nOperador not in") print("===============") print("\nOperador not in en tipo cadena de caracteres") print("============================================") print("Merida" not in datos_basicos["lugar_nacimiento"]) print("\nOperador not in en tipo lista") print("=============================") print("Venezuela" not in list(datos_basicos.values())) print("\nOperador not in en tipo tupla") print("=============================") print("26938402" not in tuple(datos_basicos.values())) print("\nOperador not in en tipo diccionario") print("===================================") print("Soltera" not in datos_basicos.values()) |
Importante
Usted puede descargar el código usado en esta sección haciendo clic
aquí
.
Truco
Para ejecutar el código operadores_pertenencia.py
, abra una consola de comando,
acceda al directorio donde se encuentra el mismo, y ejecute el siguiente comando:
$ python operadores_pertenencia.py
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
Operadores de identidad¶
El operador de identidad is
indica si dos variables hacen referencia al mismo objeto.
Esto implica que si dos variables distintas tienen el mismo id()
, el resultado de
aplicar el operador is
sobre ellas será True
.
Operador is¶
El operador is
, significa, que prueba identidad: ambos lados de la expresión
condicional debe ser el mismo objecto:
>>> a, b = 10, 10.0
>>> print(a is b)
False
>>> a, b = 10, 10
>>> print(a is b)
True
Esto es debido a que Python reutiliza el mismo objeto que almacena el valor 10
para ambas variables. De hecho, si usamos la función id()
, podemos ver que el
objeto es el mismo.
>>> a, b = 1, 1.0
>>> id(a)
9801248
>>> id(b)
140676746660560
>>> id(a) == id(b)
False
>>> a, b = 1, 1
>>> id(a)
9807616
>>> id(b)
9807616
>>> id(a) == id(b)
True
Operador is not¶
El operador is not
, es la negación el contrario de operador is, devuelve
False
si no hacen referencia a el mismo objeto.
>>> c = 4
>>> d = [1, 2, 3]
>>> print(c is not d)
True
>>> c = 1
>>> print(c is not d)
False
En el ejemplo anterior, si b
es una lista, este prueba que 4
y 1
sean
elementos de la lista b
.
Ejemplos¶
A continuación, se presentan algunos ejemplos de su uso:
Operador de identidad is:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
monto_inicial = 200 monto_final = 200 print(monto_inicial is monto_final) print( "{monto_inicial} su id es {monto_inicial_id}".format( monto_inicial=monto_inicial, monto_inicial_id=id(monto_inicial) ) ) print( "{monto_final} su id es {monto_final_id}".format( monto_final=monto_final, monto_final_id=id(monto_final) ) ) monto_final = 200.0 print(monto_inicial is monto_final) print( "{monto_inicial} su id es {monto_inicial_id}".format( monto_inicial=monto_inicial, monto_inicial_id=id(monto_inicial) ) ) print( "{monto_final} su id es {monto_final_id}".format( monto_final=monto_final, monto_final_id=id(monto_final) ) ) |
El código anterior muestra el siguiente resultado:
Operador is
===========
True
200 su id es 9807616
200 su id es 9807616
False
200 su id es 9807616
200.0 su id es 139992306955312
Operador de identidad is not:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
print( "Python crea dos objetos diferentes, uno para cada lista. Las listas son mutables." ) lista = [1, 2, 3] lista_alterna = [1, 2, 3] print(lista is not lista_alterna) print(f"{lista} su id es {id(lista)}") print( "{lista_alterna} su id es {lista_alterna_id}".format( lista_alterna=lista_alterna, lista_alterna_id=id(lista_alterna) ) ) print( "Python reutiliza el objeto que almacena 5 por lo que ambas variables apuntan a el mismo." ) monto_inicial = 200 monto_final = 200 print(monto_inicial is not monto_final) print( "{monto_inicial} su id es {monto_inicial_id}".format( monto_inicial=monto_inicial, monto_inicial_id=id(monto_inicial) ) ) print( "{monto_final} su id es {monto_final_id}".format( monto_final=monto_final, monto_final_id=id(monto_final) ) ) |
El código anterior muestra el siguiente resultado:
Operador is not
===============
Python crea dos objetos diferentes, uno para cada lista. Las listas son mutables.
True
[1, 2, 3] su id es 140338744545664
[1, 2, 3] su id es 140338744540864
Python reutiliza el objeto que almacena 5 por lo que ambas variables apuntan a el mismo.
False
200 su id es 9807616
200 su id es 9807616
Importante
Usted puede descargar el código usado en esta sección haciendo clic
aquí
.
Truco
Para ejecutar el código operadores_identidad.py
, abra una consola de comando,
acceda al directorio donde se encuentra el mismo, y ejecute el siguiente comando:
$ python operadores_identidad.py
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Funciones y programación estructurada¶
En Python tiene las estructuras de functions
los cuales son bloques
de código fuente que pueden contener sentencias reusables de código fuente
que puede ser personalizables vía parámetros.
En esta lección se describen las estructuras de funciones del lenguaje Python, mostrando ejemplos prácticos y útiles. A continuación el temario de esta lección:
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Introspección a la depuración con pdb¶
En Python puede realizar depuración de programas por defecto usando el módulo pdb
.
En esta lección se describen como hacer depuración a programas en el lenguaje Python, mostrando ejemplos prácticos y útiles. A continuación el temario de esta lección:
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Operaciones de E/S y manipulación de archivos¶
En Python puede realizar operaciones de entrada y salida de datos, almacenar esos datos manipulando de archivos usando métodos para leer y escribir archivos desde el sistema de archivos.
En esta lección se describen las operaciones de entrada y salida, manipulando de archivos del lenguaje Python, mostrando ejemplos prácticos y útiles. A continuación el temario de esta lección:
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Módulos, paquetes y distribución de software¶
En Python las diversas aplicaciones Python se encuentran dentro de módulos y paquetes los cuales los contienen el sistema de archivos.
En esta lección se describen como crear módulos y paquetes, luego se enseña a usar las practicas de scaffolding de paquetes Python con mecanismo de instalación, mostrando ejemplos prácticos y útiles. A continuación el temario de esta lección:
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Manejos de errores y orientación a objetos¶
En Python usted puede manejar de los errores de sus aplicaciones, además de poder escribir sus aplicaciones usando el paradigma de la orientación a objetos.
En esta lección se describen el manejo de errores y la programación orientada a objetos con el lenguaje Python, mostrando ejemplos prácticos y útiles. A continuación el temario de esta lección:
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Listas de comprensión y la librería estándar¶
locale — Servicios de internacionalización¶
Nota
Propósito: Formateo según la configuración regional
El módulo locale abre el acceso a la base de datos y la funcionalidad de POSIX locale. El mecanismo POSIX locale permite a los programadores tratar ciertos problemas culturales en una aplicación, sin requerir que el programador conozca todos los detalles de cada país donde se ejecuta el software.
El módulo locale
se implementa en la parte superior del módulo _locale
, que a su vez
utiliza una implementación de configuración regional ANSI C si está disponible.
Uso del módulo locale
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
from datetime import datetime import locale datos_basicos = { "nombres": "Leonardo Jose", "apellidos": "Caballero Garcia", "cedula": "26938401", "fecha_nacimiento": "03121980", "lugar_nacimiento": "Maracaibo, Zulia, Venezuela", "nacionalidad": "Venezolana", "estado_civil": "Soltero", } dia = datos_basicos["fecha_nacimiento"][0:2] mes = datos_basicos["fecha_nacimiento"][2:4] ano = datos_basicos["fecha_nacimiento"][4:8] locale.setlocale(locale.LC_TIME, "") locale.nl_langinfo(locale.MON_12).capitalize() try: locale.setlocale(locale.LC_ALL, "es_VE.UTF-8") except locale.Error as err: print(f"No reconoce esa configuración de locales ({err})") fn_traducida = datetime(int(ano), int(mes), int(dia)) print(fn_traducida.strftime("%A, %d. %B %Y %I:%M%p")) |
El anterior código al ejecutar debe mostrar el siguiente mensaje:
miércoles, 03. diciembre 1980 12:00am
Jugando con el módulo locale
en el ipython
:
In [1]: import locale
In [2]: locale.setlocale(locale.LC_TIME,'')
Out[3]: 'es_VE.UTF-8'
In [3]: locale.nl_langinfo(locale.MON_12).capitalize()
Out[3]: 'Diciembre'
In [4]: dir(locale)
Out[4]:
['ABDAY_1',
'ABDAY_2',
'ABDAY_3',
'ABDAY_4',
'ABDAY_5',
'ABDAY_6',
'ABDAY_7',
'ABMON_1',
'ABMON_10',
'ABMON_11',
'ABMON_12',
'ABMON_2',
'ABMON_3',
'ABMON_4',
'ABMON_5',
'ABMON_6',
'ABMON_7',
'ABMON_8',
'ABMON_9',
'ALT_DIGITS',
'AM_STR',
'CHAR_MAX',
'CODESET',
'CRNCYSTR',
'DAY_1',
'DAY_2',
'DAY_3',
'DAY_4',
'DAY_5',
'DAY_6',
'DAY_7',
'D_FMT',
'D_T_FMT',
'ERA',
'ERA_D_FMT',
'ERA_D_T_FMT',
'ERA_T_FMT',
'Error',
'LC_ALL',
'LC_COLLATE',
'LC_CTYPE',
'LC_MESSAGES',
'LC_MONETARY',
'LC_NUMERIC',
'LC_TIME',
'MON_1',
'MON_10',
'MON_11',
'MON_12',
'MON_2',
'MON_3',
'MON_4',
'MON_5',
'MON_6',
'MON_7',
'MON_8',
'MON_9',
'NOEXPR',
'PM_STR',
'RADIXCHAR',
'THOUSEP',
'T_FMT',
'T_FMT_AMPM',
'YESEXPR',
'__all__',
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'_append_modifier',
'_build_localename',
'_builtin_str',
'_format',
'_group',
'_grouping_intervals',
'_localeconv',
'_override_localeconv',
'_parse_localename',
'_percent_re',
'_print_locale',
'_replace_encoding',
'_setlocale',
'_strcoll',
'_strip_padding',
'_strxfrm',
'_test',
'atof',
'atoi',
'bind_textdomain_codeset',
'bindtextdomain',
'collections',
'currency',
'dcgettext',
'delocalize',
'dgettext',
'encodings',
'format',
'format_string',
'functools',
'getdefaultlocale',
'getlocale',
'getpreferredencoding',
'gettext',
'k',
'locale_alias',
'locale_encoding_alias',
'localeconv',
'nl_langinfo',
'normalize',
're',
'resetlocale',
'setlocale',
'str',
'strcoll',
'strxfrm',
'sys',
'textdomain',
'v',
'windows_locale']
In [4]: import datetime
In [5]: dt = datetime.datetime(2015, 11, 15, 16, 30)
In [6]: dt
Out[6]: datetime.datetime(2015, 11, 15, 16, 30)
In [7]: locale.setlocale(locale.LC_ALL, "es_VE.UTF-8")
Out[7]: 'es_VE.UTF-8'
In [8]: print(dt.strftime("%A, %d. %B %Y %I:%M%p"))
domingo, 15. noviembre 2015 04:30pm
In [9]: import os
In [10]: os.environ['LANG']
Out[10]: 'es_VE.UTF-8'
In [11]: locale.setlocale(locale.LC_ALL, "")
Out[11]: 'es_VE.UTF-8'
In [12]: locale.setlocale(locale.LC_ALL, "es_VE.UTF-8")
Out[12]: 'es_VE.UTF-8'
In [13]: locale.setlocale(locale.LC_ALL, str(locale.getlocale()[0]) + "." + str(locale.getlocale()[1]))
Out[13]: 'es_VE.UTF-8'
Ver también
Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.
¿Cómo puedo ayudar?
¡Mi soporte está aquí para ayudar!
Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.
La hora aquí es actualmente 7:35 PM GMT-4.
Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Advertencia
Tenga en cuenta que este documento no está completo sin la palabra hablada de un instructor a pesar de que tratamos de incluir las partes más importantes de lo que enseñamos en la narrativa no puede considerarse completa sin la palabra hablada.
Apéndices¶
Acerca de esta iniciativa¶
Acerca del entrenamiento¶
Este entrenamiento fue realizado en sus inicios por la empresa Covantec R.L, el cual iba dirigido a personas novatas en la programación o novatos en el lenguajes de programación Python.
Novatos en la programación¶
Para los novatos en la programación si requieren dominar la algoritmia y el lenguaje de programación se tiene diseñado varios temarios y practicas en este entrenamiento para poder entender los conceptos y las mejores prácticas actuales del desarrollo en Python.
La planificación de este entrenamiento se estima en:
Un entrenamiento de nivel básico (3 a 5 días) que cubre los diez (10) capítulos.
Programadores que desconocen Python¶
Para los programadores que desconocen Python, si quieren dominar el lenguaje de programación se tiene diseñado varios temarios y practicas en este entrenamiento para las personas que son nuevas usándolo o los que quieren aprender acerca de las mejores prácticas actuales del desarrollo en Python.
La planificación de este entrenamiento se estima en:
Un entrenamiento de nivel básico (2 a 3 días) que cubre los diez (10) capítulos.
Sobre el instructor¶
Patrocinantes¶
Esta iniciativa no fuera realidad si el apoyo de las siguientes personas o empresas:
Mantenedores del entrenamiento¶
El repositorio del entrenamiento está disponible en la siguiente dirección:
Es muy fácil entrar en la lista. Simplemente contacta a algunos de los siguientes mantenedores del repositorio, para acordar una reunión y formas de colaboración en mantener estos recursos de aprendizajes para este entrenamiento. Y obtenga el agradecimiento de todos.
Colaboradores del entrenamiento¶
¡GRACIAS A LOS COLABORADORES DE ESTA INICIATIVA!
La lista debajo incluye todos los colaboradores y autores con al menos 10 líneas en el tutorial. La lista completa de colaboradores está disponible en el repositorio.
Por hacer
TODO corregir alineación de avatar de los colaboradores.
Es muy fácil entrar en la lista. Simplemente escriba un artículo o proponga cambios en el repositorio del entrenamiento. Y obtenga el agradecimiento de todos.
¡Animamos las contribuciones públicas! Consulte la sección Contribuir para obtener detalles sobre nuestro código de conducta y proceso de desarrollo.
Contribuir¶
¡Gracias por considerar contribuir a esta documentación!
Conseguiste algun error (Bug), o error de transcripción «Typo», o tal ves tengas una gran idea para mejorar este material, puedes reportarla o solicitarla en:
Consulte el issue tracker para obtener una lista de funciones que nos gustaría agregar en el futuro.
Siéntase libre de proponer nuevas funciones o informar errores, describiendo cómo desea que se comporte la documentación.
Háganos saber en el mismo problema si desea enviar un pull-request ❤️
Contáctenos¶
Esquema del entrenamiento¶
Este entrenamiento toma 10 lecciones. Cada lección contiene material de lectura y ejercicios que usted tendrá que escribir en el interprete Python. Cada lección aprendida están asociadas entre si mismas.
Lección 1 - Introducción al lenguaje Python¶
Descripción: Sensibilizar sobre la filosofía del lenguaje, su historia y evolución, casos de éxitos, recrear el ambiente de desarrollo.
Práctica: Exponer los fundamentos sobre el lenguaje Python, comentar sobre usos e implementaciones exitosas a nivel regional, nivel nacional y nivel mundial.
Lección 2 - Introspección del lenguaje Python¶
Descripción: Conocer las capacidades de introspección que ofrece el lenguaje.
Práctica: Acceder al interprete Python demostrando la documentación propia integrada,
analizar las estructuras de datos, métodos, clases y demás elementos disponibles del
lenguaje. Instalar el paquete ipython
y conocer sus ventajas.
Lección 3 - Tipos y estructuras de datos¶
Descripción: Comprender la creación y asignación de tipos primitivos (variables numéricas, cadenas de texto con sus operaciones; tipos compuestos (listas, tuplas, diccionarios).
Práctica: Creación y asignación de variables numéricas, cadenas de texto, listas, tuplas, diccionarios y explorar el resultado desde el interprete Python.
Lección 4 - Bloques de código y estructuras de control¶
Descripción: Comprender las estructuras de control como if
(elif
, else
);
for
, while
(else
, break
, continue
, pass
); la función iterador
range(); y los diversos tipos iteradores().
Práctica: Creación a estructuras condicionales, repetitivas y funciones propias y explorar el resultado desde el interprete Python.
Lección 5 - Funciones y programación estructurada¶
Descripción: Comprender el uso de las funciones, decoradores y el paradigma de programación estructurada.
Práctica: Creación e uso de funciones, programar de forma estructurada y explorar el resultado desde el interprete Python.
Lección 6 - Introspección a la depuración con pdb¶
Descripción: Conocer las capacidades de depuración que ofrece el lenguaje.
Práctica: Uso de la herramienta pdb
y explorar el resultado en un módulo.
Lección 7 - Operaciones de E/S y manipulación de archivos¶
Descripción: Comprender las operaciones de entrada/salida y manipular archivos.
Práctica: Uso de la sentencia input
, print
y pprint
, además la creación,
apertura, lectura, escritura archivos y explorar el resultado en un módulo.
Lección 8 - Módulos, paquetes y distribución de software¶
Descripción: Comprender la creación de módulos, paquetes y distribución de software Python e implementación de estos en sus propios desarrollos.
Práctica: Creación de módulos, paquetes y distribución de software Python organizando su código en estas estructuras de programas y explorar el resultado en un módulo y paquete en el sistema de archivos.
Lección 9 - Manejos de errores y orientación a objetos¶
Descripción: Comprender el manejos de errores (try
, except
, else
,
finally
, y raise
) y el paradigma de programación orientada a objetos (clases,
herencia simple y múltiple, sobrecarga de métodos).
Práctica: Creación de clases, atributos, comportamientos, manipulación de errores en Python y explorar el resultado en un paquete en el sistema de archivos.
Lección 10 - Uso prácticos de la librería estándar¶
Descripción: Comprender el uso de los módulos incorporados en la librería estándar de Python.
Práctica: Creación e uso de los módulos datetime
, locale
, email
, json
, de la
librería estándar explorando el resultado en un paquete Python en el sistema de
archivos.
Anexos del entrenamiento¶
A continuación varios material multimedia anexos a las lecciones del entrenamiento:

Vídeo 1.- Curso Python - Introducción, cortesía de CodigoFacilito.com.¶

Vídeo 2.- Curso Python - Instalación, cortesía de CodigoFacilito.com.¶

Vídeo 3.- Curso Python - Variables, cortesía de CodigoFacilito.com.¶

Vídeo 4.- Curso Python - Enteros, cortesía de CodigoFacilito.com.¶

Vídeo 5.- Curso Python - Strings, cortesía de CodigoFacilito.com.¶

Vídeo 6.- Curso Python - Strings como listas, cortesía de CodigoFacilito.com.¶

Vídeo 7.- Curso Python - Métodos de cadenas, cortesía de CodigoFacilito.com.¶

Vídeo 8.- Curso Python - Listas, cortesía de CodigoFacilito.com.¶

Vídeo 9.- Curso Python - Tuplas, cortesía de Youtube.¶

Vídeo 10.- Curso Python - Diccionarios, cortesía de CodigoFacilito.com.¶

Vídeo 11.- Curso Python - Condicionales, cortesía de CodigoFacilito.com.¶

Vídeo 12.- Curso Python - While, cortesía de CodigoFacilito.com.¶

Vídeo 13.- Curso Python - For, cortesía de CodigoFacilito.com.¶

Vídeo 14.- Curso Python - List Comprehension, cortesía de CodigoFacilito.com.¶

Vídeo 15.- Curso Python - Funciones parte 1, cortesía de CodigoFacilito.com.¶

Vídeo 16.- Curso Python - Funciones parte 2, cortesía de CodigoFacilito.com.¶

Vídeo 17.- Curso Python - Variables Globales, cortesía de CodigoFacilito.com.¶

Vídeo 18.- Curso Python - Argumentos, cortesía de CodigoFacilito.com.¶

Vídeo 19.- Curso Python - Lambdas, cortesía de CodigoFacilito.com.¶

Vídeo 20.- Curso Python - Funciones Anidadas, cortesía de CodigoFacilito.com.¶

Vídeo 21.- Curso Python - Decoradores, cortesía de CodigoFacilito.com.¶

Vídeo 22.- Curso Python - Generadores, cortesía de CodigoFacilito.com.¶

Vídeo 23.- Curso Python - Docstring, cortesía de CodigoFacilito.com.¶

Vídeo 24.- Curso Python - Módulo, cortesía de CodigoFacilito.com.¶

Vídeo 25.- Curso Python - Módulos Parte 2, cortesía de CodigoFacilito.com.¶

Vídeo 26.- Curso Python - Estructura Módulo, cortesía de CodigoFacilito.com.¶

Vídeo 27.- Curso Python - Name, cortesía de CodigoFacilito.com.¶

Vídeo 28.- Curso Python - Librerías, cortesía de CodigoFacilito.com.¶

Vídeo 29.- Curso Python - Argv, cortesía de CodigoFacilito.com.¶

Vídeo 30.- Curso Python - Excepciones, cortesía de CodigoFacilito.com.¶

Vídeo 31.- Curso Python - Clases y Objetos, cortesía de CodigoFacilito.com.¶

Vídeo Depurando um programa Python com pdb - Python Debugger, cortesía de Youtube.¶
Glosario¶
- Autor(es):
-
Leonardo J. Caballero G.
- Correo(s):
- Compatible con:
-
Python 3.11.x
- Fecha:
-
30 de Noviembre de 2023
A continuación una serie de términos usados en las tecnologías Python.
- buildout¶
-
En la herramienta buildout, es un conjunto de partes que describe como ensamblar una aplicación.
- bundle¶
-
Ver Paquete bundle.
- Cheese shop¶
-
Ver PyPI.
- Egg¶
-
Ver paquetes Egg.
- esqueleto¶
-
Los archivos y carpetas recreados por un usuario el cual los genero ejecutando alguna plantilla
templer
(PasteScript
). - estructura¶
-
1) Una clase Python la cual controla la generación de un árbol de carpetas que contiene archivos.
2) Una unidad de carpetas y archivos proveídos por el sistema
templer
para ser usado en una plantilla o plantillas. Las estructuras proporcionan recursos estáticos compartidos, que pueden ser utilizados por cualquier paquete en el sistema detempler
.Las estructuras diferencian de las plantillas en que no proporcionan las vars.
- filesystem¶
-
Termino ingles File system, referido al sistema de archivo del sistema operativo.
- grok¶
-
Ver la documentacion del proyecto grok.
- local command¶
-
Una clase Paste la cual provee funcionalidad adicional a una estructura de esqueleto de proyecto que ha sido generada.
- módulo¶
-
Del Ingles
module
, es un archivo fuente Python; un archivo en el sistema de archivo que típicamente finaliza con la extensión.py
o.pyc
. Los modules son parte de un paquete. - Nombre de puntos Python¶
-
Es la representación Python del «camino» para un determinado objeto / módulo / función, por ejemplo,
Products.GenericSetup.tool.exportToolset
. A menudo se utiliza como referencia en configuracionesPaste
ysetuptools
a cosas en Python. - paquete¶
-
Ver Paquete Python.
- Paquete bundle¶
-
Este paquete consististe en un archivo comprimido con todos los módulos que son necesario compilar o instalar en el PYTHONPATH de tu interprete
Python
. - paquete Egg¶
-
Es una forma de empaquetar y distribuir paquetes Python. Cada Egg contiene un archivo
setup.py
con metadata (como el nombre del autor y la correo electrónico y información sobre el licenciamiento), como las dependencias del paquete.La herramienta del setuptools, es la librería Python que permite usar el mecanismo de paquetes egg, esta es capaz de encontrar y descargar automáticamente las dependencias de los paquetes Egg que se instale.
Incluso es posible que dos paquetes Egg diferentes necesiten utilizar simultáneamente diferentes versiones de la misma dependencia. El formato de paquetes Eggs también soportan una función llamada
entry points
, una especie de mecanismo genérico de plug-in. Mucha más detalle sobre este tema se encuentra disponible en el sitio web de PEAK. - Paquete Python¶
-
Es un termino generalmente usando para describir un módulo Python. en el más básico nivel, un paquete es un directorio que contiene un archivo
__init__.py
y algún código Python. - paquetes Egg¶
-
Plural del termino paquete Egg.
- Paquetes Python¶
-
Plural del termino Paquete Python.
- part¶
-
En la herramienta buildout, es un conjunto opciones que le permite a usted construir una pieza de la aplicación.
- plantilla¶
-
1) Una clase Python la cual controla la generación de un esqueleto. Las plantillas contiene una lista de variables para obtener la respuesta de un usuario. Las plantillas son ejecutadas con el comando
templer
suministrando el nombre de la plantilla como un argumentotempler basic_namespace my.package
.2) Los archivos y carpetas proveídas un paquete
templer
como contenido a ser generado. Las respuestas proporcionadas por un usuario en respuesta a las variables se utilizan para rellenar los marcadores de posición en este contenido. - PyPI¶
-
Siglas del termino en Ingles Python Package Index, es el servidor central de paquetes Egg Python ubicado en la dirección https://pypi.org/.
- Python Package Index¶
-
Ver PyPI.
- PYTHONPATH¶
-
Una lista de nombre de directorios, que contiene librerías Python, con la misma sintaxis como la declarativa
PATH
del shell del sistema operativo. - setup.py¶
-
El archivo
setup.py
es un módulo de Python, que por lo general indica que el módulo / paquete que está a punto de instalar ha sido empacado y distribuidos conDistutils
, que es el estándar para la distribución de módulos de Python.Con esto le permite instalar fácilmente paquetes de Python, a menudo es suficiente para escribir:
$ python setup.py install
Entonces el módulo Python se instalará.
- var¶
-
Diminutivo en singular del termino variable.
- variable¶
-
1) Una pregunta que debe ser respondida por el usuario cuando esta generando una estructura de esqueleto de proyecto usando el sistema de plantilla
templer
. En este caso una variable (var) es una descripción de la información requerida, texto de ayuda y reglas de validación para garantizar la entrada de usuario correcta.2) Una declarativa cuyo valor puede ser variable o constante dentro de un programa Python o en el sistema operativo.
- variables¶
-
Plural del termino variable.
- vars¶
-
Diminutivo en plural del termino variable.
- ZCA¶
- Zope Component Architecture¶
-
La arquitectura de componentes de Zope (alias ZCA), es un sistema que permite la aplicación y la expedición enchufabilidad complejo basado en objetos que implementan una interfaz.
Copyright¶
Python y el logo Python¶
Python® y el logotipo de Python son marcas registradas por la Fundación Python.
Python® and the Python Logo are registered trademarks of the Python Foundation.
Autores¶
Todas esta documentación es licencia por:
-
Copyright © 2016 - 2023 Leonardo J. Caballero G. Todos los derechos reservados.
-
Copyright © 2014 - 2016 Covantec R.L. Todos los derechos reservados.
Ver también
Ver Licenciamientos para información completa sobre los términos y licencia.
Licenciamientos¶
Reconocimiento-CompartirIgual 3.0 Venezuela de Creative Commons¶
Usted es libre de:
Compartir — copiar y redistribuir el material en cualquier medio o formato.
Adaptar — remezclar, transformar y crear a partir del material.
Para cualquier propósito, incluso comercialmente.
El licenciante no puede revocar estas libertades en tanto usted siga los términos de la licencia.
Bajo los siguientes términos:
Reconocimiento - Usted debe dar el crédito apropiado, proporcionar un enlace a la licencia, y de indicar si se han realizado cambios. Usted puede hacerlo de cualquier manera razonable, pero no en una manera que sugiere el licenciante a usted o que apruebe su utilización.
CompartirIgual - Si usted mezcla, transforma o crea nuevo material a partir de esta obra, usted podrá distribuir su contribución siempre que utilice la misma licencia que la obra original.
Tareas pendientes¶
Esta documentación tiene las siguientes tareas pendientes por hacer para mejorar la calidad de la misma:
Por hacer
TODO corregir alineación de avatar de los colaboradores.
(La entrada original se encuentra en /home/docs/checkouts/readthedocs.org/user_builds/entrenamiento-python-basico/checkouts/3.7/source/acerca_de.rst, línea 104.)