|
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | +## Variables |
| 5 | + |
| 6 | +Una variable es un espacio de memoria donde guardamos un dato, ese espacio de memoria a la vez recibe un nombre y esto conforma la estructura de datos más simple que podemos encontrar. |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +Por otro lado existen ciertas normas a la hora de nombrar variables: |
| 11 | + |
| 12 | +* El nombre no puede empezar con un número<br> |
| 13 | + Por ejemplo "mi_variable" sería correcto, pero "123mi_variable" sería erróneo |
| 14 | +* No se permite el uso de guiones del medio -<br> |
| 15 | + Por ejemplo "mi-variable" sería erróneo |
| 16 | +* No se permite el uso de espacios.<br> |
| 17 | + Por ejemplo "mi variable" sería erróneo |
| 18 | +* No usar nombres reservados para Python. Las palabras reservadas son utilizadas por Python internamente, por lo que no podemos usarlas para nuestras variables o funciones.<br> |
| 19 | + Por ejemplo, a veces podríamos usar "int" ó "for" y esto nos daría error, porque como se verá más adelante, esas palabras son parte de la sintaxis de Python. |
| 20 | + |
| 21 | +### Constantes |
| 22 | + |
| 23 | +Sin embargo, cuando ese dato no lo alojamos en una variable y lo utilizamos directamente, recibe el nombre de constante. |
| 24 | + |
| 25 | +### Tipos de Datos |
| 26 | + |
| 27 | +Es importante notar, que podemos encontrarnos con datos de tipos distintos, es decir numéricos, alfanuméricos o booleanos. |
| 28 | + |
| 29 | +En Python tenemos los siguientes: |
| 30 | + * Enteros: el conjunto de números enteros |
| 31 | + * Floats: el conjunto de números reales o de punto flotante |
| 32 | + * Cadenas o Strings: es texto, caracteres alfanuméricos que se introducen entre comillas dobles o simples |
| 33 | + * Booleanos: representan Verdadero ó Falso |
| 34 | + * Complejos: el conjunto de números complejos |
| 35 | + |
| 36 | +Todo valor que pueda ser asignado a una variable tiene asociado un tipo de dato y esto establece qué operaciones se pueden realizar sobre la misma. |
| 37 | + |
| 38 | +<hr width="75%"> |
| 39 | + <p align="center"> |
| 40 | + Tip: En Python hay algunas funcionalidades ya presentes por defecto, como por ejemplo la funcion **print()** que permite mostrar una salida por pantalla y la función range() que devuelve un rango numérico según los parámetros que recibe y con la función **type()** es posible ver el tipo de dato de una variable |
| 41 | + </p> |
| 42 | +<hr width="75%"> |
| 43 | + |
| 44 | +### Operaciones entre Variables |
| 45 | + |
| 46 | +Con diferentes tipos de datos podemos hacer diferentes tipos de operaciones. Y hay operaciones no permitidas entre variables de diferentes tipos de datos. |
| 47 | + |
| 48 | +**Operaciones aritméticas:** |
| 49 | + |
| 50 | +| Operación | Operador | Ejemplo | |
| 51 | +| :--- | :----: | ---: | |
| 52 | +| Suma | + | 3 + 5.5 = 8.5 | |
| 53 | +| Resta | - | 4 - 1 = 3 | |
| 54 | +| Multiplicación | * | 4 * 2 = 8 | |
| 55 | +| Potenciación | 4<sup>2</sup> | 4**2 = 16 | |
| 56 | +| División (Cociente) | / | 4 / 2 = 2 | |
| 57 | +| División (parte entera) | // | 14 // 3 = 4 | |
| 58 | +| División (resto) | % | 14 % 3 = 2 | |
| 59 | + |
| 60 | +**Operadores relacionales:** |
| 61 | + |
| 62 | +| Operación | Operador | Ejemplo | |
| 63 | +| :--- | :----: | ---: | |
| 64 | +| == | Igual | 10 == 3 = False | |
| 65 | +| != | Distinto | 10 != 3 = True | |
| 66 | +| > | Mayor | 10 > 3 = True | |
| 67 | +| < | Menor | 10 < 3 = False | |
| 68 | +| >= | Mayor o igual | 10 >= 3 = True | |
| 69 | +| <= | Menor o igual | 10 <= 3 = False | |
| 70 | + |
| 71 | +**Operaciones de asignación:** |
| 72 | + |
| 73 | +| Operación | Operador | Ejemplo | |
| 74 | +| :--- | :----: | ---: | |
| 75 | +| = | x=7 | x=7 | |
| 76 | +| += | x+=2 | x=x+2 = 9 | |
| 77 | +| -= | x-=2 | x=x-2 = 5 | |
| 78 | +| *= | x*=2 | x=x*2 = 14 | |
| 79 | +| /= | x/=2 | x=x/2 = 3.5 | |
| 80 | +| %= | x%=2 | x=x%2 = 1 | |
| 81 | +| //= | x//=2 | x=x//2 = 3 | |
| 82 | +| **= | x**=2 | x=x**2 = 49 | |
| 83 | +| &= | x&=2 | x=x&2 = 2 | |
| 84 | +| ^= | x^=2 | x=x^2 = 5 | |
| 85 | +| >>= | x>>=2 | x=x>>2 = 1 | |
| 86 | +| <<= | x<<=2 | x=x<<=2 = 28 | |
| 87 | + |
| 88 | + |
| 89 | +Operación: |= <br> |
| 90 | +Operador: x|=2 <br> |
| 91 | +Ejemplo: x=x|2 = 7 <br> |
| 92 | + |
| 93 | +Cuando tratamos con texto, podemos hacer otras operaciones: |
| 94 | + |
| 95 | +| Operación | Operador | Ejemplo | |
| 96 | +| :--- | :----: | ---: | |
| 97 | +| Concatenar | + | 'hola ' + 'mundo !' = 'hola mundo!' | |
| 98 | +| Multiplicar | * | 'ja ' * 3 = 'ja ja ja' | |
| 99 | + |
| 100 | +Algunos ejemplos en Python: |
| 101 | + |
| 102 | +```python |
| 103 | +>>> a = 'Hola ' |
| 104 | +>>> b = 'Mundo !' |
| 105 | +>>> print(a + b) |
| 106 | +Hola Mundo ! |
| 107 | + |
| 108 | +>>> x = 3 |
| 109 | +>>> y = 12 |
| 110 | +>>> print(x + y) |
| 111 | +15 |
| 112 | + |
| 113 | +>>> print(a + x) |
| 114 | +--------------------------------------------------------------------------- |
| 115 | +TypeError Traceback (most recent call last) |
| 116 | +~\AppData\Local\Temp/ipykernel_18232/136165486.py in <module> |
| 117 | +----> 1 print(a + x) |
| 118 | + |
| 119 | +TypeError: can only concatenate str (not "int") to str |
| 120 | +``` |
| 121 | + |
| 122 | +Notar que en las operaciones que no están permitidas arroja un error, que es muy descriptivo. En este caso no es posible sumar un valor entero con un valor alfanumérico. |
| 123 | + |
| 124 | +```python |
| 125 | +>>> # Dividir "y" entre "x" |
| 126 | +>>> y = 9 |
| 127 | +>>> x = 3 |
| 128 | +>>> print(y/x) |
| 129 | +3.0 |
| 130 | + |
| 131 | +>>> # Potencia de "y" elevado a la "x" |
| 132 | +>>> y = 2 |
| 133 | +>>> x = 4 |
| 134 | +>>> print(y**x) |
| 135 | +16 |
| 136 | + |
| 137 | +>>> # Devolver el resto de la división |
| 138 | +>>> y = 13 |
| 139 | +>>> x = 3 |
| 140 | +>>> print(y%x) |
| 141 | +1 |
| 142 | + |
| 143 | +>>> # Imprimir el tipo de dato de una variable y una constante |
| 144 | +>>> y = 2.5 |
| 145 | +>>> type(y) |
| 146 | +float |
| 147 | +>>> type(2.5) |
| 148 | +float |
| 149 | +``` |
| 150 | + |
| 151 | +Notar que anteponiendo el carácter numeral (#) es posible agregar comentarios en el código. Por otra parte, la función **type()** es muy útil para saber a qué tipo de dato corresponde un elemento. |
| 152 | + |
| 153 | +**Operaciones Lógicas** |
| 154 | + |
| 155 | +Son operaciones en las que entran en uso el tipo de datos booleano, es decir, que nos permiten representar valores verdadero o falso. Para verlo mejor, es necesario recurrir a lo que llamamos tablas de verdad. |
| 156 | +Veremos muy comúnmente representar verdadero con un "1" y falso con un "0". |
| 157 | + |
| 158 | +Tabla del operador lógico "and", se verifican que A y B sean verdaderas. |
| 159 | +| A | B | A and B | |
| 160 | +| :- | :--: | -: | |
| 161 | +| 1 | 0 | 0 | |
| 162 | +| 0 | 0 | 0 | |
| 163 | +| 0 | 1 | 0 | |
| 164 | +| 1 | 1 | 1 | |
| 165 | + |
| 166 | +Tabla del operador lógico "or", se verifican que A o B sean verdaderas. |
| 167 | +| A | B | A or B | |
| 168 | +| :- | :--: | -: | |
| 169 | +| 1 | 0 | 1 | |
| 170 | +| 0 | 0 | 0 | |
| 171 | +| 0 | 1 | 1 | |
| 172 | +| 1 | 1 | 1 | |
| 173 | + |
| 174 | +Tambien es posible representar la negación, con el operador not() |
| 175 | + |
| 176 | +Tabla del operador lógico "Or Exclusiva", se verifica ((A and not(B)) or (not(A) and B)) |
| 177 | +| A | B | A "or exclusiva" B | |
| 178 | +| :- | :--: | -: | |
| 179 | +| 1 | 0 | 1 | |
| 180 | +| 0 | 0 | 0 | |
| 181 | +| 0 | 1 | 1 | |
| 182 | +| 1 | 1 | 0 | |
| 183 | + |
| 184 | +```python |
| 185 | +>>> a = True |
| 186 | +>>> b = False |
| 187 | +>>> print(a or b) |
| 188 | +True |
| 189 | +``` |
| 190 | + |
| 191 | +<hr width="75%"> |
| 192 | + <p align="center"> |
| 193 | + Tips: Notar que las constantes "True" y "False" se escriben con la primer letra mayúscula y el resto minúsculas, de otra forma arrojaría un error |
| 194 | + </p> |
| 195 | +<hr width="75%"> |
| 196 | + |
| 197 | +### Conversión de tipos de datos |
| 198 | + |
| 199 | +Puede haber ocasiones en las que desee especificar un tipo en una variable. Esto se puede hacer con lo que se denomina **casting**. |
| 200 | +La conversión de tipo de dato en python se realiza mediante funciones: |
| 201 | + |
| 202 | +int(): construye un número entero a partir de un literal entero, un literal flotante (eliminando todos los decimales) o un literal de cadena (siempre que la cadena represente un número entero) |
| 203 | +float(): construye un número flotante a partir de un literal entero, un literal flotante o un literal de cadena (siempre que la cadena represente un flotante o un entero) |
| 204 | +str(): construye una cadena a partir de una amplia variedad de tipos de datos, incluidas cadenas, literales enteros y literales flotantes |
| 205 | + |
| 206 | +```python |
| 207 | +>>> x = '2' |
| 208 | +>>> print(type(x)) |
| 209 | +<class 'str'> |
| 210 | +>>> x = int(x) |
| 211 | +>>> print(type(x)) |
| 212 | +<class 'int'> |
| 213 | +>>> y = int(2.8) |
| 214 | +>>> print(y) |
| 215 | +2 |
| 216 | +``` |
| 217 | + |
| 218 | +Si tienes dudas sobre este tema, puedes consultarlas en el canal **#m3_variablesydatos** de Slack |
| 219 | + |
0 commit comments