|
32 | 32 | 5.6 <a href = "#python-para-todos">Python para todos.</a>
|
33 | 33 | 6. <a href = "#trucos">Trucos y consejos.</a>
|
34 | 34 | 6.1 <a href = "creando_un_entorno_virtual.md">Creando un entorno virtual Python.</a>
|
35 |
| - 6.2 <a href = "#estructura">Estructura de un script en Python.</a> |
36 |
| - 6.3 <a href = "#guia">Guía de estilo PEP8.</a> |
| 35 | + 6.2 <a href = "estructura_script_python.md">Estructura de un script en Python.</a> |
| 36 | + 6.3 <a href = "guia_estilo_pep8.md">Guía de estilo PEP8.</a> |
37 | 37 | 7. <a href = "#codigos">Códigos Python.</a>
|
38 |
| - 7.1 <a href = "https://github.com/ejdecena/tutorial_python/blob/master/codigos/hola_mundo.py">Hola Mundo Python!</a> |
| 38 | + 7.1 <a href = "codigos/hola_mundo.py">Hola Mundo Python!</a> |
39 | 39 | </pre>
|
40 | 40 |
|
41 | 41 | <a name = "python"></a>
|
@@ -166,82 +166,4 @@ Siéntete en la libertad de usar libros para aprender *Python* cuando desees, po
|
166 | 166 |
|
167 | 167 | ## 6. Trucos y consejos.
|
168 | 168 |
|
169 |
| -<a name = "creando"></a> |
170 |
| - |
171 |
| -### 6.1 Creando un entorno virtual Python. |
172 |
| - |
173 |
| -Cuando se está desarrollando software en *Python*, es común utilizar diferentes versiones de un mismo paquete. Un *virtualenv*, o entorno virtual de *Python*, es un ambiente creado con el objetivo de aislar recursos como librerías y entornos de ejecución del sistema principal o de otros entornos virtuales. Esto significa que en el mismo sistema, computadora, es posible tener instaladas múltiples versiones de una misma librería sin crear ningún tipo de conflicto. |
174 |
| - |
175 |
| -Para crear y utilizar un entorno virtual debe instalarse `virtualenv`; pero antes debe instalarse el manejador de paquetes de *Python* `pip`: |
176 |
| - |
177 |
| -```bash |
178 |
| -$ sudo apt-get install python3-pip |
179 |
| -``` |
180 |
| -Luego instalamos `virtualenv`: |
181 |
| -```bash |
182 |
| -$ sudo pip3 install virtualenv |
183 |
| -``` |
184 |
| -#### Creando un entorno virtual. |
185 |
| - |
186 |
| -Para crear el entorno virtual debes dirigirte a la carpeta donde lo deseas crear. Se crea con el comando `virtualenv` seguido del nombre que le quieras poner, como lo indica el siguiente ejemplo: |
187 |
| -```bash |
188 |
| -$ virtualenv nombre_de_tu_entorno -p python3 |
189 |
| -``` |
190 |
| -Esto creará una nueva carpeta dentro del directorio que hayamos escogido, allí se instalarán todos los paquetes que desees utilizar. |
191 |
| - |
192 |
| -#### Activar / Desactivar entorno virtual. |
193 |
| -Para **activar** el entorno virtual debes dirigirte a la nueva carpeta anteriormente creada y ejecuta: |
194 |
| -```bash |
195 |
| -$ source nombre_entorno_virtual/bin/activate |
196 |
| -``` |
197 |
| -Para **desactivar** el entorno virtual simplemente ejecuta: |
198 |
| -```bash |
199 |
| -$ deactivate |
200 |
| -``` |
201 |
| -<a href = "#indice">[IR AL ÍNDICE]</a> |
202 |
| - |
203 |
| -<a name = "estructura"></a> |
204 |
| - |
205 |
| -### 6.2 Estructura de un script en Python. |
206 |
| - |
207 |
| -```python |
208 |
| -1 #!/usr/bin/env python3 |
209 |
| -2 |
210 |
| -3 |
211 |
| -4 if __name__ == "__main__": |
212 |
| -5 pass |
213 |
| -6 |
214 |
| -``` |
215 |
| - |
216 |
| -La **línea 1** se conoce como *shebang*, se reconoce al iniciar con los caracteres `#!` cuando están al principio de la primera o segunda línea de un archivo de texto. Indica que el archivo es un *script* y le dice al sistema operativo qué intérprete ha de usarse para ejecutarlo. Los sistemas operativos *Linux* (y otros sistemas *Unix-like*) soportan de forma nativa esta característica. |
217 |
| - |
218 |
| -Entre los ejemplos de *shebang* tenemos: |
219 |
| - |
220 |
| -* `#!/usr/bin/python3` -> Usar el ejecutable *Python* localizado en `/usr/bin` |
221 |
| -* `#!/usr/bin/env python3` -> Usa `env` para buscar la variable de entorno "python3" en el PATH para ejecutar el script con ese programa. |
222 |
| - |
223 |
| -Los sistemas operativos *Windows* no tienen soporte nativo para *shebang*. En cambio, usan la *extensión* del archivo para asociarlo al ejecutable de turno. Por lo tanto, la línea de *shebang* sería completamente ignorada en el caso de los sistemas Windows. |
224 |
| - |
225 |
| -La **línea 4** está asociada al modo de funcionamiento del intérprete *Python*. Cuando el intérprete lee un archivo de código, **ejecuta todo el código que se encuentra en él**. Todo módulo (archivo de código) en *Python* tiene un atributo especial llamado `__name__` que define el *espacio de nombres* en el que se está ejecutando el archivo. Este atributo es usado para identificar de forma única un módulo en el sistema de importaciones. |
226 |
| - |
227 |
| -Por su parte `__main__` es el nombre del *ámbito* en el que se ejecuta el código de nivel superior (tu programa principal). |
228 |
| - |
229 |
| -El intérprete pasa el valor del atributo a `"__main__"` si el módulo se está ejecutando como programa principal (cuando lo ejecutas llamando al intérptrete en la terminal con `python my_modulo.py`, haciendo doble click en él, ejecutandolo en el intérprete interactivo, etc ). |
230 |
| - |
231 |
| -Si el módulo NO es llamado como programa principal, sino que es **importado** desde otro módulo, el atributo `__name__` pasa a contener el **nombre del archivo** en sí. |
232 |
| - |
233 |
| -Es decir, si tienes un archivo llamado `mi_modulo.py`, si lo ejecutamos como programa principal el atributo `__name__` será `"__main__"`, si lo usamos importándolo desde otro módulo (`import mi_modulo`) el atributo `__name__` será igual a `"mi_modulo"`. |
234 |
| - |
235 |
| -En resúmen, básicamente lo que haces usando `if __name__ == "__main__":` es ver si el módulo ha sido importado o no. Si no se ha importado (se ha ejecutado como programa principal) ejecuta el código dentro del condicional. |
236 |
| - |
237 |
| -Una de las razones para hacerlo es que, a veces, se escribe un módulo (un archivo .py) que se puede ejecutar directamente, pero que alternativamente, también se puede importar y reutilizar sus funciones, clases, métodos, etc. en otro módulo. Con esto conseguimos que la ejecución sea diferente al ejecutar el módulo directamente que al importarlo desde otro programa. |
238 |
| - |
239 |
| -<a href = "#indice">[IR AL ÍNDICE]</a> |
240 |
| - |
241 |
| -<a name = "guia"></a> |
242 |
| - |
243 |
| -### 6.3 Guía de estilo PEP8. |
244 |
| - |
245 |
| -En la organización *Python* existen lo que se llaman *PEP's* o [*Python Enhancement Proposals*](http://www.python.org/dev/peps/pep-0001/#what-is-a-pep), los cuales son documentos que proveen información a la comunidad de *Python* o describen nuevas características del lenguaje, su proceso de desarrollo o su entorno. Uno de estos *PEP's* es el *PEP8*, el cual está dedicado a la recopilación de los estándares de estilo seguidos por los desarrolladores de *Python* a la hora de escribir código para la librería estandar. Un listado completo de los *PEP's* se puede encontrar [aquí](http://www.peps.io/), mientras que una versión en castellano del *PEP8* se puede descargar de [aquí](documentos/guia_pep8_es.pdf) en este repositorio. |
246 | 169 |
|
247 |
| -<a href = "#indice">[IR AL ÍNDICE]</a> |
0 commit comments