<jupyter_start><jupyter_text>Clase 1: Introducción Hoy vamos a repasar los conceptos más básicos de Python. Utilizamos Python 3, que tiene algunas diferencias con Python 2.  1.1 Print Utilizamos el comando `print` para escribir mensajes en la consola. Empezemos imprimiento el mensaje `Hello World!`.<jupyter_code># Mi primer programa
print('Hello World!')<jupyter_output>Hello World!<jupyter_text>Además del código usamos `` para escribir un comentario. Esto sirve para entender mejor el código, también lo podemos usar para desactivar una línea de código que no queremos borrar.<jupyter_code>print('Jessica')
print('Only Child')
#print('Illinois, Chicago')<jupyter_output>Jessica
Only Child<jupyter_text>1.2 Input Si queremos darle información a la computadora podemos usar el comando `input`.<jupyter_code>my_name = input('Por favor escribe tu nombre: ')
print('Hola',my_name,'!')<jupyter_output>Por favor escribe tu nombre: Jessica
Hola Jessica !<jupyter_text>1.3 Uso de variables En el ejemplo anterior usamos la palabra `my_name` para guardar el nombre que escribimos. A estos contenedores les llamamos variables. Las variables se encargan de guardar valores pero podemos cambiar su contenido en cualquier momento.<jupyter_code>x = 5
print(x)
x = 3
print(x)<jupyter_output>5
3<jupyter_text>En el ejemplo anterior usamos dos veces el comando `print(x)` pero produjo diferentes resultados. Esto es porque cambiamos el valor de `x` antes de volver a escribir el comando.Podemos crear muchas variables y podemos crear nuevos valores con operaciones matemáticas.<jupyter_code>a = 5
b = 3
c = a+b
print(c)<jupyter_output>8<jupyter_text>Hagamos un par de ejemplos más.<jupyter_code>a = 5
print(a)
a = a - 1 
print(a)
a = a + 1
print(a)<jupyter_output>5
4
5<jupyter_text>1.4 Operadores matemáticos  1.4.1: Operadores Aritméticos:En los ejemplos anteriores usamos los símbolos `+` y `-` para hacer operaciones matemáticas. Estos son operadores aritméticos, pero no son los únicos:1. Suma: `+`2. Resta: `-`3. Multiplicación: `*`4. División: `/`5. Potencia: `**`6. Residuo (Modulus): `%`<jupyter_code>a = 5
b = 2

print("a + b = ",a+b)
print("a - b = ",a-b)
print("a * b = ",a*b)
print("a / b = ",a/b)
print("a ** b = ",a**b)
print("a % b = ",a%b)<jupyter_output>a + b =  7
a - b =  3
a * b =  10
a / b =  2.5
a ** b =  25
a % b =  1<jupyter_text>Estudiemos un poco más el operador de residuo. En una división si no encontramos los puntos decimales nos quedamos con un residuo. El operador `%` sirve para obtener este residuos. En el ejemplo anterior hicimos:`5 % 2` y el resultado fue `1`.Podemos pensarlo como que dividimos `5 / 2` pero en vez de calcular la división completa encontramos el siguente divisor de 5, es decir 4. Le restamos 4 a 5 y obtenemos el residuo 1.Veamos otros ejemplos.<jupyter_code>print('4 % 2 = ', 4 % 2)
print('10 % 2 = ', 10 % 2)
print('10 % 3 = ', 10 % 3)
print('11 % 3 = ', 11 % 3)
print('12 % 3 = ', 12 % 3)
print('13 % 3 = ', 13 % 3)
print('14 % 3 = ', 14 % 3)<jupyter_output>4 % 2 =  0
10 % 2 =  0
10 % 3 =  1
11 % 3 =  2
12 % 3 =  0
13 % 3 =  1
14 % 3 =  2<jupyter_text>En el primer ejemplo vemos que `4 % 2 = 0`, esto es porque 4 es divisible entre 2 y no tenemos nigún residuo. Lo mismo sucede en el segundo ejemplo. En el tercer ejemplo el resultado es uno. El número más cercano anterior divisible entre 3 es 9, restamos 9 a 10 (`10-9`) y obtenemos 1. Lo mismo aplica con el siguiente ejemplo, pero en este caso como estamos dividiendo `11 / 3` entonces restamos 9 a 11 (`11-9`). Pero algo cambia cuando llegamos a 12, como 12 es divisible entre 3, entonces el resultado es 0 otra vez. Cuando dividimos 13 el número más cercano anterior divisible entre 3 es ahora 12 en lugar de 9. Por lo que ahora restamos 12 a 13 en lugar de 9.¿Notas un patrón? Qué crees que pasaría si calculamos `15 % 3` ó `29 % 3`. Extras: 1. ¿Para que crees que sirve el operador `%`?1. El código en los ejemplos anteriores se veía un poco repetitivo, ¿sabes por qué había que escribirlo así? Si no se te ocurre intenta ver cuál es el problema con el siguiente código<jupyter_code>print('5 + 2 = ',5+1)
print('5 + 2 = ',5-2)<jupyter_output>5 + 2 =  6
5 + 2 =  3<jupyter_text>1.4.2 Operadores LógicosOtro tipo importante de operadores son los operadores lógicos:1. Igual a: `==` Igual a1. Menor que: `<`1. Mayor que: `>`1. Menor o igual a `<=`1. Mayor o igual a `>=`1. Diferente a `!=`El resultado de estos operadores siempre es `True` o `False`.<jupyter_code>a = 5
b = 4

