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