Última actualización: 04 de diciembre de 2023

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.

Contrata mi increíble soporte profesional

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

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]:

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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.

Contrata mi increíble soporte profesional

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

Leonardo J. Caballero G.

Speaker, Python Developer, Blogger

https://macagua.github.io/

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


Me llamo, Leonardo J. Caballero G.

Para preguntas:

Mérida, VE

 +58(412) 473-53-76

Llamame via Skype

Conversamos en WhatsApp

Conversamos en Telegram

Mi Linkedin

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:

_images/mGH1uooFhGs.jpg

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

_images/Sk59ji0hZFg.jpg

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

_images/vDa5Vt002IY.jpg

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

_images/9YaC2_GdmJ8.jpg

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

_images/ZqGynv-wgWg.jpg

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

_images/XefbjfEDN-U.jpg

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

_images/I1a7piALq60.jpg

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

_images/sQ9iP7HhYJo.jpg

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

_images/DI8IHc3V-HQ.jpg

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

_images/_UELgsIxE7g.jpg

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

_images/BJXCnAd6pdM.jpg

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

_images/u6Hqs0bL_Ew.jpg

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

_images/aqnjB3dydik.jpg

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

_images/Z-8Khdd2BUQ.jpg

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

_images/hF85etcCghY.jpg

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

_images/vMTV0hY2jio.jpg

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

_images/munC0mVXPWk.jpg

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

_images/PeWKpuFpGZA.jpg

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

_images/cJ9zcR1uTt8.jpg

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

_images/S0Lfm_rEQ2A.jpg

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

_images/c9J7FHLjBds.jpg

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

_images/536fB1qvSeE.jpg

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

_images/2KL-mJ4n1k4.jpg

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

_images/_4QUMUlI2S8.jpg

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

_images/S0wU4tqP6Bs.jpg

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

_images/t4Vsv8WAnUM.jpg

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

_images/yTvw1dVcER8.jpg

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

_images/44D-QCg-YEw.jpg

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

_images/l7Aj6RhJx8g.jpg

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

_images/sNTowPB4YHI.jpg

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

_images/vdz9HGfFguc.jpg

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

_images/N4NtB4r28h0.jpg

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 de templer.

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 configuraciones Paste y setuptools 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 argumento templer 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 con Distutils, 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.

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.)

Búsqueda