#!/usr/bin/env python
# coding: utf-8
#
# # Variables
# * Declaración → en Python no declaramos el tipo de las variables
# * Inicialización → cuando se asigna un primer valor
# * Asignación → cuando se modifica el valor de la variable
#
# In[1]:
x = 3
x = 10
print(x) # imprime 10 que es el último valor, una nueva asignación reemplaza el valor de la vble.
x = x + 1 # ahora la variable x vale 11. Equivale a poner x += 1 (contador)
x
# In[2]:
a, b, c = 10, 20, 30 # asignación a múltiples variables
p = q = r = 1 # las tres variables se asignan al mismo valor
# In[3]:
print('a=', a, 'b=', b, 'c=', c) # al separar con coma se deja un espacio
print('a=' + str(a) + ', b=' + str(b) + ', c=' + str(c)) # solución 1 para evitar el espacio
print(f'a={a}, b={b}, c={c}') # solución 2 para evitar el espacio
# # Permutar valores
# ## Utilizando una variable auxiliar
#
# In[4]:
a = 5
b = 10
aux = a # creamos una variable auxiliar, se suele llamar aux o temp
a = b
b = aux
print(f'a={a}, b={b}')
# ## Python permite permutar en una sola línea
# In[5]:
a, b = 5, 10
a, b = b, a # otra forma maravillosa de permutar valores
print(f'a={a}, b={b}')
# # Constantes
# En Python no hay que declarar las constantes.
# Una constante es una variable que no cambiará durante la ejecución del programa.
# Por convenio se nombran en mayúsculas, por ejemplo:
# In[6]:
IVA = 0.21
IVA
# ## Importar las constantes de un fichero
# Otra opción es incorporar todas las constantes a un fichero y luego importar el fichero.
# Creamos el archivo *constantes.py* en la subcarpeta *mypy* (o el nombre que quieras).
# In[7]:
# este es el contenido del archivo constantes.py
# no ejecutamos estas líneas en Colab, por eso van comentadas
#LUZ = 299708 # velocidad de la luz en km/s
#G = 9.832 # gravedad de la tierra m/s2
# Luego importamos la constante LUZ con alguno de los siguientes métodos.
# ### Método 1 importando todo el módulo
# Antes de ejecutar este método podemos limpiar el kernel.
# #### Método 1.A: si estamos trabajando con Jupyter Notebook
# * Usando Anaconda o usando simplemente un Jupyter Notebook, sin usar Google Colab
# * Si ejecutamos las siguientes líneas desde Colab dará error (vea el método 1.B)
# In[8]:
# dejamos comentadas estas líneas ya que en Colab darían error
# estas líneas funcionarían correctamente trabajando con Jupyter Notebook en local
#from mypy.constantes import *
#hasta_luna = 406700 / LUZ
#print(hasta_luna, 'segundos')
# #### Método 1.B: si estamos trabajando con Google Colab
# En caso de usar Google Colab, previamente necesitamos clonar el repositorio que está en GitHub.
# A la izquierda pulsamos sobre el icono con forma de carpeta (files) y se despliega el arbol de carpetas de nuestra sesión de Colab.
# Observe los cambios que se van a producir en la carpeta `content` donde, después del clonado, aparecerá nuestro repositorio que se llama `pyCourse`.
#
#
# In[9]:
# así efectuamos el clonado de nuestro repositorio que está en GitHub
get_ipython().system('git clone https://github.com/financieras/pyCourse.git')
# In[10]:
# para saber en qué directorio estoy
get_ipython().run_line_magic('pwd', '')
# In[11]:
# nos vamos hasta el directorio jupyter
get_ipython().run_line_magic('cd', 'pyCourse/jupyter')
# In[12]:
get_ipython().run_line_magic('pwd', '')
# In[13]:
from mypy.constantes import LUZ
# se pone el directorio mypy, se pone punto, se pone constantes sin el .py
# In[14]:
LUZ # comprobamos si ahora ya tenemos acceso a la constante LUZ
# ### Método 2 importando solo una constante
# Antes de ejecutar este método podemos limpiar el kernel.
# In[15]:
# dejamos comentadas estas líneas ya que en Colab darían error
# estas líneas funcionarían correctamente trabajando con Jupyter Notebook en local
#from mypy.constantes import LUZ
#hasta_luna = 406700 / LUZ
#print(hasta_luna, 'segundos')
# ### Método 3 importando todas las constantes
# Antes de ejecutar este método podemos limpiar el kernel.
# In[16]:
# dejamos comentadas estas líneas ya que en Colab darían error
# estas líneas funcionarían correctamente trabajando con Jupyter Notebook en local
#import mypy.constantes
#hasta_luna = 406700 / mypy.constantes.LUZ
#print(hasta_luna, 'segundos')
# ### Método 4 importando con un alias
# Antes de ejecutar este método podemos limpiar el kernel.
# In[17]:
# dejamos comentadas estas líneas ya que en Colab darían error
# estas líneas funcionarían correctamente trabajando con Jupyter Notebook en local
#import mypy.constantes as cte # podemos poner el alias que queramos
#hasta_luna = 406700 / cte.LUZ # distancia más lejana: apogeo 406700 Km
#print(hasta_luna, 'segundos')
# ## Podemos correr un archivo .py
# * Podemos correr un archivo .py dando la orden desde una celda de Jupyter notebook.
# * Esto es una forma alternativa de proceder, si estamos trabajando desde un Jupyter notebook o un Jupyter lab.
# * También funciona en Colab si hemos clonado previamente el repositorio y estamos en el directorio correcto.
#
# [Celdas mágicas](https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-run)
# In[18]:
get_ipython().run_line_magic('run', './mypy/constantes.py # con el % interactuamos con el sistema operativo (con la terminal)')
G