?

%quickref

"""
Explanation: Bienvenidas a Pyladies!!
En la reunión de hoy aprenderemos acerca de python y sus cimientos. Veremos qué es Python, Ipython y Jupyter; comenzaremos con conceptos básicos de objetos, variables, operaciones y haremos nuestro primer programa de bienvenida (¡ritual obligatorio para todo programador!)
¿Qué es Python? y algunos datos curiosos
Python es un lenguaje de programación ampliamente usado debido a que es fácilmente aprendible, la sintaxis y la lectura de código es sencilla y tiene una variedad de librerías especializadas en diferentes disciplinas.
Python fue inventado en 1991 por Guido Van Rossum y lo llamó Python no por la serpiente sino por una comedia inglesa de los '70s llamada "Monty Python's flying circus".
Python es uno de los lenguajes importantes para la comunidad a favor del "open software" o software libre.
Python está detrás de youtube, instragram, spotify, pinterest y reddit entre otros...
Conozcamos python!! Da clicl en donde hay un ícono de una carpeta y dice Files, Aparecerán tres items y da click donde en el que está nombrado con números y termina en ".term". Una vez abierto cuando veas $~ escribe python y presiona enter. ¿Qué es lo que pasa?
Ipython: la hermana amable de Python
Veamos que tiene que decir Wikipedia acerca de Ipython: ..."IPython es un shell interactivo que añade funcionalidades extra al modo interactivo incluido con Python, como resaltado de líneas y errores mediante colores, una sintaxis adicional para el shell, autocompletado mediante tabulador de variables, módulos y atributos; entre otras funcionalidades"...
Como bien dice la wikipedia, ipython es una variante de python que es mucho más amable con el usuario. Te dice más acerca de los errores que puedas cometer y te ayuda a completar nombres cuando se te olvidan. El código que se corre en esta libreta de Jupyter es con Ipython
End of explanation
"""


#Veamos las funciones mágicas de la libreta
%magic

"""
Explanation: El planeta Jupyter de Python
Esto que ves aquí es una libreta de Jupyter ejecutando Ipython. Aquí puedes escribir texto (al estilo Markdown) y correr líneas de código que escribas, también hay funciones mágicas que te ayudan a hacer cosas como mostrar las gráficas que creas directamente en la libreta (generalmente Ipython genera una ventana nueva con la imagen lo cual es bastante molesto cuando estás con la libreta...)
Si te gusta leer en inglés y quieres más información puedes consultar el siguiente enlace
End of explanation
"""


type(5)

type(5.0)

5+5

5-5.0 
#¿Notas algo raro en este resultado?

5.0 * 5

#¿Qué crees que va a dar de resultado esta operación?
5/5

#¿Cómo se puede hacer para que la división nos dé integer en lugar de float?
#Prueba esto
5//5

"""
Explanation: Finalmente a Trabajar
Números en Python
Hay dos tipos de número en Python los cuales se llaman "integers" y "floats". Estos números pueden ser utilizados para realizar operaciones matemáticas como lo harías con cualquier calculadora.
End of explanation
"""


#¿Cuánto nos queda de residuo si dividimos 25%5?
25%5

#¿Cuánto nos queda de residuo si dividimos 25%7?
25%7

"""
Explanation: Pregunta 1
¿Qué crees que pasaría si le pedimos a python lo siguiente?
5.0//5.0
Pregunta 2
¿Crees que obtendrías el mismo resultado si sólo uno de los dividendos fuera un float?
Ahora imagina que queremos saber cuál es el residuo de una división. Python tiene un operador que se ve así "%"
Veamos cómo funciona...
End of explanation
"""


#Pista: doble estrella

#Pista: módulo math

"""
Explanation: Pregunta 3
¿Qué pasaría si alguno de los dividendos fuera float?
Pregunta 4
¿Cómo podríamos obtener la potencia de un número y su raíz cuadrada?
End of explanation
"""


True

False

type(True)

True and False

True or True

True > False

#Un momento, si True es mayor que False ¿cómo es que python representa internamente a estos valores booleanos?
True == 1

False == 0

#¿Entonces se pueden sumar los valores booleanos? ¡Probemos!
True + True + False

False - True

True + True != 1

"""
Explanation: Al igual que en matemáticas, si necesitamos que las operaciones se hagan en un orden definido debemos poner la expresión que queremos que se realice primero entre paréntesis.
Por ejemplo si queremos que una suma se realice antes que una multiplicación y el resultado de esta se reste a otro número usaríamos una expresión parecida a esta:
((a + b) * c) - d
prueba con algunos número a ver que obtienes y luego prueba sin paréntesis a ver si obtienes el mismo resultado...
Valores Booleanos y comparaciones
En python no sólo podemos manejar números, también podemos manejar valores booleanos de tipo Falso-Verdadero y hacer operaciones con ellos
End of explanation
"""


#Ya vimos que El valor de True "equivale" a 1
True == 1

#Ahora nos preguntamos si True "es" 1
True is 1

#y que tal si ahora preguntamos si True "es" True
True is True

"""
Explanation: Como podrás darte cuenta, las operaciones y comparaciones que puedes hacer en estos valores son bastantes y puedes ir aumentando la complejidad usando paréntesis y combinando con lo que aprendiste a hacer de operaciones con python
Nota  "==" vs "is"
Cuando quieres saber si un objeto es exactamente ese objeto hay un operador que se llama "is". Nada más que es importante no confundirlo con el operador "==" ya que este a diferencia del "is" te dice si el valor de un objeto equivale a otro. Suena confuso pero tal vez este ejemplo lo clarifique
End of explanation
"""


"Esto es un string"

'Esto también'

#Esto también es un string
'2'

#y en python 3 se pueden concatenar estas series de caracteres sólo poniéndolos continuamente. Hay que notar que un 
#espacio también es un caracter...

"Los números"' '"y"' ' 'símbolos'" "'también '"se usan"' ''3456%$#%'

"""
Explanation: Strings y todo lo que puedes hacer con palabras
Los strings son cadenas de caracteres, palabras o frases que en python se declaran al ponerlos dentro de comillas, ya sea simples o dobles
End of explanation
"""


'{} of the {}'.format('75%', 'World')

# También puedes usar palabras clave si necesitas poner una misma palabra muchas veces

'{sujeto} camina, {sujeto} juega, {sujeto} duerme con todos {predicado}'.format(sujeto = 'El perro', predicado = 'nosotros')

"""
Explanation: Puedes crear espacios que luego vas a llenar en estos strings con un método que se llama format
End of explanation
"""


print('Esta función imprime')

"""
Explanation: El primer programa para todo aquél que intenta aprender a programar
Por tradición el primer programa que se escribe cuando aprendes un lenguaje de programación es uno que imprima en la pantalla el famoso "Hello World!"
Para esto utilizaremos la función print de python.
End of explanation
"""


variable_1 = 5 + 5

variable_2 = True

variable_1 + variable_2

cajón = 'Hola a todos'

cajón

print(cajón)

cajón == variable_1

"""
Explanation: Pregunta 5
¿Cómo escribirías tu programa para saludar al mundo?
¡¡Felicidades acabas de escribir y ejecutar tu primer programa!! 
Variables: los cajores de python
Hasta ahora hemos visto que podemos hacer operaciones sobre diferentes objetos de python, pero que pasa cuando queremos que una operación o un valor se quede disponible para que los usemos durante todo programa. En python hay algo que se llama variable y está formada por un espacio en el sistema de almacenaje que está asociado a un nombre. Ese espacio contiene una cantidad o información conocida o desconocida, es decir un valor.
Veamos algunos ejemplos.
End of explanation
"""


