-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path0. Primeros Pasos.html
206 lines (179 loc) · 9.7 KB
/
0. Primeros Pasos.html
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<div id="contenido">
<h2 id="instalaci-n">Instalación</h2>
<p>El único requisito estricto para correr un script de Python es tener instalado el intérprete.</p>
<div class="tab">
<button class="tablinks" onclick="abrirPestana(event, 'WindowsPy')">Windows</button>
<button class="tablinks" onclick="abrirPestana(event, 'LinuxPy')">Linux</button>
<button class="tablinks" onclick="abrirPestana(event, 'MacPy')">MacOS</button>
</div>
<div id="WindowsPy" class="tabcontent">
<h3>Windows</h3>
<h4>Instalación con asistente en Windows.</h4>
<p>Descargar el <a href="https://www.python.org/ftp/python/3.11.5/python-3.11.5-amd64.exe">asistente oficial
distribuído por Python.org </a> y seguir la guía de instalación.
</p>
<h4> Instalación con Winget.</h4>
<p>
Abrir <code>CMD</code> y correr el comando</p>
<code>Powershell
> winget install Pyhton.Pyhton</code>
</div>
<div id="LinuxPy" class="tabcontent">
<h2>GNU/Linux</h2>
<h4>Instalación con el administrador de paquetes de Linux.</h4>
<p> Abrir la <code>Terminal</code> y correr el comando</p>
<code>Bash
$ sudo apt-get install python3</code>
</div>
<div id="MacPy" class="tabcontent">
<h2>MacOS</h3>
<h4>Instalación con asistente en MacOS.</h4>
<p>Descargar el <a href="https://www.python.org/ftp/python/3.11.5/python-3.11.5-macos11.pkg">asistente oficial
distribuído por Python.org </a> y seguir la guía de instalación.
</p>
<h4> Instalación con xCode.</h4>
<h6>1. Installar xCode</h6>
<p> Abrir la <code>Terminal</code> y correr el comando</p>
<code>$ xcode-select --install</code>
<h6>2. Instalar Python</h6>
<p> En la misma <code>Terminal</code> correr el comando</p>
<code>$ python --version</code>
</p>
</div>
<h2 id="editor-o-ide-el-lienzo-">Editor o IDE. <em>El Lienzo</em></h2>
<div style="text-align: justify">
En verdad, se puede <em>escribir</em> el código de un programa en cualquier soporte de texto, que, con la
codificación correcta permita al ensamblador ensamblar, al compilador compilar o al interprete interpretar, según el
lenguaje que sé esté empleando. En el caso de python, cualquier editor de texto que soporte ASCII o UTF-X sirve,
siempre que guardemos el archivo con la extensión <i>.py</i>, el interprete lo reconocerá. Por lo que tranquilamente
puede usarse notepad, TextEdit o cualquier editor sencillo.
</div><br>
<div style="text-align: justify">
Sin embargo, existe una extensa oferta de editores de texto y <i>entornos de desarrollo integrados</i> que ofrecen
comodidades que van desde la coloración por sintaxis, hasta el análisis estático del código, sistemas de manejo de
directorios y archivos, &c.
</div><br>
<div style="text-align: justify">
Para seguir esta guía se recomienda utilizar el editor <a href="https://vscodium.com/"><code>VSCodium</code></a>
Esta es la versión de código abierto de <a href="https://github.com/Microsoft/vscode"><code>vscode</code></a> sin
toda la telemetría y la funcionalidad propietaria y oculta de Visual Studio Code.
<h3>
Instalación
</h3>
<link rel="stylesheet" href="estatico/estilos.css">
<script type="text/javascript" src="estatico/pestañas.js"></script>
<div class="tab">
<button class="tablinks" onclick="abrirPestana(event, 'Windows')">Windows</button>
<button class="tablinks" onclick="abrirPestana(event, 'Linux')">Linux</button>
<button class="tablinks" onclick="abrirPestana(event, 'Mac')">MacOS</button>
</div>
<div id="Windows" class="tabcontent">
<h2>Windows</h3>
<h4> Instalación con Winget.</h4>
<p>
Abrir <code>CMD</code> y correr el comando</p>
<code>Powershell
> winget install vscodium</code>
</div>
<div id="Linux" class="tabcontent">
<h2>GNU/Linux</h2>
<h4>Instalación con <a href="https://snapcraft.io/">Snap.</a></h4>
<p> Abrir la <code>Terminal</code> y correr el comando</p>
<code>Bash
$ snap install codium --classic</code>
<h4>Instalación con el administrador de paquetes de Linux. (Solo Debian o Ubuntu)</h4>
<p> Abrir la <code>Terminal</code> y correr el comando</p>
<code>Bash
$ wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg \
| gpg --dearmor \
| sudo dd of=/usr/share/keyrings/vscodium-archive-keyring.gpg</code></code>
<p>para agregar la clave GPG del repositorio.</p>
<p>Agregar el repositorio:</p>
<code>Bash
$ echo 'deb [ signed-by=/usr/share/keyrings/vscodium-archive-keyring.gpg ] https://download.vscodium.com/debs vscodium main' \
| sudo tee /etc/apt/sources.list.d/vscodium.list</code>
<p>Actualizar e installar VSCodium</p>
<code>Bash
$ sudo apt update && sudo apt install codium</code>
</div>
<div id="Mac" class="tabcontent">
<h2>MacOS</h3>
<h4> Instalación con Brew.</h4>
<h6>1. Installar Homebrew</h6>
<p> Abrir la <code>Terminal</code> y correr el comando</p>
<code>Bash
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"</code>
<h6>2. Instalar VSCodium</h6>
<p> En la misma <code>Terminal</code> correr el comando</p>
<code>brew install --cask vscodium</code>
</p>
</div>
</div>
<h2 id="primeros-pasos">Primeros pasos</h2>
<p>El típico tutorial o <i>'crash-course'</i> de Python empezaría algo así...</p>
<blockquote>
<p>¡Hagamos nuestro primer programa en Python!
Este programa <em>'imprime'</em> las palabras "Hola Mundo"</p>
<div><pre><code class="language-python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">imprimirHolaMundo</span><span class="hljs-params">()</span>:</span>
print(<span class="hljs-string">"¡Hola Mundo!"</span>)
holaMundo()
<span class="hljs-comment"># >>> ¡Hola Mundo!</span>
</code></pre></div>
</blockquote>
<p>
<div style="text-align: justify">
Y probablemente utilizaría este ejemplo para desprender la explicación de que <code>imprimirHolaMundo</code> es una
<i>función</i>, que estas se definen con <code>def</code>, que lo que hace es llamar a la función <i>nativa</i> (o
<i>built-in</i>) <code>print</code> que <i>imprime a consola</i> el texto que se le pase como <i>parámetro</i> y,
con suerte, incluiría entonces una vaga descripción del tipo <code>str</code>, y como se representa texto en Python.
</div><br></p>
<p>
<div style="text-align: justify">
Las ventajas de una introducción de tales características son evidentes: sin necesidad de aún adentrarse demasiado
en los temas, el programador puede en unas simples lineas escribir un <b><i>programa</b></i>, un programa que
funciona, y que produce un <b><i>efecto</b></i> (en este caso que la consola en la que el programador ejecuta el
código muestre las palabras "¡Hola Mundo!"). Más aún, el ejemplo deja en evidencia que el acto de
programar es en sí uno muy <i>simple</i>, basta con darle a la computadora las instrucciones a ejecutar y esta las
ejecuta.
</div><br></p>
<p>
<div style="text-align: justify">
Lo que esta introducción <i>no</i> hace es ofrecer al programador ninguna noción de por qué este simple
procedimiento funciona o qué es lo que la computadora debe hacer para ejecutar las directivas, ni tampoco ofrece
mucha explicación sobre . Además, pone al programador en la situación de simplemente dar por sentado que <i>así</i>
se programa, <i>así</i> se declara una función <i>así</i> se 'imprime' texto, &c. sin ofrecer
explicación de qué es un <b>programa</b>, qué es una <b>función</b>, o para el caso, qué es <b>texto</b> (en el
ámbito de una computadora) y a qué nos referimos por 'imprimir'. El programador debe aprender <i>de
memoria</i> todas estas <i>palabras mágicas</i>, cual si fueran <i>encantaciones</i> y mantener un alto grado de
mistificación y desconocimiento de lo que sucede debajo de aquella <i>magia</i>.
</div><br></p>
<p>
<div style="text-align: justify">
Pero <b>programar no es magia</b>, y es en efecto una tarea <i>simple</i> (lo cual no necesariamente implique que
sea <i>fácil</i>), y la única forma de acceder a aquella <i>simplicidad</i> es comprendiendo como se instrumenta.
</div><br></p>
<p>
<div style="text-align: justify">
Como se ha adelantado esta guía pretende ser un recorrido más integral, que abarque las nociones fundamentales de
programación y ofrecer herramientas para implementarlas en Python. Sin perjuicio de aquella integralidad, pretende
también ofrecer un acercamiento tan <i>amiglable</i> como lo puedan ser las otras fuentes disponibles. Por ello se
mantendrá el clásico ejemplo de <i>hola mundo</i> pero deteniéndonos un poco más en la nociones fundamentales.
Veamos.
</div><br></p>
<p><br></p>
</div>
<footer id="footer" hx-swap-oob="true">
<div style="display:flex; text-justify: right; justify-content: space-between;">
<h3><a class="flecha" hx-get="./index.html" hx-target="#contenido" hx-select="#contenido" hx-swap="outerHTML"> <span
class="material-symbols-outlined" style="align-self: center;">
west
</span> Índice </a>
</h3>
<h3><a class="flecha" hx-get="./i.%Introducción.html" hx-target="#contenido" hx-select="#contenido"
hx-swap="outerHTML"> Introducción <span class="material-symbols-outlined" style="align-self: center;">
east
</span> </a>
</h3>
</div>
</footer>
<script>hljs.highlightAll();</script>