# __Fundamentos de programación__

<strong>Hecho por:</strong> Juan David Argüello Plata

## __1. Variables__

Una variable es el <u>nombre</u> con el que se identifica información de interés.

```
nom_variable = contenido
```

El contenido de una variable puede cambiar de naturaleza; por eso se dice que Python es un lenguaje dinámico.

### __1.1. Naturaleza de las variables__

| Naturaleza | Ejemplo  |
|----------|---|
| Numérico | `x = 5`  |
| Textual  |  `text = 'Esta es una frase'` |
| Lista    | `lista = [0,1,2,"texto"]`  |
| Tupla | `tupla = (0,1,2,"texto")` |
| Diccionario | `dic = {"num":5, "text": "hola"}`  |

### __1.2. Variable numérica__

La forma en como se define una variable numérica y el tipo de operaciones básicas que se pueden emplear con ellas se muestra a continuación.


```python
#Declarar una variable numérica es igual que en el álgebra...
x = 1
print(x)
```


```python
x = 5
w = 10
z = 20
print("x = ", x, ", w = ", w, ", z = ", z)  #Podemos ser más específicos a la hora de imprimir información
```

También se pueden hacer operaciones matemáticas, pero _cuidado_: es importante escribir bien las ecuaciones.

Si se quisiera resolver:

$$
\begin{equation}
  y = \frac{x}{w \, z}
\end{equation}
$$

Se debe escribir el algoritmo así:


```python
y = x/(w*z)
print(y)
```

Porque si se escribe y ejecuta así:


```python
y = x/w*z
print(y)
```

Se estaría realmente resolviendo:

$$
\begin{equation}
  y = \frac{x}{w} z
\end{equation}
$$

<h1><strong>Ejercicio:</strong></h1>

Resuelve la siguiente ecuación:

$$
\begin{equation}
  y = \frac{m \, n}{m ^{2}} \frac{n +1}{ \left(n^{-2} m \right) ^{3}}
\end{equation}
$$

Dónde: 

* $n = 2$
* $m = 10$



```python

```


### __1.2. Variable de texto__

A continuación, se puede observar la naturaleza de las variables textuales.


```python
t = "Esta es una oración"   #De igual manera que la variable numérica.
print(t)
```


```python
#Es posible adicionar texto
t2 = ", ¿o no?"
frase_completa = t+t2
print(frase_completa)
```


```python
#Podemos también acceder a las letras en un texto
print(frase_completa[0])
```


```python
#Y a fragmentos de una oración
print(frase_completa[2:])
```

### __1.3. Listas__

Variables _dinámicas_ con contenido de cualquier naturaleza.


```python
#Ejemplo de lista
l = ['a','b','c', [0,1]]
print(l)
```


```python
#¿Cómo accedemos a la información?
print(l[0])  #Recuerda: el contenido de la lista empieza desde 0, 1, 2, ...
```


```python
#Podemos redefinir el contenido de la siguiente manera:
l[0] = 'z'
print(l)  #De esta manera, la lista se cambia su valor
```


```python
print(l[3][0])  #También podemos leer la información de una lista dentro de otra lista
```

### __1.4. Tuplas__

Variables _estáticas_ con contenido de cualquier naturaleza.


```python
t = ('a',0,20,'2', ('Hola', 'Adiós'))  #Similar a la lista
print(t)
```


```python
#También podemos acceder a su contenido... y jugar con él
print('¿' + t[4][0] + '?, ' + t[4][1])
```


```python
#Pero si lo intentamos cambiar...
t[0] = 1
```

### __1.5. Diccionarios__

Tipo de variable usada en programación web. Facilita la lectura de código al darle _"nombres"_ a su contenido.


```python
#Si vamos al súper mercado
lista_mercado = {
    'manzana':2,
    'peras':3,
    'uvas': 4
}
print(lista_mercado)
```


```python
#Podemos ser aún más específicos...
lista_mercado = {
    'Frutas': {
        'Manzanas': {'Unidades': 'Un', 'Cant': 2},
        'Peras': {'Unidades': 'Un', 'Cant': 1},
        'Uvas': {'Unidades': 'Lb', 'Cant': 4}
    }
}
print(lista_mercado)
```


```python
#Se accede a la información de la siguiente manera:
print(lista_mercado['Frutas']['Manzanas'])
```

dc329134b24703d9dfeea065e5895506c183c7d6
ipynb
Jupyter Notebook
Python/Colab/VariablesPython.ipynb
judrodriguezgo/DesarrolloWeb
a020b1eb734e243114982cde9edfc3c25d60047a
MIT
2021-10-30T16:54:25.000Z
2021-10-30T16:54:25.000Z
Python/Colab/VariablesPython.ipynb
judrodriguezgo/DesarrolloWeb
a020b1eb734e243114982cde9edfc3c25d60047a
MIT
Python/Colab/VariablesPython.ipynb
judrodriguezgo/DesarrolloWeb
a020b1eb734e243114982cde9edfc3c25d60047a
MIT
2021-11-23T22:24:15.000Z
2021-12-31T23:51:47.000Z
Qwen/Qwen-72B
1. YES
2. YES