¿Por qué aprender a programar en Python?
- Python ocupa siempre los primeros puestos de los lenguajes mas queridos.
- Es fácil de aprender.
- Esta en el top 20 de los lenguajes de programación mejor pagos.
- Puede ser utilizado en diferentes áreas, especialmente en Análisis de datos (51%) y desarrollo web (45%).
- Tiene una demanda laboral muy grande en el mundo de la tecnología.
Herramientas del curso
Hay páginas Web para empezar a aprender Python como https://replit.com/
Algunos comandos y sus significados:
- print : imprimir una palabra o realizar operaciones
- <h1>: Se usa para hacer comentarios. Si uno por ejemplo pone # antes del “print” al correr el código, no hace la operación. No se pueden escribir varias líneas</h1>
- “”” : Escribe un comentario de varias líneas
- ‘’’ : Escribe un comentario de varias líneas
Herramientas para programar con Python
Algunas de estas herramientas son las siguientes:
- Editores de código como Visual Studio Code.
- Terminal y línea de comandos en diversos sistemas operativos.
- Jupyter Notebooks (si decides entrar a data science).
- Git para control de versiones.
- Entornos virtuales con PIP.
- Entornos integrados de desarrollo (IDE) como PyCharm, Visual Studio o DataSpel
Variables
Una Variable es como una caja donde puedo almacenar información (números texto, etc)
Las variables en Python se ponen primero poniendo un identificador por ejemplo my_name = (”Nicolas”). Despues al imprimir “my_name” lo que se mostrará es “Nicolas”
En caso que en el código yo vuelva a asignar un valor a una misma variable, primero se muestra la inical y luego la segunda
input: es una función que hace que podamos asignar un valor a una variable a través de la interacción con el usuario. Todo lo va a tratar como un String
Tipos de datos
Tipos de datos primitivos
- Integers: números Enteros
- Floats: números de punto flotante (decimales)
- Strings: cadena de caracteres (texto)
- Boolean: boolenaos (Verdadero o Falso)
Tipos de dato adicionales
- Datos en texto: str
- Datos numéricos: int, float, complex
- Datos en secuencia: list, tuple, range
- Datos de mapeo: dict
- Set Types: set, frozenset
- Datos booleanos: bool
- Datos binarios: bytes, bytearray, memoryview
type: Indica que tipo de dato estoy utilizando
Operadores Aritméticos
Son aquellos que nos permiten ejecutar cualquier calculo.
A continuación unos ejemplos:
print(10 + 10) # Suma
print(10 - 5) # Resta
print(10 * 2) # multiplicación
print(10 / 2) # 5
print(10 % 2) # 0 Indica cual es el residuo
print(10 / 3) # División
print(10 % 3) # Indica cual es el residuo
print(10 // 3) # Indica el número entero de una división
print(2 ** 3) # Exponencial
Ahora, si tenemos una operación matemática como: print(2 ** 3 + 3 - 7 / 1 // 4) debemos recordar el orden en que se resuelven las operaciones:

Operadores de Comparación
Para este punto tenemos los operadores:
-
: Mayor que. Devuelve como respuesta un booleano - print(7 > 3)
- < : Menor que. Devuelve como respuesta un booleano - print(7 < 3)
-
= : Mayor o igual que. Devuelve como respuesta un boolean - print(2 >= 1)
- <= : Menor o igual que. Devuelve como respuesta un boolean - print(1 <= 2)
- == : Igualación. Devuelve como respuesta un boolean - print(6 == 6)
- != : Diferente. Devuelve como respuesta un boolean - print(6 != 10)
Otro ejemplos:
- print(‘Apple’ == “Apple”) : True ya que las comisllas no alteran el resultado
- print(‘Apple’ == “apple”) : False, ya que las mayúsculas si afectan el resultado
- print(“1” == 1) : False, ya que se está comparando un string con un entero
- age = 37
print(age >= 18) : True, ya que se está comparando 2 enteros, solo que uno se definió con una variable
Comparación Números Flotantes
Se debe tener cuidado al comparar flotantes, porque el resultado a no ser el mismo, el resultado va a ser un False cuando sabemos que no lo es. Ejemplo:
x = 3.3
print(x) : 3.3
y = 1.1 + 2.2
print(y) : 3.3000000003
print(x == y) : False
- Comparación por Strings:
y_str = format(y, “.2g”) : estoy creando una variable string formateando el numero y dejándole solo 2 dígitos de largo
print(‘str =>’, y_str) : Al imprimir me sale 3.3
print(y_str == str(x)) : Con esto compare 2 strings
- Comparar números:
print(y, x)
tolerance = 0.00001 # Estoy agregando o definiendo una tolerancia
print(abs(x - y) < tolerance) # Estoy volviendo como absoluto la operación y después indicando si el resultado es menor que la tolerancia definida
Operadores Lógicos
- and
print(‘True and True =>’, True and True) # Da True
print(‘True and False =>’, True and False) # Da False
La condición para que de True es que las dos partes de la comparación de un verdadero para que el resultado también de verdadero

- or
print(‘OR’)
print(‘True and True =>’, True or True) # True
print(‘True and False =>’, True or False) # True
print(‘False and True =>’, False or True) # True
print(‘False and False =>’, False or False) # False
Evalúa si alguno de los 2 es verdadero y si si, retorna un True

Operador lógico not
Este operador se utiliza para ejecutar negaciones. Uno de los ejemplos mas vistos, es la negación de and
Condicionales
Esto es donde le damos a la computadora que ejecute ciertas instrucciones de acuerdo a las condiciones
String recargado
Con el string se puede hacer muchas mas cosas que considerarlo una cadena de caracteres. A continuación algunos ejemplos:
-
Buscar una palabra dentro de un String
text = ‘Ella sabe programar en Python’ # nombramos la variable
print(‘JavaScript’ in text) # estamos preguntando si la palabra “Javascript” está dentro de la frase a lo que será False la respuesta
print(‘Python’ in text) # estamos preguntando si la palabra “Python” está dentro de la frase a lo que será True la respuesta (Las mayúsculas también cuentan) -
Contar cantidad de caracteres
size = len(‘amor’) # estamos asignando a la variable size los caracteres amor, pero la función len se usa para contar los caracteres (incluido espacios)
print(size) # imprimir -
Pasar a mayúsculas
print(text)
print(text.upper()) # upper sirve para esto -
Pasar a minúsculas
rint(text)
print(text.lower()) # lower sirve para esto -
Contar caracteres específicos
print(text.count(‘a’)) # Cuanta la cantidad de a que aparece en el text
-
Pasar de Mayus a Minusc o viceversa
print(text.swapcase()) # Cambia carácter por carácter
-
Validar si el texto empieza con una serie de caracteres
print(text.startswith(‘Ella’)) # Saldría True
-
Validar si el texto termina con una serie de caracteres
print(text.endswith(‘Rust’)) # Saldría False
-
Reemplazar caracteres
print(text.replace(‘Python’, ‘Go’))
-
Poner el primer caracter en mayúscula
text_2 = 'este es un titulo’
print(text_2)
print(text_2.capitalize()) -
Poner en mayúscula la primera letra de cada palabra
print(text_2.title())
-
Validar si el texto es un digito o no
print(text_2.isdigit()) # Nos daría False
print(‘398’.isdigit()) # Nos daría True porque puede ser un potencial digito -
Otros comandos
- capitaliza Cambia todas las letras a minúsculas menos la primera.
- casefold Utilizada para compara cadenas sin importar el tamaño de los caracteres.
- center Formaseta una cadena alineandola al centro
- count Cuenta las ocurrencias de una cadena
- encode Codifica una cadena según la codificación deseada.
- endswith Comprueba si la cadena termina con una cadena específica.
- expandtabs Convierte los tabuladores en espacios.
- find Devuelve el índice de la cadena buscada o -1 si no se encuentra.
- format Formatea una cadena de forma avanzada.
- format_map Igual que format, pero sin hacer una copia de los parámetros.
- index Devuelve el índice de una cadena de caracteres o ValueError.
- isalnum Comprueba si la cadena es alfanumérica.
- isalpha Comprueba si la cadena es alfabética.
- isascci Comprueba si la cadena es ASCII.
- isdecimal Comprueba si la cadena es un decimal.
- isdigit Comprueba si la cadena es un dígito.
- isidentifier Comprueba si la cadena es un identificador.
- islower Comprueba si todos los caracteres son minúsculos.
- isnumeric Comprueba si la cadena es numérica.
- isprintable Comprueba si la cadena es imprimible.
- isspace Comprueba si la cadena solo contiene espacios.
- istitle Comprueba si la cadena tiene formato de título.
- isupper Comprueba si todos los caracteres son mayúsculas.
- join Une todos los elementos de un iterador en una cadena.
- ljust Justifica la cadena a la izquierda.
- lower Convierte la cadena a minúsculas.
- lstrip Elimina los caracteres de espacio de la izquierda.
- maketrans Crea una tabla de traducción para translate.
- partition Crea particiones de una cadena usando un separador.
- replace Reemplaza en la misma cadena un carácter por otro.
- removeprefix Devuelve una nueva cadena con el prefijo especificado como argumento eliminado si se encuentra en la cadena origina.
- removesuffix Devuelve una nueva cadena con el sufijo especificado
- rfin Devuelve el índice de la cadena como parámetro buscando por la derecha o -1 si no se encuentra.
- rindex Devuelve el índice de la cadena como parámetro buscando por la derecha o ValueError.
- rjust Justifica la cadena a la derecha.
- rpartition Crea particiones de una cadena usando un separador y comenzando por la derecha.
- rsplit Devuelve una lista de cadenas al separar la original por un separador buscando por la derecha.
- rstrip Devuelve una lista de cadenas separando la original por saltos de línea.
- split Devuelve una lista de cadenas al separar la original por un separador.
- splitlines Devuelve una lista de cadenas separando la original por saltos de línea.
- startswith Comprueba si la cadena comienza con una cadena específica.
- strip Elimina los espacios iniciales y finales de la cadena.
- swapcase Cambia el tamaño de cada letra de minúsculas a Mayúsculas y las que estan en Mayúsculas a minúsculas.
- title Convierte la cadena a formato título.
- translate Reemplaza cada carácter por otro siguiendo una tabla de traducciones.
- upper Convierte la cadena a mayúsculas.
- zfill Añade ceros a la izquierda a una cadena numérica.
Indexing y slicing
Indexing significa que los textos tienen un indicador, el cual puedo ingresar a nivel de posiciones. Ejemplo
text = 'Ella sabe Python’
print(text[0]) # Me devuelve la E
print(text[1]) # Me devuelve la l
-
Sacar el último carácter
size = len(text) # Me va a contar la cantidad de caracteres que tiene el texto
print('size => ', size) # Me va a mostrar que hay 16 caracteres
print(text[size - 1]) # Como en código empieza en 0, es decir no hay 16 caracteres, se le pone el -1 -
Otra forma de sacar el último carácter
print(text[-1]) # Esto es porque el -1 de inmediato actúa de izquierda a derecha como contador

slicing significa que basado en las posiciones de los caracteres dentro de nuestro string podemos sacar ciertas partes del texto. Por ejemplo:
print(text[0:5]) # saco los caracteres de la posición 0 a la 5 y sale la palabra Ella
print(text[10:16])
print(text[:10]) # Si no le pongo el 0, Python va a saber que inicia desde el principio
-
Ir de un punto al final
rint(text[5:-1]) # El problema es que sale Sabe Pyhto obviando la n, para solucionar esto
print(text[5:]) # Sale Sabe Python -
Saltos
print(text[10:16:1]) # Me devuelve la palabra Python porque desde el carácter 10 que es la P, salta de 1 en 2
print(text[10:16:2]) # Me devuelve la palabra Pto porque desde el carácter 10 que es la P, salta de 2 en 2
Listas
Es una variable que me permite guardar varios elementos y no solo uno de ellos. ejemplo:
numbers = [1, 2, 3, 4]
print(numbers)
print(type(numbers)) # Me indica que es una list
tasks = [‘make a dishes’, ‘play PS4’]
print(tasks)
types = [1, True, ‘hola’]
print(types)
- Al llamar a una posición de la lista:
print(numbers[0]) # Me muestra 1
print(tasks[0]) # Me muestra make a dishes
-
Mutar: Los Strings son inmutables pero las listas si nos permite hacer estos cambios
tasks[0] = 'estudiar Platzi’
print(tasks) # Nos cambia make a dishes por estudiar Platzi
Métodos de listas
crud hace referencia a la posibilidad de crear, leer, actualizar y eliminar
-
Agregar un elemento al final
numbers.append(700) # agrega el 700 siempre al final de la lista
print(numbers) -
Agregar un elemento en cualquier posición
numbers.insert(0, ‘hola’)
print(numbers)numbers.insert(3, ‘change’) # donde se crea un espacio en la posición 3, se inserta change y el resto se corre a la derecha
-
Unir una lista con otra
tasks = [‘todo 1’, ‘todo 2’, ‘todo 3’]
new_list = numbers + tasks
print(new_list) -
Saber en que posición está y actualizarlo
index = new_list.index(‘todo 2’) # Me indica en que posición está todo 2. Si lo imprimo sale la posición, pero al cambiarlo así estoy indicando que index es la posición buscada
new_list[index] = ‘todo changed’ # Lo que quiero cambiar de la posición que ubique
print(new_list) = El resultasdo -
Remover o eliminar elementos
new_list.remove(‘todo 1’) # busca el todo 1 y lo remueve al imprimir la lista
print(new_list) -
Eliminar el ultimo elemento de la lista
new_list.pop() # Si no le envío nada por defecto va a eliminar el último
print(new_list)new_list.pop(0) # En este ejemplo elimino el primero
print(new_list) -
Imprimir la lista al revés
new_list.reverse()
print(new_list) -
Ordenar la lista
numbers_a = [1, 4, 6, 3]
numbers_a.sort()
print(numbers_a) # Sale como resultado la lista ordenadastrings = [‘re’, ‘ab’, ‘ed’]
strings.sort()
print(strings) # Sale la lista con los elemento ordenadosNOTA: Si tengo una lista con palabras y numeros, no sirve el sort
-
Otros Métodos:
- append(): Añade un ítem al final de la lista.
- clear(): Vacía todos los ítems de una lista.
- extend(): Une una lista a otra.
- count(): Cuenta el número de veces que aparece un ítem.
- index(): Devuelve el índice en el que aparece un ítem (error si no aparece).
- insert(): Agrega un ítem a la lista en un índice específico.
- pop(): Extrae un ítem de la lista y lo borra.
- remove(): Borra el primer ítem de la lista cuyo valor concuerde con el que indicamos.
- reverse(): Le da la vuelta a la lista actual.
- sort(): Ordena automáticamente los ítems de una lista por su valor de menor a mayor.
Tuplas
Las Tuplas son inmutables como las cadenas de texto. y para buscar las posiciones , funciona igual que las listas. Con una tupla solo puedo hjacer una declaración, pero no puedo insertar más elementos allí:
- Los elementos están separados por espacios luego de las comas
- Puede contener cualquier tipo de datos
- Cada posición de la tupla tiene un índice
- Es inmutable y por lo tanto no puede ser modificada, lo que permite proteger mejor la data si no queremos que se modifique por error
Que se puede hacer:
numbers = (1, 2, 3, 5)
string = (‘nico’, ‘zule’, ‘santi’)
-
Buscar un elemento dentro de la tupla y ver en que posición está:
print(string)
print(string.index(‘zule’)) -
Contar cuantas veces está un elemento dentro de la tupla
Supongamos que la lista sea string = (‘nico’, ‘zule’, ‘santi’, ‘nico’)
print(string.count(‘nico’)) # saldra el numero 2
-
Pasar de una tupla a una lista
my_list = list(string)
-
Transformar de una lista a una tupla
Diccionarios
Es un conjunto de elementos que pueden ir agrupados.
my_dict = {
'avion': 'definición de avión va aca',
'name': 'Esteban',
'last_name': 'Benavides Manosalva',
'age': 37
}
los cuales si los cuento me indica que tengo 4 pares de elementos
También puedo pedir directamente una variable a lo que se arroja la respuesta de esa variable. Si se digita algo que no es da un error directamente
print(my_dict['age'])
print(my_dict['last_name'])
Pero hay otra forma de buscar, en donde si no lo encuentra devuelve none
print(my_dict.get('age'))
De igual forma podemos validar si la palabra contenida se encuentra o no
print('avion' in my_dict)
print('otroqueno' in my_dict)
También es posible cambiar los valores de un diccionario
person = {
'name': 'Esteban',
'last_name': 'Benavides Manosalva',
'langs': ['python', 'javascript'],
'age': 37
}
print(person)
person['name'] = 'Juan'
person['age'] -= 10
person['langs'].append('rust')
print(person)
De igual forma podemos eliminar un valor completamente de 2 formas diferentes:
del person['last_name']
person.pop('age') # siempre debe tener un valor
Hay otras funciones que se pueden ver
print('items')
print(person.items()) # devuelve los pares en forma de tuplas que sirve para recorrer un diccionario
print('keys')
print(person.keys()) # devuelve una lista de las llaves que se estan utilizando
print('values')
print(person.values()) # devuelve una lista con los valores que se están utilizando
Loops: While
Son ciclos que es una forma de ejecutar un código múltiples veces hasta que una condicional se cumpla.
Ctrl + C : Detiene un ciclo infinito
Con la función “while” que es un mientras, se ejecuta un comando, por lo que se recomienda que siempre se le de una condición para el cumplimiento del comando y así evitar que se vuelva un ciclo infinito
counter = 0
while counter < 10:
counter += 1
print(counter) # hace que exista un contador que llega hasta 10
while counter < 20:
counter += 1
if counter == 15:
break # se usa para romper un ciclo de manera forzada y llega hasta el 14
print(counter)
counter = 0
while counter < 20:
counter += 1 # hace que cuente de uno en uno
if counter < 15: # le indica al contador que pase algo si el contador es menos a 15
continue # esa acción es que continue, es decir que sale a 15 y cuenta hasta 20
print(counter)
Loops: For
Se utiliza cuando tenemos un numero de elementos o iteraciones dadas por otro elemento
for element in range(20):
print(element) # devuelve un contador de 0 a 19
for element in range(1, 21):
print(element) # devuelve un contador de 1 a 20
con una lista, es posible utilizar for para que recorra una vez cada elemento
my_list = [36, 25, 89, 92, 95]
for element in my_list:
print(element)

Cúando usar “while” o “for” ?
- while: cuando no nonozcas la cantidad de elementos a recorrer o la cantidad de iteraciones a realizar.
- for: cuando conozas la cantidad de elementos a recorrer o el número de iteraciones a relaizar.
Ejercicio:
En este desafío, se te proporcionará una lista de números llamada my_list
. Tu tarea es recorrer esta lista y utilizar un ciclo para seleccionar solo los números positivos. Luego, debes agregar estos números a una nueva lista llamada new_list
. Al final del ciclo, debes imprimir los valores contenidos en new_list
utilizando la función print
.
Por ejemplo, si la lista es [1, -1, 2, -2, 3, -3, 4, -4]
, después de realizar las operaciones descritas, la lista new_list
debería contener solo los números positivos, es decir, [1, 2, 3, 4]
.
Input: [1, -1, 2, -2, 3, -3, 4, -4]
Output: [1, 2, 3, 4]
Desarrollo
my_list = [1, -1, 2, -2, 3, -3, 4, -4]
new_list = []
# Escribe tu solución 👇
for number in my_list:
if number > 0:
new_list.append(number)
print(new_list)
o

Ciclos anidados
Es un ciclo dentro de otro ciclo.
Curso de Fundamentos de Python