Skip to content

Commit 49bc9f0

Browse files
committed
Estructura e índice.
1 parent 247892e commit 49bc9f0

File tree

2 files changed

+96
-22
lines changed

2 files changed

+96
-22
lines changed

README.md

Lines changed: 89 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# Tutorial Python.
22

3-
*Tutorial Python* una guía de referencias para la instalación e introducción rápida al lenguaje [*Python*](https://www.python.org/).
3+
<p align = "center">
4+
<img src = "imagenes/python_logo.jpeg"/>
5+
</p>
6+
7+
*Tutorial Python* es una guía de referencias para la instalación e introducción rápida al lenguaje [*Python*](https://www.python.org/).
48

59

610
<img src="https://img.shields.io/badge/License-MIT-green" /> <img src="https://img.shields.io/badge/Markdown-1.0.1%20-blue" />
@@ -13,36 +17,67 @@
1317
<a name = "indice"></a>
1418

1519
## Índice.
20+
1621
<pre>
17-
1. <a href = "#que">¿Qué es GIT?</a>
18-
2. <a href = "#instalacion">Instalación y configuración.</a>
19-
2.1 <a href = "#estableciendo">Estableciendo la identidad del usuario.</a>
20-
2.2 <a href = "#obteniendo">Obteniendo ayuda.</a>
22+
1. <a href = "#python">Python y el Cálculo Científico.</a>
23+
2. <a href = "#instalacion">Instalación de Python.</a>
24+
3. <a href = "#modos">Modos de uso.</a>
25+
4. <a href = "#caracteristicas">Características fundamentales.</a>
26+
5. <a href = "#libros">Libros de aprendizaje.</a>
27+
5.1 <a href = "#python-crach-course">Python Crash Course.</a>
28+
5.2 <a href = "#learning-python">Learning Python.</a>
29+
5.3 <a href = "#fluent-python">Fluent Python.</a>
30+
5.4 <a href = "#learning-python-the-hard-way">Learn Python: the hard way.</a>
31+
5.5 <a href = "#python-cookbook">Python Cookbook.</a>
32+
5.6 <a href = "#python-para-todos">Python para todos. (online)</a>
33+
6. <a href = "#trucos">Trucos y consejos.</a>
34+
6.1 <a href = "#creando">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>
37+
7. <a href = "#codigos">Códigos Python.</a>
38+
7.1 <a href = "#hola-mundo">Hola Mundo Python!</a>
2139
</pre>
2240

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+
<a name = "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+
<a href = "#indice">[IR AL ÍNDICE]</a>
2450

25-
<a name = "que"></a>
51+
<a name = "instalacion"></a>
2652

27-
## Instalación de Python.
53+
## 2. Instalación de Python.
2854

2955
Según el sistema operativo, *Python* puede ser instalado de 3 maneras:
3056
* **Windows**: puede ser descargado directamente desde la [página principal](https://www.python.org/downloads/windows/) de *Python*.
3157
* **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*.
3258
* **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`.
3359

34-
## Modos de uso.
60+
<a href = "#indice">[IR AL ÍNDICE]</a>
61+
62+
<a name = "modos"></a>
63+
64+
## 3. Modos de uso.
3565

3666
En *Python*, se suele usar el código de 3 modos relacionados:
67+
3768
* **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.
3869

3970
* **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).
4071

4172
* **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.
4273

43-
## Características fundamentales.
74+
<a href = "#indice">[IR AL ÍNDICE]</a>
75+
76+
<a name = "caracteristicas"></a>
4477

45-
El lenguaje [*Python*](https:///www.python.org) es:
78+
## 4. Características fundamentales.
79+
80+
El lenguaje *Python* es:
4681
* Un lenguaje de programación **orientado a objetos**.
4782
* De **propósito general**, es suficientemente bueno para casi todo.
4883
* **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:
6398
</a>
6499
</p>
65100

66-
## Libros de aprendizaje.
101+
<a href = "#indice">[IR AL ÍNDICE]</a>
102+
103+
<a name = "libros"></a>
104+
105+
## 5. Libros de aprendizaje.
67106

68107
*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.
69108

70109
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*.
71110

72111
Aquí te presentamos los principales libros sobre el lenguaje, los más destacados a elección de los profesionales del sector.
73112

74-
### Python Crash Course.
113+
<a name = "python-crach-course"></a>
114+
115+
### 5.1 Python Crash Course.
116+
75117
[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.
76118

77119
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.
78120

79-
### Learning Python.
121+
<a name = "learning-python"></a>
122+
123+
### 5.2 Learning Python.
80124

81125
[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.
82126

83127
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.
84128

85129
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.
86130

87-
### Fluent Python.
131+
<a name = "fluent-python"></a>
132+
133+
### 5.3 Fluent Python.
88134

89135
[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.
90136

91137
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.
92138

93-
### Learn Python: the hard way.
139+
<a name = "learning-python-the-hard-way"></a>
140+
141+
### 5.4 Learn Python: the hard way.
94142

95143
[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.
96144

97145
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.
98146

99-
### Python Cookbook.
147+
<a name = "python-cookbook"></a>
148+
149+
### 5.5 Python Cookbook.
100150

101151
[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.
102152

103-
### Python para todos. (online)
153+
<a name = "python-para-todos"></a>
154+
155+
### 5.6 Python para todos. (online)
104156

105157
[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.
106158

107159
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.
108160

109161
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.
110162

111-
## Trucos y consejos.
163+
<a href = "#indice">[IR AL ÍNDICE]</a>
164+
165+
<a name = "trucos"></a>
166+
167+
## 6. Trucos y consejos.
168+
169+
<a name = "creando"></a>
170+
171+
### 6.1 Creando un entorno virtual Python.
112172

113-
### 1.- Crear un entorno virtual Python.
114173
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.
115174

116175
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`:
123182
sudo pip3 install virtualenv
124183
```
125184
#### Creando un entorno virtual.
185+
126186
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:
127187
```bash
128188
virtualenv nombre_de_tu_entorno -p python3
@@ -138,8 +198,11 @@ Para **desactivar** el entorno virtual simplemente ejecuta:
138198
```bash
139199
deactivate
140200
```
201+
<a href = "#indice">[IR AL ÍNDICE]</a>
141202

142-
### 2.- Estructura de un script en Python.
203+
<a name = "estructura"></a>
204+
205+
### 6.2 Estructura de un script en Python.
143206

144207
```python
145208
1 #!/usr/bin/env python3
@@ -173,6 +236,10 @@ En resúmen, básicamente lo que haces usando `if __name__ == "__main__":` es ve
173236

174237
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.
175238

176-
### 3. Guía de estilo PEP8.
239+
<a href = "#indice">[IR AL ÍNDICE]</a>
240+
241+
<a name = "guia"></a>
242+
243+
### 6.3 Guía de estilo PEP8.
177244

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

codigos/hola_mundo.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/usr/bin/env python3
2+
3+
def main():
4+
print("Hola mundo!")
5+
6+
if __name__ == '__main__':
7+
main()

0 commit comments

Comments
 (0)