# ---
# jupyter:
#   jupytext:
#     text_representation:
#       extension: .py
#       format_name: light
#       format_version: '1.5'
#       jupytext_version: 1.14.4
#   kernelspec:
#     display_name: Python 3.9.5 ('the_bridge_22')
#     language: python
#     name: python3
# ---

# # Programación Python 101
# ## Semana 2 de Python
# ### Matando el bicho
#
# Primera semana de Python
#

print("Hello Marco!")

# +
# Este es un simple comentario en Python
# Más lineas de comentario
# Describe la función en Python o la tarea a realizar
# -

# > Aquí podemos comentar los resultados de la operación que hemos realizado.

# Código en Python, evitando UPPERCASE
print("Hello World!")

print ("Hello World!") # no se admiten espacios entre funciones

print() # esta es una función built-in de Python

PRINT()

print(1)

print(marco) 
# este es un error de nombrado bien por definición de una función
# o bien no hemos creado una variable

# En Win y Linux con el utilizado de `CTRL + }` o `CTRL + Ç` comentamos o decomentamos la línea entera del código.
#
# En Mac `CMD + SHIFT + 7` o `CMD + /`

# print("Hello")
# print("Hello") 
# print("Hello")
# print("Hello") 
print("Hello") 
print("Marco") 

print("Hello Marco!")

# ## Declaración de variables
#
# ### Variables y tipos de variables
#
# Podemos entender una **variable** como un contenedor en el que podemos poner nuestros datos a fin de guardarlos y tratarlos más adelante. 
#
# En Python, las variables no tienen tipo, es decir, no tenemos que indicar si la variable será un número, un carácter, una cadena de caracteres o una lista, por ejemplo. </br>
# Además, las variables pueden ser declaradas e inicializadas en cualquier momento, a diferencia de otros lenguajes de programación. Para declarar una variable, utilizamos la expresión nombre_de_variable = valor. 
# </br> </br> Se recomienda repasar el documento [PEP-8](https://www.python.org/dev/peps/pep-0008/#function-and-variable-names) para definir nombres de variables correctamente, pero grosso modo, evitaremos utilizar mayúscula en la inicial, separaremos las diferentes palabras con el carácter «\_» y no utilizaremos acentos ni caracteres específicos de nuestra condificación como el símbolo del «€» o la «ñ», por ejemplo. 

# Las variables no deben ser del mismo tipo que las funciones de Python
nombre = "Marco" # esto tiene nombre de declaración de una variable

# Llamamos la variable anteriormente declarada
nombre

print(nombre)

# Una variable compuesta no admite - o espacios, solo underscore
nombre_variable_correcta = 1

nombre-variable-incorrecta = 1

nombre variable incorrecta con espacios = 1

nombre_Incorrectovariable_ = 1

123nombrevariable_incorrecta = 1 # nombre de variables que comienzan por números

print = "Marco" # no podemos asignar variables predefinidas por Python o los custom

print # aun así es válida pero NO HAY QUE CREAR ESTAS VARIABLES

print(print)

# Tenemos la variable declarada con nombre
nombre

# No crearé una variable del mismo tipo
name = "Pepe"

mi_edad = "25"

mi_edad = '25'

mi_edad

del print

print(mi_edad)

type(mi_edad)

print()

type("25")

type(4)

type(4.)

type(False)

mi_edad = None # podemos declarar una variable sin asignar un valor
mi_edad

mi_edad = None
print(type(mi_edad))

mi_edad = 0
mi_edad
type(mi_edad) # al ejecutar una celda con más funciones mostrará siempre la última

mi_edad = 0
print(mi_edad)
print(type(mi_edad)) # en este caso el print ayuda en mostrar los resultados intermedios

# ## Listas
#
# son un tipo de objeto que almacenan valores del mismo tipo o diferente.

# `lista_ejemplo = [1, 5., True, "Texto", None]`

lista_ejemplo = [1, 5., True, "Texto", None]
type(lista_ejemplo)

lista_ejemplo

StarcoderdataJupyterScriptsDedupFiltered