Skip to content

Commit 1999924

Browse files
author
ma0
committed
material for first lesson
1 parent f6e73bc commit 1999924

28 files changed

+3051
-3
lines changed

content/lecciones/01-fundamentos.md

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
Title: Fundamentos
2+
Author: Mauricio Collazos
3+
Date: 2018-09-26
4+
![]()
5+
---
6+
class: center, middle, light
7+
# Tipos básicos 1
8+
## Mauricio Collazos
9+
---
10+
# Tipos en Python
11+
- None
12+
- Numéricos
13+
- Secuenciales
14+
- Mapeo
15+
- Ejecutables
16+
- Módulos
17+
- Clases
18+
- Objeto
19+
- Archivos
20+
- Internos
21+
---
22+
# Sintaxis
23+
- Importancia de la identación
24+
- Palabras reservadas
25+
- Caracteres de delimitación
26+
---
27+
# Tipos *callable*
28+
- Funciones
29+
- Clases
30+
- Instancias
31+
---
32+
# Operadores
33+
- Operadores matemáticos
34+
- Operadores lógicos
35+
- Funciones integradas
36+
- Operadores de secuencias y mapas
37+
---
38+
# Expresiones
39+
- Condicionales
40+
- Ciclos
41+
- Excepciones
42+
- Contexto
+211
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
<html>
2+
<head>
3+
<title>
4+
Introducción a python
5+
</title>
6+
<meta name="date" content="2018-09-24">
7+
</head>
8+
<body>
9+
<div class="container"><p>Para instalar python recomendamos <a href="https://wiki.python.org/moin/BeginnersGuide/Download">los tutoriales</a> de la página oficial.</p>
10+
11+
<p>A manera de introducción recorreremos las principales sentencias que se usan en python.</p>
12+
13+
14+
15+
<h3 id="variables">Variables</h3>
16+
17+
<p>Python es un lenguaje no tipado, por esta razón, definir variables es tan fácil como escribir el nombre y asignar su valor</p>
18+
19+
<pre class="prettyprint"><code class=" hljs ini"><span class="hljs-setting">variable_numerica = <span class="hljs-value"><span class="hljs-number">5</span></span></span>
20+
<span class="hljs-setting">variable_texto = <span class="hljs-value"><span class="hljs-string">"Un texto"</span> </span></span>
21+
<span class="hljs-setting">variable_booleana = <span class="hljs-value"><span class="hljs-keyword">True</span></span></span></code></pre>
22+
23+
<p>A este punto es importante informar algunos puntos importantes en la manera pythónica de hacer las cosas.</p>
24+
25+
<p>Si anteriormente has programado en C, C++, C# o Java, estás acostumbrado a escribirElTextoUsandoLaNotaciónCamelCase, aquí_en_python_preferimos_usar_las_barras_bajas_o_underscores, porque es mas fácil de leer, y lo mas importante para python es que sea fácil de leer.</p>
26+
27+
<h3 id="condicionales">Condicionales</h3>
28+
29+
<p>Como primer segmento de control tenemos los condicionales.</p>
30+
31+
32+
33+
<pre class="prettyprint"><code class=" hljs php"><span class="hljs-keyword">if</span> <span class="hljs-keyword">True</span>:
34+
<span class="hljs-keyword">print</span> <span class="hljs-string">"Verdadero"</span>
35+
<span class="hljs-keyword">else</span>:
36+
<span class="hljs-keyword">print</span> <span class="hljs-string">"Falso"</span></code></pre>
37+
38+
<p>Desde este momento es apropiado aclarar que la filosofía de python va en contra de los puntos y comas, y las llaves, y todo lo que pueda complicar la visibilidad, aunque los punto y comas pueden usarse para separar sentencias en una misma línea, en python no nos gusta usarlos.</p>
39+
40+
<p>Los bloques de código se identifican por una línea de identación. Falso a lo que muchos piensan, en python es posible identar sin necesidad de usar tabulador. Usualmente las personas tienden a identar usando su tecla <code>tab</code>. Usualmente python convierte estos <code>tab</code> en una secuencia de 8 espacios.</p>
41+
42+
<blockquote>
43+
<p><strong>Para usuarios de C y derivados:</strong> En Python la sentencia switch no existe, pero podemos usar sentencias if de la forma</p>
44+
45+
<pre class="prettyprint"><code class=" hljs bash"><span class="hljs-keyword">if</span> sentencia:
46+
bloque_de_codigo
47+
<span class="hljs-keyword">elif</span> sentencia:
48+
bloque_de_codigo
49+
<span class="hljs-keyword">elif</span> sentencia:
50+
....
51+
<span class="hljs-keyword">else</span>:
52+
bloque_de_codigo</code></pre>
53+
</blockquote>
54+
55+
56+
57+
<h3 id="secuencias">Secuencias</h3>
58+
59+
<p>Una secuencia es un conjunto de datos que cumple la propiedad de orden.</p>
60+
61+
<p>En esta categoría se encuentras las cadenas de caracteres, las tuplas y las listas.</p>
62+
63+
64+
65+
<h4 id="cadenas-de-caracteres">Cadenas de caracteres</h4>
66+
67+
<p>Se inician con comillas o doble comillas. Python no diferencia unos de otros</p>
68+
69+
70+
71+
<pre class="prettyprint"><code class=" hljs ini"><span class="hljs-setting">cadena = <span class="hljs-value"><span class="hljs-string">"soy una cadea"</span></span></span></code></pre>
72+
73+
<h4 id="tuplas">Tuplas</h4>
74+
75+
<p>Se inician con parentesis, aunque no son requeridos, y los valores se separan por comas. Una vez definido un valor para una tupla, no se puede cambiar. <br>
76+
tupla = (1,2,3,4)</p>
77+
78+
<h4 id="listas">Listas</h4>
79+
80+
<p>Se inician con corchetes, los valores son separados por comas. Su valor es modificable</p>
81+
82+
83+
84+
<pre class="prettyprint"><code class=" hljs fix"><span class="hljs-attribute">lista </span>=<span class="hljs-string"> [1,2,3,4]</span></code></pre>
85+
86+
<p>El acceso a los elementos de una secuencia se realiza por los accesadores []</p>
87+
88+
89+
90+
<pre class="prettyprint"><code class=" hljs fix"><span class="hljs-attribute">elemento </span>=<span class="hljs-string"> secuencia[0]</span></code></pre>
91+
92+
<h3 id="ciclos">Ciclos</h3>
93+
94+
<p>Python presenta dos tipos de ciclos</p>
95+
96+
97+
98+
<h4 id="for">For</h4>
99+
100+
<p>El ciclo for se usa para recorrer una estructura de tipo secuencia.</p>
101+
102+
103+
104+
<pre class="prettyprint"><code class=" hljs lua">lista = [<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,<span class="hljs-number">4</span>]
105+
<span class="hljs-keyword">for</span> elemento <span class="hljs-keyword">in</span> lista:
106+
<span class="hljs-built_in">print</span> elemento</code></pre>
107+
108+
109+
110+
<h4 id="while">While</h4>
111+
112+
<p>El ciclo while es usado para repetir bloques de código mientras se cumpla una condición</p>
113+
114+
115+
116+
<pre class="prettyprint"><code class=" hljs livecodeserver"><span class="hljs-keyword">while</span> <span class="hljs-operator">a</span>&lt;<span class="hljs-number">5</span>:
117+
print <span class="hljs-operator">a</span>
118+
<span class="hljs-operator">a</span> += <span class="hljs-number">1</span></code></pre>
119+
120+
<blockquote>
121+
<p><strong>Para usuarios de C y derivados</strong> Para implementar un ciclo for como lo presentan conocen, se puede usar la función <em><a href="https://docs.python.org/2/library/functions.html#range">range</a></em>, que genera una lista de números que se puede recorrer por el ciclo.</p>
122+
</blockquote>
123+
124+
125+
126+
<h3 id="diccionarios">Diccionarios</h3>
127+
128+
<p>También llamados arreglos asociativos. Contienen valores indexados por llaves. <br>
129+
Se inician con llaves</p>
130+
131+
132+
133+
<pre class="prettyprint"><code class=" hljs bash">diccionario = {
134+
<span class="hljs-string">'llave_1'</span>: <span class="hljs-number">1</span>,
135+
<span class="hljs-string">'llave_2'</span>: <span class="hljs-number">2</span>
136+
}</code></pre>
137+
138+
<p>El acceso a los valores de un diccionario también se realiza por el accesador [], solo que el índice en esta ocación es texto <br>
139+
elemento = diccionario[‘llave_1’]</p>
140+
141+
142+
143+
<h3 id="funciones">Funciones</h3>
144+
145+
<p>Son bloques ejecutables de código, se usa la palabra reservada def</p>
146+
147+
148+
149+
<pre class="prettyprint"><code class=" hljs python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">suma</span><span class="hljs-params">(sumando_1, sumando_2)</span>:</span>
150+
<span class="hljs-keyword">return</span> sumando_1 + sumando_2</code></pre>
151+
152+
<p>Las funciones pueden retornar múltiples valores</p>
153+
154+
155+
156+
<pre class="prettyprint"><code class=" hljs python"><span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">division</span><span class="hljs-params">(divisor, dividendo)</span>:</span>
157+
cociente = divisor/dividendo
158+
residuo = divisor - cociente * dividendo
159+
<span class="hljs-keyword">return</span> q,r
160+
161+
cociente, residuo = division(<span class="hljs-number">24</span>,<span class="hljs-number">7</span>)</code></pre>
162+
163+
164+
165+
<h3 id="clases">Clases</h3>
166+
167+
<p>Son nuevos tipos de objetos, definidos por la palabra reservada class.</p>
168+
169+
<p>Los métodos son definidos usando la palabra reservada def. Cada método recibirá como primer parámetro la instancia del objeto actual, manteniendo un concepto bastante pragmático de las primeras aproximaciones a la programación orientada a objetos.</p>
170+
171+
<p>Posteriormente se estudiarán un poco mejor los conceptos relacionados con las clases.</p>
172+
173+
174+
175+
<pre class="prettyprint"><code class=" hljs python"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Pila</span>:</span>
176+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">__init__</span><span class="hljs-params">(self)</span>:</span>
177+
self.pila = []
178+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">colocar</span><span class="hljs-params">(self)</span>:</span>
179+
self.pila.append(objeto)
180+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">quitar</span><span class="hljs-params">(self)</span>:</span>
181+
self.pila.pop(objeto)
182+
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">longitud</span><span class="hljs-params">(self)</span>:</span>
183+
<span class="hljs-keyword">return</span> len(self.pila)</code></pre>
184+
185+
186+
187+
<h3 id="excepciones">Excepciones</h3>
188+
189+
<p>Si un error ocurre, las excepciones se levantan indicando el tipo del error y el lugar donde ocurrió.</p>
190+
191+
192+
193+
<pre class="prettyprint"><code class=" hljs lua">try:
194+
archivo = open(<span class="hljs-string">'archivo.txt'</span>,<span class="hljs-string">'r'</span>)
195+
except IOError, <span class="hljs-built_in">error</span>:
196+
<span class="hljs-built_in">print</span> <span class="hljs-built_in">error</span></code></pre>
197+
198+
199+
<h3 id="módulos">Módulos</h3>
200+
201+
<p>En tanto los programas crezcan en tamaño, es muy posible separar los componentes en distintos archivos, luego al cargarlos se ejecutarán como código python</p>
202+
203+
204+
205+
<pre class="prettyprint"><code class=" hljs python"><span class="hljs-keyword">from</span> modulo <span class="hljs-keyword">import</span> componente</code></pre>
206+
207+
<blockquote>
208+
<p>Written with <a href="https://stackedit.io/">StackEdit</a>.</p>
209+
</blockquote></div>
210+
</body>
211+
</html>

0 commit comments

Comments
 (0)