print('a == b:',a==b)
print('a < b:', a<b)
print('a > b:', a>b)
print('a <= b:', a<=b)
print('a >= b:', a>=b)
print('a != b:', a!=b)<jupyter_output>a == b: False
a < b: False
a > b: True
a <= b: False
a >= b: True
a != b: True<jupyter_text>Es muy importante la diferencia entre `=` y `==`.1. `=` es para asignar un valor    `x = 5` sirve para asignar el valor de 5 a `x`1. `==` es para hacer una comparación    `x == 5` pregunta si `x` es igual a 5. Dependiendo del valor de equis eso va a regresar el valor `True` o `False`. Existen más tipos de operadores pero los estudiaremos más adelante.  1.5 Tipos de datos Al principio, usamos una variable para guardar un nombre y después usamos variables para guardar valores numéricos.Los tipos de datos son tipos distintos de variables que sirven para guardar diferentes cosas. Repasemos algunos de los tipos más comunes:1. `int`: Números enteros1. `float`: Números con decimal1. `bool`: True o False1. `str`: Cadena de caracteresPodemos usar el comando `type` para que Python nos diga el tipo de variable que estamos usando<jupyter_code>a = 1
print(type(a))
b = 2.5
print(type(b))
c = True
print(type(c))
d = 'perro'
print(type(d))<jupyter_output><class 'int'>
<class 'float'>
<class 'bool'>
<class 'str'><jupyter_text>Una lista guarda el valor de varias variables que pueden ser de distintos tipos. Podemos acceder a sus valores con corchetes `[]` y el índice. Nota que empezamos en `0`. Más adelante estudiaremos las listas.<jupyter_code>lista_1 = [1,'perro',5.2]
print(lista_1[0])
print(lista_1[1])
print(lista_1[2])<jupyter_output>1
perro
5.2<jupyter_text>EjercicioUtiliza los conceptos vistos en clase para hacer los siguientes programas 1. Escribe un programa que pregunte el diámetro de un circulo y calcule su área y perímetro<jupyter_code># Escribe aquí tu código<jupyter_output><empty_output><jupyter_text>2. Escribe un programa que pregunte el nombre y la edad de una persona y haga un saludo personalizado.<jupyter_code># Escribe aquí tu código<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10855212651619837, 'fraction_numerical': 0.03454629203132197, 'mean_word_length': 4.562766865926559, 'pattern_counts': {'":': 0, '<': 57, '<?xml version=': 0, '>': 57, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '14', 'dir': 'jupyter-structured-clean-dedup', 'id': '511347', 'license': 'MIT', 'n_tokens_mistral': 2553, 'n_tokens_neox': 2417, 'n_words': 926, 'path': '01 - Introduccion.ipynb', 'repo_name': 'ebucheli/SolucionDeProblemasConProgramacion', 'size': '6513'}