You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
5.6 <ahref = "#python-para-todos">Python para todos. (online)</a>
33
+
6. <ahref = "#trucos">Trucos y consejos.</a>
34
+
6.1 <ahref = "#creando">Creando un entorno virtual Python.</a>
35
+
6.2 <ahref = "#estructura">Estructura de un script en Python.</a>
36
+
6.3 <ahref = "#guia">Guía de estilo PEP8.</a>
37
+
7. <ahref = "#codigos">Códigos Python.</a>
38
+
7.1 <ahref = "#hola-mundo">Hola Mundo Python!</a>
21
39
</pre>
22
40
23
-
Históricamente la ciencia se ha dividido en **disciplinas experimentales** y **disciplinas teóricas** (o *empirismo* y *racionalismo*). Consecuentemente, un gran número de estudios en filosofía de la ciencia (*epistemología*) se han dedicado al estudio de la interelación de estos dos modos de hacer ciencia. Durante las últimas décadas la **computación** ha emergido como un componente importante del quehacer científico, y al hacerlo ha desestabilizado esta visión binaria de la ciencia. Dicho de una forma simple, es posible ahora usar las computadoras para resolver problemas científicos de forma más rápida y menos engorrosa; **pero sobre todo resolver problemas que antes no podían ser resueltos analíticamente**.
41
+
<aname = "python"></a>
42
+
43
+
## 1. Python y el Cálculo Científico.
44
+
45
+
Históricamente la ciencia se ha dividido en **disciplinas experimentales** y **disciplinas teóricas** (o *empirismo* y *racionalismo*). Consecuentemente, un gran número de estudios en filosofía de la ciencia (*epistemología*) se han dedicado al estudio de la interelación de estos dos modos de hacer ciencia. Durante las últimas décadas la **computación** ha emergido como un componente importante del quehacer científico, y al hacerlo ha desestabilizado esta visión binaria de la ciencia. Dicho de una forma simple, es posible ahora usar las computadoras para resolver problemas científicos de forma más rápida y menos engorrosa; **pero sobre todo, resolver problemas que antes no podían ser resueltos analíticamente**.
46
+
47
+
Para la solución de estos problemas científicos, dentro del software libre ha surgido en los últimos años el lenguaje de programación [**Python**](https://www.python.org), que últimamente ha tenido una mejora sustancial con la inclusión de potentes y versátiles librerías de cálculo simbólico (*SymPy*), numérico (*NumPy* y *SciPy*) y gráfico (*PyPlot* y *Matplotlib*). *Python* ha tenido una vertiginosa evolución y expansión a nivel mundial, no sólo en el ámbito académico, sino también en el ámbito científico e industrial.
48
+
49
+
<ahref = "#indice">[IR AL ÍNDICE]</a>
24
50
25
-
<aname = "que"></a>
51
+
<aname = "instalacion"></a>
26
52
27
-
## Instalación de Python.
53
+
## 2. Instalación de Python.
28
54
29
55
Según el sistema operativo, *Python* puede ser instalado de 3 maneras:
30
56
***Windows**: puede ser descargado directamente desde la [página principal](https://www.python.org/downloads/windows/) de *Python*.
31
57
***Mac OS X**: Aunque la mayoría de las versiones de *MacOsX* vienen con *Python* pre instalado, puede en algunos casos instalarse desde la [página principal](https://www.python.org/downloads/mac-osx/) de *Python*.
32
58
***Linux**: Todas las versiones de Linux vienen instaladas con *Python*. podrás ver la versión que tienes instalada abriendo la terminal y escribiendo `python`.
33
59
34
-
## Modos de uso.
60
+
<ahref = "#indice">[IR AL ÍNDICE]</a>
61
+
62
+
<aname = "modos"></a>
63
+
64
+
## 3. Modos de uso.
35
65
36
66
En *Python*, se suele usar el código de 3 modos relacionados:
67
+
37
68
***Interactivo**: Esto es común en tareas exploratorias, cuando aún no tenemos del todo definido el problema. Por ejemplo, tenemos un conjunto de datos en uno o más archivos y necesitamos saber qué información contienen, quizás hacer algún gráfico o buscar palabras claves. Los modos interactivos de *Python* pueden habilitarse al usarlo directamente en la terminal a través del intérprete del lenguaje, mediante *Jupyter Notebooks*, compiladores online, etc.
38
69
39
70
***Scripts**: Los scripts (del inglés guión) se refiere a pequeños programas que se usan para tareas sencillas, generalmente cuando queremos automatizar tareas como hacer una copia de respaldo (backup) semanal, o descargar alguna información de una página web cada vez que esta actualice cierta información. A veces también estos scripts se usan como "pegamento" para concatenar programas, generalmente cuando estos programas son complejos o no tenemos acceso al código fuente (o no entendemos el código fuente).
40
71
41
72
***Paquetes o librerías**: Esto es más o menos lo que uno tiene en mente cuando piensa en un programa, como una hoja de cálculo, o una aplicación de para el celular. Es decir, son varios bloques de códigos organizados para realizar diversas tareas. En general, un usuario de *Python* NO escribe librerías, sino que hace uso de ellas. Escribir librerías requiere de ciertos principios de ingeniería de software, de lo contrario el código tendrá altas probabilidades de ser ineficiente, difícil de mantener, propenso a errores, etc.
42
73
43
-
## Características fundamentales.
74
+
<ahref = "#indice">[IR AL ÍNDICE]</a>
75
+
76
+
<aname = "caracteristicas"></a>
44
77
45
-
El lenguaje [*Python*](https:///www.python.org) es:
78
+
## 4. Características fundamentales.
79
+
80
+
El lenguaje *Python* es:
46
81
* Un lenguaje de programación **orientado a objetos**.
47
82
* De **propósito general**, es suficientemente bueno para casi todo.
48
83
***Multiparadigma**, es posible programar usando distintos estilos de programación o incluso combinándolos.
@@ -63,54 +98,78 @@ El lenguaje [*Python*](https:///www.python.org) es:
63
98
</a>
64
99
</p>
65
100
66
-
## Libros de aprendizaje.
101
+
<ahref = "#indice">[IR AL ÍNDICE]</a>
102
+
103
+
<aname = "libros"></a>
104
+
105
+
## 5. Libros de aprendizaje.
67
106
68
107
*Python* es un lenguaje con una curva de aprendizaje interesante. Muchos autores han decidido volcar sus conocimientos para apoyar a los aprendices en la construcción de programas y conocimiento estructurado. Hay libros especializados en temas puntuales o en tópicos importantes; como por ejemplo el desarrollo web o el análisis de datos.
69
108
70
109
La correcta elección de un libro implica muchos factores, pero es bastante útil de primera mano buscar referencias que nos puedan dar un panorama más claro del autor o título, para así tener la seguridad antes de leer un libro sobre *Python*.
71
110
72
111
Aquí te presentamos los principales libros sobre el lenguaje, los más destacados a elección de los profesionales del sector.
73
112
74
-
### Python Crash Course.
113
+
<aname = "python-crach-course"></a>
114
+
115
+
### 5.1 Python Crash Course.
116
+
75
117
[Python Crash Course](https://www.amazon.com/Python-Crash-Course-Hands-Project-Based/dp/1593276036) es un curso sorprendente, orientado a personas que quieren aprender a programar por cuenta propia. Es una introducción amena a la programación y particularmente, como es lógico, al lenguaje *Python*. A través del libro se tienen distintos desafíos entre los cuales destaca el escribir programas, resolver problemas y consolidar los conceptos básicos previos a código de mayor nivel.
76
118
77
119
El libro enseña conceptos bastante populares en la actualidad, como el uso de librerías, la respuesta a eventos de mouse y teclado, visualización de datos e incluso creación de juegos en 2D.
78
120
79
-
### Learning Python.
121
+
<aname = "learning-python"></a>
122
+
123
+
### 5.2 Learning Python.
80
124
81
125
[Learning Python](https://www.amazon.com/Learning-Python-5th-Mark-Lutz/dp/1449355730/ref=pd_lpo_sbs_14_t_2?_encoding=UTF8&psc=1&refRID=JN73FSJC7091MKHXNN8Y) es uno de los libros más populares, dado que es el resumen del curso de entrenamiento en *Python* de su autor, Mark Lutz. Es un libro que mejora constantemente, presentando una quinta edición bastante robusta que introduce conceptos y buenas prácticas.
82
126
83
127
Tiene muchas bondades, entre ellas desafíos que permiten escribir código de forma rápida, eficiente y de alta calidad. Está indicado para personas con pocos conocimientos, aunque obviamente es útil también para programadores con mayor experiencia.
84
128
85
129
De primera mano permite explorar los tipos de objeto por defecto que vienen con el lenguaje, como la sintaxis elemental. Una de sus principales características es que todos los conocimientos están orientados en la programación orientada a objetos.
86
130
87
-
### Fluent Python.
131
+
<aname = "fluent-python"></a>
132
+
133
+
### 5.3 Fluent Python.
88
134
89
135
[Fluent Python](https://www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1491946008/ref=sr_1_1?ie=UTF8&qid=1499089735&sr=8-1&keywords=Fluent+Python%3A+Clear%2C+Concise%2C+and+Effective+Programming) es un libro distinto, está diseñado para volverse productivo en el desarrollo con *Python* de forma rápida, dado que es un libro “hands-on” que básicamente prioriza las actividades a la teoría.
90
136
91
137
Este libro se concentra en aspectos importantes como modelos y estructuras de datos, funciones y flujos de control. Además tiene una sección muy interesante relacionada a la metaprogramación, un concepto más avanzado pero inherente a grandes proyectos.
92
138
93
-
### Learn Python: the hard way.
139
+
<aname = "learning-python-the-hard-way"></a>
140
+
141
+
### 5.4 Learn Python: the hard way.
94
142
95
143
[Learn Python: the hard way](https://learnpythonthehardway.org/book/) es un libro que por el título puede pensarse está orientado a programadores experimentados o que buscan un desafío en su aprendizaje. Sin embargo, es un libro eminentemente para principiantes, de una elevada calidad. El término “Hard way” se refiere al deseo del autor de afianzar algunos conceptos como base para avanzar en el libro.
96
144
97
145
El libro tiene niveles iniciales con temas elementales (como el primer Hola mundo o la construcción de variables) pero poco a poco ahonda y permite tener una visión sólida del lenguaje *Python* de cara a la programación orientada a objetos.
98
146
99
-
### Python Cookbook.
147
+
<aname = "python-cookbook"></a>
148
+
149
+
### 5.5 Python Cookbook.
100
150
101
151
[Python Cookbook](https://www.amazon.com/Python-Cookbook-Third-David-Beazley/dp/1449340377/ref=sr_1_4?s=books&ie=UTF8&qid=1520398239&sr=1-4&keywords=python+cookbook) es uno de los libros más amenos para el aprendizaje de *Python*. Se puede encontrar las indicaciones para el desarrollo de programas a manera de recetas. Hay una serie de temas interesantes para desarrolladores experimentados y novatos que se pueden explorar. Entre ellos están los algoritmos y estructuras de datos, las cadenas de texto y números, los tipos de operadores, las clases y objetos, la programación web y los principales errores en el desarrollo de un programa.
102
152
103
-
### Python para todos. (online)
153
+
<aname = "python-para-todos"></a>
154
+
155
+
### 5.6 Python para todos. (online)
104
156
105
157
[Python para todos](documentos/libro_python_para_todos.pdf) se trata de un libro gratuito, que empieza tratando sobre conceptos básicos pero ahonda hasta el uso de bases de datos. Está distribuido bajo una licencia de *Creative Commons* y se puede realizar su descarga en formato PDF directamente desde su misma página web.
106
158
107
159
Estos fueron algunos títulos únicamente del gran universo bibliográfico que gira en torno a *Python*. Como hemos podido ver, la mayoría de ellos están escritos en inglés, pero inclusive si no tienes el idioma a la perfección muchos de los conceptos son entendibles.
108
160
109
161
Siéntete en la libertad de usar libros para aprender *Python* cuando desees, porque si bien es cierto que para programar se necesita escribir código a diario, un libro puede ser el aliado perfecto al momento de diagnosticar un error o resolver un bug.
110
162
111
-
## Trucos y consejos.
163
+
<ahref = "#indice">[IR AL ÍNDICE]</a>
164
+
165
+
<aname = "trucos"></a>
166
+
167
+
## 6. Trucos y consejos.
168
+
169
+
<aname = "creando"></a>
170
+
171
+
### 6.1 Creando un entorno virtual Python.
112
172
113
-
### 1.- Crear un entorno virtual Python.
114
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.
115
174
116
175
Para crear y utilizar un entorno virtual debe instalarse `virtualenv`; pero antes debe instalarse el manejador de paquetes de *Python*`pip`:
@@ -123,6 +182,7 @@ Luego instalamos `virtualenv`:
123
182
sudo pip3 install virtualenv
124
183
```
125
184
#### Creando un entorno virtual.
185
+
126
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:
127
187
```bash
128
188
virtualenv nombre_de_tu_entorno -p python3
@@ -138,8 +198,11 @@ Para **desactivar** el entorno virtual simplemente ejecuta:
138
198
```bash
139
199
deactivate
140
200
```
201
+
<ahref = "#indice">[IR AL ÍNDICE]</a>
141
202
142
-
### 2.- Estructura de un script en Python.
203
+
<aname = "estructura"></a>
204
+
205
+
### 6.2 Estructura de un script en Python.
143
206
144
207
```python
145
208
1#!/usr/bin/env python3
@@ -173,6 +236,10 @@ En resúmen, básicamente lo que haces usando `if __name__ == "__main__":` es ve
173
236
174
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.
175
238
176
-
### 3. Guía de estilo PEP8.
239
+
<ahref = "#indice">[IR AL ÍNDICE]</a>
240
+
241
+
<aname = "guia"></a>
242
+
243
+
### 6.3 Guía de estilo PEP8.
177
244
178
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.
0 commit comments