Curso de Python de Lucas Dalto.
Curso de Python de Lucas Dalto.
hasta empresas
gigantescas como Google, Facebook, Apple, YouTube y muchísimas otras más. más grandes del
mundo también lo utilizan. Por ejemplo, la mismísima NASA. Python puede ser considerado el
lenguaje de en el top 1 del lenguaje de programación a nivel mundial. web, aplicaciones
móviles, sistemas de escritorio, CRM, sistemas cosas. es el lenguaje más utilizado. Así que sí,
Python es ese lenguaje. entender de una forma mucho más sencillada sino que también vas a
tener en tu stack nivel más poderosos creados hasta ahora. de desarrollo web mejor
posicionados de personas a conseguir trabajo y a millones te invito a quedarte. por todas
aprendas Python desde cero. Bienvenidos al curso definitivo de Python. que Python es un
lenguaje muy poderoso, que tiene ponernos a hablar de las características una tecnología
nueva, tenemos que conocer en este apartado vamos a conocer las características tecnología
sobre la que estamos trabajando. que tiene Python es que es un lenguaje de sí, su lenguaje es
de propósito general. puede ser utilizado para cualquier actividad, de todo limitados a web,
otros para mobile, todo, no es como que es un lenguaje creado celulares móviles o
programado específicamente es un lenguaje que le podemos dar muchos usos, aplicaciones,
sistemas de inteligencia artificial, lo de análisis de datos, o muchas otras cosas. un lenguaje de
alto nivel, a ver, tenemos nivel, los lenguajes de bajo nivel son lenguajes natural, y los
lenguajes de alto nivel son es decir, mientras más bajo sea el nivel cuando lo leemos, ya que no
se parece a la mientras sea un lenguaje de más alto nivel, leamos. un claro ejemplo del
lenguaje de bajo nivel, más, para eso todo este código, que de hecho es solo para imprimir un
texto en lenguaje un lenguaje de bajo nivel, mientras que este entender lo que hace sin ningún
tipo de dificultad, porque más o menos es la forma en la que vamos a verlo, primero dice que
A es igual dice que C es igual a A más B, y por último en pantalla el valor de C, entonces la
pregunta es el valor de C? Si tu respuesta fue 6, B, A vale 4 y B vale 2, 4 más 2, 6, entonces un
6, es realmente muy sencillo, y en caso la posibilidad de volver a primaria, es broma, chistes,
bueno, si yo así yo, perdón que el curso y se van a reír mientras aprende, años no le gusten los
chistes, pero una persona programación, un chiste en medio del curso y elija quedarse y seguir
aprendiendo, entonces siguiente punto de Python, el tercero, es de ser un lenguaje tan
poderoso, tan usado la curva de aprendizaje más sencilla de todas, y si te lo explico yo,
querido, muchísimo es decir, el curso va a explicar punto por porque por más que ya sepas
programar, te y más cuando revisamos los nuevos estándares, haber elegido un mejor lugar
para aprender que sea pago, ya que el hecho de que tengas agarrado este curso y lo hubiera
subido a no tuviste que pagar, para nada, lo tengo realmente, encontraron el mejor lugar para
terminen el curso, si conocen a alguien que este curso, y si ustedes vienen porque se de que el
curso es excelente. de aprender por su similitud con el lenguaje tan grande de programadores
que cualquier básicamente no se van a trabar porque cuando ustedes tienen, muchas personas
también lo en foros y ya tenemos solución para que ustedes cualquier problema que tengan,
así que sea sí o sí la solución está en internet. las estadísticas. un poquito más técnico, es que
Python es a entender a qué nos referimos, pero si no, déjame que te lo explico. dinámico y
estático. ¿A qué nos referimos con esto? lo mejor que podemos hacer. que el nombre sea
Roberto, es decir, nombre igual Roberto, simplemente lo hacemos así. a ser esa, lo hacemos de
esa forma, es tan simple como lo muestra ahí. Pero sin embargo, son datos diferentes.
número. tipo de dato es y lo define automáticamente. que es el que estamos viendo ahora,
deberíamos variable que va a contener un texto y recién ahí decir que va a ser igual a Roberto.
una variable que va a ser igual a un entero, entero, o sea básicamente le decimos que y
después la definimos, es decir, decimos cuál va a ser ese número. tipo de dato que va a
contener la variable antes, es decir, tenemos que decirle al programa qué tipo de datos vamos
a crear. automáticamente. de la variable, es decir, tenemos que solamente sabe que un
número es un número, un texto es un texto y así con cada tipo de datos. en un lenguaje de
tipado estático el dato que en un lenguaje dinámico la variable se adapta según el tipo de
datos que le pasemos. Por eso es dinámico. el curso no va a ser solamente imágenes, cosas y
demás, solamente que al principio imágenes. de tipos de datos y de conceptos que vamos a
ver más adelante. son muy, muy beginners, es decir, son muy principiantes a tener que ver
igual. que explicar conceptos que solamente los programadores la característica del lenguaje.
se crean y con el tiempo se van modificando hacer cosas nuevas, entonces se convierten en
características del lenguaje. las bases del lenguaje, no las van a entender si no entienden algo
de programación. algunas cosas, por ejemplo, de las bases de pero tipo de datos, que es un
tipo de datos, que es una variable. no se preocupen que igual, repito, lo vamos de las
características de Python, tienen que entenderlo en cuenta. tipo de apartados los ve siempre
ya que les suelen resultar muy útiles. que es uno de lo que les vengo diciendo ahora. a ser
mucho más útil y si no, bueno, tendré punto y lo mezclen con lo que les explico ahora, lo van a
entender. eso, así que veámosla. es un lenguaje orientado a objetos. Como dije, me puse
técnico. lenguaje de programación que implemente los objetos, que básicamente es un estilo
de programación pensando en las partes del programa como si fueran objetos. Es como una
forma de programar. objetos y demás cosas que vamos a ver cuando lleguemos a ese punto.
es un lenguaje de programación orientado a objetos. de vez en cuando no terminan de
entender del todo. tener que nombrar cosas un poquito más avanzadas cosas básicas
justamente fueron creadas para solucionar una especie de círculo, como algo retórico. Igual no
se preocupen. escapar nada. Eso se pueden quedar tranquilos. en un minuto. porque se puede
usar para cualquier cosa, lenguaje humano, es decir, solamente leyéndolo sea fácil de
aprender, es el lenguaje con tipado dinámico, es decir, no tenemos que a usar, sino que lo
reconoce por su cuenta, trabajar justamente con la programación orientado adelante. y es que
Python es un lenguaje interpretado. hay un programa que interpreta instrucción tras
instrucción y las va ejecutando. líneas de código. línea por línea, cada línea la interpreta es
para que cualquier computadora o dispositivo pueda entenderlo, que es lo que le estamos
diciendo a la computadora. por línea. que es el lenguaje compilado, es decir, no mientras que
el intérprete interpreta línea todo solo una vez y eso genera un archivo que ya está listo para
ejecutarse. las ventajas que tienen los lenguajes interpretados corregir errores. enteras de un
programa, añadir módulos nuevos y demás. que hacer como todo de vuelta, compilar todo es
como cuando importas un video, tienes que esperar y esperar y esperar, es lo mismo. línea es
más fácil de corregir y de cambiar digamos por código y ver cómo se va interpretando, así
podemos encontrar errores. interpretados, por ejemplo, suelen ser un poco más lentos la
necesidad de agregar un proceso más, que ejecutando. compilado ejecuta, el programa que es
interpretado interpreta y ejecuta. un lenguaje interpretado, así como JavaScript, PHP, etc.
completamente gratis y muy completo, tiene en el canal. de ver las características de Python,
veamos ahora por qué usarlo. hermoso, pero con tantos lenguajes de programación. decir,
¿por qué debería usar Python? a verlos uno por uno. puede leer y entender muy fácil la
mayoría como les dije, muy fácil de entender. tiene una sintaxis muy similar a la que vendría
siendo por ejemplo la gramática del inglés. sean más productivos, ya que pueden por ejemplo
menos líneas de código que en otros lenguajes. muchísimo el código. usar llaves, corchetes,
signos todos raros, identación, que es una forma de dejar espacios hagas ciertas cosas,
basándonos en la estructura del programa. el código y cuando no trabajemos con lenguajes
por defecto estaríamos programados para ordenarlos así. que hacemos como en 20 líneas de
código 4 o 5, es decir es muy interesante realmente. que Python cuenta con una gran
biblioteca un montón de códigos que podemos reutilizar, cosa. ¿Qué significa esto? Bien.
porque los desarrolladores no tienen que escribir pedacitos de códigos que Python nos brinda.
de tu computadora, o si quieres trabajar con con web, Python obviamente no te va a cargar
tiene, porque se volvería re pesado el programa. que tiene en un programa al pedo. que
tengamos, vamos a usar una función ya es u otra. las funcionalidades que nos permiten
entender no la vamos a utilizar? nos aportan, sino que nos restan, porque justamente restan
rendimiento al programa. de código para que puedas hacer cualquier tarea que quieras. la
hora o con la batería o con esto o con que te permita hacer eso que quieres hacer. lo podemos
mezclar con otros lenguajes de programación. O sea, lo podemos utilizar fácilmente y
mezclarlo. es decir, no es un lenguaje que corra solamente por su cuenta. podemos mezclar
con ningún otro. sirven para su propio entorno, pero Python lo puedes mezclar incluso con
otros lenguajes. fuertes de Python es su comunidad fuertísima. Tiene una comunidad increíble,
recontra ctiva. de todo el mundo que siempre prestan su apoyo cualquier problema que
tengamos. de tutoriales, miles de videos, es excelente la verdad. Porque encima es gratis. Dios,
el multi paradigma. en Python a diferentes sistemas operativos como por ejemplo a Mac, a
Linux, a Windows. o solo para Linux o solo para Mac. para Linux, teníamos que hacer otro
completamente para Windows y así con cada uno de los sistemas operativos que había.
reutilizábamos parte del código, pero hacíamos como que programas distintos. la lógica en
realidad. ese programa la usábamos pero en diferentes lenguajes o de diferentes formas. Con
Python, chau. Un solo código, múltiples plataformas. otra de las ventajas que tiene Python es
que a Python le dicen el aumenta salarios. mejores pagos de todo el mundo, es decir,
excelente salida laboral. del promedio nos muestran que un desarrollador anuales. tercer
mundo quizá un poco menos. un poquito más, un punto medio. lo digo por esto. saber Python
es un skill poderosísimo en cualquier trabajo. Abogados, médicos, etcétera. defecto. y decir, sí,
soy desarrollador trabajo con Python, sé Python, soy una bestia en Python. Es realmente el
factor aumenta salarios. científico sobre todo de cualquier tipo o sea, cualquier tipo de ciencia
natural en realidad. o tres escalones de sueldo de entrada. Así que tengan en cuenta que es
muy importante. y algunas de las cosas más importantes por las que usar Python. del objetivo
que ustedes le quieran dar a su propio aprendizaje, ¿no? Python debería ser, digamos, algo
que nos sirva en cualquier tipo de situación. Nos sirve para lo que querramos. seamos de
cualquier profesión. Aprendan Python y no se van a arrepentir. de todo. Bueno, ¿qué implica
de todo? ¿Para qué es lo que más se suele utilizar? absolutamente todo. Sí para la gran
mayoría de las cosas, realmente todo. que es propósito general. se suele utilizar normalmente.
Así que bueno, comencemos con lo primero. Para comenzar es utilizado mucho como lenguaje
servidor. Es decir, sí, para desarrollo web. Mucho video, imagen también acá suele correr. y
Django con Python. Esto es excelente porque sí, web. O sea, que es muy útil, salida excelente.
móviles, obviamente. desktop o de escritorio, obviamente. Blender, Vitorrent. por ejemplo,
muchos más. abrir como Premiere, como After Effects. con Python ejemplos. de scripts, la
salud de la batería. los dispositivos y otras cosas más. Por ejemplo, reportamos la cantidad de
energía sano. Hablamos del nivel a que está cargada. por ejemplo, archivos Log4j tener el Log4j
activo. una biblioteca de Java muy importante que haría que... Uy, esto es un bichín. No sé,
hombre. que se descubrió un error de seguridad y que eso puso en riesgo a muchos sistemas.
sistema sea seguro es actualizar la versión. anteriores tenemos que utilizar. Básicamente para
evitar fallos de seguridad. realizar tareas de ciencias de datos y Machine Learning. utilizado
para Machine Learning. Artificial. el análisis de datos junto con R. Python para estos trabajos es
muy útil. y Pandas. muchas otras más. Artificial después de este curso de Python. es requisito
obligatorio que vean este video. que vamos a dar va a ser con Python. listos para comenzar
con Inteligencia Artificial. Artificial que ya estará en el futuro, te felicito. Bien, bien
comenzando por las bases. Nunca está de más tener las bases sólidas. Después va a ser más
difícil que te caigas. de software. tal. aparatos como el Rapper y el Arduino. cosas más. su
desarrollo fueron Uber, Google, Microsoft, YouTube. larguísima. pruebas de software. QA. un
programa funciona. es eso. Todo funciona. Sí, señor. juegos, juegos, sí se puede. por ejemplo,
Pygame. Y podemos crear juegos como por ejemplo, Battlefield Battlefield 2 se hizo con
Python. para casi todo. utilizarlo. Python es, por ejemplo, que, ¿Para qué queremos eso? de
Python no va por ese lado. No se pueden crear controladores de dispositivos. digamos. Y
boludeces de muy bajo nivel. y ese tipo de cosas específicas. que no es nativa, pero se puede.
con Python solo no. Pero son cosas que realmente no nos interesan. ustedes se pongan
controladores y demás, no creo que tengan la necesidad de hacerlo. limitar un lenguaje Así
que sí, Python se puede hacer de todo. puede usar para todo. Hasta para hacking se puede
utilizar. útil es el lenguaje. más importantes de todo el mundo, ¿no? gusta la historia me va a
matar, pero nunca este tipo de cosas, a menos que afecten de alguna forma el rendimiento
que tenemos, ¿no? desarrollador, excelente, pero normalmente no sucede. explicárselos
porque no está mal, y esta se la cuento muy rápidamente, es muy rápido, muy rápido y muy
breve. Guido Van Rossum, el creador de Python. 0,9.0, en 1991. funciones para gestionar
errores, ¿no? fue la misma, y fue crear un lenguaje de programación y de escribir, pero sin que
eso justamente tipo de cosas. estas características pierde mucho potencial, es decir, podemos
usar todo y es un lenguaje poderosísimo. como, por ejemplo, para procesar listas de el filtrado
y la reducción, es decir, poder filtrar, poder reducir e incluso poder asignar. con, bueno, nuevas
características útiles compatibilidad con los caracteres Unicode, acá, y formas más cortas, por
ejemplo, de que vamos a ver más adelante. 3, incluida nuevas características como, por poder
imprimir cosas, y más soporte para la división de números y gestión de errores. saliendo las
diferentes versiones de Python. fueron saliendo. siempre van a ser versiones diferentes de 4,
evidentemente, no va a salir nunca. Para mí sí va a salir un Python 4. años más con Python 3.
3,2 y demás, básicamente son, digamos, correcciones optimizan el lenguaje para que sea más
útil, retoques, digamos. y mucho más. con Python, incluido lo más reciente de lo más reciente.
lugar que este para aprender Python. de hablar, ya vimos la parte, digamos, teórica por ahora,
vamos a instalar Python y comenzar. que es ir al código de una vez por todas, pero Python, así
que vamos a instalar Python. y lo dejé todo bien limpito para que podamos me y haciendo
todos los cursos. hasta me creo una cuenta personalizada. Python. Es la primera página que
salta, que salta, literalmente es la primera que salta. Python y la versión. Ustedes
descárguense la última automáticamente el sistema operativo en el más fácil todo porque,
digamos, nos simplifica dándonos, ahora es para Windows, entonces descargamos Python para
este archivo y efectivamente yo no voy a decir no lo a descargar con ustedes, porque
literalmente me clásica de decir, pues yo no lo bajo porque ya lo tengo. son casi las dos de la
mañana, hace un calor, Estamos a temperatura argentina hoy, miren, 54%, cosa que es una
locura, no paro de sudar. Así que o algo, agarren su cafecito, tómense el cafecito, a continuar.
Abrimos Python, una boludez, y le damos Vamos carajo, el primero que le dice que también
quiero decirles que no sé si pudieron fijar y es porque, bueno, quiero que nos enfoquemos en
esto, más fuerte de frente y la lateralicé para que me pegue más dramático todo, no? Porque
necesito ver hacia allá, luz. Cuestiones mías, tontas. Bien, ahí se instaló Literalmente ya
instalamos Python, así de fácil y ahora vamos a buscar Python, acá tenemos Python, le vamos a
decir comillas, hola, hola, listo, ya está. De que ya estamos con Python. Ahora vamos a poner 1
más 1, básicamente es darle instrucción por instrucción a de comandos, así como lo tiene
CMD, vieron que si a través de la carpeta, podemos por ejemplo poner, cierra la CMD. Si acá
pongo Exit también en Python, diferentes. Una cosa es CMD de Windows, otra cosa ¿Se
acuerdan que les dije que Python tenía un Bueno, esta es la consola de Python que se ejecuta
de como tal, pero es la consola que, digamos, se encarga por instrucción. Entonces ahora si
pongo Exit, a abrirlo de vuelta para tenerlo limpito. Y acá ya estamos decirle, como les mostré
recién, 4 por 8 y nos va a dar el va a decir 15. Una tontería. Pero, ¿qué pasa si nosotros
instrucciones. Por ejemplo, lo que les dije antes, A igual 2, mostrame C. ¿Qué me va a mostrar?
Un error, Print C minúscula. Ahí me dice 5. Porque A es igual a si yo le digo que me muestre C,
me muestra C. Es realmente Pero, repito, ¿qué pasa si quisiéramos hacer programas podemos
andar escribiendo o poniendo todo esto. No tiene en Python y el programa se abre solo.
Ustedes no tienen un programa Python. No. Abre el programa en el juego el programa y se
ejecuta automáticamente. Entonces, nosotros no escribimos el código acá. Escribimos el
código es un programa en el que podemos escribir todo el todo el mismo tiempo y que no
tengamos que hacer línea esto para programar. No existe. Realmente no existe, lo que
hacemos es usar un editor de código. Python. Vamos a entrar a Chrome de vuelta y vamos a
buscar Studio Code porque en los cursos anteriores usaba poco bastante para lo que era, por
ejemplo, una notebook podían descargarse Visual Studio Code y que le ya es muy óptimo. Es
excelente. Los requerimientos de las un requisito mínimo por instalar Visual Studio Code. a la
página oficial. Es muy fácil. Buscamos Visual Studio para Windows. Lo mismo, se instala. Yo sí
lo voy a ustedes, lo voy a instalar con ustedes. Ahí se está descargando si no me dejas tampoco
me das muchas opciones. directo en el escritorio, ¿por qué no? Siguiente, Listo. Ahí le damos
finalizar. Le damos finalizar y en Google y acá tenemos completo esto. Bien, queremos
contrastado, light, otra versión del light o dark. dark, simple. Y antes vamos a arrancar a crear
un par de de extensiones y acá vamos a buscar primero Python. va a saltar esta extensión que
es para poder correr y ya lo vamos a poder hacer funcionar desde acá. No vamos se ejecute
aparte acá. Con esto ya podemos va a ser nuestro programa. Escribimos el código y nos en
consola. Nos instalamos como el intérprete de Ahora vamos a instalar Prettier. Esto es
básicamente ejemplo nos ponga unas cosas de un color, otras cosas de debe ser. Ahí lo
instalamos. Y después por último vamos a el código de Python. ¿Se acuerdan cómo les dije que
nos acomoda todo en su lugar. Ahí ven cómo funciona. identa como debería porqué así
funciona Python. Esto con el Prettier, pero no importa y de cualquier forma que tenemos un
código que se identa. Entonces porque automáticamente nos identa para que y ya estamos.
Ahora simplemente le damos el Explorer, Open Folder. Pero antes vamos a sacar una carpeta
en y darle... Bueno, esto lo vamos a poner acá, va. Aquí en el medio voy a crear una nueva
carpeta. a ponerle bien Dalto, bien grande. Y esta va a ser la carpeta a esta carpeta arrastrarla
y traerla acá. Acá la tengo y darle Yes. Confío en los autores. Es decir, en mí. verdad. Muy
simple. Y por último, si se fijan, yo acá por holamundo.py. Vamos a crear un archivo. Este es el
Acá tenemos el primer archivo. Y es importante el un video es.mp4,.wav,.avi, un audio,
perdón, eso es importante que ustedes en el archivo pongan encontrar una forma de ver el
formato de los repente pongo print holamundo, si yo corro, dice efectivamente holamundo. Si
yo por ejemplo acá F5, acá abajo me va a decir 4. El resultado de 2 más 2. Python. Así de
simple. Ahí va, si ustedes cosa, ¿no? Cualquier cosa. Y después ponen clear, ya hicieron su
primer holamundo en Python, vamos a hacer una vez más. Print holamundo, a apretar F5. Ahí
está. Holamundo, espectacular. Los felicito si hicieron esto, mostrándome cómo te sentís en
este momento. Extraño. bien. Ahora que ya tenemos esto listo, ahora que ya con los primeros
conceptos de Python, ¿ok? Porque sí, fundamentos de programación. Pero lo que sucede
digamos, conceptos de programación implementados. a objetos, tenemos variables, tenemos
bucles, estas son cosas que vamos a ver. Son conceptos implementa. Entonces por eso les digo
que vamos de programación, pero que están en Python. Así la bienvenida oficial a la parte de
código de Python. y acá comienza el verdadero curso. Arranquemos con los conceptos básicos.
de datos, ¿no? Simple. Tipos de datos. Un número, por ejemplo, es un tipo de dato. Un texto
es otro tipo de dato. multiplicar por 3. 3 por 3, 9. 4 por 4, 16. 5 más 5, 10. Son números que se
pueden operar. En cambio, si los números fueran textos, 5 más 5 sería 55. 10 por 3 sería 10,
10, 10. multiplicar números y no como letras. 10 por 3 no es 10, 10, 10. Es 30. Por eso tenemos
tipos de datos. diferentes, digamos, entradas que le vamos a dar al programa, manejar.
Tenemos cuatro tipos de datos simples. ¿Qué son los sencillos? Son datos simples. vamos a ver
más adelante. Simples tenemos cuatro. Así que vamos a arrancar. nueva carpeta. de datos.
moverla acá adentro y vamos a renombrarla. Vamos a ponerle tipos de datos .Py Ahí estamos.
texto. El primer tipo simple de datos, texto. ¿Cómo se escribe el texto? sea texto, o las comillas
triples. Ahora vamos a ver bien para qué es cada cosa, cuáles son los casos, etcétera. Pero
vamos a mostrarlos, ¿ok? Vamos a mostrarlos. Los string son... para que ustedes puedan ver
bien. a hacer un poquito más grande para que ustedes lo puedan ver. Esto es un string, ¿ok? Se
dice string. decimos string, es una cadenita. de texto. Así podemos escribir un string. Así
también podemos escribir un string. triples. Es decir, así o, por ejemplo, así. Estas son formas
válidas de decirle al programa que ese tipo de datos es un texto. ¿Cuál es la diferencia entre
esto y esto? esto, por ejemplo. ¿Ves? No podemos hacer esto porque está mal. Tiene que ser
en una línea. sola línea, las más sencillas. Comilla doble, comilla simple. son dos puntos sé,
nombre, lucas, apellido, dalto, no podemos. Fíjense que me cambia el color. ¿Por qué? texto,
el texto va en naranja. Lo que es texto es naranja acá. olor, no tiene sentido. Simple. se nos
olvide. En este caso, acá lo voy a reemplazar y pegar. Sí podemos hacerlo, ¿OK? en JavaScript.
esto que está cada vez, tus datos son y acá tenemos esto. Entonces esto es válido. nos lo
permite acá. Miren, lo pego y ahí lo tenemos. Esto es válido. ¿Por qué es válido? Porque nos
permite escribir múltiples líneas. Acá arranca y acá termina. acá y termina acá. sea, no
podemos ir para abajo y dejar un espacio. uno, dos, tres y así. No hay problema. Esta es la
limitación que tenemos, ¿no? Así que es importante. lo vean. tipo de dato números. dos tipos
de números. números. son números enteros. 2, 4, 5, 20, 527, 455, enteros. Números que no
tienen coma, enteros, redondos. es float o float. Son números con coma, simple, con coma.
Por ejemplo, esto es un número entero. Esto, en este caso, se escribe punto. En vez de con
coma, se escribe punto. Si nosotros queremos decir 4,4, es 4,4. Se lo aclaro por los dos. es un
número flotante. pasar un entero 40, le paso un entero 40. es 40,2, esto es flotante. integrar,
de entero. Esto es un float, flotante, número flotante. que estos son dos tipos de datos
diferentes, por las dudas. Esto no es que son dos números. Sí, son dos números, pero no son
dos enteros. es flotante. Eso es importante resaltar. que es el boleano. Simple, boleano, true o
false. es algo que es dos, dos posibilidades. Una es true, otra es false. Son las dos posibilidades
de boleano. o True. letra tiene mayúscula. no me la tomó. Es porque va con mayúscula, false.
Ahí me la tomó en azul. Esta es una palabra ya verdadera. Esto es un tipo de dato boleano. es
otro dato boleano. Tenemos estos tipos de datos. de texto, enteros, int, enteros, números
enteros. Float, flotante, números flotantes. datos boleanos. True o false. mira, si esta
condición se cumple, ejecutame este código. Si no, no. hace esto. ¿Cómo hacemos? ¿Cómo
sabemos? ejecutamos. Si esto es false, no. Es un ejemplo, ¿no? Pero sirve mucho. qué los
vamos a ir utilizando. para qué usarlos. Los números, ya sea los flotantes o los enteros. El texto
también entienden para qué usarlo. simples. de una línea. Los números los podemos
multiplicar y demás. Los flotantes también. Pero ¿para qué usamos esto? Bueno, ya vamos a
ver. de datos más. tiene dos posibilidades. Nada más. Bueno, a este archivo le puse
datossimples.py. Lo reemplacé. a ser las variables. entender bien los datos complejos tenemos
que usar variables. Así que vamos a ver lo que son las variables. acá otra carpeta que va a ser
variables simple como les dije antes si ustedes se fijan y no les aparece nada ni les aparece
nada usan comillas y no les bueno lo que pasa es que no tan con el le agrego el punto py y
ahora si se naranja el texto así que ahora son espacios que se porque los datos nosotros dato
lo reutilizamos lo que 2 b igual 3 c igual a más b una variable otra variable y otra porque puede
variar simple esto esto puede ser 8 ok es simple entonces le digo print c y lo ejecuto con
repente cambio el 5 por un 15 cuando 15 más 8 ven 15 más 8 es 23 de poner nombre igual
lucas dalto y por pantalla nombre si lo dalto y si yo le borro el dalto de f5 es lucas porque es
una sola cosa entonces de esta forma de usuario con el que se datos entonces la base de datos
va a si el usuario pone pepito es pepito información que sea útil números por ejemplo 40 lo
ejecutamos me da 60 se puede operar variables no ahora bien si tenemos que cuando yo hago
esto nombre igual estoy declarando una variable y acá y se definen le dije al programa nombre
y acá le estoy diciendo che el valor de lucas aquí la estoy teniendo las variables se la podemos
modificar si yo por lo ejecuto como les dije me va a no ahora el nombre no es mal un apellido
nombre es dalto si lo bajo digo no el nombre no es ni actualice me va a decir pedrito variables
comunes se pueden modificar en la siguiente línea en este caso ya está ya está declarada ok la
declaramos una sola vez variable es la misma nombre pero ahora no a dalto y en la tercera
línea le a dalto ahora va a ser igual a pedrito entonces al programa va a tener una antes saco la
primera cuenta las poner una cosa y después otra no hace 2 igual dalto no se pueden del
tiempo por ejemplo yo pongo ahora por ejemplo pongo número número y le doy f5 acá me va
a mostrar 10 más 1 y ahora me va a mostrar 11 pero hay de esta forma una forma muy ahí si
se fijan cuando yo le doy f5 adelante del igual significa che después del igual si el valor de
pongo 5 y lo ejecuto me da 15 porque es más igual 3 más fácil otro 5 20 porque porque 10 más
5 igual 15 y bueno que empecemos así como también me de poner más por poner menos y
cuando 15 menos 5 10 de vuelta después es una palabra que utilizamos dos strings yo uno este
con este justamente de las cadenas las los unimos qué pasa si de nombre o le voy a decir
bienvenida decir el nombre hola lucas o lo poner nombre igual algo no nombre igual para
hacer esto? bueno podemos hacer dos cosas más cómo estás como estás que nos muestre
bienvenida si estás pero acá si se fijan nos cuenta el espacio es otro acá también el espacio es
otro reproducimos y corremos de vuelta al si yo de repente acá pongo hola estás nos lo va
cambiando depende otro nombre nos va a decir el le dije puede ser comillas simples ser lo que
sea actualizó y me no es muy útil porque a veces que esto se realmente se nos si esto por
ejemplo llegara a ser no lo porque es un tipo numérico el 5 y demás bueno primero a darle
abajo en consola vamos a es utilizando el llamado .format porque es muy muy rancio el utilizo
que es dejamos el espacio las acá vamos a poner llaves llaves simples yo actualizo lo de f5 y f5
y f5 y siempre efectivamente que hay un error bueno lo o sea son los f strings para una def
adelante y ahora ahora sí funciona hola mario de ponerle mario yo pongo un 5 se y ahora el 5
se convirtió en si le pongo true o false o lo estás porque esto lo que hace es simple si le damos
un dato boleano lo lo convierte a texto todo lo utilizo este normalmente no no me puede
llegar a generar algún forma de integrar un número en para concatenar era muy feo están
disponibles en esto en javascript hacemos esto en python no en python funciona del dato es
porque el dato es agregamos la f así de simple es yo recomiendo hacerlo de esta forma no esté
más declarada por ejemplo y ahí se bienvenida no está definido o sea no un dato es un error
nos tiene un la variable porque porque la datos también podemos decirle por f5 me dice hola
true como estás por me está diciendo true si el nombre lo borré después de declarar
bienvenida acá automáticamente cuando le en esto ya está de forma que lista entonces no
cambia nada si lo ahora sí me tira un error por qué entonces lo que hacemos es abajo cuando
lo actualizamos ahí funcionando hola true como estás operador eliminamos datos que se de
las variables también por de pertenencia y operadores hola in bienvenida, no? si yo le porque
este pedacito de texto texto acá me lo encuentra porque está yo le dije que por ejemplo me
busque le doy f5 y me dice false porque porque no está y si yo le es verdad no está che pedro
no está automáticamente se convierte en verdadero de pedro no está y yo acá por ejemplo
pongo que es falso porque porque si está hola no falso porque es mentira lo que estoy incluso
me dice true porque porque hola no está hola con minúscula y esto es con mayúscula es un a
mayúsculas y minúsculas las mayúsculas son un tipo de carácter completamente diferente
estos son si esto pertenece a esto de hecho es una forma che mira la verdad el nombre es
mario por ejemplo y me dice falso porque mario no está en bienvenido es che mario está en
bienvenida si está acá bienvenida actualizo no no está lucas no está a ver vamos así como
funciona esto que hay muy simple que estamos véanlo de una repasadita pero hasta ahora es
todo que ustedes vayan teniendo todo lo que vamos haciendo podemos hacer con con este
signo que es el hashtag es el de trend y acá ponemos por ejemplo operadores acá es algo que
el programa no me interpreta es decir el puede ver solamente yo lo puedo ver si yo escribo
puedo ver si vamos a cualquier web por ejemplo entramos por ejemplo esto que está acá en
html es aparece porque es un comentario ven si vamos a darle bueno lo mismo existe en los
lenguajes que no acá es justamente un comentario esto de hecho si lo true y no hace nada más
que eso porque porque es algo de python no lo tiene en cuenta no ejecuta lo vea lo entienda
esto es muy largo está bueno ir documentando escribiendo no entonces yo quiero levantar
esto no print lucas falso false y esto me va a dar los operadores los de operadores ok los
operadores de pertenencia esto que está acá esto lo vamos a sacar vamos a a llamar
concatenar concatenar con f strings más y abajo ponemos puede ser bienvenida igual hola
vamos a dejarlo al revés esto ahora sí mucho mejor y una variable y ahí tenemos todo el
código comentado con más concatenamos concatenar con f strings ok son estos y lo
mostramos en pantalla ya está simple con f5 nos devuelve true y false porque porque efectivo
es true porque está acá lucas in bienvenida bienvenida y lucas si está entonces nos devuelve
false el de ambos remind me later si se fijan yo por ejemplo no usuario o cómo para escribir
dos letras o es más fácil mira vamos a poner arriba nombre un nombre completo nombre
completo y ponemos ser así o puede ser separarlas con guiones bajos esto lo hacemos con la
primer letra de cada nueva palabra que si yo por ejemplo es definiendo una variable con que
entendamos camel case camel case ok es cuando esto que está acá es camel case porque
porque ok camel case la más el principio el nombre completo de cada nueva palabra va con
mayúsculas es una forma de es apto por ejemplo para javascript en python la che no uses eso
usa algo llamado snake case o hace con un guion bajo nombre completo y ahora podemos
definir una variable con snake case ahí va camel case porque camel case está bien porque la
primera case hizo lo mismo todo en minúscula y acá esto en utilizan snake case porque es
justamente la nos da entonces vamos a hacerle caso después bajarlo un poquito ahí va
después hasta acá más o menos otro apartado de variables porque vamos a hacer otro
arrancar esto es todo lo que necesitan saber donde almacenamos datos, ok? en una variable
almacenamos dato adentro puede tener un dato simple un dato complejo ahora así que antes
de seguir con todo esto tenemos que datos de python mucho no podemos hacer así tipos de
datos así que vamos con los siguientes tipos de datos son los datos complejos todo bien. es
simple. se fijan, está como el puntito este acá. en el código. ya... Ah, acá hay un error, ves?
Nombre. No está definido. Master. Actualizo y ahí está. Ahora sí, si actualizo, me tira True y
False. Perfecto, ahora sí está más que bien. bien. son los datos complejos. de datos, y vamos a
darle acá adentro, New File, y vamos a poner datos-compuestos.py. Complejos no,
compuestos. datos. adentro otros datos, simple. dato complejo, sino que son como varios
datos juntos. tener más. variables y datos compuestos. solamente este, y ahora sí vamos a
trabajar. Los datos-compuestos, muy brevemente explicado. tienen datos simples u otros
datos-compuestos, pero que podemos agruparlos. así que vamos a crear la primera lista. con
corchetes. Así tenemos una lista. mira, el primer elemento de la lista va a ser una cadena de
texto. de YouTube, SoyDalto. con muchas ganas de aprender, true. o 1,85 metros, puede ser.
1,85 está bien, vamos a dejar 1,85 metros. a ver, mostrame con print que tenés en la lista.
mostrar lo que contiene ese valor. algo, nos va a mostrar en consola lo que le pasamos. es una
lista. nada. Y claro, porque es una lista con a, es a. Lucas Dalto, SoyDalto, pero si yo quisiera
acceder a uno de estos datos, ponenle que yo quiero agrupar datos. datos, porque si
queremos acceder a cualquiera de estos datos el elemento número uno y me devuelve
Soydalto. bueno, bienvenidos al mundo de la programación. del cero al nueve. se los voy a
simplificar muy sencillamente. un simple array que tiene varios datos. dato cero, nos está
pasando el primer elemento, elemento. Entonces tenemos cero, uno, dos y tres. Esos son
efectivamente los datos. número uno, pero el índice es el índice cero. qué? Porque es el
elemento número uno, en el índice cero. en qué posición está, ¿no? es la posición cero. la
posición es el índice. Porque es el elemento uno, tres y después el cuatro. SoyDalto. Simple,
decimos lista uno y de esa forma llamamos. Lo que se va a mostrar en pantalla es SoyDalto.
True. Lucas Dalto. todo lo que está entre corchetes, que define cuál es el elemento que se va a
mostrar. fácil y es realmente sencillo. Una lista justamente es un tipo de matriz. a esta que es
justamente el array, otra matriz. matriz trabajar con estas. los arrays. este tipo de matriz que
son las listas. Una matriz justamente es un conjunto de datos. Una lista, por ejemplo, es una
matriz. nada de esto. Ahora sí. que son justamente las tuplas. por ejemplo, tupla. de usar
corchetes, usamos paréntesis. Es lo mismo. le digo tupla, cero. Cuando le damos f5, funciona.
Dice Lucas Dalto. Me da lo mismo. es que la tupla no se puede modificar. se podían modificar?
y abajo ponía nombre igual Lucas. Nombre ahora es Lucas, ya no es más Mario. vengo acá y
pongo lista, otro dato. por ejemplo. lista tres. Ahí va. es maquinola. maquinola. y ya no
funciona. mientras que la lista sí. tener un conjunto de datos van a ser estos, los que nosotros
leemos. toquetear, sacar, modificar. Entonces eso es lo bueno, ¿no? mira, lista que realizamos
de vuelta. lo muestra. Maquinola. creando una lista se pueden modificar. creando una tupla no
se pueden modificar. voy a mostrar el primer ejemplo de comentar código. para el código,
para explicar. código es lo mismo. Entonces de esta forma comentamos el código. se ejecute
simplemente descomentamos el código. que conceptualmente decimos que estamos
comentando no estamos comentando ningún código, estamos comentando. a esto es
comentar código. estamos comentando. Está bien creado y está bastante bien. de datos
compuestos. conjuntos de datos. Fácil. igual. Todo igual. con paréntesis. Pero cuando las
mostramos, esto no es válido. tuplas las hagamos con paréntesis y las listas Todo para
mostrarlo siempre va con corchetes. que venimos viendo. acá lo vamos a comentar también.
compuesto que es el conjunto. que usar una función que es la función set. Vamos a abrir esto.
Y vamos a poner set. Creando un conjunto. Set. Bueno, lo creamos igual. Yo ahora vengo acá,
copio esto y lo pego. para crearlo no usamos ni corchetes ni paréntesis. Usamos llaves. Lo
creamos con llaves. forma el objeto. vamos a poner conjunto. Ahora sí. pueden ser que, por
ejemplo, no tienen un orden fijo. pueden cambiar. de repente donde está SoyDalto. ¿ok?
listas, ¿ok? solo que los elementos no. modificar elementos. pedrin y ejecutamos, nos va a tirar
un error porque no puede alterarse. Es decir, ¿podemos redefinirlo? Sí. conjunto igual y creo
de repente una nueva está bien. Sí, funciona. elementos, sin problema. no lo podemos cambiar
en particular. Justamente como las tuplas. Vamos a probarlo. igual, creamos otra tupla.
Entonces podemos modificarlo. que tiene justamente con las listas, por ejemplo, un elemento
del conjunto. pongo 1. el tema. puedo acceder por un índice. Pero lo puedo mostrar como tal.
permitir mostrarlo. Ahí está. Me lo muestra completo. es que no me permite repetir valores. Si
yo acá, por ejemplo, le pongo soydalto. se repite. Entonces si yo lo muestro, no me lo muestra.
a una lista común y una tupla, no? La tupla, si ejecutamos, me lo muestra. Me lo mostró dos
veces. dos veces. Pero el conjunto no me lo muestra. haber datos duplicados. eliminar
duplicados. queremos borrar. un conjunto y después el conjunto lo volvemos a convertir en un
entero. un conjunto, pero no se puede acceder a él por un índice. por un índice. Se accede de
otra forma. conjunto tenemos que usar un bucle. ahora entiendan que se puede recorrer
decir, de los elementos, Entonces vamos a poner características. índice. No almacena datos
duplicados. Ahí va. Y no almacena datos duplicados. Además, otra característica que son
desordenados. Es decir, no es como que tienen un orden. Son literalmente datos
desordenados. el lugar. Eso es importante que lo sepan. De hecho, acá voy a poner lo mismo.
que tiene adentro. Conjunto 3. Aquí voy a poner no puede acceder al elemento. de dato
compuesto. El último dato compuesto es el diccionario. O si no es dict, el dato dict. Así que
vamos a darle creando un diccionario. Y se crea de esta forma. Diccionario igual. un JSON.
Literalmente. Es este archivo, ven? lo van a crear, abren las llaves. También se abre con llaves,
sí. termina abajo. aparte nosotros. Me explico? Y ahí escribimos. valor. Es literalmente un
diccionario. Por ejemplo, nombre, dos puntos. Pero nombre va con comillas. Nombre, dos
puntos y el valor. Por ejemplo, Lucas Dalto. Separamos por coma. Lo mismo acá arriba. Canal
de YouTube, dos puntos, soy Dalto. Abajo ponemos, ¿le gusta programar? O no, está
emocionado, más fácil. Está emocionado, dos puntos, true. Y por último, altura, 1,84. Ahí está.
Fíjense que los datos son los mismos. Lucas Dalto, soy Dalto, true y 1,84. Acá vamos a poner
uno más. Dato duplicado, dos puntos, soy Dalto. hacer. Lo mismo, lo separamos con coma y
funciona. Esto es lo mismo, es un diccionario. ¿Por qué? Porque el nombre... Fíjense cómo
llamamos a esto. En una lista, esto que está acá es esto. Literalmente es esto. Cero, uno, dos,
tres, cuatro. el tercer elemento, te muestra el tercer elemento, que es 1,84. ¿O no?
mostrámelo por número, el diccionario lo muestra por el nombre asociado. tres, como acá
arriba que le pedimos la lista tres, le pedimos diccionario nombre. Entonces, che, ¿qué tenés
en el valor nombre? O sea, adentro de nombre, ¿qué tenés? Esto. creando la forma de llamar
ese elemento. Dalto, porque nombre es Lucas Dalto. Che, a ver, ¿y cuál es el canal? El canal de
Lucas. Y es soy Dalto. Ah, mira, ¿y la altura? Literalmente es lo mismo que la altura es el
elemento número tres. porque es esto que está acá. Lista tres. Lista tres va a valer maquinola.
Pero bueno, vamos a sacar esto que está acá. Para arrancar, vamos a sacarlo. Si yo actualizo
esto, ¿ves? Bueno, acá me da 1,84, me dice 1,85. Vamos a poner 1,85. Actualizamos. lista, es
como si hiciéramos lo mismo como si dijéramos. Cero, dos puntos, esto. Coma, uno, dos
puntos, esto. Coma, dos, dos. viene el programa y lo define por defecto. que andar nosotros
diciendo cero, uno. Se hace automático. automático. Es decir, como el nombre, esto vamos a
sacarlo, así se cambia. Como el nombre, no se hace automático. que nos dice maquinola.
pueden modificar. Este no lo teníamos que descomentar. dice de listas. Ahora sí, actualizamos.
Y ahora sí me funciona. Ahora sí, esto es válido. Teníamos que poner lista es igual maquinola.
nada más. Que se puede cambiar. Si actualizamos ahora, me dice maquinola. la edad por
maquinola. De hecho, vamos a comentarlo también. Entonces, esas son las diferencias, ¿no?
haya un índice cómo lo queremos llamar al elemento o nombre, por ejemplo. Esto tampoco
tiene un orden, ¿eh? Tampoco tiene un orden, está todo el ordenado, solamente que nosotros
hacemos como queremos. clave, valor, clave, valor. key, value. Entonces, key es clave, value es
valor. Entonces, esto técnicamente es clave, valor. lo que va es la clave. ¿Me explico? Esto que
está acá sería el key. Todos estos son todos key, para que entiendan. llamar al key. la clave es
3. Entonces, automáticamente 1, 2, 0, 1, 2, Esto sería 3, 2 puntos, este valor. más para que lo
entiendan. lo mismo. Retocedan el video para que lo vuelvan a entender, pero realmente es
muy simple. la altura y además a la altura, sumale 2. Vamos a ver que nos tira. Actualizo, 3,85.
Está perfecto. Listo, esto funciona y está de 10. Quiero un diccionario. La estructura es key, 2
puntos, valor. Y separamos con comas. También se separa con comas, ¿OK? es decir, valor, es
decir, un clave, valor, esto va sin coma. Si tiene más de uno, se pone. uno. Si hay cinco
elementos, son cuatro comas. cuatro comas. la borro. datos compuestos en Python. ir
trabajando durante todo el curso. que, como lo digo, son muy importantes realmente. como lo
digo, son muy importantes. los vamos a estar trabajando durante todo el curso. los operadores
sección muy fácil. lo vamos a utilizar bastante. Así que vamos a verlo. los operadores.
Nuevamente estamos otro día vestido exactamente igual pero es el día siguiente grabando y
resulta que no se grabó nada y se no importa. Temperatura hoy 34 grados. Ahora mismo es
broma, me estoy calcinando. De hecho hoy hizo 36 calciné, me calciné. Pero bueno, aquí
estamos y ahora sí vamos a emocionadísimo para que se pueda llevar acabo. aritméticos que
básicamente son operadores Tenemos de hecho acá una imagen, esta que está acá,
aritméticos en Python son justamente estos o producto, división, módulo, exponente o
división qué hace cada uno. Vamos a crear un nuevo archivo que va a que va a ser operadores.
Simplemente operadores. ser con el primero y vamos a comentar todo. Suma y resta, Suma,
igual, vamos a poner 10 y 5. O no, vamos a poner 12 y 5. a 12 menos 5. Después tenemos otros
que son, pongo multi para que quede más fácil. Y multiplicación el famoso asterisco, barra o
slash para división. Entonces voy a de la división, de hecho. Una de las cosas que representa De
hecho, las fracciones son divisiones. Hay gente que sabe que si yo digo 3 quintos es 3 dividido
5. Si yo digo 4 2 enteros, porque es 4 dividido 2. Hay recibiéndose en una ingeniería y no podés
creerlo. está bien, no te voy a criticar. Bienvenido al mundo del igual 12 por 5. División igual 12
dividido 5. Hasta que es un dato float, flotante. Es decir, la división nos división nos de un
entero, por más que yo ponga 12 dividido 2. Nos va a devolver un float. Y ahora lo vamos a ver.
Ahí tenemos vamos a ver lo que es potenciación. Potenciación, que sería Entonces ahí
ponemos exponente igual 12 exponente 5. Es la quinta. En este caso puede ser 12 al cuadrado,
12 al caso es a la quinta. Después tenemos la división baja. División Es decir, como la división
común solamente que con doble, barra barra 5. Y luego tenemos el resto, que es resto o y es
resto es igual a 12 y el signo del porcentaje haciéndolo hasta ahora para que se pueda apreciar
tenemos estos signos que están acá que son cada uno. Vamos a poner print, suma. Si lo
ejecutamos esto Entonces nos muestra 17. Acá lo podemos ver el resultado, 17. muestra 7. Le
pedimos que nos muestre multi, nos muestra es 7 y multiplicación nos da 60 porque 12 por 5
es 60. Es un dato flotante, por eso puse un dato flotante, que no existen números enteros que
tengan coma, es un dato flotante. De hecho, vamos a ver que si yo pero no me dice 2. Lo
cambié mal. Es acá 6, ahora sí. es 2, pero acá es un dato flotante y no es llama type, que es
para ver el tipo de dato, para que ver, vamos a ver el tipo de dato es igual a type. Si yo de dato,
nos devuelve qué tipo de dato es. dato. Si yo por ejemplo pongo type 5, cuando lo ejecuto le
digo, che, a ver, ¿y qué es esto? Hola maestro, vamos a ejecutar, str. Str significa string, si yo le
paso una lista? Hola maestro, ah, ok, es una lista. Bueno, a ver, si le pongo tupla. Listo, es una
tupla. Si yo le paso un dato flotante, que si le paso división, por más que nos dé 2, dice que es
un dato flotante. Pero si yo le paso lo que me va a devolver es un int, porque división baja a
poner, devuelve entero redondeado hacia abajo. si yo le doy 5 acá, le doy 5, en vez de mostrar
que es este dato que está acá, nos va a mostrar 12 de 12 y 5. Lo que utilizamos nos va a volver
2. Y porque 2, algo, lo que está después de la coma lo borra y lo abajo. Por más que sea
2,999999, lo redondea hacia abajo, porque redondea hacia abajo. Y después tenemos el resto,
el resto es, nos muestra el resto. 12 dividido 5 es 2 punto dos. En 12 el número 5 entra dos
veces. 5, 10. Después viene 15, 12 hay 2. Yo acá pusiera, por ejemplo, 7, el resto va a ser una
vez. Del 7 al 12 hay 5. Entonces eso, es una bordeja, suelo usar el resto yo, pero a veces sí se
usa más cuando común utilizarlo. ¿Se usa bastante? Sí, pero no es como lo listo. De hecho esto
lo vamos a poner arriba, acá, ahí va. a poner tipo de datos para que nos quede listo, tipo de lo
que vienen siendo los operables aritméticos. Muy está bueno que los veamos porque son los
con los que está, me parece bien que podamos entenderlos para poder ver otro tipo de
operadores, ¿ok? Y ya acá estamos más prácticos, ¿no? Porque todo lo que veamos hacer
ejercicios. Así que cuando intentamos los próximos directamente con ejercicios. Así que vamos
prácticos. En este caso vamos a ver lo que muy importante, muy importante, porque es muy
útil, nos sirve para comparar dos valores, nos va la programación, en cualquier lenguaje
incluso. que vamos a verlos. y son los que tenemos en tenemos los dos iguales que sigue es
menor que es menor o igual es muy simple estuvimos en acuerdan mejor dicho lo que vienen
inequaciones con el igual y con últimos cuatro de abajo hacemos que lo veamos ok vamos a
verlo acá dentro de operadores primer operador es igual ok operadores ya saben ponemos un
valor a operador b así que vamos a para que no esté tan feo y vamos de es igual que es el de
dos primer igual estamos asignando estamos a pero no estamos comparando para por ejemplo
5 es igual que 6 por que 6 entonces nos va a devolver false o o true o false es decir o nos sirve
mucho para justamente adelante tenemos por ejemplo esto que de hecho ni siquiera hace
falta y ya el nombre de la variable lo dice de ahí ponemos igual 5 es abajo le decimos mira
vamos a poner mayor que mayor que es simple 5 es 5 es menor que 6 ahora vamos a ver
menor o igual entonces ponemos 5 es mayor o igual que 6 después es menor o igual que 6 y
acá tenemos el primer valor y lo comparan casos es 5 en todos los casos y el para que
tengamos una idea bien a mostrarlo print vamos a nos va a decir false por qué porque acá
ponemos distinto que va a si esto no se cumple si 5 es si 5 es distinto de 6 esto se convierte me
confundí acá es distinto porque 5 no es igual a 6 5 es tenemos mayor que 5 es mayor que false
mayor si actualizamos false grande menor que bien 5 es menor que si le ponemos menor que
nos porque 5 es menor que 6 es una tenemos mayor o igual 5 es o igual si ejecutamos no va a
es ni mayor o igual ni igual es menor che 5 es menor o igual que 6 no es menor si entonces se
cumple que ser igual si acá pusiéramos solamente esto fuera menor que ya sería igual en este
caso menor simple funciona tan simple como realmente es muy operaciones fáciles como por
voy a hacer un ejercicio vamos a que a es igual a 25 b es vamos a 5 b es igual a 10 c es igual a
20 por comparación comparación va a ser que nos devuelve vamos a poner entonces esto da
15 15 no es igual a es menor es menor que 20 esto es 5 todo tiene que ver che es verdad es es
menor y así podemos hacer ejemplos y usos prácticos que le ya que los usamos muchísimo en
toda programación no en general aunque menor usado de todos es este ya que no iguales por
ejemplo hay un usuario registrado nuestra plataforma los nombres ok entonces tenemos
usuarios entonces ponemos a lucas dalto no este es el usuario a decir usuario preguntarle che
mira a ver te lo voy a yo ahora pongo un campo de texto y y mi usuario es lucas bueno si
usuario de base de datos igual joya es más vamos a hacer la contraseña almacenada va a
almacenada dalto maestro y escrita la contraseña escrita escribí almacenada es igual dice que
falso entonces no lo dejamos vamos a ver vamos a ver el usuario de bueno escribió dalto
maestro escribió porque porque lo escribo con otras comillas con el mismo resultado y si lo a
ver también me va a dar el el string lo que importa es que entonces los textos los podemos es
igual a la contraseña después con algo que se llama a ver ahora vamos a poder actuar si esta
condición se cumple si esto es true entonces generamos un código si es false dos posibilidades
así que a esa sección condicionales. acá notamos un avance, ok? Vamos a poder notar un
avance y me gusta. interesantes con Python porque están en todos lados. Así que vamos a ver
lo que es un condicional. es un condicional en un voz en off. de código que nos dicen, va a
ejecutar. Si esto es false, no se va a ejecutar. Es solamente eso. mira, si esta condición no se
cumple, es false o falso, vamos a ejecutar el código de abajo. Estos son los if y el else. de que
esta condición sea falsa, ejecutamos este otro código. 18, le vamos a decir, sos mayor de edad.
Else, le vamos a decir, sos menor de edad. Y esto, en pocas palabras, es simple. a 18, sos mayor
de edad. básicamente no es mayor o igual a 18, o sea, que tiene menos de 18 años. Entonces
le decimos, sos menor de edad. Así de simple es la explicación de un condicional. Vamos a ver
cómo funciona en código. que va a ser condicionales. Vamos a crear una carpeta con ifElse.py,
vamos a ver. Hay varios, pero estos son los primeros dos. con esto. El código es el siguiente. If,
condición, dos puntos, acción. If, condición, acción. Esta es la estructura de un condicional. Un
condicional funciona así. Si esto que está acá es true, por ejemplo, nos devuelven esto, por
ejemplo, como true. Esto sería un true. porque dos no es mayor a dos. Entonces, esta acción
no se ejecuta. la acción se ejecuta. Acción se ejecuta. Ahora, if false, vamos a ponerlo con
mayúscula. Si esto es falso, la acción no se ejecuta. Es así. acá, este, este, este, este, todos los
que están acá se van a ejecutar. Si es falso, no se va a ejecutar. ¿Cómo podemos dar útil a
esto? Bueno, simple. sea edad. Edad igual 17. Y decimos, mira, if edad mayor. Maté un súper
mosquito de un uniazo. damos a decir print, puedes pasar, ¿OK? Entonces, vamos a verificarlo.
dice nada, porque no es mayor de edad. porque efectivamente, 19 es mayor o igual a 18. nos
dice también, podés pasar. dice nada. ¿Pero cómo hacemos? Che, mira, a ver, si le ponemos
18, podemos actuar si el código no se cumple? acá, estamos haciéndolo mal. que esto es un
lenguaje identado. todo lo que escribamos acá dentro forma parte de Python, ¿ves? Forma
parte de la condición. Entonces, si lo ejecuto, ¿ven? No se cumple. Pero si ahora pongo 19, por
ejemplo, me tira. esto que está acá, forma parte del condicional. que ir abajo del bloque, es
decir, acá. no print no podés pasar. Entonces, vamos a verificar si funciona. Podés pasar,
porque tiene 19. A ver, si tiene 16 años, no podés pasar. Porque es menor de edad. Entonces,
básicamente, esto funciona así. podés pasar. Si no, le decimos no podés pasar. del if. del else.
parte. Print no forma parte de ninguna condición. pasar, condición. pase lo que pase. esto,
¿ven? Y actualizo. Esto de acá se ejecuta pase lo que pase, porque está fuera de todas las
condiciones. va a decir que no podés pasar. Actualizamos, ¿ves? Podés pasar. Pero el de abajo
se ejecuta igual. ejecutar. O esto o esto, alguna de las dos. Si no ejecuta esta, ejecuta esta. Si le
sacamos el else, ejecuta esta o ninguna. ponemos un else. El else sirve para eso. Por ejemplo,
les pongo un ejemplo. ¿no? ¿Qué es? Si, por ejemplo, la contraseña, ¿no? que teníamos en
operadores de comparación. Vamos a copiar esto. Y lo vamos a pegar en el else if, acá.
Contraseña almacenada, contraseña escrita. Entonces, acá podemos hacer la comparación. la
contraseña escrita, vamos a decirle iniciando sesión. Y listo, que inicia la sesión. Si no, le vamos
a decir contraseña equivocada. Intente de nuevo. Vamos a verificarlo. Venimos acá y nos dice
iniciando sesión. Porque coinciden. almacenada en la base de datos, por ejemplo. nosotros.
una base de datos y extraer el dato que está alojado. de que se datos se registren en la base de
datos y después compararlos. Che. esta, ¿no? Que la sacamos de la base de datos. contraseña
que me registró. Si coincide, lo dejamos pasar, iniciando sesión. sesión y efectivamente hacer
que funcione. equivocada. A ver, vamos a poner cualquier otra cosa. Ponerle que le pifié por
una letra. Me equivoqué con una letra. Actualizamos y contraseña equivocada. Bueno, intento
de nuevo. mayúscula. Tampoco me deja pasar porque es key sensitive, es sensible a
mayúsculas y minúsculas. Si me equivocas, intenta de nuevo. Bueno, intento y pongo maestro
con M. Listo, iniciando sesión. Ya no funciona. Perfecto. elseif.py. El elseif es otra condición
extra. a poner, vamos a crear una variable que sea. Vamos a decirle plata igual 10,000 dólares.
O plata 100,000 dólares. 100,000 dólares por mes. Vamos a llamarlo ingreso mensual, ¿no? Si
tu ingreso mensual es de 100,000 dólares, vamos a crear un programita que sea. a 1,000
dólares, en Latinoamérica. cosa, ¿no? Voy a poner otro if. If ingreso mensual es mayor a
10,000 dólares, parte del mundo. nada de esto, print sos pobre, por ejemplo. Bueno, vamos a
ver si funciona. Lo ejecutamos y tiro un error. acá. Bien, actualizamos de vuelta, corremos.
estás bien en cualquier parte del mundo. que me diga una sola bien económicamente Yo
quiero que me diga una cosa concreta. 5,000 dólares, ¿qué pasa? Con 5,000 dólares estoy bien
económicamente, pero no bien en cualquier parte del mundo. Entonces actualizo. sos pobre,
pero cómo siguen los 5,000 dólares. Bueno, para esto usamos el else if. If. Si el ingreso
mensual es mayor a 10,000 dólares, Estás bien en cualquier parte del mundo. 1,000 dólares.
por mes. de 1,000 dólares En caso de que sea de 1,000 dólares por mes, le decimos, estás bien
en Latinoamérica. En caso de que no esté bien en ningún lado, ahí sí le decimos, sos pobre.
que else if en Python no se escribe así. Se escribe elif. Else if se escribe como elif. ¿Qué
significa else if? Es decir, si la primer condición no se cumple, no vamos al else. Vamos a darle
una segunda condición. 10,000, es 5,000, no vamos a decirle que es pobre. Vamos a ver si
tiene más de 1,000 dólares. Está bien, a 10,000 no llega. Vamos a ver si llega a 1,000. Si llega a
1,000, le decimos, estás en Latinoamérica. sos pobre. Entonces, actualizamos. Estás bien en
Latinoamérica. Si tiene 500 dólares por mes, sos pobre. OK. en cualquier mensual es mayor de
esto y esto no se ejecuta. Ninguna de las dos. pasa a la segunda condición, que es esta. Y si
esto se cumple, ejecuta esto. Pero esto no lo ejecuta. condición tampoco se cumple, recién ahí
ejecutamos el else. Y el if, podemos poner muchos. poner, no sé, por ejemplo, estás bien en
Latinoamérica. poner, estás bien en Argentina. pero con 200 yo, Venezuela, uno está bien.
Entonces, venimos acá, actualizamos. en cualquier parte del mundo. ¿qué nos dice? Con 900
dólares. Con 900 dólares nos debería decir, está bien en Argentina. Sí, porque no llegamos a
1,000 dólares, pero tenemos más de 500. Si tenemos más de 500, estamos bien en Argentina.
y con 300 dólares, estás bien en Venezuela. Y con 90 dólares por mes, ¿qué hago? Y sos pobre.
Bien, perfecto. Soy pobre con 90 dólares por mes. Así es como funcionan los else IF. es muy útil
y vamos a trabajar más adelante. anidados, que es un IF adentro de otro IF. un IF adentro de
tengamos que trabajarlos. condiciones al mismo tiempo, podemos usar un IF anidado, que es
lo que les decía recién, ejemplo. dólares, decimos, estás bien. decimos, IF yo el gasto mensual
es menor a 7,000 dólares, ahí le decimos que está bien. sí, estás bien. El else, el else lo vamos a
poner acá, porque si lo ponemos abajo el else, ya es el else de este IF, no de este. Si lo
ponemos al mismo nivel jerárquico, en la misma línea, es el else de esto. Si lo ponemos acá, es
el else de esto. De hecho, fíjense que si lo tiro para atrás, me tiro un error, porque esto es
incorrecto. un else, solamente pueden ir después de un else. no funcione, una banda. Hay que
ver si te alcanza. F5 y ahora me dice, sos pobre. por mes dólares por mes, y gasta 2000. Bueno,
me va a decir, ahora sí, estás bien. Ahora, pero gasta 8000 dólares por mes. si te alcanza. Pero
si el tipo gana 70000 dólares por mes, hay que ver si te alcanza. ganando 72000. Entonces hay
un error. retorno mensual. es mayor a 3000 dólares. y lo que gasta es de 3000 dólares, le
decimos, ahora sí, estás bien. me va a decir, te alcanza. Ahí más o menos vamos agarrándolo.
¿Me explicó? Así es más o menos cómo funciona. si el tipo gasta más de lo que ingresa, está en
déficit. ¿Cómo lo hacemos? Simple, acá le decimos, si el gasto es menor, es menor que cero, le
vamos a decir, estás en déficit. Acá vamos a poner un else if. es mayor o igual. No, mayor a
cero. ver si te alcanza. Acá está. preguntamos si es mayor que 3000 dólares. estás bien. es
menor a cero, restamos lo que gasta, está en 8 mil dólares de pérdida. Entonces le decimos,
estás en déficit. Y nos dice, estás en déficit. a 92 mil dólares por mes, y estás bien, pa, estás
bien. Y si ahora gasto, gano 81 mil y gasto 80 mil, que ver si te alcanza. Ahí tenemos
justamente un programa bien trabajado. con if y else if. if anidado. Vamos a poner if anidados
y else if elif. Recuerden que siempre es elif. de poner elif, elif. los operadores de comparación.
si quisiéramos poner dos condiciones, por ejemplo, lo podemos hacer. podemos hacer como
cálculos combinados, digamos, pero cálculos combinados en serio. puse operadores de
comparación. a hacer eso acá. Pero no, lo vamos a hacer ahora en los operadores... Lógicos.
and y not. Esos tres, simple, or, and y not. tres que son los más comunes. a verlos. son los
operadores lógicos, para eso vamos a darle en operadores a ponerle operadoresLógicos.py Y
acá vamos a trabajarlos tenemos otro que es OR y tenemos otro que es NOT AND es un
operador que compara uno y otro que vayamos viendo, todos uno por uno 2, 3, 4, vamos a
ponerle 5, 6, 7, 8, 9 y 10 resultado true y true true, nos va a devolver true true, perfecto
resultado 2, según esto nos va a devolver falso que una de las dos condiciones que le pasemos
sea verdadera así que si actualizamos nos devuelve falso puse, ah, ok, resultado 2, ahí, ahora
sí, bien puesto, a ver ahora sí, falso, bien, porque esto es falso ver para que el operador AND,
que es este que está acá, este signo o sea, el valor A y el valor B que le pasemos, tienen que ser
ambos verdaderos todo falso resultado 5, que es este que está acá a ver con el segundo, qué
pasa si le pasamos uno verdadero y otro falso pasa si lo pasamos lo mismo pero al revés,
diferentes posiciones qué pasa si le pasamos los dos datos falsos, casos nos devolvió falso,
¿qué significa eso? está acá, nos va a devolver falso solamente si las dos condiciones no se
cumplen devuelve true si ambas se cumplen, sino no se cumple, es como el otro extremo, ¿no?
solamente nos va a devolver falso cuando ambas son falsas, es simple verdadera? No, ¿ah? Y la
otra? Sí, entonces te devolvemos true ya nos devuelve todo verdadero que básicamente nos
invierte el valor falso, si le damos un valor false, lo convierte en verdadero le pasamos false,
nos da true y de alto nivel, porque le decimos NOT TRUE y si no es verdadero entonces es falso
es falso es verdadero, o sea que es verdadero falso, porque si no es verdadero es falso 10,
true, no es falso, es verdadero un valor que sea, no sé, a ver, 2 es igual a 2, esto es verdadero a
2, entonces si le decimos, a ver, decime nos devuelve a 2, entonces esto se convierte en true, y
esto nos va a invertir el valor le pasamos false nos da true 29 por ejemplo, 2 es mayor que 49,
esto es NOT FALSE es true, así que técnicamente nos va a devolver true contrario de lo que le
devolvamos acá, así vez con esto, todo lo que vamos haciendo les recomiendo que ustedes
escriban código por algo me descargué junto a ustedes hasta el editor de código junto a mí,
hagan los mismos ejercicios, pausa al vídeo y jueguen un ratito de lugar, si algo les tiene un
error, busquen, Google, todo lo van a encontrar la lógica, porque esa es la forma en la que van
a aprender y acá estamos con el código, si yo estamos en el baile, bailemos y escribanlo,
llevenlo en código, jueguen con lo que aprendimos ahora puedan hacer cosas lo que veamos
hasta ahora les quede vez, según la ciencia la posibilidad de que de que se lo olviden es del
90% después de que lo vieron, lo repasan al día siguiente y lo repasan una semana después
más probable es que nunca se les olvide, es lo más probable hacen al ratito lo repasan, hacen
ejercicios o el triple de posibilidad de no olvidárselo porque si sus probabilidades de acordarse
son de 2 o 3, que es un montón punto del vídeo pongan pausa y pónganse listos para seguir
con lo siguiente, con el de los métodos de los strings, vamos a ver qué es un método y por qué
de cadenas, etc. con la siguiente sección de cadenas. justamente aplicadas a lo que viene
siendo un objeto. se pueden considerar objetos. un texto, es un objeto. Un array, perdón, una
lista, es un objeto. los métodos son funciones aplicadas a objetos. Una función es, por ejemplo,
print. nombre de la función, nombre de función, podemos darles parámetros, para convertir o
hacer cosas con él. print, que lo que hace es nos muestra en pantalla esto que le estamos
pasando. el valor que le damos. es y nos lo devuelve. es. Esto, por ejemplo, nos devuelve el
float. Esto nos devuelve un string. Esto también. que le damos y nos dice qué hace. Las
funciones tienen esa finalidad, ¿no? damos para devolvernos o hacer cosas con ellos. propios
métodos, sus propias funciones. cuáles son las funciones que Python nos da por defecto para
hacer con las cadenas. y vamos a poner, no acá adentro, sino que por fuera de todo. Más fácil,
métodos. file y acá sí, métodos-cadenas.py. otros si no nos intervienen. que son las cadenas.
Vamos a poner cadena 1. Va a tener, por ejemplo, un texto. Hola, soy Dalto. Cadena 2.
bienvenido, maquinola. Esos dos textos. Voy a jugar con estos dos textos. a ser ver las
diferentes métodos que hay. que vamos a ver. son interesantes. ver todas las cosas que
podemos. Nos devuelve todos los atributos de un objeto. cadena 1 y actualizo, fijan cuando lo
ejecute. Vamos a correrlo. No nos devuelve nada. valor que deja suelto. haciendo, tenemos
que envolverlo en un print. Print. Y ahora sí vamos a ver qué es lo que hace. qué nos dio esto.
Esto que nos da acá, esto que nos devolvió. Justamente vamos a subir para arriba. que
podemos hacer con esto. encode, is digit, lower, join. Digamos, podemos removerles prefijos.
con esta, justamente con este objeto que le pasamos. 4, cualquier número, me da otro tipo de
cosas. Son parecidas, pero son otro tipo de cosas. ¿Por qué? Porque justamente son datos
diferentes. una forma, los textos. De hecho, si yo por ejemplo quiero una lista, y actualizo,
fíjense en que ahora nos da otra cosa. Porque las listas tienen otros métodos propios. métodos
con un texto. En este caso, cadena 1. Así que vamos a verificar y ver qué onda. Vamos a ir
probando los distintos métodos. Bien, vamos a poner resultado. Resultado y va a ser igual a
todo lo que hagamos. Si acá pusiéramos resultado igual, dir. Cadena 1. print, resultado y lo
ejecuto, tenemos lo mismo. método que vamos a ver. Que lo que hace es convierte toda
mayúscula. Si ponemos acá upper, lo que hace esta cadena, mayúscula, este dato a una
mayúscula. error. Es decir, no va a estar funcionando. ¿Por qué es esto? no los trabajamos de
esta forma. Los métodos en Python son seguidos de. Es decir, dir, por ejemplo, no era un
método, era una función, es una función de Python. que ser ejecutado de la siguiente forma. Y
es poner cadena 1, punto, upper. de esta cadena. a ejecutarlo, nos va a devolver HolaSoyAlto.
a mayúscula. De hecho, yo podría hacer directamente esto. Hola mostro cómo andas. si le
decimos que nos lo pase, es lo mismo, pero lo paso a mayúscula. Así es como funcionan los
métodos. Los métodos son el dato, punto, el nombre del método y los paréntesis. Dato, punto,
método y los paréntesis. que ponerlo. cuándo no. esta forma. a mayúsculas. Todo se convierte
en mayúscula. Así como tenemos la función upper o upper, que es como para convertir a
mayúscula, minúscula. de upper, le pongo lower, si yo actualizo. Ahora me va a convertir todo
a minúscula. Y ahora ya me la convirtió a minúscula. ¿Por qué? Porque el lower convierte a
minúscula. Así que vamos a dejarlo notando todo. Vamos a venir acá y poner esto así. Vamos a
poner mayúscula, convierte a mayúsculas. De esta forma convertimos a mayúscula. Vamos a
poner upper. Vamos a copiar y pegar. a minúsculas. Y en vez de upper, poner lower. lo que
está sucediendo. Acá está terminado. Vamos a hacer un poco más chica. Mucho mejor.
convertimos a minúscula. Después tenemos otro más, para convertir. No convertimos toda
mayúscula ni toda minúscula. Convertimos solamente la primer letra en mayúscula. Primera
letra en mayúscula. Entonces ponemos. Primer letra mayúscula. Igual. Cadena uno. Punto.
Capitalize. Y acá si lo actualizamos y le decimos. A ver, mostrame esto. Primera letra
mayúscula. A ver qué nos muestra. Nos dice. Hola, Soy Dalto. y la H se la pongo en minúscula,
por ejemplo, Y no solamente me convierte la primera a mayúscula, sino lo que hace es.
Primero hace como si fuera un lower. Convierte todo a minúscula. Porque fíjense en que Dalto
estaba con mayúscula. Y acá me lo dejó en minúscula. todo a minúscula y después en la
primera letra la deja a mayúscula. Así es como funciona esta cadena, digamos. A ver, puse el
texto como estaba antes. hacemos otra cosa. Acá ya estamos retornando otro tipo de valores.
Retornar un valor significa devolvernos. Porque cuando ejecutamos una función, es decir,
nosotros ejecutamos una función y lo que ejecutamos nos retorna algo. en de repente esto.
Decir esto y decir esto es lo mismo. Porque esto, lo que nos va a retornar es esto. un valor. de
este código es como que nos devuelve algo. da, ¿no? Es como el resultado de la ejecución.
estaba antes. find es buscar un valor que le pidamos. Por ejemplo, buscamos una cadena en
otra cadena. Es simple. Vamos a ver. Busqueda find. find. buscar hola. la cadena hola.
Busqueda find y acá me va a devolver cero. ¿Por qué me devolvió cero? encuentra lo que
nosotros le pedimos. A ver, buscame la letra A. ¿En dónde encontrarás la letra A? Y mira, la
encuentro en la posición tres. como le dije, es un objeto. que quiera. Entonces tiene
posiciones. Una cadena de texto es un conjunto de caracteres. Esto es el uno, dos, tres, cuatro.
Pero ¿cómo es el cuatro? me devuelve el tres? contamos de zebra uno. Una matriz se cuenta
de cero en adelante. a contar desde cero. Entonces este valor no es uno, es cero. Si este es
cero, este es uno. Si este es uno, este es dos. Si este es dos, este es tres. Entonces tenemos
cero, uno, dos, tres. la letra que le dijimos está en el tres. La tercera posición. forma. A ver, ¿en
dónde encontramos una S? ¿En qué posición tenemos una S? Bueno, en la posición cinco.
Cero, uno, dos, tres, cuatro, cinco. Efectivamente. A ver si me encontrás una D. Uy, nos
devolvió menos uno. No existe menos uno. No hay forma de que sea menos uno. uno cuando
uno encuentra un valor. mayúsculas y minúsculas. Es justamente key sensitive. Entonces acá
pusimos una D mayúscula. hubiera dicho que estaba en la posición nueve. siete, ocho, nueve.
como números. Esto también es un espacio. Esto sí existe. Existe y es un carácter más.
Entonces cuenta. Está bien. Cumple con la condición. menos uno. uno? devuelve cuando no
encuentra algo. eso es lo que estaría, digamos, devolviendo en caso de no encontrar nada. Si
no encuentra nada, nos devuelve menos uno. Buscar una cadena en otra cadena. hay
coincidencias, devuelve menos uno. Después tenemos otra función que es igual. La diferencia
es que es índex. Buscamos una cadena en otra cadena. Búsqueda, índex y es igual. Cadena
uno, punto índex. vamos a poner búsqueda índex. Esto nos va a devolver nueve. Funciona
exactamente igual. Le pasamos la A, nos va a devolver tres. Listo. Está funcionando igual. Cero,
uno, dos, tres. Funciona. O sea, evidentemente está bien. función find o índex si funcionan
igual? encuentra nada, nos devuelve menos uno. a ponerle un nueve, por ejemplo. debería
devolver un error. Como por ejemplo acá, en la D minúscula. Vamos a poner la D minúscula.
Nos tira un error. Nos lanza una excepción. excepciones y cómo manejarlas. manejar las
excepciones para que en caso de sepamos manejarlas y saber qué hacer con el programa para
que no se trabe. se traba ahí y no avanza más. Y eso no puede suceder. Entonces tenemos que
aprender a manejarlas. índex es que índex, en caso de no encontrar una coincidencia, nos tira
una excepción. Entonces vamos a agregarlo. Si no hay coincidencias, lanza una excepción. Y ahí
tenemos esto que es importante. Entonces está bueno tenerlo en cuenta. Así que vamos a
darle D y D minúscula. y corremos el código, nueve. Efectivamente funciona. Después acá me
noté otra función más. Si se fijan, las estoy separando. La primera es una función. No es un
método, es una función. Es decir, método y función no son lo mismo. no todas las funciones
son métodos. específicas de objetos. un método. Ponemos dir dato. No ponemos dato punto
dir. Entonces no es un método, es una función. Vamos a ver más adelante bien cuáles... a
objetos, vamos a entenderlo bien. Porque vamos a poder crear objetos. a poder aplicarle
funciones propias de ese objeto. Por ejemplo, un perro puede ladrar. un perro. No podemos
decir al programa ladrar. a un objeto. Entonces ahí sí le podemos decir ladrar. Me explico. a
programación orientada a objetos. aplicada a un objeto. los métodos por diferentes tipos de
métodos. el valor. Estos métodos buscan un valor. Estos métodos consultan otra cosa. Es decir,
nos devuelven también datos. o alfanuméricos. a ver. que vamos a ver junto con estos que
están Así que vamos a seguir con estos. Esto es simple. ver que si es numérico devuelve true.
Fácil. Si es numérico, devolvemos true. Si no, devolvemos false. Es numérico. Y acá ponemos
cadena1 punto isNumeric. Y ahí ejecutamos el código. Si es numérico, vamos a devolver true. A
ver. ¿Es numérico? Vamos a acuérdalo a ver qué nos dice. Falso. ¿Qué pasa si yo de repente le
pongo números? Vamos a ver. Les tiré números. Son solamente números. Ejecuto de vuelta.
Bueno, acá me lanzo una excepción. ver si lo encuentra. Me lanzo una excepción por este
motivo. Ahí va, ahora sí. Lo utilizamos y... Bueno, no. Justamente no hay un 1. Vamos a poner
un 5 que sabemos que hay 5. Nos devuelve true. Porque es valor numérico. Aunque sea un
texto, esto es lo loco. Es un texto, no es un valor numérico. ser esto. es un número. Porque a
ver, sí, está bien. Es un texto que tiene solo números. Bueno, entonces vamos a verificarlo.
Isnumeric. Si es numérico, nos va a devolver true. Ahora vamos a comprobar si es
alfanumérico. Si es alfanumérico, devolvemos true. Es alfanumérico igual cadena punto is alfa.
Y ahí lo corremos. ¿Por qué nos tira? Is es alfanumérico? Nos dice que es falso. ¿Por qué no es
alfanumérico? No alfanumérico. Así que vamos a agregarle una letra ahora. Vamos a agregarle
as. Vamos a correr de vuelta. Vamos a ver probando con cualquier otro texto. Y sí, y punto. Y
un carácter especial. Vamos a ver ahora. A ver qué nos tira. Nos tira que es falso. Nos dice que
es falso, que es falso. Está funcionando. Ahora vamos a ver si le sacamos los números. Vamos a
correrlo. Bueno. Siempre hay un problema. Vamos a ponerle la F. Que sabemos que la tiene.
Lo corremos de vuelta. ¿Por qué no dice que es falso? Porque tenemos caracteres especiales.
Vamos a probar con solo un texto. Hola máquina, soy Dalto. Vamos a sacarle la coma. Hola
máquina soy Dalto. A ver ahora si me dice que es alfanumérico. A. Actualizamos de vuelta. los
caracteres desde la A a la Z. A, B, C, D, E, F, G, H, hasta la Z. Las letras del abecedario. El espacio
no es alfanumérico. Entonces tenemos que sacarlo. Vamos a ver qué pasa si sacamos los
espacios. Sacamos los espacios. Volvemos a actualizar. Y ahora nos dice que es true. Porque los
espacios no son caracteres alfanuméricos. Son caracteres especiales. el espacio, el slash, los
puntos, las comas, etc. nos va a devolver. Este método nos va a devolver true. Es interesante
esa propiedad. Así que nada. Para tener en cuenta. Después tenemos count. de ocurrencias de
una subcadena en la cadena dada. Lo mismo que antes. dice cuántas veces se encontró una
coincidencia. Acá arriba, por ejemplo, ven. Si no hay coincidencias, devuelve 1. Bueno, vamos a
copiar y pegar. otra cadena. Devuelve la cantidad de veces que coincida. Si yo, por ejemplo,
pongo, contar coincidencias. Más fácil. Contar coincidencias. Cadena 1, punto, count. Y acá
dentro ya tengo que pasarle un dato. lo que vamos a buscar. Bueno, vamos a buscar la letra A.
¿Cuántas veces está la letra A? Lo ejecutamos. Ok, la letra A está 4 veces. Efectivamente, está
4 veces. el D. Por ejemplo, la D mayúscula. Una vez. Efectivamente, está solamente una vez.
nos va a lanzar un error. A ver qué nos tira si no se encuentra. Y si no se encuentra, nos dice
que es cero. Porque está cero veces. le pasamos acá, acá arriba. Yo tranquilamente podría
poner ahora, hola. Así tal cual. Y me va a decir que está una vez. orden está acá. Pero si yo
pusiera hola máquina. Cuando yo actualizo. Ahora me va a decir que se encontró dos veces.
vez. Incluso, si yo pusiera, por ejemplo, la ma. Debería tirarme como que hay una vez, ¿no? A
ver, vamos a verificar. La ma. Porque acá está la máquina. Hola, termina con la. Y máquina
empieza con ma. Entonces, por ahí no funciona, ¿no? Vamos a ver si funciona. Y nos dice que
cero. Ahora, si lo juntáramos. Y nos dice que uno. Porque la ma está todo junto. Si lo
separamos. Nos dice que ahora de vuelta no hay coincidencias. Si lo volvemos a separar acá.
Hay una coincidencia. Porque esto es un texto tal cual. Con los caracteres especiales incluidos.
Todo el texto tal cual. Tiene que estar en algún lugar de esta cadena. Después tenemos Len.
Que también cuenta. Pero lo que cuenta Len. cadena. Así que vamos a verificarlo. Devuelve.
Vamos a cambiar la definición a esto. Porque es mejor. Contamos las coincidencias de una
cadena. Dentro de otra cadena. Devuelve la cantidad de coincidencias. Está mucho mejor.
Contamos coincidencias de una cadena. Y acá en la segunda. Que es el método Len. Contamos
cuantos caracteres tiene una cadena. Contar caracteres igual cadena uno punto Len. Este Len
es muy utilizado. En matrices también. Ya vamos a ver cómo lo usamos en matrices. Ahora
ponemos por ejemplo. Contar caracteres. ¿Por qué nos tiene un error? Porque Len no es un
método. Len es una función. Entonces tenemos que poner. Len. Cadena. Uno. Entonces ahora
sí ya queda funcionando. Lo actualizamos. Vemos si corre. Y ahora sí funciona. No dice que
cadena uno tiene 27 caracteres. Efectivamente tiene 27 caracteres. ¿Ok? Fácil de contar. Si de
repente dejo esto. Me va a decir que tiene solamente 3 caracteres. Ok. Vamos a poner la H.
Actualizamos y nos dice que tiene 3. Efectivamente tiene 3. Si dejamos solamente ponemos
hola. Vamos a ver cuanto tiene. Nos dice 4. Entonces funciona. Lo que hace Len. La función
Len. Después tenemos dos que son muy interesantes. Que son ends with y starts with. Estos ya
son métodos también. Y también son para verificar. Entonces venimos acá y ponemos.
Verificamos si un método empie... Si una cadena. Empieza con otra cadena dada. Si es así.
Empieza. Con. Es igual a. Starts with Acá le preguntamos. Esta cadena empieza con H. Por
ejemplo. Y efectivamente si empieza con. Nos debería de volver true. Y efecta. Empieza con H.
Empieza con. O. Hola. Ahora. H minúscula. Nos devuelve falso. Empieza así con. H. H
mayúscula. Y O mayúscula. No. Es falso. Porque empieza con H minúscula. Perdón. Con H
mayúscula. Y O minúscula. Entonces. Esto lo que hace es verificar. Es muy interesante. Esto por
ejemplo nos va a devolver true. ¿No? Y después lo mismo. Porque en vez de empezar.
Ponemos. Termina. Y acá también vamos a cambiarlo. Y acá en vez de poner starts.
Remplazamos start. Por end. Ahí tenemos ends. With. Verificamos que la cadena termine con.
Vamos a poner termina. Termina con. La cadena. Termina con H. A ver con que termina. Con
la. Termina con A. Termina con la. O no. Termina con la? Si. Hola? Termina con la H? Con la H
empieza. Así es como funciona este método. interesantes. Tenemos. El primero nos reemplaza
un valor. Si yo por ejemplo tengo esta cadena que dice. Vamos a reemplazarlo. Remplaza un
pedazo de la cadena dada Por otra dada. Entonces decimos por ejemplo. Cadena nueva. A ya.
Va a ser igual a. Remplazar. Y acá. Acá tiene dos parámetros. El primer parámetro. Es el.
Antiguo. Es decir. Vamos a reemplazar. La. Vamos a reemplazar por ejemplo la. Por. Lu. En vez
de hola. Vamos a reemplazarlo por. holu. Y este la. Lo vamos a convertir en un. Vamos a decirle
que nos muestre. holu En vez de reemplazar. Ahora quiero reemplazar la cadena entera.
Máquina. Vamos a ver qué onda. Y ahora vamos a reemplazar. Hola con H minúscula. A ver
qué pasa. No pasa nada. Nos devuelve la cadena anterior. Porque si encuentra una
coincidencia. Esto es así. Si encuentra. Una coincidencia. En la cadena que le pasamos. Esa
coincidencia la va a reemplazar. Por lo que le pasemos acá. En caso de no encontrar.
Coincidencias. Nos va a devolver la cadena anterior. Si el valor 1 se encuentra en la cadena
original. Reemplaza el valor 1 de la misma. Por el valor 2. Si este valor. Lo encontramos. En la
cadena original. Reemplaza. Dentro de esta cadena. Por esto. Si yo por ejemplo. Le dijera. Que
reemplace. Esto me lo va a encontrar. Está acá. Entonces lo va a encontrar. Que va a hacer. Me
va a reemplazar. En donde encuentre esto. Lo va a borrar. Lo que haría sería. Che mirá. Esto
me lo va a reemplazar. Lo que esté acá. Me lo reemplazaría. Y así quedaría el string. Vamos a
ver que pasa. Vamos a actualizarlo. Y a ver. Esto es lo que nos da. Básicamente reemplaza. Una
cadena. Por otra. Para que nos sirve. Si yo te pongo. Como. Estás. Yo tengo. Todas las palabras
separadas por coma. Que puedo hacer. Tengo espacios. Toda una cadena. Que está hecha con
espacios. Cuando queremos ver la nueva cadena. Tenemos la cadena sin espacios. Y ahora por
ejemplo. A cadena nueva. Nueva. Dos. La vamos a convertir. Solamente para que la primer
letra. Tenga mayúscula. Y ahí si se fijan. Acá tiene todo mayúscula. Vamos a correr el código
ahora. Y ahora solamente. Opa. Qué pasó ahí. Bueno estamos mostrando cadena nueva.
Vamos a mostrar cadena nueva. Nos mostró. La cadena con todas mayúsculas. Al principio de
cada letra. Y ahora como le dimos capitalice. A la cadena nueva. Que es esta que está acá.
Todas con minúscula. Excepto la primera letra. Que está mayúscula. Con estos métodos.
Podemos justamente trabajar. Las cadenas y. Jugar un poco con estas mismas. Así que esto lo
voy a borrar. Para que no se nos mezcle. Y ahí más o menos tenemos. Las funcionalidades más.
Comunes. Que las cosas más comunes. Que se les posee con las cadenas. Dentro de Python.
Después el último método es especial. Porque el último método. Que nos va a devolver una
matriz. O sea una lista. ¿Cómo es eso? Esto que está acá. Nos va a separar. Cadenas. Con la
cadena que le pasemos. Así de simple. Cadena separada. La cadena separada. Split. ¿Por qué
queremos separar las cadenas? Vamos a hacer que cada coma nos separe. O sea que nos
separe las palabras. Por comas. Acá tenemos una cadena. Acá otra. Y acá otra. Queremos que.
Cada vez que hay una coma. Nos separe la cadena. Vamos a ver que nos devuelve. Si
actualizamos. Nos devuelve una lista. Si preguntamos. ¿Qué tipo de dato es? Type. Porque
efectivamente. Lo que hace es. Crea una lista. Este método. En el que separa. Todo lo que le
pasamos. Y lo agrega. Crea una lista con. Este valor. Separado. Este la separa. O sea. Como le
pasemos. En este caso. Le pasamos una coma. Entonces me separa. La cadena en comas. Acá
hay. La cadena 1. Cadena 3. Cadena 4. Y las agrega todas a una lista. Que la podemos
encontrar. Acá. De hecho. Si queremos. Podemos decirle. Mostrame. ¿Qué tenés en cadena
separada? Y nos dice. Cero. Así. Es la primer cadena que agregamos. Que es. Así es fácil y
funciona este método. La verdad que es interesante. Y lo recomiendo mucho. Porque. Aparte
de los métodos de cadenas. Estos son cosas que podemos hacer con cadenas. Más adelante
vamos a ver otros tipos de métodos. Incluso que son más complejos que estos. Pero ahora
realmente no vamos a necesitarlos. Sino que más adelante sí pero ahora no. Lo que sí vamos a
necesitar. Son métodos para poder trabajar con listas. Porque estos son solamente métodos
de cadenas. métodos para trabajar con listas. programando con Python. Así que. los dejamos
con los métodos de listas. Vamos. ahora vamos a ver métodos de listas, es decir, para
operarlas. Bueno, primero vamos a venir a métodos, cadenas y vamos a crear un archivo
nuevo que arrancar, también me armé una listita con con el primero que no es un método, es
una función, esta función de list, que list justamente crea si decimos lista igual list, hola, dalto
34, acá le decimos print lista, este caso nos devuelve una excepción. porque esto justamente
toma como parámetro realmente una lista. Podemos ver que cuando lo actualizamos no tiene
sentido hacer esto para crear una tuplas y demás. Bueno, podemos usarlo, sepan que con list
también podemos crear listas. vamos a ver el primer método de las listas, estaba cuando
trabajamos con los caracteres. igual, hola, si le decimos que me diga cadena a cadena punto
len. Esto no funcionaba porque len, cadena y lo ejecutamos, vamos a buscar resultado, acá
adentro. Bien, nos devolvía la cantidad pasa si ahora lo hacemos con la lista? Vamos a verlo. la
cantidad de elementos de la lista. Yo, otro elemento, por ejemplo. Ahora me va a devolver
tres, cuatro, cinco, seis. Esto es true, por lo que nos Cantidad, elementos, igual, len. Entonces
elementos de la lista. Después tenemos otra más, a la lista. En este caso vamos a decir
agregando igual no, agregando con append. Porque tenemos append, con insert o extend. Así
que vamos a poner y vamos a agregarle un elemento llamado jajajaja. si agregamos ese
elemento, la lista tiene otro llamamos sobre a la lista y ahora la lista fue no fue modificar a esta
variable que estamos creando, Entonces de esta forma, a la misma lista le mostramos acá. Así
que funcionó. Vamos a ver qué nos tira none. ¿Por qué? Porque no es un valor que y ahora sí,
solamente trabajamos con la lista. De la lista. Ahora también tenemos insert, que también con
extend agregando un elemento a la lista en un por ejemplo lista.extend, acá primero pongo la
posición. 2 y en la posición 2 vamos a agregar el elemento. nos muestra la lista. Ahora, si
actualizamos la lista. no es extend, es insert. Estábamos viendo insert. agregar una lista. A ver
si actualizamos, si actualizamos y ¿Ven? En el índice 2 nos agregó toma, mamá. 0, 1, 2. O sea
perdón, antes del 34, porque este es el elemento índice 2 va a ser este. O sea, básicamente si,
che, está acá. O sea, que el que antes era el índice 2, era 0, 1, 2 y ahora es 0, 1, 2, 3. ¿Por qué?
Porque el índice 2 no lo podemos hacer. En insert decimos, che, mirá. quiero que en el índice 2
esté este elemento. Y si ya existe como funciona. Y después tenemos la última que es varios.
Con extend no podemos agregar uno. Agregamos varios. Punto extend. Y acá, por ejemplo,
podemos agregar está. Actualizamos. Y si se fijan, esto me tira un O sea, los elementos de la
lista no los agregamos así. Los parámetro nos pide una lista? Bueno, le tenemos una lista a otra
lista. Así que tenemos que elementos. Ahora actualizamos. Y ahora sí se agrega una lista. La
lista nos la divide False, 2023. Acabamos de agregar estos dos elementos a la Acá le pasamos
elementos separados. Le podemos true si queremos. Le podemos usar lo que queramos.
adentro de los corchetes. Porque esto significa que le pop. Que al contrario de agregar, ya
estamos eliminando. mejor dicho, un elemento de la lista. Por su índice. Lista, punto, pop.
Vamos a eliminar el elemento la lista. Lista ahora no tiene el elemento 0. El Pero ahora ya no
tiene elemento 0. El elemento 0 ahora el elemento 0 lo eliminó. Y ahora en vez de que la
ejemplo, antes de que hagamos esto. Le digo, mostrame en si le pido que me muestre el
tamaño de la lista y le la lista. Van a ver esto que es bastante interesante. antes la lista tenía 10
elementos. Lo muestro en pantalla. elementos. Después sacamos un elemento. El elemento
elementos tiene. Nos dice ahora tiene 9. Entonces el elemento. Mostramos de vuelta y ahora
nos muestra Justamente nos elimina un elemento de la lista. Si pusiéramos, 4. Que el
elemento 4 era 0, 1, 2, 3, 4. Nos elimina el 4 no es el 23. Es el 56. Porque el elemento 4 es 0, 1,
56. Que ahora desapareció. Porque acá, fíjense, agregamos el elemento jajajaja. Entonces al lo
tenemos que tener en cuenta también. Incluso ustedes dirán che de dalto. Pero escucha,
quiero eliminar último elemento cuál es? El último elemento es 2030. que se hace es poner
menos 1. Si ustedes ponen menos 1, Es una técnica interesante esta, ¿eh? Porque de esta
Bueno, 1 para atrás. Y 1 para atrás no existe. Entonces decimos menos 2, nos elimina el ante
último. ¿Ven? Nos Lo eliminó. El ante último es false. Y acá desapareció. les tiro que por ahí les
sirva en un futuro. Yo vamos a aclarar esto que especificé. Eliminamos menos 1 para eliminar
el último. Menos 2 para eliminar así les queda la marquita ya. Ahí ponemos 3, por ejemplo,
elemento que se eliminó? Se eliminó el elemento creo que Después tenemos remove. Que
remove también remueve. elemento de la lista por su valor. O sea, Es decir, al elemento lo
buscamos. Lista.remove. cómo se llama el elemento. Si lo encuentra, ¿ves? Lo eliminó. Antes
estaba acá. Tomamama. Ahora ya parámetro que no encuentra, no va a remover nada. Y no
Por eso es importante, digamos, manejar esta un parámetro que sabemos que tiene. Entonces
ahora Y ya no tiene más tomamama. Si le pedimos va, el 56. Búscalo y ahí está. Elimino el 56.
Perfecto. se agregó, se elimine. Y después, por último, elimina todo. Eliminando todos los
elementos y los elimina todos. Por eso lo vamos a dejar vamos a dejar al final porque no
queremos que nos elimine esta lista y la mostramos ahora, nos va a decir que es Porque todos
los elementos fueron eliminados. Así como no Perfecto. Vamos a ir con el siguiente. Fíjense
que como la más. Sort es una función que ordena los elementos de Si yo por ejemplo le digo
lista.sort, vamos a ver es que fíjense que esto no funciona si la lista tiene que hacer es borrar
todas las cadenas de texto. de texto. Borramos las cadenas de texto. Y acá también a crear un
elemento que sea por ejemplo un 65. Y acá el sacarlo. Ahora se actualizamos. Efectivamente
nos puede sí nos pudo ordenar. Aunque haya un true, los true van agrego un true. El true está
al final. Yo agrego un false. false. Vamos a ver qué pasa ahora si le agregamos true vienen
segundos. Y después vienen los dar una propiedad que es reverse igual true. Si le lo que
sucede es que se invierten. O sea ahora inversa. Es como si agarráramos cada uno de los
elementos y vuelta automáticamente. Entonces así es cómo funciona 5 ahora es el 1. Lo que
antes era el 1 ahora la lista. Si usamos el parámetro reverse igual true lo este parámetro
reverse igual true. Ahora sí. De forma a mayor. Si lo ponemos en reversa, es decir, ordenarlo
Desde el mayor al menor. no hace lo mismo que sort con el parámetro reverse en los
elementos. Los invierte. O sea, si primero los elementos de una lista. Lista.reverse. Como les la
lista, después eventualmente sí va a ser el mismo tenemos. Efectivamente nos da el mismo
resultado. Si resultado. Nos ordena de mayor a menor. ¿Por qué? Porque sort reverse igual
true harían lo mismo que esto. Pero es la cadena que ya existe. Simplemente la cambia de
vamos a eliminar este. El elemento por defecto es así. agregamos el reverse, se invierte
completamente. lista revertirla. Solamente que el sort, la ordena y si le pasamos el parámetro
sort igual Solamente que el reverse lo hace sin ordenarla. igual la revierte. Si se fijan, el que
antes era el antes era el segundo número ahora es el anteúltimo. Y es el primero. Lo que antes
era el anteúltimo más o menos tenemos todos y cada uno de los elementos digamos, lo que
vienen siendo los métodos de las listas. que son los conjuntos, también tienen sus propios
decir, si nosotros ahora, por ejemplo, mostráramos dir podemos hacer con una lista y las
podemos ver. Son todas una tupla, vamos a poner una tupla y vamos tupla porque la creamos
con paréntesis, nos dice que las cosas sí son similares, como el endsWith, como el is qué?
Porque funciona casi como un string. Vamos a agregar como lista. Ahí está. Ahora sí funciona
como, digamos, diferentes. Tenemos casi pocas funciones. Lo único que se cuántos elementos
tiene y usar la función index. era para buscar un elemento? Esas son las únicas dos elementos
y count. Así como index nos busca en cadenas, de cadenas, index, a ver si tenemos index por
acá, justamente letras y nos devolvía, digamos, también la posición en la que está el elemento
caracteres, acá funciona por el elemento completo. Vamos a verificando si un elemento se
encuentra en Quiero buscar, por ejemplo, el 56 que lo tenemos en muestre, vamos a pedirle
que me lo muestre, lo que sucede es que 56 no lo encontró. Bueno, no, sí. Utilizamos de vuelta
y ahí tenemos dos. el 56 es el 2. Acá arriba podemos verlo, ¿ven? La posición encuentre, por
ejemplo, el 34, o más fácil, le pedimos que vamos a hacer una predicción. Ahí va, una
predicción. 0, 1, y nos lanzó un 4. Así funciona. Pero qué pasa el 5. ¿El 5 lo va a encontrar? No.
Hay un 56, pero no elementos completos. 5 no es 56. Esto básicamente pasó? ¿Es igual al
elemento de la lista? Y bueno, es. ¿Igual a este? No es. Sí tiene un 5, pero no es igual listas es si
este elemento es igual a alguno de los de la 56 contiene un 5, pero no es igual 5 a 56. Está
bueno eso nos lanza errores. Así que vamos a darle 56 para que lo nos devolvió el índice. Lo
que les decía justamente es que así en vez de ser una lista, fuera una tupla, lo que les digo es
solamente buscar elementos y contarlos. Porque si o alterarla de cualquier forma, no
podemos. Porque inmutables. Podemos redeclarlos, pero no podemos cambiar ningún
ejemplo, de ningún elemento de la tupla. Pero si vamos a, por ejemplo, ponemos dir, y acá
ponemos un que los conjuntos los hacemos con set. No se olviden. y otro valor. Entonces
actualizamos y acá nos dice, también. Una lista y acá le pasamos. Valor 1, valor 2. Lo que nos
dice es esto que se puede hacer. Ahora sí, los conjuntos, remover elementos de los conjuntos,
no podemos usar el append, no podemos usar el append, sacar elementos y remover
elementos. Ni siquiera de repente usamos con esto el index. Vamos a sacar una lista. conjunto
igual set. Vamos a sacar cualquier si encuentra el elemento 54. Actualizamos index en
conjunto. Si ustedes quieren ver cuáles son acá. Tienen que usar simplemente dir y lo ven
como lo que podamos ver esto y no. Efectivamente no se puede solamente podemos buscar
elementos y usar hacer todo lo que vimos antes, que es por ahí copiarlos, todos los elementos
de un conjunto, podemos copiarlos, que hacen las diferentes funciones, les recomiendo vimos
hasta ahora. Lo que sí, después tenemos los métodos O sea, sí, sí, tampoco podemos hacer
tanto como con interesantes. Así que vamos a ver algunos métodos de diccionarios. ahí van a
ver que es un día mucho más avanzado. fueron correctas. y le pegué a todas las predicciones.
predicciones las hice el mes. que me puse... me puse esta ropa para hacer y estar acorde, 29
de diciembre. curso, sí, dije, mira, la verdad que un pedacito del vídeo se perdió. ¡Fantástico!
Así que esto que lo va todo de vuelta. de Inputs y de Diccionarios. viendo hace unos minutos
atrás. ustedes fueron un minuto y medio. que son estos cinco que son los que normalmente
utilizamos cuando trabajamos con diccionarios. Y tenemos Keys, Get, Clear, Pop y Items. con
Keys y básicamente acá me creé un diccionario, y es un diccionario sencillo. elementos. que es
igual a Dalto y la cantidad de suscriptores, que es un millón. número muy especial. y
lamentablemente, o sea, sucedió algo que por ahí no me lo esperaba. de conseguir este
número, que ya en un futuro significado muy importante. seríamos un millón de
programadores, sino por lo menos personal en mi caso. se enteren el porqué es tan
importante para mí este número. 2023 va a ser el año en el que puedan verlo. así que nada. y
así va a ser, y cuando lleguemos va a entender va a ser igual a diccionario.case, ahí estamos. a
ver qué es lo que nos muestra. en Continue, pasa que abrí toda vuelta. cree está más
avanzada, lo que tuve que los anteriores para que no vean lo que seguía. me olvidé, pero
bueno, olvídelo, así que tengo que reiniciar todo de cero. Archivo de Python y ahora estamos
ejecutándolo. nombre, apellido y subs. ¿Para qué nos sirve keys también? Bien, también nos
sirve para iterar. pero de esta forma podemos iterar los keys, debemos iterar, a ver que vamos
a poder iterar con items, también podemos iterar con keys. con keys, cuando en su momento
van a ver más adelante que explique esto. lo vamos a ver en ejemplos más adelante. usarlo en
un futuro, pero para arrancar, este es un método muy común y es justamente, para poder
tener, digamos, un array con todos los elementos, con todas las claves. acá le pasamos por
ejemplo un nombre, o sea un valor, con get le pasamos un valor. valor, Lucas, nombre igual
Lucas, yo le paso por ejemplo apellido. si le paso subs, cuando actualizo me va a devolver un
millón. en una lista, hacer esto y poner elemento 0, elemento 1, elemento 2. podemos llamar a
los elementos por, digamos, números como si fuera una lista. funciona, o sea si yo ahora de
repente vengo acá y digo 0, como si fueran valores numéricos, ahí está, ahora sí, actualizo y
ahora sí se fijan. que está acá es como si fuera literalmente una lista, un objeto tipo lista, o sea
no se va a comportar como lista. diccionario 0 y parece tal color una lista, nos muestra el
elemento esto. un diccionario, solamente que el índice ya viene por defecto y es auto
incrementable, que agraemos automáticamente. hacer, podemos agregar los números como si
lista y ya está. forma de trabajar justamente con clave o valor y por eso es un diccionario, esta
forma, por eso justamente es importante diferenciarlo. que ir acorde al tipo de datos que
querramos trabajar y al contexto. de decir recién, esto es lo correcto. ¿para qué usamos get? Si
lo podemos hacer subs. ejemplo hago esto y digo diccionario y no y es un k error. un nombre
que no es, esto no me lanza una excepción, sino que me dice noné. el programa se para
completamente y no continúa, te voy a volver noné, no, te voy a dar un continúa, si yo acá por
ejemplo pongo print papá, noné. que no va a encontrar, el programa no continúa, una, el
programa continúa con otro no. que es un getter, que vamos a ver más adelante que es un
getter, que puede acceder a una propiedad particular de un objeto, relajen el culito un
poquito, no se maltenen, papá, los cachoteos, ta, ta. un elemento con get, acá entre parentesis
vamos a poner, nada el programa continúa, si no encuentra nada el programa continúa, más
fácil. un objeto dictItem, dictItem es un tipo de objeto que permite que se puede iterar. le
vamos a poner valor de un elemento, de cas, porque eso es lo que obtiene, está obteniendo el
valor de esto, bueno, más acorde y que sea, está bien, está bien, está la forma correcta,
cuando nosotros creamos una variable, que describa lo que contiene adentro, cas es
efectivamente eso, así que te dije. y ahí vemos que funciona, está todo de 10 y acá tenemos lo
que necesitamos obtener. con el siguiente método que es clear, es decir, si yo la agarro y
pongo, eliminando todo del diccionario, del diccionario, a veces cuando hablo me trago, como
un retardado grabando, acá porque afuera hace un poco menos de calor, acá adentro, pasa
que aquí adentro como estoy con muchos paneles acústicos, o sea, literalmente salís afuera y
te tenés un poco de frío ya a esta hora de la noche, o sea, bueno, ahora sí, eliminando todo el
diccionario y decimos diccionario punto clear, verifiquemoslo, diccionario, vamos a ver que
adentro no tiene nada, ver, eso es lo que hace clear, elimina todo del diccionario, porque, bien,
vamos a comentarlo para que no lo elimine, poner otro comentario que diga eliminando un
elemento del diccionario, es pop, que con pop eliminamos un elemento de tuplas, de listas y
demás, con pop también podemos eliminar elementos del diccionario, pop y acá por ejemplo
quiero sacar el nombre, bueno, ya está, y puse Lucas, ven como estoy a esta hora, subs un
millón, si yo ahora de repente quiero sacar el apellido, suficiente, el apellido no hace falta,
bueno, digo esto y ahora me devuelve el nombre, repente quiero sacar los subs, saco los subs
y ahí está, nombre y apellido, quiera sacar más elementos, pongo la coma y el elemento, coma
y nombre, subs, nombre, y subs, y por último tenemos items, que items nos devuelve
exactamente el diccionario, y muestro diccionario, me devuelve esto, y si yo ahora de repente
le digo, pongo diccionario iterable igual diccionario.items, es esto, mientras que lo que me
devuelve en diccionario iterable, en una situación me devuelve esto, mientras que en otra
situación me devuelve esto, iterar es recorrer el elemento, ya lo vamos a hablar más adelante
cuando lo explique, poder acceder a cada uno de los elementos, acá no podemos, mientras acá
sí, que de hecho lo próximo que vamos a ver después hagamos, bucles, y ahí vamos a volver a
trabajar con esto, pero antes de ver eso, cómo funcionan para que cerremos este ciclo que
vamos a hacer en lo que va el curso, métodos de diccionarios, y ahora sí continuamos con los
inputs. se llama Inputs y un archivo que se llama Inputs. lo mismo, ¿ok? Input.py. que vamos a
decir Pedirle un dato al usuario. ¿Por qué eso hacemos con Input? dato al usuario. ¿Cómo lo
hacemos? Fácil. Decimos, bueno, mira, a ver, nombres, ¿no? Y le decimos Input. Che, maestro,
dame tu nombre. Dos puntos, Enter. un espacio acá para que le demos click y escribamos. Yo
puedo poner Lucas y ahora no pasó nada. ¿Pero qué pasó? Lucas. O sea, todo esto se va a
convertir en Lucas. ¿Cómo lo podemos corroborar? cosa interesante es que cuando no
dejamos espacios lo ponemos todo junto. ahora nos deja un espacio y nos permite escribir
espaciadamente. Así que es lo que vamos a hacer. el dato. Y acá ponemos Print, nombre. el
nombre Lucas y abajo me lo muestra. Es más, podemos concatenarlo. Puedo hacer esto y decir
Tucson. Otra vez Tucson. y lo pongo entre corchetes. Entonces entre llaves, perdón. tu
nombre. Y Lucas. El nombre es Lucas. Así es como le pedimos un dato al usuario. Ahora, ¿qué
pasa si le pedimos un número? Bien, vamos a pedirle un número. Dame tu nombre y yo le paso
11. me pinta a llamarme 11 porque me creo un tipo con poderes mágicos. me dice el nombre
es 11. Bueno, esto aunque parezca no es un número. es un texto. nosotros usamos funciones,
usamos Print, usamos Input. nos van a devolver cosas. métodos de listas, cada método nos
devolvía un dato. nos devolvían textos. Input lo que nos devuelve siempre es un texto. De
hecho, vamos a cambiar el nombre InputNombres. InputNumeros.py. Acá no le vamos a pedir
el nombre. Vamos a decirle pedirle un número al usuario. Número igual Input, dame un
número. el número. número por dos. por dos. el resultado. Print, resultado. perfecto y le
damos F5. un seis y me dice 66. Uh, acá hay un problema. Doe veces seis es 66. Clarita la
cuenta. Acá tenemos un ejemplo que lo explica mejor. Ok, dame un ejemplo en Paint. en Paint.
No lo sé. Pero acá tenemos justamente seis. Acá tenemos un texto. y lo sumamos.
Simplemente se suman los caracteres. Se agarran y se suman. Como lo pudimos ver acá. O sea,
acá tenemos un carácter. el carácter. Entonces tenemos este resultado. dos. Tenemos otra
cosa. Acá es como si multiplicáramos a dos veces. carácter. Bueno, ya está. Te lo uno y si tengo
dos veces el carácter. Ahora los números funcionan de forma diferente. veces. No da 66. No da
12. Porque esto es un cálculo aritmético. dato. No de forma concatenándolos. Esa es la
diferencia. Entonces tenemos una información que es. un texto. se multiplique por dos. seis
por dos. ¿Qué tengo que hacer? Convertirlo al número. ¿Cómo lo converto al número? Pues la
función int, como ya vimos antes. Int número dos. Ahora lo convertí al número. capitan. Le
paso el seis. Me devuelve 12. ¿Por qué? Porque lo convertí al número. Y este dato es un tipo
int. Lo convertí a entero. Entonces ahora digo. Esto es lo que hacemos. Es más, después
podemos venir acá y copiarlo. Y acá decirle, convierto el número a flotante. Flotante y lo
multiplico por dos. Y acá pongo float, que es la otra función. float. Y float es un número con
coma. Ahora van a ver. Esto lo voy a comentar y voy a actualizar. Y ahora le voy a pasar un
número. Le voy a pasar por ejemplo un 4,5. Le paso un 4,5 y me dice 9,0. Pero ¿por qué me
muestra el punto cero? Si el resultado fue nueve. flotantes. Si tenemos 4,5 por dos y nos dan
nueve. No es nueve. Es 9,0. O sea, es un número flotante. Por más que sea un número entero.
int. O sea, podríamos hacer en todo caso esto. Y meter a la función int del resultado. Entonces
el resultado de esto. Que va a ser esto. Lo convertimos entero. Si lo actualizamos y le damos
4,5. Ahora sí se convierte entero. Pero es al pedo. Es como... Depende de lo que queramos
hacer. Puede ser o no puede ser. Pero ¿qué pasa si acá? Por ejemplo tuviéramos el int. Vamos
a dejarlo como int. Y a este int yo le pasara otro dato. con coma. Bueno, actualizo y le paso un
4,5. Ah. Lo que pasa es que le estamos pasando a int. Un número flotante. E int convierte
enteros. con números con coma. Si vamos a trabajar con números con coma. Usamos float. Y
ahora sí esto funciona. Y podemos trabajar con números con coma. Lo mismo pruebo. De
16,23. Me lo multiplica. Tenés el resultado con coma. Y si después dices. Bueno mira. flotante.
Porque sé que son que yo 0,5. Después lo puedes convertir entero. Pero si no y lo necesitas
flotante. Lo dejas en float. Y así es como trabajamos con datos. Con números. Pero podemos
hacer hasta sumas. De esta forma. Agarramos un número y lo sumamos. Pero cómo podemos
sumar dos números. a enteros. Y lo sumamos. Input lo que hace es pasarnos un dato. Así y tan
sencillo. mucho. Porque input. datos al usuario de consola. Es decir para trabajar con otro tipo
de datos. Usamos otras funciones. Pero esta es la principal. al usuario que nos de información.
Y en programación todo es eso. Todo es pedir información. Procesarla. Y dar una respuesta. Así
es como funciona. Entonces ahora estamos pediendo esta información. Nos la da. Y
procesamos respuestas. En vez de nosotros darle al programa la información. Como venimos
haciendo siempre. Ahora se la pedimos al usuario. con números. input. De hecho acá vamos a
poner resultado entero. Y acá vamos a poner resultado flotante. Ahora sí terminamos. Porque
si no después nos va a tirar un error. códigos que ya dejamos escritos. Lo tenemos listo. Y les
digo que ahora se va a poner lindo. prácticos. apartado que nos va a permitir. Crear cosas con
lo que venimos aprendiendo. O sea todo lo que aprendimos hasta ahora. Lo vamos a usar para
crear cosas y crear proyectos. Van a haber tres ejercicios prácticos. Ejercicios prácticos 1.
Ejercicios prácticos 2. Y ejercicios prácticos 3. permitir reforzar todo lo que ya sabíamos. Y
llevarlo a la práctica. en la vida real. que ya tenemos. tener otras dos pruebas. Que son como
unos ejercicios prácticos. Aparte que ahí vamos a investigar. a desarrollar con lo que ya
sabemos. Y aprendiendo cosas nuevas. Y después vamos a hacer un proyecto final. que
aprendimos y nuevas cosas extra. Que es ejercicios prácticos 1, 2 y 3. Ahora vamos con el
ejercicios prácticos 1. que tenemos que resolver. Así que vamos a ver si lo podemos resolver.
que se nos van a plantear ¡Vamos! dije, bueno, ya que están, me pongo otra camisuli para
cambiar un poquito el look. Soy el mismo roñoso, pero con diferente vestimenta. ejercicios
prácticos 1. 10 cursos de Python, que están entre los más conocidos e incluso los más
recientes. y pagos, ambos, y básicamente miré bastante de cada uno. Y les tengo información
espectacular. que tienen ustedes ahora, es decir, para ahora, se tomaron entre tres horas a
siete horas aproximadamente. de una hora y media, los demás cursos lo explican en tres horas
a siete. pero realmente lo dejé fuera de esta lista, cuenta porque se nos va el promedio a la
bosta. pero ¿por qué nosotros, o yo precisamente, en otros cursos toma unas tres a siete
horas? son dos cosas que son dos factores que hicieron que esto sea posible. la que hablo, es
decir, más o menos hablo o sea, un 30% más rápido. increíblemente editados y la cantidad de
que no aportan nada, es altísima, lo que termine durando un y media o dos. Ok, ¿cómo es
esto? y hablar más rápido que los demás, lo que o cinco horas, yo lo puedo explicar en tres o
cuatro más o menos. horas que grabé fueron tres horas y media, en explicar, unas cinco horas,
yo lo logré explicar en tres y media. solamente de entrada la velocidad hizo que ganemos
tiempo. se convirtieron en una hora y media más o de la mitad del material. horas y le quedan
cuatro, yo grabé tres horas de que lo óptimo, digamos, de esto es altísima, pero es increíble. y
a detalle, motion graphics y animaciones, incluso es un video en 4K. ejercicio y es volcar todos
estos datos en estos ejercicios. El primer ejercicio consiste en lo siguiente. Python en un curso
de corrido es de 2,5 horas en promedio. Este curso lo logró en una hora y media. el curso
actual y el más rápido de los otros cursos? de los cursos. B. en promedio de los demás cursos
es de 5 horas el crudo de este video fue de 3 horas y media de material inservible, material
vacío en definitiva, se reduce del crudo en ambos casos? Y por último C. a ver cuántas horas de
otros cursos. a cuántas horas de este curso. que resolver con los datos que tenemos a
continuación. no es relevante para este ejercicio, pero también está disponible en inglés.
aprender Python y hablan inglés o hablan otros para gente que habla español, sino también
para gente que habla en inglés. ejercicio. una nueva carpeta que va a ser ejercicios1 va a ser
ejercicio1,1.py. de trabajos ejercicios prácticos1, así que ejercicio1,1.py. cuando arrancamos
este tipo de programas es los datos que tenemos en cuenta. Yo los datos me los anoté acá. la
variable va a ser promedio de duración, dura 1,5, es decir, en otros cursos para ver como
mínimo, como máximo 7 y en promedio Nosotros logramos en 1,5. la duración. crudos. que es
básicamente mostrar la diferencia. que nos muestre las diferentes diferencias. es igual a bien
acá tenemos que sacar un promedio curso, dividido lo que dura justamente los otros cursos,
otros cursos min y esto por esto, print diferencia con min nos muestra el 60 por ciento de lo
que duran los demás cursos. nos representa nada real a menos que acá pongamos 100 menos
esto. Porque esto recuerden que se pare en módulos. se ejecuta todo esto porque digamos
esto es como matemática en la vida real. en este orden y después se resta, o sea, resultado de
esto dividido esto por esto. No, no, no. ejecuta así. Sin paréntesis funciona igual. de todo esto
le restamos a 100. básicamente es dalto curso dividido otros cursos min. por 100, 60 por
ciento, pero si lo restamos es del 40 por ciento, o sea, esto es la diferencia dura 40 por ciento
menos que el más rápido. F acá, una F acá delante, vamos a cerrar dura un, acá decimos el
porcentaje, acá el más rápido, o sea, el curso que más lo que menos tarda en explicar todo lo
que es el más rápido, si otro tarda siete es es el más rápido y lo que nos muestra en duró un 40
por ciento menos que el más rápido, más rápido lo que el curso más rápido lo diferencias, es
decir, así como es diferencia con promedio, es acá simplemente vamos poniendo actualizamos
y ahí nos va a decir, acá no esto de acá, ok, y acá vamos cambiando, el curso de dalto dura un
40 por ciento menos 78,8 menos que el más lento, debería ser el promedio, actualizamos y ahí
nos queda un 78 punto algo y se nos fue al pasto el número, ¿cómo hacemos esto? división
doble, entonces actualizamos y ahora nos dice 100 por ciento, ¿por qué? números que
después terminan perjudicándonos qué? entonces ¿qué es lo que yo recomiendo hacer? tener
más números después del decimal y lo dividimos por 10, entonces de esa forma explico? 78,6
por ciento, ¿por qué? ok, tres ceros más, o sea, si recuerden número que es entero, o sea que
si me dice dice que es 1,2 se redondea para 2, en cambio 1 ahora es 100, lo que antes era 1,4
ahora no nos va a dar un número tan bajo y después esa forma es como una forma en la
matemática van a entenderlo pero es una boludez, es justamente de la coma se borra, bueno,
hagamos que lo para que todo lo que está de la coma se borre de esa forma como que ya
tenemos el mismo moverla a dos lugares la movemos una, si quisiéramos y ahí y de esa forma
ya tenemos la coma movida de hacerlo, yo lo voy a dejar así, recuerden orden en el que se
realiza la forma es lo no se confundan porque esto no es matemático una división común,
entonces en este caso que entender eso y de esta forma tenemos el es decir, ya estamos
mostrando la diferencia que le mostremos cuál es el material de crudo que no sirve que en
ambos casos sacamos y que vamos a crear las variables de crudos, duración de crudos, ya
acabamos de poner de los cursos, el crudo, o sea, cuando hablamos si yo tengo un vídeo crudo
de 5 horas, cuando porque es el crudo, es el material que sacamos sin editar y mi crudo, crudo
dalto es de 3,5 la diferencia, porque sabemos que mi curso momento se grabó esta cantidad
de tiempo, que se grabó y quedó esto hasta este momento, diferencias, así que vamos a
hacerlo, de la de arriba, vamos abajo y ponemos calculando calculamos el tiempo vacío,
tiempo vacío el tiempo vacío promedio es igual a lo mismo, de dalto curso, perdón, sería otros
cursos o menos si preguntamos cuánto es, cuánto que va a ser entrando las diferencias de
duración, de espacios y os que se remueven, ejercicio vacío promedio, a ver que nos devuelve
esto, que vamos a copiar esto, pegarlo acá, acá el string, un curso promedio elimina un
porciento eliminó el tiempo vacío, y acá ponemos tiempo vacío acá y la creamos de dalto y acá
ponemos dalto curso tenemos lo mismo, un curso promedio elimina el 57% del tiempo vacío,
es decir eliminamos más tiempo elimina 2, un curso como este de 10 horas elimina todo para
que siempre sea más óptimo, no está bueno a programar, bueno pero ahora falta el ejercicio B
perdón, el C, estoy medio tonto, el C nos dice, a otro curso, o sea ver 10 horas de este curso
cursos, así que vamos a crearlo, mostrando print y agregamos F, ver 10 horas de este curso
otros cursos promedio dividido curso dalto y lo multiplicamos por 10, entonces ver 10 horas de
actualizamos y nos dice, ver 10 horas de este bien ahora tenemos que redondearlo, vamos a
hacer redondeamos? bien hacemos lo mismo que hicimos antes, esta por 10, no más fácil, por
1000 y esto lo dividimos el mismo resultado pero con, perdón, lo dividimos entonces de esta
forma 26,6 horas de otros cursos, vamos a no nos sirve tanto decimales, equivale a ver 26,6
horas de este curso es como ver 26 horas y media de otros a ver cuántas horas de este, vamos
a calcularlo, y acá invertimos este número, es decir acá ponemos dalto curso y ver 10 horas de
este curso equivale a ver 26 horas de equivale a ver 3,7 horas de este curso, ahora vamos a
separar feo, entonces vamos a separarlo todo con líneas y vamos a va, y esto lo vamos a
repetirlo en todos los casos, actualizamos y hacer un print, hacerlo acá también para separar
las líneas, ahí estamos, el curso de dalto duró un 40% menos que 78, ah no, más fácil, miren lo
que vamos a hacer, el curso a poner otro print, el curso de dalto dura dos puntos y acá espacio,
guión, espacio, y esto lo copio y lo pego, espacio y ahorro y dejo todo esto, esto es como para
que quede más lindo, entonces dalto dura un 40% menos que el más rápido, un 78,6 por
ciento menos que el promedio, abajo dice un curso el 57,2 de tiempo vacío, ver 10 horas de
este ver 10 horas de otros cursos equivale a ver esto es mucho más óptimo, mucho más rápido
y van a cómo en menos de 10 horas de curso de Python de dalto de 25 horas, bueno es posible
que un curso que hubiera 30 en 8 por ejemplo, es importante resaltarlo, porque a veces
hablamos con esta velocidad y además no editamos nada y yo a ver cuánto puede durar esto, a
ver no el error no editarlo y demás hace que los cursos duren tanto vamos a agarrar y la
rompemos, la sacamos, cuello de botella y encima está bueno porque ustedes pueden ir
parándolo haciendo que andar pasando, no este es el nivel promedio, no este está todo en
este, pero ya está acá tenemos el primer lo felicito vamos con el segundo ejercicio El segundo
ejercicio consiste en lo siguiente. dos palabras por segundo, real y calcular cuánto tardaría en
decir esa frase y cuántas palabras fueron las que dijo. B. Si se tarda más de un minuto, decirle
Pará, flaco, tampoco te pido un testamento. en cuenta que habla un 30% más rápido. bastante
presente, cosas que no muchos pueden hacer. Ay, Dios mío, qué triste. esa idea, ¿no? los
demás, en el trayecto. Bien, vamos a hacer el segundo ejercicio. 1,2.py, ¿entienden? después
sería ejercicios 2,1, 2,2 y 2,3. Primero, ya saben, frase. igual al input. tardarías diciéndolo.
cuánto tardarías si tuvieras que decir. Dejamos dos puntos y un espacio, ahí va. Actualizamos y
esto viene funcionando, bien. splits, ¿acuerdan? Que nos permite separar las palabras.
Entonces ahora vamos a poner cantidad de palabras, ¿por qué? palabra, es el espacio. acá, un
espacio acá, que hay, ¿por qué? tres palabras, espacio. que tiene una frase. la cantidad de
palabras es igual a la frase punto split. separadas. va a ser igual a len palabras separadas.
calcular cuánto tardó. Y para eso podemos hacer lo siguiente. y tardarías. Acá abrimos otro y
cerramos otro. en decirlo. nos va a pedir a ver. de la vida, rey? Ok, tenemos que actualizarlo,
bien. No lo actualizamos. Ahora sí, bien, lo mismo. de la vida, mi rey? y te tardarías 6 segundos
en decirlo. Bastante bien. en decirlo? Bueno, vamos a ver. que es el 30%. Segundos en decirlo.
Y si actualizamos, ahí tenemos. si tuvieras que decirla. ¿Qué haces, maestro? ¿Qué contas?
Dalto lo diría en 3,25 segundos. Bien, Dalto lo diría en segundos. Ah, esto está de más. Muy
sencillo y ahí tenemos el programa. antes que es para redondear y generar un entero, después
lo multiplicamos por 1,3 y después lo dividimos por 100 de vuelta. programa bien con dos
decimales. Bien, ahora sí, ahora vamos a poner un if. a decirle print. Para, flaco, tampoco te
pedí un testamento. ¿Por qué? Porque 120 palabras es un minuto. dijo 120 palabras. Entonces
tenemos cantidad de palabras, 120. Si dice más de 120 palabras, le decimos esto. verificar si
funciona. Bien, vamos a escribir 60 palabras. una re frase, chabón. Bien, vamos a ver ahora. De
alto le dirían 83,2 segundos. un testamento. Espectacular, buenísimo. explicar parte por parte
cómo funciona. que funcione. comentado, funcional resolvimos el ejercicio 2. ni siquiera
tuvimos que separarlos en uno solo. de este curso de Python. lo logramos terminar. parte del
curso de Python, que es, digamos, una sección básico intermedia, adelante y eso ya,
intermedio. vamos a verlo. apartado de variables que es un apartado en variables y vamos a
entender cosas que antes un poquito más avanzado recomiendo que si no hicieron y no
llevaron háganlo, llévenlo a la práctica, tengan escribir y hacer todo lo que vamos a hacer a
continuación voy a hacer es crear una nueva carpeta variables que sea desempaquetado y lo
vamos a guardar como desempaquetado.pyton ahí estamos es una forma que una técnica que
tenemos de pronunciación también para básicamente bastante particular por ejemplo una
tupla datos, datos va a ser es el desempaquetamiento? bueno es una forma tomando los datos
de por ejemplo una tupla nombre coma apellido igual datos así es simple coma apellido ¿a que
va a ser igual nombre? ¿a que va a ser igual apellido? va a ser igual al segundo valor de la tupla
y acá podría poner por ejemplo también es la gran meta entonces esto también funcionaría
nombre? me va a mostrar lucas si yo le digo le digo print suscriptores me va a mostrar en la
que desencapsulamos variables tienen va a estar colocado en cada uno de los elementos de la
tupla encapsulamiento funciona solamente si la cantidad de datos que tiene la RAI si la RAI
tiene 2 datos crean 2 variables en este caso así desempaquetado digamos ¿no? ponemos
desempaquetado y acá ponemos creando y demás si yo por ejemplo intento crear una en tupla
y acá puedo poner datos en lista por un corchete ahí estamos entonces yo pongo y esto fíjense
que funciona bien funciona efectivamente también funciona porque el para lista como para
tupla y también como números eso es un dato muy interesante bien y tenemos esto
justamente que es el desempaquetar ¿para qué nos sirve esto? adelante cuando veamos por
ejemplo funciones tuplas y si hay funciones que nos devuelven listas y si hay funciones que nos
devuelven podemos crear justamente información a base estos datos que pedimos ahora
vamos a ver es como se desempaquetan es una interesante es desempaquetado una lista una
tupla son como hacemos es bueno le damos un dato a cada variable a volver acá y crear un
nuevo archivo que vamos a poner adentro de variables porque una forma de crear tuplas
bastante interesante que nos permite crear una tupla y acá adentro por ejemplo si yo ahora
muestro el dato print una lista o sea la lista que va a convertir en tupla yo ahora dato1 dato2
yo acá voy a poner creando tuplas crear tuplas de una forma bastante particular tupla igual
dato1 dato2 así sencillo creé lo vamos a comentar por ahora en la que también podemos crear
tuplas sin separados con coma automáticamente se crea mismo que esto es exactamente lo
mismo ahora crear tuplas con un solo dato bueno la forma el dato pero al final le ponemos una
coma esto es un string un string común y corriente con la coma ahora es una tupla vamos a
verificarlo vamos a poner esto de arriba lo vamos a descomentar así que esto no afecta para
nada a esto creando a poner creando una tupla sin paréntesis acá tenemos de múltiples datos
porque acá datos con coma y acá no hace falta la coma no hace falta que se la agreguemos de
hecho si yo aquí quiero ver el tipo es una tupla si se comporta como tupla y si con un dato
como hacemos como les dije antes entonces de esta forma creamos una tupla con y de esta
forma la creamos con un solo dato vamos a verificar a ver si se creó la tupla ven funciona como
tupla y no no es por esto porque recuerden que acá la podemos redefinir que a esto de hecho
vamos a verificarlo si y ahora es tupla dato dato coma y ahí tenemos bien las tuplas las
podemos crear cuando son solo vamos a leer datos creamos tuplas lo que lo que hacen las
listas para poder ser y uno lo van modificando y cuando uno está la tupla y después modificar
el otro espacio en memoria modificar la tupla y después modificar tupla guarda solamente un
lugar en memoria porque si vos reemplazas ese dato corre riesgo entonces es importante que
entiendan que básicamente a una lista entonces la lista se almacena y demás mientras que
esto no entonces es leer datos fijos y que no se van a modificar mientras que las listas cuando
vamos a trabajar lo óptimo es decir las listas para datos más flexibles set, sets o conjuntos,
conjuntos.py me gusta lo habíamos visto todo pero sin embargo estamos viendo cosas nuevas
de variables es lo que ustedes no sabían todo no hay otras cosas nuevas que aprender porque
esto es lo último de lo último lo importante de cada aspecto con una función set como ya
vimos al principio agarramos y ponemos conjuntos igual set y acá le pasamos datos como
parámetro es un iterable ya vamos a que estamos a punto de llegar a eso por ejemplo puede
ser dato 1 y de vuelta dato vamos a subir arriba si estamos juntitos y acá set y ahora se
muestra dato 1 y dato 2 esto es ahora qué pasa cuando queremos poner un elemento
modificable en otro no modificable de sets no son modificables o sea no podemos a otro dato
porque no funciona se pueden cambiar en datos que no se pueden le pusiera otro dato
supongan que yo acá lista dentro de otra lista esto es posible en lista 1 coma dato en lista 2 yo
actualizo pasando una lista y la lista es un hashable del set porque esos datos no se pueden
modificar y acá solamente pueden ir datos que no se si ahora reemplazo esto por una tupla
ven ahora me lo ejecuta porque las tuplas van adentro de otros datos si yo esto lo convierto en
un diccionario qué pasa es decir o sea que tampoco me deja sí o sea que tampoco me deja
poner diccionarios pero cómo hago si quiero meter un conjunto a ver qué pasa si lo saco ahora
vamos a poner sea el conjunto este es un conjunto común un conjunto dentro de otro
conjunto un conjunto así el conjunto entonces yo acá si quisiera meter un conjunto dentro del
conjunto 2 este conjunto va a tener dato conjunto y dato 3 por ejemplo no esto funcionaría
pueden existir conjuntos anidados vamos a 2 y efectivamente me tira un error pero me por
otra cosa ahora sí actualizamos y ahí otro conjunto como tengo que hacer si quisiera meter
hay que usar una función llamada frozen set abrimos como para crear una lista y acá hacemos
y cerramos y esto también crea un conjunto congelado como para que sea halleable entonces
estoy metiendo conjunto que boludo conjunto decir que ahora sí pude meter un conjunto
conjunto se comporta como un conjunto normal había puesto conjunto o sea que en realidad
se está ejecutando esta pero bueno si quieren esto es verdad simplemente bueno voy a copiar
para que vean le voy a poner conjunto 1 para dice que no se puede meter un conjunto dentro
sí y voy a hacer esto porque como digo antes ejecutando esto no se estaba ejecutando se
explicarlo ahora ven que me tira error si set actualizo y ya no me tira más error entonces a dar
frozen set que es para meter un conjunto este curso se viene un curso con teorías de
conjuntos esto es importante si estamos trabajando con conjuntos necesitamos tenemos por
un lado lo que viene siendo un un subconjunto que es como agarrar un par aparte es decir si
yo por ejemplo tengo el viendo y además tengo el conjunto b que tiene los datos que a
tenemos solamente tres datos que están más conjuntos entonces a es un subconjunto es la
teoría de conjuntos un conjunto que es un superconjunto de otro conjunto es decir es que a y
b es un conjunto mientras que podemos tener superconjunto de a y a es un conjunto es
depende decir si decimos que b es un conjunto a es un conjunto b es un superconjunto de a
esta si queremos trabajar justamente con la teoría que es bastante interesante así que venir
acá poniendo teoría de conjuntos vamos el conjunto 1 y el conjunto 2 conjunto 1 va a poner 1
3 1 3 5 y 7 números que son impares o menos vamos a poner estos tres números como
verificamos decimos resultado es igual a en el resultado funciones que vamos a usar ahora nos
devuelven 2 es un subconjunto de conjunto 1 esta función conjunto 2 es un subconjunto is
subset is 1 vamos a ver que nos responde vamos a poner print resultado porque porque es un
subconjunto porque en si ahora cambiamos los números y le decimos 2 no porque conjunto 1
tiene más cosas entonces 2 pero al revés sí es decir todo lo que de 1 actualizamos nos
devuelve true entonces acá vamos a poner verificando si es un subconjunto o no es utilizando
el menor o igual acá ponemos a conjunto 1 esto funciona exactamente igual es lo mismo
porque lo que comprueba es que es sencillo es una forma de verificarlo ok línea vamos a ver si
nos funciona nos devuelve verificar lo invierto nuevamente y ponemos y usted me dice no
porque es por la cantidad porque si yo acá le doy por ejemplo menos 5 menos 10 por ejemplo
si yo acabe de todos estos es menos no es por lo no es por true así que no tiene nada que ver
con que los números me lo forma de comparar si es un subconjunto o no válidas de verificar si
es un subconjunto y después tenemos la si es un super conjunto, en este caso es superset el
signito es al revés recuerden que esto depende de las perspectivas lo invertimos no se olviden
de eso así, sino que superset usamos así un subconjunto, lo ponemos al revés decir, para
verificar que sea exactamente igual a esto, es esta la función es el signito al revés que, y acá
tiene que ser mayor que Es decir, todo lo contrario muestre el resultado, que nos va a mostrar
esto, no todos los demás el último que ponemos 2 no es un superconjunto de conjunto 1
Conjunto 1 es un superconjunto de conjunto está acá es literalmente todo lo contrario a esto
que está acá Es verificar lo contrario, es una tontería forma de verlo hay un número en común,
lo verificamos de esta forma Verificar si hay algún número en común conjunto 2 isDisjoint
conjunto 1 algún resultado en común? Y acá nos va a decir falso, ¿por qué? en común ya es
igual Acá vamos a poner 2, 4, 6, 8 Fíjense que no hay ningún elemento en común son distintos
que se están comparando no tienen ningún número igual que sea igual, en este caso es el 7 ya
hay un elemento que coincida de ser igual Es decir, ya deja de ser completamente distinto Y
esto deja de ser true y acabamos de ver efectivamente si esto funciona o no funciona que
también tenemos bastante que aprender bueno, fácil, vamos a venir acá y crear new file,
diccionarios.py y le vamos a meter también adentro de variables y move como un json en
javascript o con la función dict creando diccionarios con dict pedir es estructura para crear un
diccionario así es poner por ejemplo nombre igual lucas, coma, apellido igual dalto de esta
forma creamos un diccionario y si venimos acá y le damos print diccionario esto cuando se
ejecute nos va a tirar el diccionario acá si se fijan tenemos nombre:lucas, apellido:dalto
variables acá adentro función creación de un diccionario es una forma diferente de crear un
diccionario creamos así nombre:lucas, en vez de crearlo de esta forma apellido:dalto la forma
que ustedes prefieran datos vacíos es con esto la forma de crearlo así podemos usar con esta
formula usemos tuples, la función usemos list esto no pueden ser justamente iterables pueden
ser claves porque son mutables si yo ahora acá por ejemplo creo un diccionario con una lista
por ejemplo puedo hacer con una tupla puedo poner dos puntos, jajas pueden ser claves clave
el paréntesis por el corchete que hace la lista lo que vimos antes ser por ejemplo los conjuntos
me deja porque no es hashable acá podría poner por ejemplo un frozen set puse paréntesis,
acá hablaba como lista lo actualizo frozen set no se olviden de eso que es muy importante
claves si usamos frozen set para meter conjuntos, no? ahí tenemos, perfecto es con from keys
creando diccionarios con from keys un diccionario con todos los valores none eso? simple keys
claves, no sé, nombre bueno, está mal es porque esto es un método de diccionarios valor del
diccionario, dict es un tipo de dato ya actualizamos y corremos el programa ahora fíjense en
que nos creó puntos apellido o dos puntos apellido que cada letra, nombre ponga acá funciona
esto? iterable sí cerramos la lista puntos none, apellido, dos puntos none y demás y todos los
valores none nombre, nos va a mostrar none y así con cualquier dato que le pidamos con
todos valores sin definir crear un diccionario justamente que es lo que mostramos recién de
texto que diga abcde esto lo toque sacar, no va, ahí va con abcde sé si lo notaron otro valor
como por ejemplo valor 2 me lo iguala a valor 2 le pasamos un segundo valor lo que hace es
igualar siempre a esto que podamos iterar from keys, es interesante igual a algún valor fijo lo
mismo acá podemos ponerle nombre y apellido por ejemplo y acá voy a poner no sé, no sé
apellido y los valores por defecto van a ser none valor por defecto, none el valor por defecto a
no sé sé apartado de diccionarios conjunto por ejemplo? diccionarios los podemos llamar así
decimos por ejemplo nombre y llamamos al valor el primer dato valor de un conjunto? ¿cómo
podemos por ejemplo llamar al dos? ¿cómo hacemos para llamar al dos? o ¿cómo hacemos
para que me muestre el siete? solo el siete conjuntos son iterables estoy hablando o bien? que
es el apartado de bucles así que vamos a ver qué son los bucles ychain ahora vamos a ver
bucles Ahora vamos a ver bucles OK, si esta grabando podremos comenzar podemos comenzar
Justamente, ya es un ejemplo de bucle. efectivamente eso es un bucle. de un código. es lo que
viene siendo iterar. nos permiten iterar un elemento. ¿Todo se puede iterar? Bien, no. que
solamente los elementos iterables. Ahora, ¿qué es un elemento iterable? que viene, digamos,
iterar. No todos los elementos son iterables. La segunda de acá hasta acá. La tercera de acá
hasta acá. iterar, es decir, cómo vamos a ir repitiendo el código el elemento, porque iterar es
eso, es recorrer un elemento, recorremos un elemento en pedacitos. a ir saltando esos
pedacitos los define justamente un iterador. elementos iterables? varios elementos. lista es
otro. Lo mismo en las tuplas. Elemento 1, elemento 2, elemento 3, elemento Tienen
elementos sobre los que iterar. Es decir, bueno, la tupla completa es un dato. Y si la tupla tiene
cinco elementos, hacemos cinco iteraciones, una para cada elemento. partes veces, una para
cada parte de ese código. ¿Por qué? Porque es sencillo. de esa forma. Las cadenas de texto
también se pueden iterar, conjuntos. y vamos a empezar. bucle, el primer tipo de bucle que es
FOR, el bucle FOR. crear una iteración. Así que vamos a arrancar a trabajar con FOR. que va a
ser BUCLES y un nuevo archivo que va a llamarse ITERAR-LISTAS.PYTON Y acá vamos a iterar
listas. y usar el bucle FOR, de hecho, podemos arrancar ya mismo. de FOR. Mejor dicho, el
funcionamiento de FOR. En Python los bucles son FOR IN. tres condiciones, ¿no? que tanto, I
más más, o I menos menos. Esa famosa forma chota de hacer bucles. Python lo simplifica
completamente. Y Python usa FOR IN. ¿Qué es ahora que es un FOR IN? hace es criar una
variable que en cada vuelta que estamos igualando. Ok, vamos a pensarnos mejor. Vamos
ahora a verlo en un voz en off. Ok, supongamos que tenemos una lista animales que va a ser
igual a perro, gato, loro y cocodrilo. Una lista con cuatro elementos. Bastante simple hasta
ahora. Ahora, ¿cómo iteramos esta lista con FOR? Primero decimos FOR animal in animales. el
código. La pregunta es, ¿a qué va a ser igual animal? La primera vez que se ejecuta el código,
es decir, perro. De hecho, si usamos un print animal animal adentro, que nos va a decir perro.
Cuando termina de dar la vuelta al bloque, a ejecutar. Pero ahora, animal es igual al siguiente
elemento, o sea, a gato. gato. si hay elementos y está el loro. igual a loro. si hay otro animal. Y
sí, está el cocodrilo. es igual a cocodrilo. animales. Entonces el bucle termina de ejecutarse. Y
ahora sí, pasamos a la siguiente instrucción. Entonces en definitiva, el programa funcionaría de
la siguiente forma. Creamos la lista, animales tenga, con su flujo natural. Es bastante fácil, ok?
Vamos a llevarlo ahora a práctica iterando una lista. Vamos a iterar de todo un poco.
diccionarios, vamos a arrancar iterando listas. estado temperamental, corporal, perdón. Estoy
bien. Ahora no me estoy prendiendo fuego. Es decir, ya pueden quedarse tranquilos que,
ahora no hay más 34 grados. Vamos a ver cuánto hay ahora. Hay 32 grados. Ah, por otro lado,
pasamos a finales. a pasar a finales. El 8 de diciembre les dije, vamos a ganar cuartos de final y
vamos a ganar semis. Y ahora se vienen las finales. Para mí es evidente, va a ganar Francia. dos
países que se merecen efectivamente llegar a la final. Que es Argentina y Francia. Y el ganador
definitivo ahora sí. Qué hermoso. Va a ser Argentina. Bien, basta de parloterío, basta de
boludece. Vamos a arrancar a escribir el código. Para empezar es sencillo. animales, que era
como lo teníamos ahí. y un cocodrilo. Bien, fácil. ¿Cómo hacemos para recorrer esta lista?
Bien, ponemos un for animal in animales. print animal, cuando ejecutamos este código. Ah,
puse lista igual animales, qué salame. Perdón, animales, quise poner animales igual. Ahora sí,
no sé qué hice. cocodrilo. animal es igual a dos puntos. F adelante. es igual a gato. Ahora la
variable animal es igual a perro. Ahora la variable animal es igual a loro. Ahora la variable
animal es igual a cocodrilo. tantas veces como variable. pez y ejecutamos, abajo se va a
agregar pez. a ponerlo adelante de gato primero pez. Así es como funciona Google For, es fácil.
para ser utilizada de código, adentro de este bloque de código. podemos recorrerlo. ir
haciendo cosas como... es igual a... Vamos a crear una lista de números. números Bueno,
resultado igual animal por dos. vamos a poner. a dejarlo así, así como estaba. la lista animales.
for número, in números, dos puntos, y acá decimos. agregado antes. Vamos a agregar
cualquier otro número ahora. va a ser igual a por 10 Y ahora vamos a decir, print resultado. a
dar 520, 160, 140 y 720. por diez. 52 por 10, 520, 16 por 10, 160, 14 por 10, 140, 72 por 10,
700. porque supongamos que, o no tenemos ítems con objetos. a ver, tienes disponibles.
huevo, agregamos a una lista. Y ahí los mostramos. Tenemos papa, tenemos huevo. la forma
en la que podemos trabajar con elementos de esta forma. de trabajar, no es una forma
interesante. notado. Es decir, esto la verdad que es muy interesante, es una muertilla mía,
pero es la forma de hacerlo, digamos. sea, cada valor por 10. A ver, cada valor multiplicándolo
por 10. está acá. Bien, hasta acá está todo bien. quisiéramos, digamos, iterar sobre dos listas?
al mismo tiempo? Bueno, la forma es simple. Si queremos iterar dos listas, que son for
anidados, o dos for juntos. que es zip. Vamos a hacer. ¿cómo haríamos? la misma cantidad de
elementos. perros, lorocodros. Son cinco elementos. Vamos ahora al elemento pez. arriba y
abajo. in. Aquí ponemos zip. Y acá ponemos lista uno y lista dos. En este caso sería animales y
números. Acá ponemos dos puntos. recorriendo lista uno, dos puntos. Y acá le agregamos el
animal. Acá ponemos la F. Y acá ponemos número. Y abajo ponemos animal y lista dos. lista
uno, dos. Recorriendo lista uno, recorriendo lista dos. zip, podemos recorrer dos listas al
mismo tiempo. Es re interesante esto. Lo de arriba lo voy a borrar rápidamente. a mostrar este
código. acceder al valor de la vuelta del primer elemento en ambos casos. al segundo valor en
ambos casos. La tercera vuelta va a ser igual al valor. Y esto la verdad que es excelente. Es
excelente. recomiendo usar cuando quieran iterar dos elementos de la misma lista. Podemos
iterar dos y tres. con cuatro elementos pueden poner alguna simplificación de la lista tres. Y
acá poner la lista tres completa. Y también funciona con más de dos listas. Es interesante esto.
mismo tiempo. Entonces iteramos dos listas al mismo tiempo. Es interesante esta función. Lo
único es que esto se itera al mismo tiempo. todo otro. Es uno, otro, uno, otro. Lista uno, lista
dos. uno, lista dos. lista dos. Y así. para iterar es iterar utilizando la función rank. la función
range. Iterar número in... se nos dé la gana. que coincidan con lo que estamos haciendo. num
in range. Y acá si yo pongo del cinco al diez. cinco al diez. num. es lo vamos a ver abajo de
todas las demás. Es cinco, seis, siete, ocho, nueve. primer parámetro es en donde arranca. Y el
segundo en donde termina. Me explico, acá puse veinte. Entonces arranco en diez, termino en
veinte. ¿Ven? Diez, once, nueve, hasta diecinueve. incluido y el último no. Son veinte números,
digamos. Son diez números, perdón. O sea, vamos desde el diez hasta el veinte. El veinte no lo
contamos, el diez sí. le ponemos uno. Arranca de cero hasta el número que le digamos. ¿Ven?
Cero, uno, dos, tres, diecinueve. va de cero a cinco. y solamente le pasamos un número en vez
de que le digamos. pará. una lista, también puedo hacer esto. poner encerrarlo en len.
números, lo que puedo hacer acá es decir números num. mismo, cincuenta y dos, dieciséis,
catorce, setenta y dos. de elementos que tiene esto. Tiene cuatro elementos. Ok, entonces
arranca de cero a cuatro. números cero es igual a esto. Números uno es igual a esto. forma no
es óptima. recorrer una lista. función enumerate. lista con su índice. enumerate números. va a
ser igual a dos variables. Num es igual a una tupla. a ver que num. Type, ahora sí. Van a ver que
num es igual a... Ah, no lo mostré, qué boludo. Print, ahora sí, actualizamos. Tuplas, son tuplas.
¿Pero qué nos va a devolver? ¿Qué tupla nos devuelve? Bueno, vamos a ver qué tupla nos
devuelve. tuplas son 0, 1, 0, 2. es el índice. El segundo es el valor. elemento, simplemente
hacemos esto. Ya acá tenemos el índice. Y si queremos acceder al valor, ponemos el decimos
que índice igual num 0 y valor igual num 1. índice es dos puntos. y reemplazo índice por valor.
es 0 y el valor es 52. El índice es 1 y el valor es 16. Y de esta forma es una forma correcta.
recagar de risa. de risa. que no tienen la posibilidad de tener funciones como enumerate. lista
obteniendo su índice. de la lista. Porque a veces lo necesitan obtener. Es muy útil a veces
obtener el índice. Bueno, esta es la forma. else en el for. O sea, for else. Usando el else. al final
de un bucle, perdón. Le agregamos el else, vamos a ponerlo mismo. puntos. Print, ejecutando
el último bucle. Valor, actual dos puntos, espacio, número. Ponemos la F adelante. Y abajo
ponemos el else. Si ponemos el else acá, no va a hacer nada. Tienen que estar a la altura del
for. Es decir, el for acá abajo termina. if. En vez de un if, un else. Else, dos puntos. Y acá vamos
a ejecutar print. El bucle terminó. Entonces ejecutamos el código. Y ejecutando el último bucle.
Valor actual, valor actual, valor actual. siempre. De hecho, sin números incluso. Números es
una lista vacía. no está. anterior, que es el de acá. Ni siquiera. Porque no se está ejecutando.
Ahora la variable animal es igual a... Estos no se ejecutó ninguno de estos bucles. Porque todos
estos bucles recorren números. lo va a recorrer. Esto siempre se ejecuta igual. En caso de que
no haya elementos por recorrer. me muestra el else. una vez. Sólo una vez y es al final del
bucle. Se haya ejecutado alguna vez o no. Me muestra igual. terminar el bucle. ejemplo el valor
número. Venimos acá y ponemos número. Else no nos va a mostrar nada. definida. Usando el
for else. Ahí estamos, ahora sí. tuplas. con las tuplas. reemplazar por una tupla. Van a ver. Si yo
acá por ejemplo, esto que está acá. Esto lo voy a copiar. Y esto arriba también. Esto acá lo voy
a copiar. números acá arriba. Y acá abajo voy a pegar esto. Si esto lo reemplazáramos por una
tupla. igual. Ahí la cierro. Actualizo y si se fijan. Lo mismo. O sea, funciona lo mismo. Así que le
voy a reemplazar. Iterar listas. Rename. Listas. Barra tuplas. Ahí tenemos. Iterar listas y tuplas
punto py. Esto funciona. Acá abajo de todo voy a poner todo. Entonces ahí estoy. Y ahí tengo
todo como ya está. Abarque listas y tuplas. sets o conjuntos. Iterar conjuntos punto py. Si yo
vengo acá copio esto. Vamos a copiar todo el código. Vamos a pegarlo acá. Vamos a darle
control h para reemplazar. Lista por conjunto. Le doy enter y ahí se reemplazó. Y le voy a hacer
así. A ver si se va reemplazando. Ya está. Todas las listas ya se reemplazaron por conjuntos.
Todo lo que dice lista se reemplazó. Solo que ahora vamos a reemplazarlo. Vamos a poner
conjunto. Vamos a ver si funciona igual. Actualizo. Y ahora me tiro un error. conjuntos de esta
forma. Acá si se fijan no es óptimo. Vamos a ahorrar esta forma de hacerlo. Y ahora funciona.
recorrer bucles? o una tupla en un conjunto. No podemos usar esa función. En cambio sí
podemos usar la función enumerate. en un conjunto sea de esta forma. conjuntos
básicamente se iteran igual. la anterior que son importantes. Estamos acá por ejemplo
recorriendo dos conjuntos. Lo mismo recorremos dos conjuntos. Así que tuplas y listas. que lo
podemos recorrer. Es decir incluso vamos a borrar este elemento. Vamos a borrar este
elemento. Este elemento que está acá vamos a renombrarlo. Y vamos a poner iterar
elementos. para tuplas y conjuntos. diccionario. diferente. Los diccionarios tienen algo
bastante particular. Vamos a agregar lo mismo. Iterar diccionario.py. la siguiente forma.
Primero creamos el diccionario. apellido, dos puntos de alto. Estornudé como una bestia.
Vamos a poner Dalto y Lucas. un millón, un, dos, tres, un, dos, tres. Y acá agregamos las comas
correspondientes. Acá tenemos el diccionario. Ahora ¿cómo lo recorremos? key. A ver qué es
lo que me muestra. Me muestra key. Porque el key es la clave. está mostrando es solamente la
clave. ¿Cómo hacemos para que nos muestre los valores? O ¿cómo obtenemos algo? nos
muestra el valor. Solamente nos muestra la clave. Porque esto no cambia nada. Es
exactamente lo mismo. Ponemos value. Y actualizamos y es lo mismo. Nos muestra igual los
key. No cambia nada. La forma es utilizando el punto items. ¿Acuerdan que antes utilizamos el
punto items? Y yo les dije que eso era para iterar el elemento. nos permite iterarlo. estamos
iterando el elemento y accedemos a los dos. Esto nos vuelve una tupla con un par clave-valor.
Justamente a lo que les decía antes. items. Si yo por ejemplo ahora digo key. En este caso sería
datos. Key ser igual a datos. Y value o valor ser igual a datos. Entonces si actualizamos. Si los
mostramos en pantalla. Print. La clave es dos puntos espacio. Key. Y el valor es dos puntos
espacio. Value. Actualizamos y corremos este. mi vida dije actualizamos. Pero en realidad es
que corremos el código. Lo corremos con F5. Le damos run run. Yo lo actualizamos. Corremos
el código y ahí tenemos esto. La clave es nombre y el valor es Lucas. La clave es apellido y el
valor es de dalto. La clave es subs y el valor es un millón. De esta forma estamos recorriendo
un diccionario. Para obtener la clave y el valor. Y vamos a hacer exactamente lo mismo. Pero al
de arriba vamos a sacarle el items. La clave es clave. Y solamente va a ser igual a aquí.
Recorriendo diccionario para obtener las claves. Con esto obtenemos las claves y los valores.
claves. Es decir acá obtenemos solo las claves. Y acá obtenemos las claves y los valores. un
diccionario. Interesante, ¿no? Vamos a ver a continuación algo. Si yo iterar el elemento. Voy a
crear acá un archivo nuevo. Que va a ser masiteraciones.py. Y acá vamos a hacer algo
interesante. ejemplo nombres. O frutas. Una lista de frutas que va a ser igual a. Banana,
manzana, ciruela, pera, naranja, granada. es riquísima. Y durazno. Ahora si yo hago lo mismo.
For fruta in frutas. Dos puntos y lo mismo. Print fruta. Recorro fruta. Ya esta. Se me recorre y
se me muestran todas las frutas. yo me voy a comer. Entonces agarramos y ponemos. La
ponemos entre corchetes. Los corchetes los ponemos entre llaves. Acá le ponemos una F y acá
ponemos. Me voy a comer una. Me voy a comer una banana. Me voy a comer una manzana.
Me voy a comer una ciruela. Todas las frutas se comen. Pero supongamos que de repente yo
diga. Che mira pero la verdad que. Y la granada a mi no me gusta. siguiente. If, ok. If fruta igual
granada. Abrimos condición. Y acá voy a poner continue. Que hace el continue. El continue
dice bueno. saltar. Todo lo que hace. Porque vieron que el bucle da varias vueltas. Vuelta 1,
vuelta 2, vuelta 3. Si tiene 5 elementos da 5 vueltas. Supongamos que en cada vuelta hay 5
instrucciones. Si la instrucción 3 es continue. Y continue se ejecuta. Todo lo demás no importa.
Se saltea a la siguiente vuelta. Entonces yo actualizo. Me dice me voy a comer todas las frutas.
Pero granada desapareció. Porque cuando fruta vale granada. No decimos. Me voy a comer
una granada. Lo salteamos antes. Y ahora si pasa a la siguiente fruta que es. Durazno. Y dice
como un durazno. Si acá le decimos. La verdad que no me gusta la manzana. No me gusta la
manzana. Ejecutamos. Y ahora se ejecuta. Y se come todo menos la manzana. Porque cuando
la fruta es una manzana. No se la come. Entonces pasamos a la siguiente vuelta. Porque acá se
come la fruta. Pero no queremos que llegue acá. Pero queremos que el bucle se siga
ejecutando. Entonces pasamos. Ahora supongamos que acá vamos a poner. Evitando que se
coma una manzana. Con la sentencia continue. Ahora imaginemos que de repente. Sabemos
que cada vez que comemos. Una pera. Vamos a ejecutar el mismo código. Sabemos que cada
vez que comemos una pera. Cada vez que nuestro cuerpo recibe una pera. Le duele la panza y
no puede continuar. Evitar que el bucle siga ejecutándose. Cómo hacemos para decir. Bueno
che mira ya está. Te comiste una pera. Te va a hacer mal el estómago. No comas más. Bueno le
decimos che mira. If fruta. Igual pera. Dos puntos. Y en vez de decirle continue. Le vamos a
decir. Break. Que break es. Termina el bucle acá. Si tenías que dar siete vueltas. Y estabas en la
vuelta cuatro. No importa. Las otras tres. No las das. El bucle termina acá. Y podés continuar
con lo que venga por debajo. Que viene acá. Que es bucle terminado. Entonces si ejecutamos
esto. Fíjense en que se come. Hasta una ciruela. Que es la ciruela que está acá. Y después la
pera. Vamos a hacerlo al revés. Vamos a hacer que se coma primero la pera. Se come la pera. Y
después ejecutamos. El condicional. Y ya está. Termino. Basta de comerse. Y ahora el bucle
termina. Si yo le sacara el break. Van a ver lo que pasa. El lift. El lift se sigue ejecutando. Vamos
a sacar el lift completo. Sin el break. Se come todo. Termina la pera. Y después se come una
granada. Deja una granada. Y un durazno. Ahora con el break. No llega a comerse nada más.
Después de la pera. los bucles. Después tenemos una forma interesante. Que es integrar
cadenas de texto. Que vamos a poner. Esto lo vamos a sacar. Vamos a integrar cadenas de
texto. Otra cosa interesante. Es que acá ponemos el else. Cuando el bucle hace un break. Esto
es interesante. Para ello ustedes me preguntan. La diferencia entre. Pero si el else. Es lo mismo
que poner un print acá. Para que lo hago. Con lo que sucede. Que con un break. Cuando
termina el bucle en un break. Se saltea todo completo. El else tampoco lo ejecuta. Que cuando
encuentra un break. No ejecuta nada más. Cuando no lo encuentra. Si lo sigue ejecutando. Y
cuando termina el bucle. Ejecuta el else. Entre usar un else. Después de un for. Y poner las
condiciones solas. Que lo que pasa. Es que el else. En caso de que encuentre un break. Termina
y tampoco se ejecuta. El else. No se ejecuta tampoco. Esto es importante que lo agilaremos. Y
después tenemos que recorrer una cadena. Vamos a recorrer una cadena. Recorrer. Una
cadena de texto. Cuando uno habla de recorrer. Es iterar. Cuando uno recorre algo. Recorres
una lista. Le estás iterando. Recorres un conjunto. Vamos a recorrer una cadena de texto. La
cadena de texto por ejemplo. Va a ser. Cadena va a ser igual a. Hola Dalto. texto? La cadena de
texto. Algun lo que entenderán. Como la recorremos. No la recorremos. Palabra por palabra.
La recorremos. Carácter por carácter. For. Letra. O carácter. Sí. En este caso solamente texto.
Si vamos a poner letra. In. Y acá decimos. Y acá básicamente me muestra. Hola dalto. Porque
estamos recorriendo una cadena. En la segunda. Letra vale O. En la tercera. Letra vale L. Y en la
cuarta. Letra vale A. En la quinta. Letra vale un espacio vacío. Por eso me mostró. Un espacio
vacío acá. Porque esto también cuenta. Y después también podemos hacer. Booklets for. En
una sola línea de código. Supongamos que yo tengo. Una lista de números. Vamos a crear la
lista de números arriba. Números. Tengo el cinco. Tengo el ocho. Y tengo el diez. Y
básicamente. Esta es la cantidad de bitcoin que tengo. Son bitcoins. Estos son bitcoins. Y de
repente. Yo quiero duplicarle. La cantidad de bitcoins. ¿Cómo hago? ¿Cómo hago eso? Crear
una lista de la siguiente forma. Duplicados. Y no voy a andar creando una lista. Que agregue
cada valor. Porque la forma original sería esta. Sería. Num. Número. Y números. Vamos a crear
una lista acá atrás. Y ponemos. List. Y acá le agregamos. Por dos. Al final de esta lista. Cuando
mostramos por ejemplo. Lo mostramos con un print. Y nos va a decir. Sí, sí. Antes los números
eran. Cinco. Ocho. Y diez. Y ahora son cuatro. Diez. Dieciséis. Y veinte. Literalmente duplicamos
los números. de código. ¿Cómo hacemos esto fácil? Lo que hacemos es. Borrar todo. Entonces
esto. X. Y acá agotamos el foro. Acá lo que hacemos es decirle que. Se va a dividir por dos. Se
va a multiplicar por dos. Y el valor que va a tener X. Esta X. Pero X multiplicada por dos. Y
ahora. Simplemente. Mostramos. Vamos a decir. Vamos a ver que es lo que me dice. Y ahora
me dice. El mismo resultado. Tengo hipo. ¿Cómo hicimos esto? Muy simple. Y fue. Un for. Acá
podemos decir. Si quisiéramos dividirlo por dos. Lo dividimos por dos. Números divididos por
dos. Y se divide por dos. Esto es. La expresión matemática viene adelante. Y después viene
todo lo demás. Esto es para hacer cosas bastante sencillas. Digamos. Con esto estamos
definiendo el valor de X. Si yo dijera. Es. La X la elevamos al. Cubo. Todos los valores son
elevados al cubo. Todos elevados al cubo. Y es una forma interesante de hacerlo. En este caso
vamos a poner. Y estamos duplicando los números. Y ahí tenemos. Duplicamos. Los números. Y
ya tenemos. Más o menos todo lo que viene siendo la funcionalidad. Son las cosas que
podemos hacer con un bucle. Estas son cosas que se usan mucho. Y está bien que tengan esto.
Porque son cosas interesantes. Relevantes. Y que les van a servir un montón. Ahora vamos a
poner. Creando las listas. Que hermoso ¿no? Que hermoso es esto de programar en Python.
Que hermoso. Y más cuando están suscritos a este canal. Y le dan me gusta. Y comentan el
video. Y me etiquetan en una lista de Instagram diciendo. Estoy mirando tu curso de Python. La
verdad que me está re sirviendo. Me da un orgasmo. Después hay un bucle más en Python.
Que es el bucle. While. ejecutarse. No es como que recorre elementos. Sino que. verdadera.
Siempre se va a ejecutar. Mientras que la condición que está en cuestión. Sea verdadera.
Vamos a ver como funciona While. Y lo vamos a usar mucho. Vamos a ver el uso de While. es
decir, es una sentencia que nos permite ejecutar un código bastantes veces mientras que el
while se va a ejecutar siempre que una condición sea real es decir, por ejemplo, este código se
va a 5 en la segunda es igual a 2, en la tercera es igual a 3 igual a 5 ejecutar el código porque el
bucle ya se ejecutó lo suficiente ya que la condición no se cumple Así que no lo vamos a seguir
ejecutando un bucle que sea buclewhile.py por ejemplo, número es igual a 0 o contador Ahí
va, contador es igual a 0, ahí estamos que el contador sea menor que 10, vamos a ejecutar
este código nos va a mostrar un código infinito ejecuta y se ejecuta y se ejecuta de parar
Porque esto se va a ejecutar de forma infinita Entonces lo que podemos hacer acá es sumarlo
Contador más igual a 1, como hacíamos antes De esta forma le estamos sumando 1 al
contador a valer 0, pero acá va a valer 1 a valer 2 Lo sumamos, va a valer 3 Lo sumamos, va a
valer 4 va y sumando que 10 Va a ser igual a 10, no menor y el while terminó de ejecutarse
llegó a su fin ese bucle infinito Porque les puede titar toda la computadora Por suerte mi
combo es una combo potente tienen que darle al botoncito de pausa trabar Ahí está, se
ejecuta 0, 1, 2, 3, 4, 5, 6, Hasta el 9 y terminó sea igual a 16 Esto se ejecuta 16 veces Desde el 0
hasta el 15, o sea 16 veces Cuando ya contador vale 16, llegó al fin contador Y ahora contador
vale 16 y lo hizo De hecho vamos a hacer una cosa vamos a mostrarlo lo mostramos Y ahora va
a pasar de 0 a 15 a 1 a 16 Este es el funcionamiento del bucle while siempre que esta condición
se cumpla Entonces la ejecutamos, volvemos a preguntarle a ejecutar la ejecutamos más Y ahí
termina el bucle Ahora vamos a agregar el comentario Mientras que la condición se cumpla El
bucle se va a ejecutar Ahí agrego un comentario que es La condición se verifica vuelta tras
vuelta Para que ustedes lo tengan en cuenta Vuelta tras vuelta se verifica la condición Y ahí
funciona el bucle while que va a ir sumándose finalizado Este fue el apartado de bucles Es algo
la verdad que bastante sencillo felicito Bueno gente, ahora sí terminamos con esto Vamos al
apartado final de esta sección Antes de pasar a los ejercicios prácticos Y a la sección de
funciones de avanzar Todo lo que estuvimos viendo ahora Print es una función Type es una
función Zip, set y subset Estuvimos viendo un montón de funciones Pero ¿Cómo creamos
nuestras propias funciones? de código puedan reutilizarse? nuestras propias funciones?
Bueno, eso es lo que vamos a ver ahora En apartado de funciones de mis preferidos. que
realmente es de mis preferidos. saber hacer después de este apartado es una locura. darles
una noticia interesante. a mi perfil de Instagram, más el número. hagamos una comunidad
mucho más grande. te sirvió, andá a seguirme a Instagram. aporte excelente. curso de
inteligencia artificial lo van a saber primero por ahí. dudas lo van a saber primero por ahí. Cada
cosa que haga la van a entender por acá. de todo y podemos interactuar. vamos a ir a
mensajes. el tiempo interactuamos. porque saben que los respondo. mandan. de leerlos y
responderlos. pero eventualmente siempre los veo y respondo. un día, recién hace un día.
solicitudes ocultas. llega la mayoría de gente, de hecho. me manden un mensaje, si no lo
responden entiendan que es por esto. a notar que acá dice tienda dalto próximamente. hablé
nada, no avisé por ningún lado. tres días. que se va a llamar funciones. un archivo. en Python,
ustedes vieron que por ello les iba diciendo. mostrarlos en pantalla. ver cuál es el tipo de dato,
de objeto que le estamos pasando. pedirle a otro usuario. Bueno, estos son justamente
funciones. interno tiene. están escritos, funciones ya creadas por Para que nosotros
reutilicemos cuando queramos. la función enumerate y muchas otras funciones que ya son de
Python. qué es lo que tienen adentro ni cómo funcionan internamente. Porque sabemos lo
que hacen. abstracción. una función. forma afecta nuestro programa. creada. Es decir, vamos
con otras palabras. Y le pasamos con parámetro madres. la madre que consiguió. Nosotros
sabemos para qué sirve esta función. Y también sabemos qué dato nos está pidiendo. como
dato hermanas. Y esto nos daría el número de las hermanas. una función para conseguir los
números de un grupo de personas. nos indique los números de quién queremos conseguir. Es
decir, quiénes son estas personas. Ahora, ¿sabemos cómo funciona? el funcionamiento de
nuestro programa. su totalidad. Eso es la abstracción en Python. Ocultar toda la complejidad
que tiene. la función. sin conocer su funcionamiento interno. Bien, esto es así. Es simple. Es
justamente el concepto. son las funciones. Porque ahora vimos el tema de la abstracción.
funciona eso. Y justamente es por eso. funciones. Sí es necesario entenderlas. ahora. Una
función es un fragmento de código. Que podemos utilizar en cualquier otro momento. una y
otra vez. Es decir, no hace falta que hagamos un copy-paste. O sea, copiar y pegar. Para usar el
mismo código. Simplemente hacemos referencia a ese nombre. Que contiene todo el código.
Esto nos permite muchas cosas. Como por ejemplo. Primero, evitar repetir código muchas
veces. Segundo, la modularidad. en partes más pequeñas y manejables. Y después poder
incluso probarlas aparte. Y que esto no afecta al programa. No las podemos probar y modificar
aparte. Y después integrarlas al programa de vuelta. pueda estar separado en partes. más fácil.
Después hacer que el código sea más mantenible. Se pueda depurar más sencillo. Porque cada
cambio que queramos hacer. en específico. Hacemos el cambio. función. Reflejado ese
cambio. punto anterior. Y lo mismo pasa con el cuarto punto. Que es que hace que el código
sea más legible. Al tener todo bien separado. Es como consecuencia de estas tres. Que hace
que el código sea más legible. Y si un código es legible. Bien por nosotros. Porque aunque no lo
crean. El 90% del tiempo lo pasamos leyendo código. El resto lo escribimos. Pero el 90% del
tiempo leemos código. O sea, lo más importante es escribirlo bien. Porque la mayor parte del
tiempo lo leemos. leyendo un código. ¿Por qué vamos a escribirlo mal? El tiempo que nos
estamos escribiéndolo. Es muy importante. propio código. un código. Y repetirlo mil veces.
Podemos crear una porción de código. Porque para eso se usan las funciones. creadas por
Python. Como ya lo vimos. No es que las creamos nosotros. O sea, son funciones. Y están
creadas por Python. No por nosotros. Esas se llaman funciones build-in. Justamente vienen
construidas por Python. Por eso tienen ese nombre. Build-in. Las funciones build-in.
Justamente son funciones integradas por Python. Vamos a sacar un nuevo archivo. Que sea
build-in.py. funciones build-in. Además de todas las que ya vimos. Vamos a ver algunas nuevas.
Para repasar un poco. Tenemos max y min. Vamos a poner un comentario. Esto aplica para
cualquier iterable. Yo por ejemplo. Vengo acá arriba. Y pongo list números. Y creo una lista con
un par de números. 4, 7, 1 y 42. Y 15. Si yo ahora pongo por ejemplo. Número más alto. Max.
Cuando yo ejecuto esto. Si se fijan. Me va a devolver. Nada. Porque no usan print. Vamos a un
print. Lo ejecuto y me devuelvo 42. Porque dice. Mira. estos? Y el 42. Esto si fuera una tupla.
También funcionaría. Así que despreocúpense. Si fuera una tupla. Si fuera un conjunto. ¿Ven?
Funciona igual. Porque lo que hace es determinar. El número más alto de un iterable. Tienen
que ser números sí o sí. O no funciona. Tienen que ser sí o sí números. Podemos hacer lo
mismo. Pero con el número menor. Encontrando el número. Vamos a poner. Menor. De una
lista. Y acá ponemos. Número más bajo. Y si ejecutamos esto. Arriba nos devuelve el 42. Y
abajo nos devuelve el 42. Porque ejecutamos Max. En vez de Max. A ver si adivinan. Si no es
Max. Si Max es el más alto. ¿Cuál es el más chico? Main. Exacto. Muy bien. Si no lo hubieran
adivinado. Me hubiera preocupado bastante. Realmente. Y nos dice 42. Y 1. Porque el número
más chiquito. Es el 1. Si eliminamos el 1. Debería decirnos el 4. Nos dice que es el 4. Si
eliminamos el 4. Debería decirnos que es el 7. Nos dice que es el 7. Así está funcionando. El
mínimo es el 1. Y el máximo es el 42. Después. Vamos a utilizar otra función. Que es Round.
Que si bien ya la explicamos. Ahora podemos hacer una cosa más con Round. Redondeando a
6 decimales. Si se dieron cuenta. Antes con la función Round. Nosotros utilizábamos un
cálculo. Para resolver problemas. En el apartado de ejercicios prácticos. Que era utilizando una
fórmula matemática. Para hacer que un número se pueda redondear. Con 3 números de más.
O 2 números de más. Para después correr la coma. práctico. Pero. Hoy en día lo podemos
hacer diferente. Porque vamos a aprender una nueva herramienta. La promesión no se trata
de ser. Siempre los que mejores soluciones dan. Pero se trata de ir aprendiendo. De eso. Ir
creando mejores soluciones. que tenga coma. Y correrle la coma. Sin necesidad de andar
multiplicándolo por Redondeándolo. Y después dividiéndolo por 100. Es la siguiente. Porque
antes lo que hacíamos era esto. Antes hacíamos un número igual. Teníamos por ejemplo. Este
número. Y lo que hacíamos era. Lo multiplicábamos por 100. Supongamos que queríamos
hacer. ¿Qué hacíamos? Decíamos bueno mira. Redondeamos este número. Te damos este
número. Suponganse que teníamos este número. Este número flotante. Cuando usábamos la
función round. Este número nos redondeaba el 12. Entonces si yo mostro un print. Estos print
de acá. Y pongo print número. Esto me muestra un 12. Porque me está redondando hacia
abajo. Si yo quería antes mostrar el número. ¿Qué era lo que hacía? Y primero lo que hacía
era. Lo encerraba entre comillas. Y lo multiplicaba por 100. Round número por 100. Entonces
de esta forma. No nos daba 12. Nos daba 12. Entonces lo que hacía acá. Era lo dividía por 100.
Y de esa forma. Tenía dos decimales. Esto fue como lo hicimos. En ejercicios prácticos. Los
desafío. A volver a hacer esos ejercicios prácticos. Ahora utilizando la función round. En la
función round. Lo que tenemos. Es una posibilidad. Y es la de decir. Cuántos decimales
queremos dejar. Por defecto. Esto es cero. Pero si le damos dos. Y ahora mostramos. Vamos a
ver que nos deja. Dos decimales. Y tenemos lo mismo. Solamente agregándole una coma. Y la
cantidad de decimales. Queremos que tenga tres decimales. Le agregamos el tres. Y ahí va a
tener tres decimales. Esta es la forma correcta de hacer. Pero más barato. Hacer como lo
estábamos haciendo antes. No era del todo acertado. A mí lo que me interesa. Es que ustedes
hagan las cosas. Por ese motivo. Se los estoy explicando recién ahora. Porque a mí no me
interesa. Que ustedes copien todo el código. Que yo hago. Y lo escriban. No me interesa.
Porque eso es un error tan común. Que lo que hace es que muchos trabajadores. Agarren
copien código de internet. Y lo usen sin ni siquiera entenderlo. Y ver y entender su
funcionalidad. Y cómo se puede optimizar. Esto es un error muy común. Y ustedes no
deberían. Un... Digamos algo tan sencillo. Como esto. Usarlo mal. Porque se convirtieron en
una mala práctica. Al tener un código no óptimo. Cuando simplemente era hacer esto. Es que
ustedes desarrollen su lógica. Su creatividad. No es copiar, copiar, copiar. Bueno está bien.
Puedes copiar. Porque incluso yo hago. Yo copio código. Pero lo importante es entenderlo.
Analizarlo correctamente. Investigar las funciones que está usando. Para ver qué problema nos
puede traer a futuro. Y optimizarlo. se podría dar. Incluso para proyectos propios suyos. Y es
optimizar el ejercicio prácticos uno. Con esta función round. matemático. Para poder
redondear. Sino que utilizamos la función round. Con el segundo parámetro. Que es el
parámetro de los decimales. Y eso no lo voy a hacer yo. Eso se los dejo a ustedes. Para que lo
hagan solos. Y puedan obtener el mismo resultado. voy a dejar a ustedes como tarea. Si lo
pueden hacer. Que es lo más común. a este punto del curso. Lo felicito. Usaron una
herramienta. Que nunca les explique. como ese. es. Necesitamos optimizar el código. Sin mi
ayuda. Así que felicidades. Después tenemos la función ball. Que básicamente nos retorna.
False. En caso de que le pasemos un cero. Le pasemos un número vacío. O sea un dato vacío.
Le pasemos false. O ninguno. O sea que no le pasemos nada. Si no le pasamos nada. Le
pasamos un cero. Le pasamos un vacío. O un falso. Esto nos va a devolver. Y justamente es la
función ball. Bull. En realidad no es ball. Es bull. Pero bueno. Si yo por ejemplo le paso cero.
Aquí vamos a poner. Resultado. Aquí vamos a mostrar resultado. Booleano. No dice que es
falso. Porque le pasamos cero. Nos devuelve también falso. Si le pasamos una. Lista vacía. Si le
pasamos una tupla vacía. Si le pasamos un none. No se olviden que ninguno. Vendría siendo
como lo que es none. Así que vamos a poner none. El falso. De eso si también le pasamos false.
O true. En caso de que le pasemos. Un número. Distinto a cero. O una. Cadena de texto. Una
cadena cualquiera. Si le pasamos por ejemplo un array. Con no se. Dos elementos. O datos no
vacíos. Ahí agregamos. Una lista por ejemplo. O que tiene datos. Le ponemos un nueve. Tiene
true. De hecho si le pasamos un menos uno. Que nos va a devolver. Y si le pasamos menos
uno. Nos va a devolver true. Porque todos los números distintos a cero. Nos devuelven true. Le
vamos a pasar por ejemplo este dato. Y cualquier dato. Que sea true. Después tenemos otra
función. Que también es muy copada. Que es all. Esta función que es all. Retorna true. Si todos
los valores son verdaderos. Estamos hablando. Que lo mismo que hace bul. O sea si lo que le
pasamos como parámetro. Es verdadero o no. Lo hace all. Esta función que está acá. All. La
función es all. En vez de comprobar. Un solo elemento. Comprueba lo que está adentro de un
iterable. Le pasamos un iterable. Y no comprueba el iterable como tal. Comprueba por
ejemplo. El elemento este. ¿Entendés? Estos son los datos que comprueba. Y de hecho si
ahora le decimos resultado. No se dice ni al. Ni all. Es como all. La mezcla entre la y la o.
Porque todos estos datos son verdaderos. Ahora si yo acá le pasara un 0. Ahora me devuelve
falso. Porque 0 es falso. No se olviden. Acá arriba 0 es falso. Si yo le paso un none. None. Le
paso una lista vacía. Una lista vacía. También nos devuelve falso. falso. Entonces así es como
funciona all. Si o si todos estos tienen que ser verdaderos. Después tenemos por ejemplo sum.
Suma todos los valores de un iterable. Si yo por ejemplo a esto le doy. Suma total. Esto va a ser
igual a. sum. Si yo acá le digo suma total. Cuándo actualizo me va a decir 69. Ah que número
hermoso. Porque 69 es la suma de todos estos números. Si yo acá le paso por ejemplo. Debería
devolverme 99. Porque 69 más 30 es eso. Es la suma de todos los números. Yo por ejemplo le
saco. Todos estos números. Me devuelve la suma de. 4 más 7 más 1. Bueno actualizo. 4 más 7
es 13. Más 1. 4 más 7 es 11. Más 1 es 12. iterable. Es importante que sean números. Porque si
no son números. Si yo acá por ejemplo agregar a. Arrancaría a devolverme excepciones. Voy a
comentar todo esto para que vean. Que es lo que me devuelve excepciones. Esto me devuelve
una excepción. El de abajo me devuelve una excepción. Sigo actualizando. Y. sum me devuelve
una excepción. Estos tres que se encaran de sumar números. sum, Max y Min. Me devuelven
excepciones. que si o si. Tienen que ser números. Porque si no devuelven excepciones. Ahora
si ya estamos. integradas. Funciones build in. Pero la pregunta es de dalto. Cómo creo mis
propias funciones. Porque todo es muy lindo con esto. Pero yo quiero crear las mías propias.
Quiero tener mis funciones. Poder crearlas. Poder darles uso. Poder crear mi propio código
para usar. ¿Cómo hacemos eso? vamos a crear nuestras propias funciones están listas, que ya
vienen integradas de Python Pero tenemos las nuestras propias Para eso, cree un archivo que
se llama CrearFunciones.py Y vamos a arrancar, yo voy a poner def while para iniciar un bucle
O if para un condicional O for para un bucle for Usamos, en este caso, def nuestra propia
función ejemplo, saludar hay un parámetro Que ya vamos a ver lo que es un parámetro quede
bien claro simple de código que escribíamos en este bloque voy a hacer un print andas? type,
así como ejecutábamos len es el nombre de la función que es saludar Y los dos paréntesis y se
ejecuta la función Yo estoy muy bien flaco, gracias por el saludo si se fijan, si yo pusiera este
código Es un código gordo, es feo no descontextualicen porque no soy gordofóbico y es feo y
realmente no nos sirve, no nos interesa sea más lindo? en este caso no queda estético ni es
práctico Bueno, se entiende saludar, saludar veces entonces se ve más lindo Lo mismo, el
código, está volando de código porque esta es la función del código Esto pasa cuando tenemos
algo chiquitito en una función es crear muchas líneas de código líneas de código que se
traduce es bestial más avanzadas Lo vamos a ver ahora de hecho y acá le damos ejecutando la
función simple ¿Por qué vamos a comentar todo? crear una función con parámetros Vamos a
poner en función ¿Cuál es el problema de esto? decir nombre es Dalto ¿Qué pasa? Y, yo lo que
tengo que hacer es usar un parámetro parámetros ¿Qué es un parámetro? Es una variable, un
parámetro es una variable afuera no existe para ser usados dentro de la función Y después ya
no usarse más un parámetro que es nombre Ponemos dos puntos y acá decimos print a decir
nombre, mi maestro, ¿cómo andas? ahora pongo saludar y me dice Hola Lucas, mi maestro,
¿cómo andas? Pero también me puede decir Hola Dalto, mi maestro, ¿cómo andas? maestro,
¿cómo andas? Saludos a Camila, maestro mina Entonces ¿qué pasa? Y tenemos que ver si es
hombre o mujer, bueno Ah, pero ¿cómo lo verificamos? Bueno, agregamos otro parámetro, el
sexo Hombre o mujer Entonces ponemos if sexo es igual a mujer Vamos a poner, primer y
principal, sexo punto que lo que hace es convertirnos todos a minúscula Entonces acá
simplemente ponemos mujer con minúscula, lo va a identificar Entonces si es mujer, dos
puntos a decir maestra Acá ponemos Entonces acá ponemos adjetivo podemos decir que por
ejemplo reina, por ejemplo Si es hombre, el if sexo igual hombre Siempre la comparación es en
minúscula Si es hombre, el adjetivo va a ser titán Y si no es ninguno de los dos con hombre, ni
con mujer Entonces podemos decir adjetivo igual No lo sabemos la verdad, no lo sabemos
crack pasa que es muy por ahí Ellos dirían que es paki decirles así mi amor les guste Ahí va
Entonces Camila, ya que le paso, mujer Esto básicamente me respondería Que hice mal acá Ah,
puse esto, me quedé con ya Ells dos puntos, se me falla una forma Hola Camila mi reina, como
andas? Lo que pasa es que acá sexo punto lower No estamos convirtiendo sexo en lower
Tenemos que decir sexo igual sexo punto lower Ahora actualizamos y ahora si dice Hola Camila
mi reina, como estas? Si le ponemos mujer así todo mal escrito Si después de Camila llega
dalto Vamos a decirle saludar a dalto Hombre, y que hombre? Y nos dice hola dalto, mi titán,
como andas? Y si no nos identifica, saludar Que yo puedo poner fran y el fran no binario como
andas? es inclusivo espectacular No se me ofende nadie, estamos todos felices por algo
innecesario de hoy en día ni hombre ni mujer está bien ni esto ni esto dentro, está bueno decir
amore o titane o reine hablar bien decir personas que estudian que estudia mundo nos
identifiquemos, somos personas Entiendo que es para simplificar el lenguaje amor Entonces,
es un punto de vista Y de esta forma, si se fijan, ahí va código que está acá Lo estamos
ejecutando como tres veces hecho esto, miren Tendríamos que haber hecho 1, 2 y 3 con estas
líneas de código Que es fantástico ahora esta frase la quisiéramos usar cosas al usuario es, al
usuario le estamos devolviendo cosas no se le puedan... O sea, como que no... A ver, les voy a
mostrar un ejemplo valores ¿Para qué sirve que nos retorne valores? Porque es simple un
número ese número No siempre se lo quiero mostrar al usuario base de datos que es privado Y
le hago cálculos haría eso? Lo quiero para uso propio Vamos a ver Si yo creo una función que
sea def calculo Le pasamos un num de número por 2 Primero lo multiplicamos por 2 lista por
ejemplo decir por ejemplo A, B, C, D, E, F, G, H, I, J, 9 caracteres 9, J, ahí está Vamos a crear un
hash Crear contraseña, random Esto crea una contraseña random que esto sea igual a Listado
de caracteres va a ser igual a esto a entero Vamos a dar str y acá le vamos a decir num El
número que nos pase lo convertimos a entero Valúe o número entero es igual a esto ser igual
a int de num Acá le pasamos un número Le podemos pasar 10, 20, 30, 40, 50, 60, 70, pasamos
Si le pasamos 25 se queda con el 2 Le pasamos 47 se queda con el 4 Siempre con el primer
número Le pasamos 1 se queda con 1 Le pasamos 3 se queda con 3 Si le pasamos un número
con más de dos dígitos Todo me lo ignora el primer dígito ¿Qué vamos a hacer después?
Character 1 va a ser igual a num entero menos Character 2 va a ser igual a num entero menos
5 Por ejemplo, ahí estamos Entonces de esta forma lo que hago es decir Contraseña es igual a
listado de caracteres Que vamos a poner el otro nombre Chars Chars significa char, char es
carácter Chars es como unos caracteres Acá ponemos chars c1 Vamos a ponerlo como string F,
chars c1 Chars c2 Chars c3 devolvió Por 2 Ahí va, entre paréntesis obviamente Entonces si
ahora le pasamos la contraseña Esto lo vamos a poner arriba de todo Y le pasamos print La
contraseña por ejemplo Si yo ahora digo crear contraseña random Y le paso por ejemplo un 98
Num entero acá en realidad va 0 caracter Y el primer caracter de un string es el 0 Entonces ahí
actualizamos, ahora sí entero Entonces ahora ya no es num entero, es num Y en todos va a ser
igual a num Entonces le sumamos el num Ya num entero no existe, ahora es num Num entero
fue una variable temporal que creamos Después es igual a num entero Actualizamos y se sobre
escribió, ya está Acá en vez de pasar una lista Le vamos a pasar un string Porque un string se
recorre letra por letra Entonces ahí está ir solucionando Estos pequeños errores que tenemos
Esto nos creó esta contraseña random Nos creó H, J, E, 18 Fácil Yo acá le pongo por ejemplo Le
paso el 4 Y me devuelve otra contraseña Le paso el 7 Le paso el 1 Me va devolviendo
contraseñas diferentes Según el número que le pase Sí está bien, esto es una función recontra-
rebuscada Pero es un ejemplo Ustedes pueden crear cualquier Si quieren hacer una prueba
con ustedes Si esto lo entendieron Y lo pueden crear Créelo para la práctica Buenísimo Si no,
no se preocupen Pueden crear cualquier función Que tenga números O frases O algo La
conclusión Es que yo quiero usar esto Para un funcionamiento interno Supongamos que esto
está en el backend Y es re complejo Es un algoritmo re complejo Que nos crea un número
random Que esto no es random Esto siempre va a ser lo mismo Siempre Si le pasamos 1 Nos va
a devolver lo mismo No es random Pero supongamos que le pasamos un número Que
realmente nos devolve un número random Queremos hacer algo con eso Y eso que queremos
hacer No queremos que el usuario lo vea Porque acá lo va a ver siempre en consola Todo la
contraseña la está viendo en consola Yo creo que sea íntima mía ¿Cómo hago para que sea
íntima mía? Simple En vez de darle print Contraseña Lo que yo voy a hacer es Return La voy a
retornar ¿Qué es retornar? Retornar es decir Que de repente Esta función Se va a convertir en
un valor Que podemos asignarla a una variable O otras cosas Por ejemplo Vieron que usamos
la función round Bueno round Si le pasamos 12,5 Nos devuelve 12 Pero ponemos resultado
Igual Round Y resultado vale 12 Porque redondeo 12,5 a 12 Porque lo que nos retorna round
Es 12 Entonces en este caso Nos retorna la contraseña Si yo ejecuto esto así no más Ya está No
lo muestra más en consola Lo que muestra es lo de arriba Pero esto no lo estaba mostrando
más en consola La contraseña no la muestra Pero ¿Cómo la podemos obtener? Lo que decimos
Password O contraseña Va a ser igual a esto Y yo si quiero la puedo mostrar Ahora sí si quiero
la puedo mostrar Para mi funcionamiento la puedo mostrar Pero ahora puedo trabajar con la
contraseña Yo puedo decir por ejemplo Frase es igual a Tu contraseña nueva es dos puntos Acá
hago un f de fstream Digo flaco Tu nueva contraseña es password Y ahora lo que muestro es la
frase Entonces ahora puedo operar Tu contraseña nueva es jvg12 Si yo acá por ejemplo le
pasara el 3 Tu contraseña nueva es vdi6 Estamos trabajando la Retornar valores Lo que nos
permite es el dato poder guardarlo Porque si nosotros no retornamos valores Y le damos un
print No podemos hacer nada con el dato Una vez que la función se ejecutó Se ejecutó No
hicimos nada Tu contraseña nueva es none Porque ya está Así se mostró Nos mostró la
contraseña Pero esto no lo podríamos hacer acá afuera Lo tendríamos que hacer acá adentro
funciones afuera de las funciones es retornando nos retornan algo Hacemos un proceso Para
obtener un valor Y ese valor es el que usamos En type Le pasamos un número Y nos devuelve
que tipo de dato es Ese es el valor que nos devuelve Max La función max y min Le devolvemos
un valor mínimo Pero hace todo un calculo interno Y nos dice che el número mayor es este Si
le damos número máximo Acá lo podemos ver Numero igual esto Esto nos retorna un valor Por
eso lo podemos guardar acá Esto Y esto Nos retornan valores que estamos guardando Si no
usaran return Esto se ejecuta Y ya está Pero nunca se guardó Para que se guarde O para poder
guardarlo Tenemos que retornar un valor un valor valor que retornó Entonces lo podemos
igualar a una función Ya lo van viviendo con práctica Esta es una función que quizás fue muy
rebucada Estuve quizás un poco mal Estuve mal Lo admito Quizás no fue la mejor función para
explicarle con los conceptos De hecho esto es solamente algo tan simple Comparado a lo que
vamos a ver en un futuro Que no pueden considerar lo complejo Y si lo consideran complejo es
normal Porque es básico Así que no se sientan mal en territorio más avanzado Y esto es un
buen ejemplo general Acá lo que hacemos es crear caracteres aleatorios A, B, C, D a string el
primer número Porque si convertimos a string Cuando recorremos un string El primer valor del
string es esto La primer letra Entonces si nos pasa un 7 Ahora es No es 7 Cuando le decimos
Pásame el primer dato que está en el 0 O sea el índice 0 del string Me va a pasar 7 Si el tiempo
me pasó esto Solamente me va a pasar esto Entonces ese es el número que necesitamos Por
eso lo convertimos a número A entero, perdón valor 0 que me pasó Por eso uso esta función el
primer número Si me paso 527 obtengo el 5 El 5 del 500 El 5 Eso con esto que está acá Lo
hicimos entero y obtenemos el primero Si el número era 425 Tiene tres caracteres Con 0
accedo al 4 Y siempre al primero Tenemos la función RUN si quieren Acá que dice C es igual a
num Menos 2 Esto es Si por ejemplo el número ahora vale 7 C1 vale 5 C2 el carácter 2 es igual
a num O sea que vale 7 Y num y el carácter 3 es num menos 5 O sea que si vale 7 Es 7 menos 5
O sea que este carácter vale 5 O sea si el número es 7 Esto vale 5 Esto vale 7 Y esto vale 2 Así
es más o menos como jugamos Si el número fuera 10 Esto vale 8 Porque 10 menos 2 es 8 Esto
vale 10 Y esto vale 5 Porque 10 menos 5 es 5 ¿Para qué no sirven esos valores? Nos sirven
Porque yo acá por ejemplo Si C1 vale 5 5 es La E Entonces me muestra la E Vamos a verificarlo
Yo acá le paso un 5 Esto me devuelve la E Bueno acá no porque estoy usando un print Vamos a
darle un RETURN Para poder usarlo RETURN La E no Nos da la D Porque es Le pasamos un 5
Bien Si le pasamos un 5 El primer carácter tiene 5 menos 2 O sea que es Menos 1 menos 2 Es la
D O sea que es 3 La D Muy bien Carácter 2 Es 5 La F Y acá está la F A ver la A de dónde sale C3
es num menos 5 Y 0 es acá La A Perfecto Y después lo último que hace Es a números Lo
multiplica por 2 O sea que si número es 5 Esto va a 10 Vamos a probarlo con otro número A
ver si nos sale Con un 3 Bien vamos con 3 3 actualizamos 3 menos 2 es 1 La B Está bien 3 es la
D Así que que nos muestra la D Y después 3 menos 5 es Pero se acuerda la ocasión en la lista
Cuando le damos números negativos Esto es menos 2 Entonces por eso vemosla ahí 3 por 2 es
Acá mostramos C1 Lo que tiene Chars En 1 Que es esto En 3 Y acá mostramos En C3 El por 2 Es
fácil Por si no le llegaron a entender Esa es la explicación Pero nada No se la rebusquen tanto
Lo importante es que entiendan Que tenemos que retornar parámetros Si hice todo esto Estos
conceptos Están muy bien Y aprendamos a hacer ejercicios A mover un poco El código Y a
manejarnos Porque cuando hacemos programación real Esto es así Es la verdad Hacemos estas
cosas Que parecen todas raras Nos movemos de esta forma Y sí Lo usamos Y se aplica No está
mal que empiecen a ver ejemplos reales No acepto comentarios del Oh Dalto Te lo recontra
Rebuscas Si está algo innecesario No No es innecesario Ok Quizá para explicarlo Sí la práctica
complejas que estas Lo van a tener que hacer igual a hacer cosas así Y más si sonen ejercicios Y
si les salen bien Y si no Aprendanlo igual Hasta que les salga Eventualmente Si quieren ser
programadores Y ser buenos Esto lo van a tener que entender Y si lo entendiste a la primera
Sos una persona excelente Sos muy grande Es normal que te cueste Si les cuesta No se frustren
De hecho Si no les salió esta parte No pasa nada Sigamos con lo siguiente Total Esto no es
requisito excluyente Lo único que tienen que entender Es que tenemos que retornar valores
Eso es importante Porque tenemos que retornar varios valores O sea No solamente hace falta
que retornemos Un valor Acá podemos retornar por ejemplo Una tupla Que nos devuelva la
contraseña Y num Porque si yo por ejemplo le paso Num Me va a devolver 3 Entonces yo me
quiero quedar con ese 3 No me parece mal Me quiero quedar con ese 3 Por algún motivo que
desconocemos Que nos retorne múltiples Vamos a ponerla acá Que nos retorne múltiples
valores Si quiero que por ejemplo me retorne 3 Y bueno Contraseña es una tupla Estoy
retornando una tupla Bueno vamos a que nos muestra La contraseña nueva es Coma 3 Esto es
una tupla Entonces deberíamos decir La contraseña es igual a Cero Porque el primer valor es la
contraseña Y ahí tenemos la contraseña nueva Y si queremos acceder al segundo valor Vamos
a ponerle Resultado 1 Es esto Y resultado 2 Entonces si acá mostramos Pero esto que está acá
no es óptimo No es óptimo ¿Cómo podemos hacer eso? Y recuerden lo que les enseñé
Desempaquetando En vez de hacer esto Volvemos para atrás Ponemos la coma Y ahora
ponemos Número O el primer número Primer número Y ahora la acabamos de desempaquetar
Porque una tupla se puede devolver así Sin necesidad de ir agregándole los paréntesis
Actualizamos Y ahora tenemos dos valores Y primer número Y acá no le ponemos 0 Se lo
sacamos Y ahora si debería tirar un coso Tu contraseña es Más fácil Dos prints diferentes Tu
contraseña nueva es Y abajo vamos a decir el numero utilizado para crear la fue Dos puntos Y
ahí tenemos Esta Y el número utilizado Para crear la fue 3 Y eso que le estamos pasando a esto
Le podemos pasar Y nos va a decir Para acá la fue 9 fue este Solamente le sirve el primer dígito
Eso es lo que estamos haciendo Así que este es un buen ejemplo Acá estamos diciendo La
función Mostrando Los resultados Obtenidos Y los datos Utilizados Para obtenerlo Ahí estamos
Ahora si ya tenemos todo de 10 Ya tenemos todo comentado Y todo óptimo Ahora la pregunta
es Que pasa si por ejemplo Queremos hacer una suma indefinida De números Estoy poniendo
otro ejemplo Completamente diferente Otro muy diferente Vamos a crear una nueva función
Que va a ser Parametro Args Punto py Supongamos que yo tengo acá Una función que es Suma
Una función suma con A y B Listo la ejecuto Acá pongo A más B Digo bueno Resultado Quiero
sumar el 5 y el 3 Esto me va a dar 8 Y ahora lo muestro en pantalla Print Hasta queda todo bien
Listo Pero si quiero sumar más números Le estoy pasando un 9 Le paso un 9 Y no me lo sumo
Me tira una excepción Cómo puedo hacer esto Bueno hay una función Bueno la forma normal
es Pasar una lista Decirle esto como si fuera una lista Adentro ejecutar un bucle Adentro de la
función Ejecutamos un bucle Lo recorremos sumando los valores De forma óptima Sumar
valores Vamos a dejar de correrlo Ahí está Una forma no óptima de sumar valores Es crear esta
función que está acá Y decir por ejemplo Lista Y acá lo que hacemos es decir Números
sumados Igual 0 Y acá abajo decir For Número in Y acá por ejemplo decimos Más número Más
Perdón Más números Entonces después lo que hacemos es Termina el for Le pongo una lista Y
nos lo muestra Si yo acá le pasara por ejemplo Un 10 Y un 20 Me lo sigue sumando Me
devuelve 47 Y si además le paso un Sumame otro 3 Me devuelve un 50 Perdón, está mal
Porque esta no es la forma de hacerlo argumentos sea indefinida No pasarle una lista Esto es
asqueroso Entonces lo voy a comentar Porque no está muy bien Lo comento Lo comento y voy
a comentar todo Comento todas las líneas de código Bueno todo esto era para lo de antes Ahí
lo comenté hacerlo Utilizando el parámetro args Si utilizamos el parámetro args Vamos a
copiar el mismo código Y ahora tenemos que usar Vamos a usar por ejemplo Números Acá lo
que toca hacer Después de poner números Pongo El asterisco Este signito que está acá
asterisco Bueno vamos a procesarlo primero Lo que hacemos acá es decirle Che mira Esto va a
ser una lista Y es un parámetro que básicamente Podemos hacer esto Podemos Podemos
pasarle por ejemplo Y le podemos decir Esto va a convertir Todos los parámetros Como si
fueran uno solo Me explico Va a ser que todos los parámetros Que le pasemos Sean solo uno
Yo acá vengo y le digo Zoom Se acuerdan que Zoom Agarraba a los iterables Y lo sumaba Si yo
tengo una lista con 5 números Me lo suma Pero si yo le paso Acá 5 números Y se convierte en
una lista En realidad en un iterable Zoom me lo debería sumar Entonces ponemos números Y si
los muestro Y yo los retorno Este valor lo retorno Vamos a ver qué pasa Actualizo Los mismos
números Se acuerdan que esto me daba 50 Vamos a ver cuánto me da esto Me da 50 Funciona
exactamente Igual que la función de arriba Y eso utilizando el parámetro Esto está bueno De
hecho podemos hacer una cosa Podemos decir Pedirle el nombre Una cosa importante De este
parámetro Es que lo tenemos que usar Al final Si lo usamos Después no podemos agregar Más
parámetros Es el único parámetro Que podemos usar Y si queremos agregar Como por
ejemplo Yo quiero que me agregue un nombre Y además después Le dame Lo siguiente F string
Y vamos a retornarle Nombre Tus números La suma de tus números Es 2 puntos Y ahí se lo
mostramos Si actualizamos Y le pasamos Lucas Esto me dice Es 50 Porque el primer valor Es el
nombre Todos los que vienen después Van a hacer una lista Que va a llamarse números Y
números Están acá Entonces después Sumamos todos los valores De la lista Y me dicen La
suma de todos tus números El operador args El operador Como argumento Aquí usamos args Y
también lo podemos usar Para deglozar Podemos usar La misma función que antes Que la
vamos a copiar y pegar La podemos usar de otra forma Si podemos pasarle la lista Pero en vez
de ejecutar Todo esto Voy a dejarlo así como está Voy a ponerle números También a esta
función Y acá podemos decirle Que nos retorne La suma De asterisco Y esto también funciona
igual Suma total Vamos a poner otro nombre Para que no Acá ponemos sum Para que la
función No nos diga que ya existe Yo ahora digo Que resultado 2 Es igual a Y le paso la lista de
acá arriba Vamos a pasarle esto Le pasamos lo mismo acá arriba Ahí vamos a ver si funciona Y
de hecho Vamos a esto No vamos a mostrar este resultado No lo vamos a mostrar Vamos a
mostrar el segundo Vamos a mostrar Resultado 2 Lo que pasa acá Es que tenemos que crear la
lista Ponemos una lista Ahí cerramos la lista Y ahora si corremos el programa de vuelta Nos
funciona también Porque estamos diciéndole Che Y mostraramos exactamente Lo de adentro
Pero sin la lista Si yo agarrara esto Y lo mostrara Me mostraría Solamente que No seria una
lista Acá por ejemplo Le digo Esto me va a mostrar acá Si se fijan Yo digo que me muestre el
type A ver qué tipo de dato es Me va a mostrar Porque no me deja Me dice que hay muchos
argumentos Eso es lo interesante de esta función Es un operador bastante especial Y es muy
bueno Yo lo uso mucho Y se puede usar como parámetro O sea acá lo usamos como
parámetro Para pasarle La cantidad de datos que querramos Lo podemos utilizar Para hacer lo
mismo A la inversa Solamente que esto es más tedioso Porque acá tenemos que usar Una lista
acá Y además pasarle Una lista De esta forma Por ahí le podemos pasar La cantidad que
querramos Solamente que de esta forma Nos limitamos a que Siempre tiene que ser El último
parámetro que agregamos Porque si no es el último parámetro No podemos agregar más En
cambio acá Si esto fuera el último parámetro Después podemos seguir Agregando parámetros
Porque si agregamos Otro parámetro más Este parámetro No se ejecuta Porque esto es
infinito Entonces todo lo que le pasemos acá Cuando sabe el programa Lo que es este
parámetro Nunca Porque siempre todo Se va a meter acá adentro Bueno, en fin Y acá
ponemos Forma óptima De sumar valores O sea vamos a ponerlo arriba Porque esto va con el
código de arriba Forma óptima de sumar valores Y acá decimos Lo mismo que arriba Pero
utilizando el operador Como parámetro, perdón Si, de hecho Podíamos haber hecho lo mismo
Podíamos haber creado esta lista Podíamos haber creado esta lista aparte Y haberle puesto
Lista, punto, número Si era lo mismo Bueno, acá vimos el parámetro Arcs Que si se ve en un
fichero Apartar para esto Porque es importante que Que le demos su prioridad No su
importancia Bueno, después es interesante Que sepan que El orden en una función común
Vamos a ir a crear funciones Vamos a crear otro archivo Funciones, datos extra .py Ya que
vamos a poner Vamos a crear una función común Def, frase Nos va a pedir el nombre Nos va a
pedir el apellido Y nos va a pedir Vamos acá y le decimos Retornar Hola, nombre Y apellido Sos
muy adjetivo Entonces ahora le decimos Frase es igual a frase Frase resultante mejor Frase
resultante es igual a frase Lucas Dalto es un capo Eso era verdad Es un capo Pero hizo esto Y no
me muestra nada Así que voy a decir Frase resultante Y ahora si Hola Lucas Dalto Sos muy capo
Ahora Podría Hola Dalto Lucas No, no se cambia Es importante el orden Si yo acá pusiera por
ejemplo Adjetivo Capo Coma Esto es forzar un argumento Y lo podemos hacer en cualquier
momento Porque adjetivo es igual a capo Entonces actualizamos Bueno Esto es precisamente
Porque si pasamos esto Tenemos que pasarle todos los demás Entonces yo puedo por ejemplo
Ahora decir un nombre Y apellido igual data Y ahora está completo El segundo El valor 2 Lo
puse en el tercero Y el último valor lo puse en el primero Nada que ver Pero actualizo Y me
dice Y funciona igual No cambió nada Y cambió los parámetros del lugar Porque estos son los
parámetros Podemos decir que son los parámetros De palabras clave Los keyword parameters
Mientras que los otros Son los parámetros obligatorios Los parámetros que son Posicionales Es
decir Estos parámetros que son posicionales De posición Parámetro 1 Parámetro 2 Y
parámetros El orden no afecta Lo mismo que También podemos definirlo Directamente acá
arriba Si yo por ejemplo Esto lo dejo como estaba antes Y acá le digo Adjetivo igual tonto Yo
acá Lo puedo cambiar Explíquense esto Sos muy tonto Yo ejecuto este código Entonces vamos
a hacer una cosa Vamos a ejecutar lo mismo Vamos a poner Adjetivo igual capo Vamos a
ponerlo al principio Esto vamos a dejar como estaba antes Nombre igual Lucas Apellido igual
Dalto Creando una función De tres parámetros Y ahora decimos Utilizando keyword arguments
Son como Justamente argumentos De palabra clave Y abajo Esto lo vamos a comentar También
Porque quiero crear Otra función Que haga algo parecido Quiero que la función La segunda
que voy a crear El adjetivo lo tenga definido Como tonto Entonces acá no hace falta Que le
pasemos nada Yo acá por ejemplo Le digo esto Voy a copiar y pegar Abajo también Acá no
hace falta Que le pase adjetivo Le puedo pasar Lucas Dalto Cuando actualizo esto Me va a decir
Pero acá Esto va a ser siempre Tonto La variable La estoy definiendo acá arriba Pero si ahora
vengo Y pongo adjetivo Inteligente Fui tan inteligente Que logré cambiarlo Estos son
parámetros Que ya vienen forzados Vienen definidos Por defecto en la función Pero nosotros
si queremos Podemos cambiarlos ¿Por qué existe esto? Porque por ahí es lo mismo Que venir
acá Hacer esto y decir Esto Dalto y vos lo vas cambiando ¿Sabes por qué? Porque es muy tonto
Pero si vos se lo definís Se lo estás definiendo Lo puedes cambiar Si yo le pongo inteligente
Solo por defecto También se cambia Porque es un tercer parámetro Que es opcional Si lo
queremos agregar Lo agregamos Si no Es igual a tonto Creando la misma La misma Función
Con un parámetro Opcional Y un valor Por defecto El parámetro opcional Es este El valor por
defecto Es tonto Porque podremos dárselo Como parámetro opcional Y además Le estamos
definiendo un valor Entonces son ambas Es un parámetro opcional Y un valor por defecto Así
es como se hace esto Bueno y ahora si Una parte hermosa Se viene ahora Que es la de las
funciones lambda Así que vamos a ver Este último apartado De funciones Que es el de las
funciones lambda vamos a ver esto terror. me paga cientos, miles de dólares en mi cartil
desarma todo a la mierda. Concha de tu arma. que va a ser funciones Lambda, un poquito, que
se metieron y hicieron la parte de funciones ponerlo a escuchar o dijeron ah, es como la
función en flechas en Javascript. en Javascript. es el nombre de la función expresión, por
ejemplo, por dos. a explicar lo que es esto. Acá le vamos a poner, multiplicar por dos. anónima.
¿Por qué es anónima? Porque no tiene nombre. un String, esto no tiene nombre. Es un dato
anónimo, es un String anónimo. una lista, es una lista anónima a nada, es anónima. una
función ponemos def, nombre, función, parámetros, dos puntos anónimas que después
podemos almacenar, por ejemplo, en variables. por dos, cinco. ¿Qué me va a doble esto? Diez.
es una palabra clave. por dos y X. diciendo return, X por dos. para ahorrarnos abrir un bloque
de código, un bloque de código, for, una función, estamos dejando un espacio, este espacio
porque abrimos un bloque. funciones Lambda? Vamos a comentarlo. usar cuando queremos
hacer algo sencillo y rápido. Y después es que retornan automáticamente. aptas cuando
tenemos que hacer más de una instrucción. no es apta. con una función común. Filter es una
función común. está integrada en Python. true o false. en los que la función era true. uno, dos,
tres, cuatro, cinco, seis, siete, ocho, nueve. común que diga si es par o no. yo pongo acá el
num, dos puntos. dos es igual a cero. Entonces esto es par. ¿Por qué? dos y el resto sea uno es
sin par. Uno punto cinco es c. par. Ponemos dos puntos y decimos return true. Y ya con esto ya
estamos. números pares. Filter lo que hace es decir números pares. Va a ser igual a filter. Acá
lo que hacemos es decirle che mira. Ahora números es una lista. Le estamos pasando la
función lista. Lo que va a hacer esto es pasarle esa función. ¿Y qué va a hacer esto? va a
devolver diez. ejecutando la otra función. Es números pares. pares. Vamos a crear un objeto
filter exacto. estos valores. es cada uno de estos valores de la lista. Es como si echáramos un
bucle. Es como un bucle artificial. Que no es un bucle pero es artificial. Porque dice che mira.
¿Ves esta función que está acá? Si bueno. igual a uno. En la segunda a dos. En la otra a tres. Y
así con cada valor del array. diez veces. del elemento. una lista que después va a devolver. Los
que devuelvan false no los agrega. y esto lo hacemos lista. Venimos acá y ponemos. Lo
convertimos en lista. Le damos list números pares. el trece, el catorce, el quince y el veinte.
¿Cuáles son los que me va a devolver? Bueno me va a devolver el catorce y el veinte. Que
fueron los únicos pares que agregué. No sean pares sino que sean impares. Con esto tengo los
números impares. ejemplo? No con una función lambda. Bueno es fácil. lo mismo que antes
pero con lambda. Vamos a comentar esto, esto, esto y esto. Y lo único que tenemos que decir
es acá. Descomento esto. pongo. Lambda, número, dos puntos, número, resto. De dos igual
cero. Si el resto de dos es igual a cero. Nos va a retornar true. Nos va a retornar algo copado. O
sea esto. Si no, no nos va a retornar nada. Entonces yo ejecuto esto. Y me va a devolver
exactamente lo mismo. Para esto es lambda. Lo simplificamos con lambda. Es sencillo, es esta
la funcionalidad. Entonces decimos mira. Creando lo mismo que antes pero con lambda. Es
muy fácil. ¿Cómo funciona esto? Decimos che mira. Vamos a hacer una función anónima. Que
tenga un parámetro número. Número lo vamos a dividir por dos. Y si esto es igual a cero lo
retornamos. Si no vamos a retornar algo que es falso. La función filter lo que hace es. Ejecuta
cada uno de los valores de un iterable. Cada uno de los valores. Los va ejecutando acá. Si le
pasamos un texto ejecuta el texto. Entonces para que creara una función de cero. Ejecutamos
esto. Entonces en la primera vuelta. Va a valer uno. Número va a valer uno. Uno dividido dos.
Dar de resto uno. Entonces nos va a valer falso. No se va a agregar a lista. En la segunda vuelta
va a valer dos. Entonces sabéis cuando hacemos lo mismo. Acá vale cero. Entonces se devuelve
el número. Y si se devuelve el número se agrega la lista. Así funciona. Si nos retorna true. O
algo que nos dé true. Lo agregamos a la lista. Si no nos retorna. Lo sacamos. Es muy copa de
esta función. La vamos a usar bastante más adelante. ojeada. De la función filter. Con lambda.
Así que bueno. Ya terminamos justamente el apartado de funciones. el asunto. Yo le dije que
esto no era un curso tan tranqui. Si es un curso tranqui. Pero tiene sus cositas avanzadas.
completo. Y diferente. Y eso es a lo que quiero llegar con este curso. Me parece que ya
podemos avanzar con la siguiente. La siguiente parte de este curso. Que es el de ejercicios
prácticos dos. Ahora si se vienen ejercicios. Más complicados que los anteriores. La versión
dos. Y ya me parece que es un buen momento. Para ir ya cambiando de camisita. Podemos ir
yendo y escalando el nivel. Porque una vez que avancemos. Estamos escalando el nivel. Así
que por ahí. Podríamos cambiar de camisulis. Para hacer estos ejercicios prácticos. Porque
cuando los dominemos. Estamos escalando. Así que yo diría que. Ya es hora de cambiarlo. ¿Les
parece? Avancemos de nivel. Vamos con ejercicios prácticos dos. Estos ya son avanzados. Ya
son intermedios avanzados para el curso. Podemos decir que si. Ya esto es intermedio. Para el
curso es avanzado. Pero en general. Es un nivel intermedio. Así que vamos. ok? en un celular
estar haciendo voz en off en sacar los cursos? edito un montón todos los creadores Yo tardo 4,
5, 6 meses venir... Esto no es mi casa, esto es un estudio Contraté especialmente esto para
grabar quiero grabar un vídeo Un vídeo, esto que graba 40 minutos Por eso grabo todo de
golpe Después tengo que armar las escenas Tengo que andar haciendo el tema y uno
dándomelo Preparándome las clases con anticipación Edito todo mucho, tardo mucho en
editar día Y no estoy todo el día al pedo Entonces, lleva su tiempo Y además, los voz en off que
hago incluyen los voz en off O sea, los voz en off, un voz en off Son los que son animaciones,
gráficos y demás Sin mi cara, cuando aparece una pantalla en off Un voz en off es cuando,
evidentemente, no... Ok, sí, sí, eso mismo es un voz en off Eso mismo tarda muchísimo en
hacerse Así que dije, bueno, más fácil Tengo el temario acá, ejercicios prácticos Acá está
Vamos con el primer ejercicio Hoy faltó el profesor de clases suya propia Uno de los alumnos
va a ser el profesor Y otro va a ser su asistente A. Pedir el nombre y la edad de los compañeros
Que vinieron hoy a clase Y ordenar los datos de mayor a menor B. El mayor de la clase es el
profesor Y el menor es el asistente quién es el profesor? Bueno, acá me queda la carpeta,
entonces Ejercicios-2 Y en un archivo me llama ejercicios-2.py anotar los datos Siempre anotar
los datos Vamos, entonces, faltó el profe Y los pibes van a armar la clase edad De los
compañeros que vinieron hoy a clase Vamos a comenzar con eso Esto vamos a dejarlo para
atrás Compañeros, igual Después vamos a decir Vamos a decir For i in range 7 compañeros Ahí
está, 7 bucle 7 veces Comencemos Y se va a ejecutar 7 veces Un bucle que le va a preguntar al
usuario El nombre, igual Input Ingrese Perdón, el nombre Del compañero Y edad va a ser igual
a Lo mismo La edad Pero recuerden que esto nos devuelve string Por más que el tipo
introduzca un número Va a devolver un string Entonces tenemos que poner In Para que ya la
respuesta que nos dé automáticamente Se convierta en un entero Sin problema Compañero
ahora va a ser igual a Con el nombre y la edad Y vamos a agregar a esta lista Este compañero
Compañeros.append Compañero de los compañeros Pero como queremos pedirlo de forma
aleatoria ¿Qué vamos a hacer? Vamos a ponerle a esto Cantidad de compañeros Y lo que
vamos a hacer acá es Esto meterlo dentro de una función Así que vamos a decir Dev Obtener
compañeros Que nos va a pedir justamente La cantidad de compañeros que hay 2 puntos Y
ejecutamos todo este código Todo vamos a adelantarlo Lo necesario para que pueda estar
bien identado Y no nos tire errores Y ahí tenemos el código Esto es una función ¿Qué
funciona? Ahora, una vez que estamos afuera del for Lo que tenemos que hacer es ordenar
esto Porque ya está, tenemos todo Pero esto no podemos hacer que Con max y con min
Tengamos justamente la información O sea, sí podemos Haciendo un bucle que se ejecute en
simultáneo Al mismo tiempo Es decir, creamos dos listas aparte Y vamos ejecutándolas en
simultáneo Pero eso es mucha vuelta visto Compañeros.sort Y acá decimos que el key es igual
a Lambda x2 : x1 Porque sabemos que la edad Es el segundo parámetro Y el segundo acá lo
ponemos como 1 Ordenarnos compañero por key ¿Cuál es el key? Bueno, el segundo valor de
la tupla Acá se los explico Básicamente esto crea una especie de Iterable o lista Podemos
decirlo, tupla, lo que quieran En el que dice che mira Está bien, vamos a ordenarlo Recuerdan
que sort es una función que ordena Bueno, la pregunta es Te lo vamos a ordenar Pero, ¿de qué
forma lo vamos a ordenar? parámetro El segundo parámetro es la edad Entonces vamos a
ordenarlos por edad De menor a mayor Es decir, esto dice che mira Tenemos dos datos O sea,
te podemos ordenar el conjunto Pero, ¿cómo te lo ordenamos? que tengamos en cuenta Para
ordenarlo? Porque puede ser por el nombre Por orden alfabético Por qué quieres ordenarlo Y
lo quiero ordenar por el mayor número número Bueno, dame un dato numérico Acá tenés la
edad Entonces, esta lista con tuplas Ordenamela de vuelta Con la tupla Cuyo segundo valor Sea
el menor Y las tuplas En donde el segundo valor sean los menores Pasan adelante Y las que
tengan los valores más altos Pasan al final Eso es lo que hacemos acá Estamos ordenando
compañeros Por esto usar funciones lambda Más se van a dar cuenta de que es esto Pero es
algo bastante sencillo forzando ordene Por el segundo parámetro de cada uno Esta función lo
que hace es retornarnos esto Ahora, ¿Cómo sabemos cuál es el compañero? El compañero es
Tenemos al asistente por un lado Que va a ser igual a compañeros Vamos a acceder al valor de
la tupla Vamos a acceder primero a la lista La lista primero está ordenado dos elementos
Bueno, vamos a acceder al elemento cero Esto porque es de menor a mayor Entonces el
asistente es el menor ¿Cómo accedemos al menor? Si tenemos una lista Ok, una lista con listas
Tenemos esto Uno, dos Esto es lo que tenemos Entonces estamos diciendo Mira, accedé a la
lista Listo, estamos acá adentro ¿Qué elemento de la lista? El cero Bien, acá está Estamos acá
Estamos en este elemento Este elemento a su vez tiene dos elementos ¿Cuál seleccionamos?
El uno o el dos? El cero, o sea el primero Este que está acá Porque este sería el nombre
después le he dado O sea que este es el nombre Bueno, entonces me va a mostrar el nombre
Del primer elemento de todo lo que aparece ¿Cuál es el primero? El menor Porque lo
ordenamos de mayor a menor Entonces el asistente es igual a este Y el profesor es el último El
último de la lista ¿Pero cómo sabemos cuál es el último? Porque puede haber millones de
alumnos elemento de una lista? Es simple Compañeros Menos uno De esta forma accedemos
al último elemento El cero es el primero El menos uno es Volvemos a comenzar Y después el
elemento cero Porque queremos acceder al último elemento Al nombre Entonces lo que
vamos a hacer ahora es retornar Ya estamos Creamos una función que nos hizo esto Entonces
ahora si quieren la comentamos bien Pero vamos a verificar que funciones Y quiero hacer de
cuenta que hay 5 compañeros ¿No? 5 compañeros Esto me va a devolver algo Bien, voy a decir
que voy a pedirle Asistente, profesor Igual a esto Porque estamos desempaquetando el valor
Acá podría ser cualquier nombre No hace falta que sean estos mismos de la función Fuera no
existen Y ahora simplemente vamos a traer print El asistente es Y ahora acá agrego al asistente
Pero acá tenemos que poner una F adelante Pues si no nos cuenta Y copiamos, pegamos Y
ponemos el profesor Es más, incluso podemos unirlo todo Borrar la línea de arriba Y poner El
profesor es tal Y su asistente es Y ahí lo agregamos Ahora sí Ejecutamos y verificamos que
funcione Cantidad de compañeros is not defined Porque es cantidad de compañeros
Ejecutamos de vuelta Corremos y ingresa el nombre del compañero Bueno, acá tenemos que
dejar dos puntos Espacio Porque si no se nos va a quedar pegadito Voy a poner que la edad del
compañero El nombre del compañero es La edad del compañero es Treinta Fran Veinticino
Ingresa el nombre del compañero Voy a poner Camila Veintisiete Nombre del compañero
Roberto La edad del compañero Veintinueve Pedro Cuarenta y dos El profesor es Porque Pedro
tiene 42 Es el más grande corriendo de 10. Y acá tenemos una función aprendiendo. Aplicamos
bucles, aplicamos la aplicamos funciones, aplicamos desempaquetado, que resume varios
ítems que estuvimos aprendiendo. voy a mostrar qué tal. Listo, acá la tenemos. la edad.
Entonces creamos la función. Creando un for para pedir información de cada compañero,
información a la lista, la agregamos. Después la edad, lo hacemos acá. Después compañeros x,
con nombre y edad. Y después accedemos al nombre, valor, esto que está acá. Para definir
asistente asistente y después definimos profesor, retornamos una tupla que después
resultado. Esa fue una hermosa resolución con el siguiente. Bueno, el segundo ejercicio no me
la que al pasarle un número, nos genere números si le pasamos el número 15, nos pasaría el 1,
son los números primos que hay del 0 al 15. Es un número primos desde el 0 hasta el número
básica que después a ustedes les voy a permitir que se va a llamar ejercicios2,2.py. Bueno, una
función que nos devuelva los números primos Bueno, def, números, primos, num, dos puntos
y acá es divisible por otro, el resto es 0. Entonces pasan por todos los números. O sea, un bucle
anidado. si es un número primo o no. Bueno, vamos que usar un bucle dentro de otro bucle, va
a ser mejor que función que primero define si ese número puntualmente es un bucle que va a
llamar a esa función que a su vez de hacer bucles anidados sin necesidad de hacer bucles
función. No es un bucle anidado como tal. Sí a nivel de en cuanto a legibilidad. Así que vamos a
hacerlo. la misma cantidad de veces que el del número que sea primo? Simple. Lo que
hacemos es, que va a ir aumentando. Entonces vamos a poner a comenzar. If i, el resto de
dividir el número por i, ahí va, número, supongamos que esto vale 10, ¿no? En la primera
vuelta en la 3ra va a ser 3. Entonces vamos a ir verificando pueda dividir. En caso de que el
resto sea cero, es porque pudo dividir por un número. Así que vamos a arrancar si se puede
dividir por 1, me va a decir que se puede, 1. Por 1 y por el mismo número. Entonces
deberíamos decir restarse 1 porque si se divide por sí mismo también va a de 2 y este número
menos 1. Repito, porque si se puede 0 y se va a convertir en true y no necesitamos que sea
ponemos false. En caso de que se pueda dividir por algún primo. Entonces vamos a retornar
falso. Más fácil vamos Y ahí terminó el bucle. Si esto encuentra que se el bucle terminó y sí
termina. En caso de que el bucle Vamos a ejecutar más de una expresión así que esto porque
vamos a usar más de una expresión. Primero vamos Y fácil porque sí, perdón, falso no es falso.
Si llega a es falso. Ya está, no hay que dar más vuelta, no es ya está. Y si esto nos retorna falso,
el bucle retorna falso, cuando una función retorna algo, en este terminó ahí. Ya la función
cuando se ejecuta el return, del return, no se ejecuta más. Y si esto termina porque ningún
número fue primo. Así que Resultado es igual a es primo y vamos a pasarle Ejecutamos y nos
dice true, es primo. Bien, qué? Porque 7 es primo. 13 es un número primo, true. sabemos que
nos retorna número primo. Muy simple, muy otra función en la que llamemos a esta función.
que sea def primos hasta. Acá ponemos otro For e in range 2 num num. Entonces, for e in
range num. que cada uno de esos números sea primo. Entonces ponemos es si resultado es
true, if resultado igual true, igual lista. Acá vamos a decir primos punto append vamos a
retornar primos. Entonces, de esta forma, si ahora esto vamos a ver que dice 0, 1, 2, 3, 5, 7,
desde 0 hasta 11. Deberíamos evitar que salga mismo, arrancamos desde 2. Porque podemos
decir que 1 desde 2. Arrancamos desde 2 porque 1 no es 7, 11. De hecho, acá podríamos
arrancar desde 1, el 2 como un número primo. Y acá es menos un 1. Actualizamos y ahora me
devolvió 2, vamos a sacar el 2 y poner 3. Es un cambio que vamos tome. Y ahí estaría contando
todos los números 13 hasta no nos lo está tomando. O sea, si se fijan, el 13 no nos lo dice hasta
13. Entonces, para eso tengo que darle más 1. ahora sí me está tirando todos los números De
hecho, si acá le pasamos, por ejemplo, 98, actualizo el 0 hasta el 98. Y es increíble la cantidad
Esta función es una función válida y excelente, de hacerlo haciendo una multiplicación por 0,5
y podria marearlos mucho. Quédense con esta forma, ahora vamos a comentar cada parte del
código para a crear una función que verifique si un número es primo. que el número pasado no
pueda dividirse por ningún 1. Si es divisible por alguno, retornamos false y termina no fue
divisible, entonces es primo. Retornamos true. comentar la de abajo. Creando una función que
retorne una lista si el valor es primo. En caso de que sea, Ahí está. Creamos el resultado
llamando a la función ejercicio 2 de Python. Fascinating. Sí, tenemos que hacer lo mismo que
este en el ejercicio 3, pide escribir un programa que calcule la serie términos. Esto significa, en
vez de mostrar todos los primos llamamos, tenemos que mostrar lo mismo, pero fibonacci
entre un rango determinado. Es decir, es la serie fibonacci para la gente que no la conoce? 1,
2. 2 más 1, 3. 3 más 2, 5. 5 más 3, 8. 8 más 5, 13. una serie de números consecutiva en la que
agarramos un da un tercer resultado. Ese tercer resultado lo sumamos nos sumamos al
anterior y nos da... es eso. fibonacci. Acá está. Esta es la sucesión de fibonacci. Es Ahora,
fibonacci es la sucesión clásica. Desde el 1 forma. Podemos arrancar desde el 9 si quieran. el
57. Desde el número que quieran. 57 más ahí. Solamente que el original es desde el 1. Por eso
desde el 0 hasta el número que le pasemos. Creando una función que muestre la serie
fibonacci def fibonacci num. El fibonacci un número. Va a a crear la función. Esta es bastante
sencilla. la vamos a desempaquetar. Fácil. Valor a y b es de i in range num. Un for que se
ejecute desde 0 hasta a hacer lo siguiente. If a más b es mayor que num return Lo que
decíamos ahora es que a es igual a b y b es igual A es igual a b y b es igual a a más b. ¿Cómo
hacemos esto? igual a b y b es igual a a más b. Acá está la clave del que tenemos que hacer
después es al final del for serie fibonacci. Ahora esto que está acá no está haciendo el else es
tirarlo para abajo y guardar estos creamos la lista. Y acá en else simplemente vamos a agregar
en vez de num fibonacci lista. Entonces vamos fibonacci del 0 hasta el 20. Print resultado.
Actualizamos, porque en algún punto esta función este perdón que decir fibonacci lista.
Actualizamos y arrancamos desde el 0. Podemos hacer que el primer 1. 0 más 1, 1. 1 más 1, 2.
1 más 2, 3. 2 más 3, 5. lo que faltó fue sumarnos una última vez más el valor. Si esto es mayor a
esto, nos va a retornar no se ejecutó. Es decir, no se agregó. De hecho, que es 21, esto me
tiraba el 13. Y si lo hubiéramos pasado el 21. Pero si lo hubiera tirado el 33, que es un si a más
b es número. Lo que tenemos que hacer es decirle al número. Entonces actualizamos y ahora
de esta lista. Tenemos una función que nos retorna Y no son ejercicios matemáticos. Porque
podrían lógica. Es una herramienta muy fácil. Es un número que ese resultado le agarramos el
anterior y se lo sumamos. No es que es matemática. Es simplemente programación.
Simplemente veo un más acá, un mayor que y no es lógica matemática. Pero a ver, no hay
mucha que podemos aplicar utilizando elementos de bucles, una función orange, crear nuestra
realizar y llevar a la práctica todo lo que Así que podemos decir que ya realizamos Fibonacci.
sencilla de hacerla. Y más fácil. Por eso los reto a cumple con la función? Sí. ¿Hay una mejor Yo
realmente lo que quiero es que ustedes agarren De hecho, si son creadores de contenido o se
animan a hacer un vídeo. Hacen un vídeo realizando cada Uno, de la mejor forma posible. Uno,
ejercicios Y otro, ejercicios prácticos. Tres, de la mejor forma que falta todavía que no lo hice,
los desafío. es un espectador y querés ver si otras personas ejercicios del curso de Python de
Dalto. Usen Dalto ejercicios resueltos. Así que si yo quiero que está viendo este vídeo quiere
verte a vos posible, también puede encontrarte. Así que todos me tomé el tiempo en mi casa
de armar un Pude lograrlo en una sola línea de código. A ver si vídeo e intenten comprender
qué es lo que pasó. Los que utilicé acá, como por ejemplo All. Investigen lograr hacerlo
solamente en una sola línea. Esto es para demás ejercicios para reducirlo lo más que puedan.
No decir, a veces es mejor un código más largo pero más legible que no se entienda nada. Pero
no está de más saber a ver qué es lo que pueden hacer. Esta es la forma los números primos.
Ahora sí gente, vamos con la porque es lo que nos falta para meternos en no quiero decir
muchas más palabras. Me despido todas con un apartado hermoso que es el de los módulos.
Vamos. estamos en un momento en el que yo sé estas aprender Python, claro, después de
pensarlo realidad no me preocupa tanto, porque si fuiste hasta ahora, o al menos el 93%, es
decir, está perfecto, eso no cuenta, pero si todo de variables, de funciones, de métodos de los
ejercicios prácticos, si llegaste a este punto es porque al menos viste lo anterior. de
replanteármelo dije, sí, esta persona de terminar este curso de Python, porque la no lo
termina, y que haya llegado hasta acá evidentemente tenés ganas, evidentemente conseguir el
objetivo, pero vas excelentemente si se trata de llegar al destino. importantísima del curso,
vamos así ahora quedó frashero, quedó como muy épico, ¿si? Gracias. importante, para
empezar, ¿qué es un módulo? si, o sea que esto que estamos viendo si esto es un módulo,
¿por qué es un módulo? difícil, sé que es difícil, pero atentos, a ver elif.py, tiene el.py si es un
módulo, lo sé, pero por favor esténse atentos, vamos tienen 4 líneas de código y la mitad son
full comentarios, ¿esto es un módulo? no sé si continuar, bueno, en realidad no todos los
archivos que terminan en extensión la mierda que sí que había bastantes, ¿por qué le decimos
módulos? desde un módulo podemos llamar a otro, desde las rutas, podemos acceder,
podemos formar con muchas funciones, supongamos que yo tengo hicimos en el ejercicio
anterior, ahora yo a cada rato, fácil, creo un módulo con la que yo necesite, entonces desde un
módulo solamente con llamarlo puedo usar todas las otro módulo, es buenísimo, es como la
forma y manejarlo como querramos, básicamente tenemos tenemos primero y principal los
módulos de que están creados por python, que ya vienen están escritos en C, o sea en C es un
lenguaje que python, están escritos en C por eso llaman que son módulos creados por mismo
python después tenemos los third party módulos ejemplo, yo ahora creo mi propio módulo,
les sirven, lo subo a internet y ustedes si eso sería un módulo de terceros, porque lo
descargaron, no es un módulo que ustedes que crean sus propios códigos, digamos librerías, te
lo pueden descargar y utilizar sin problema, módulos propios, los módulos nuestros propios,
módulos creados por nosotros, ok, esos tres que están escritos en C, los módulos de más u
otra empresa u otra persona que no que creamos nosotros para facilitarnos la aclarar que los
últimos dos módulos son que un own module, o sea los módulos de terceros qué? y porque si
yo trabajara en Facebook, un módulo pero si yo trabajo en Amazon y uso un módulo módulo
de terceros, o sea en cuanto a archivo que depende, si no son míos le digo de terceros,
distintos son los que son de python, los que son archivos.py cualquiera, sino que están de
python, bueno vamos a hacer una nueva carpeta un archivo que va a ser módulos.py, esta ok,
vamos a crear a su vez otro archivo que acá vamos a crear la función típica de def saludar
name, dos puntos, print f, hola día, si nosotros ahora por ejemplo a esta igual saludar lucas,
cuando mostramos el saludo nos dice no, porque no lo retornamos perdón esto, a ver si
actualizamos y hola lucas espero tenemos el saludo, ahora si quisiéramos usar esta yo quiero
usar desde este módulo hacer saludar hacer eso, bueno para eso tenemos que importar a ese
módulo desde otro archivo, para eso nombre del archivo, la función es import code nos tira los
módulos que se encuentran la que estamos, que es el archivo actual incluso está diciendo que
podemos poner esto y no pone, solo se pone el nombre del archivo, se compone de dos
partes, nombre punto extensión, se encuentre un punto algunos programas lo este caso
python solamente te pide el nombre, punto pi, entonces le damos módulo saludar, code, es
decir bueno mira voy a leer todos los archivos entonces vos los importas así, y así acabamos
tengo la posibilidad de llamarlo, esto vamos acuerdan de los métodos que decíamos por algo
punto algo era un método, un método se comporta como un objeto, el archivo, el que tiene
sus propias funciones, así que la función, ahora no es más una función, ser un método, así que
si yo ahora por ejemplo venir acá, esto de hecho lo voy a borrar, venir acá y poner saludar
lucas, y a esto igual a esto, y acá dentro voy a poner print hola lucas espero que hayas tenido
un maravilloso está en otro módulo desde este archivo, esa es todo, porque la mayoría de
cosas que hagan ustedes, la mayoría de cosas que hagan tienen y esa es la realidad, así como
ahora no se bucles, tampoco el día de mañana se van o librerías o paquetes o lo que sea,
porque crean código que podemos usar, que empresas códigos, paquetes y demás, para que
nosotros python ya trae sus propios códigos, que no muy pesado de forma innecesaria, cada
módulo pero esta es una forma interesante de importar sus limitaciones, porque yo por
ejemplo acá a tener que usar el método, o sea no puedo en que acá yo pongo saludar name y
ya está, como método saludar, porque bueno, porque de hecho quiero que observen esto, yo
la a ver que esto, voy a darle un print, ahora un class módule, porque el objeto es un objeto
nosotros importamos un módulo y en este caso como método en este caso, estamos
trabajando lo dice, namespace, nombre de espacio, es que nos vamos a referir a todo lo que
está namespace, es el conjunto de todos los métodos, de ese módulo, de hecho si miramos un
segundo pycache, esto lo que hace, ignórenla, es para que el proceso de ejecución sea más le
ejecuto, se me vuelve a crear, van a ver, Python para sus cosas internas que hacen un
operador que se llama as, que es para asignar, igual valor, as funciona al revés, es como pero
funciona en módulos, en vez de poner as variable, no es lo mismo ni de cerca, pero de otra
forma, en este caso acá lo podemos otra forma, acá podemos decir import módulo que hacer
más referencia a módulo saludar, se ejecuta y funciona de vuelta, ¿por qué es poder asignarles
nombres que sabemos que creemos, porque yo creo un módulo saludar saludar igual hola, si
yo acá le doy print si yo este as no lo tuviera, esto ya me va completo, módulo saludar,
actualizamos, ahora acabamos de trabajar con esto, entonces módulo es el operador as,
asignarle el nombre que de, a ver si por ahí no hace falta, por ahí un módulo largo y es tedioso
y es gigantesco, chiquito y ya está, es una función muy copada la gana a este namespace, m y
vamos a dejarlo sin problema, ahí tenemos, bien, de hecho porque por ejemplo no nos
interesa esto, tenemos función corra aparte, ¿por qué? y porque hermoso, pero no queremos
que el código tenga que es innecesario que esté ahí, queremos tenemos un programa súper
grande, entonces en otra hacemos esto, y en otra hacemos esto, tiene una, tiene ejecutándose
varias funciones, un problema terrible andar viendo código a veces decimos, mira, la verdad
que quiero aparte, porque es tan larga que quiero que error que tenga cualquier cosa la pueda
solucionar rápido, es más manejable, y cuando llame no al módulo, es un asco, quiero
solamente usamos, esto lo borramos, y usamos el from, archivo, desde módulo saludar, quiero
importar hecho, lo mismo, acá no la tiramos, escribimos ser una propiedad, puede ser un
método, una en el módulo, lo vamos a poder importar, y ahí tenemos la función saludar, no
necesariamente decir que es una función que corre de 10, referencia a ningún namespace, si
queremos ejemplo, función saludar, y función saludar anashéli, anashéli, condaluca, espero
que es un saludo extraño, es un saludo raro, saludar y saludar raro, quiero importar los coma,
saludar, coma, saludar raro, y ahora y al fran, saludo raro, es igual a saludar abajo muestro el
saludo raro, ejecuto me dice, día, y a fran le dice, conta fran, espero pero bueno, lo hicimos,
esta es una buena vamos a ir comentando todo lo que vamos haciendo, asignándole el nombre
msaludar, entonces pongo import lo dejamos como comentario si lo quieren usar importamos
dos funciones, ahí estamos, creamos los resultados, acá ponemos, buena hora con ejercicio de
módulos, fascinante, de hecho funciones, si yo quisiera que por ejemplo, poner, saludar raro
as saludar como coscu, raro puedo poner saludar como coscu, entonces fran, espero que este
es nasha, nashalia, nashayyyy, viendo esto, que no creo, pero bueno si está quiere, que te
quiero mucho, no te ofenda, te voy a insultar después de haberme dejado award, que es tu
evento más importante, de un gran influencer, compartilo pa, así dale coscu, no te hagas el
dobolu, le vas esto a mucha gente le vas a ayudar a que seguir viviendo, a aprender a
programar pa, variables, ok, de hecho acá podemos poner saludar as saludar normal, entonces
acá en importamos dos funciones y les cambiamos el ahí simplemente tenemos un cambio
hecho, después si quieren también podríamos importar importamos todo, de esta forma
podemos importar ponemos saludar, saludar raro y ya está, y funciona también, no hay
problema, funciona, el tema hace que el programa se sobrecargue, sea muy pesado que un
programa sea innecesario, o sea sea una mala práctica, de hecho pep8, que es todas nuestras
dudas, que ya más adelante de eso para que sigan aprendiendo, pep8 nos sentido del mundo,
no hagan esto se consigue malas prácticas, así que no lo hagan, sé con que poner y que hacer,
pero háganlo, después en cuanto a lo óptimo del código, y una función con el mismo nombre,
porque saludar raro, y si ahora yo por ejemplo tengo la morfaste, que pasa, que me va a
importar, saludo y acá cuando yo le decía que me importe ambas me pueden importar, pero si
yo de repente es una variable y no una función, cuando actualizamos, ah me dice que es un
string, nada, no se va a ejecutar, es un error, ahí pero las funciones siempre se definen
primero, la definimos primero, entonces lo deberíamos cuando lo llamamos desde acá
efectivamente es que este error no me importa, está bien decía, no me importa esto, no que
no me importa porque está importando la variable, entonces de las funciones, así que cuando
trabajamos de las variables, hay de hecho muchos métodos, con esto, pero no vamos a andar
trabajando tienen que saber que hay metodologías, como una S mayúscula, entonces así
nunca las por ejemplo con S mayúscula, y ahí si se corre, no hay problema, hay muchas
metodologías es una función y cuando es un módulo, una letra mayúscula para las funciones y
para ahí está, en fin, era solamente un ejemplo, ahí está, perfecto, bueno, en fin, ahí si
entramos a esto y le damos dir namespace, darle, sacar esto, de hecho vamos a comentarlo y
vamos a poner msaludar, para ver que es msaludar, cuando actualizo este código, que dir me
tira todas las propiedades y métodos mira, tenés una función que se llama saludar, si yo acá
por ejemplo pusiera una variable, actualizo y me dice tenés saludar, saludar raro saludar raro
es una función, y saludar es definimos, acá mismo, todo lo que está acá es lo que creamos
nosotros, o sea toda cosa de hecho acá voy a agregar, para ver las propiedades obviamente, y
todo lo malo descomento, fuerte y está todo como antes, una pregunta interesante import
módulo saludar as msaludar, vamos dos veces, msaludar, pero que pasa si yo por a mostrar
acá es módulo saludar, que es o sea lo que me muestra esto es justamente si nosotros
queremos acceder al nombre del hecho si yo por ejemplo vengo acá y pongo dice que es falso,
por que, porque no podemos me deja cambiar, no es una propiedad que se sepan que nos
puede mostrar esto, de hecho nos va a mostrar main, por que, porque nos vinimos acá y
mostramos name, acá también a que el módulo principal, o sea el módulo es interesante ver
qué onda con esto, accedemos accedemos al nombre del módulo llamado, está una vez que
renombramos el archivo, igual esto, lo podemos tener como variable, ahora que todo bien con
esto, pero ahora tenemos desde un archivo llamar bien a otro, como agregarlo a un path con
todos los archivos, que ya existen de python, y ver las cositas bastante, de hecho gracias a eso
vamos a con eso. módulos, básicamente es lo mismo, pero es de llamar módulos, ¿por qué?
tener esta carpeta, ¿no?, módulos, y el tuviera otra carpeta que ya... buenas, y lo metemos ahí
adentro, ¿qué pasa ahora?, ¿cómo lo llamo? antes, me tiro un error porque no lo encuentro,
es, recuerden que acá me va a tirar el nombre de lo que encuentre, módulo saludar, y de esa
forma acabamos de ¿por qué?, porque lo que hicimos fue acceder a esta carpeta, ahí mismo, y
encontró este archivo, entonces acceder, si tuviéramos que acceder a un módulo dentro de
una carpeta. a crear un nuevo archivo, de hecho, módulo buenas, el módulo que está acá
adentro movemos, ahí va, borramos esta carpeta, y ahí tenemos el módulo saludar. adentro,
solo que ahora lo vamos a renomar así podemos diferenciar el módulo saludar, de saludar, el
módulo por delante, para que podamos separarlo que es, módulos 2,0, o 2,0.py, ahí va, o más
fácil, import, módulos, mejor dicho, o en este caso saludar, porque ya no se llama saludar, que
directamente nos lo muestre, saludar a ver que onda con esto, entramos saludar.py, no está
funcionando, estábamos usándolo como namespace, así ah, no funciona, por qué no funciona,
y porque ahora es funciones buenas.saludar, así es como correcto, y por qué nos devuelve acá
le estamos diciendo que nos muestra el name, es buenísimo, principal, de módulos 2,0.py, y
nos muestra no nos estamos, si yo esto lo ejecuto acá, me muestra main, y lo que se está
ejecutando es esto, es lo contextos, en este contexto nos devuelve eso, es algo interesante a
tener en cuenta, esto, as, no, ni siquiera lo vamos a hacer, no, vamos a hacerlo bien, as
saluding, m, saludar, lo mismo, m saludar, si tenemos lo mismo, y funciona de 10, ahora,
adentro de una carpeta, esta carpeta estuviera por ejemplo afuera, acá, funciones buenas, que
paso, bueno, vamos saludar, uy, no encuentra el módulo, uy, que hago ahora, está una carpeta
atrás, importar sys, ok, de hecho vamos a hacer una en una carpeta en la misma ruta, se
importa atrás, en una función afuera, lo que tenemos un módulo de python, que pasa si yo por
ejemplo ahora le doy, print me dice sys, es un módulo build in, que significa que es lo que yo
les comentaba, un módulo yo creo que antes una vez dije build, build que ya se integro, de
hecho hay una propiedad, así, punto, build in, módulo names, aquí nos es lo que nos tira, esto
lo que nos devuelve de las propiedades, parecido dir, bueno ahora lo que nos devuelve que
están en sys, tenemos el módulo nt, time, tenemos el módulo zlib, tenemos el ahora tiro esto
para arriba, tenemos un montón acá, functools por ejemplo, que es muy usado, a los registros
de windows, array que es para el curso de inteligencia oficial, vamos a usar este que está acá
este módulo, de python, de hecho están creados en C, interesante ese dato, módulos que no
coincidan con estos que están acá, que ustedes crean ya existe y está acá dentro, acá importan
time, el módulo nativo de python, el módulo integrado, le da prioridad primero a los módulos
que son nativos. los módulos? Bien, acá decimos sys.path, lo que estamos viendo es una lista
con la ruta de los módulos, actual, estamos acá, si se fijan estamos el nombre de un juego con
el que creé este usuario, tenemos una carpeta llamada curso de python esta que está acá, y
ahí mismo estábamos es verdad, así funciona, exacto, es la ruta actual, instalados de python,
ok, fácil, y si no poder importarlo, y no está nuestra ruta actual, lo tenemos que agregar acá,
supongamos que el módulo lo tenemos acá, bueno, ¿cómo lo agregamos? simple, bien,
tenemos una ruta atrás, bueno, voy poner punto, en este caso lo voy a sacar, y acá voy a poner
la ruta que copié, solamente funciones buenas, carpeta esta, y ahora sí, ya está, es lo actual, y
funciones buenas, aloja el archivo saludar.py, entonces ahora ok, el código, ahí estoy
actualizando, al final es la ruta donde agregamos el último nuestra ruta, acabo de instalar este
módulo, que va a ser un módulo permanente, por eso es otra cosa, entonces ahora si
queremos import saludar, diga que es un error, no es un error, si yo le digo saludame a Dalto,
tengas un maravilloso día, de hecho acá lo mismo, módulo saludo, que cualquier otro módulo,
¿cuál es la no está en mi ruta, no puedo acceder a esa ruta, y una vez que la agregué, ahora sí
puedo que jueguen, creen sus cosas, crea tus módulos, probá un poquito, no sigas por ejemplo
algún módulo que tenga alguna matemáticas, módulo que sea para otra cosa, y unificarlo
hacer cálculos, que te pueda permitir saludar, para moverte y manejar la lógica, para que que
al final del curso lo vamos a hacer, entiendan cómo hacerlo, las prioridades, de qué pasa si
importan grados de la jerarquía, porque por eso se los explico, pero se los van a olvidar, a
menos que lo prueben, ¿ok? a la práctica, todo esto tienen que llevar visión muy rápida de lo
que vienen siendo los módulos, sí los vamos a hacer más adelante, pero importarlos, ¿no?
cómo agregar, digamos, otros módulos que no están en nuestra misma ruta, y demás. que es
el de paquetes, ¿ok? que entender qué son los módulos y qué un archivo Python, un paquete
son muchos archivos los paquetes, vamos a comenzar, y ahora sí, paquetes. de módulos, voy a
crear otra carpeta que va a ser paquete Y paquete va a tener también el módulo saludar poner
la función saludar copy a hacer que sean módulos diferentes acá, la común va saludar raro
misma carpeta está, listo, la metí adentro file que se llame paquete.py importar un paquete
con muchos archivos Python módulos un solo módulo que es un archivo a veces no tenemos
uno, tenemos muchos módulos que importar cosas, ok? específica que realiza una acción
específica muchos módulos en conjunto y no andar haciéndolo uno por uno los módulos sola
línea de código para diferenciar un paquete Python archivo llamado __init__.py que tener
nada, ya está, lo cerramos un paquete o un módulo? es un paquete damos import paquete
print type paquete es un módulo se considera un módulo Pero teóricamente es un paquete
archivo init punto py lo borrara igual es un módulo justamente esto entre, digamos si nosotros
acá ponemos por ejemplo ahí, vamos a ver que no me permite acceder al atributo está, y corro
este programa Ahora me lo devuelve, ¿por qué me lo devuelve? Python entiende que es un
paquete devuelve la ruta del paquete actualizo y me lanzo una excepción con control z lo
deshago el último cambio a la lista con justamente el paquete de que puede ayudarme a
buscarlo dentro del archivo como tal a un módulo, simplemente puedo venir y decir punto
saludar muestra, la función y está funcionando través de un paquete de una carpeta no
estamos accediendo al archivo Estamos accediendo al paquete en su totalidad ruta donde
podemos encontrar todos los demás archivos viendo las diferencias como paquetes adentro
de paquetes, no es tan complicado de otro paquete, se considera un sub paquete el mismo
nombre que un paquete? paquete y tengo otro archivo llamado paquete siempre le da
prioridad a la carpeta mismo, hacemos exactamente lo mismo otra carpeta acá adentro Y acá
simplemente ponemos paquete.subcarpeta Y subcarpeta tendría que tener el init.py
estaríamos importando el paquete subcarpeta Que a su vez es un sub paquete de paquete un
paquete si no tuviera el init.py paquete al paquete subcarpeta un sub paquete es un paquete
dentro de otro paquete No es un paquete dentro de una carpeta el init.py init.py adentro de
otra carpeta que también tiene el init.py Ahí tenemos un sub paquete y un paquete así que ahí
tenemos la idea como tal lo importante acceder a los diferentes paquetes, crear módulos,
acceder a los módulos Y todo lo necesario apartado de esta misma sección Que es el de
acceder a los archivos acceder a los módulos y demás con archivos accedamos a un módulo
que nos permite abrir archivos? para abrir archivos? Bueno, vamos a ver cómo leer un archivo
simple podemos manipular un poquito con Python Que es de las cosas más comunes Esta
parte me encanta ¡Vamos! importante, ya que vamos a entender bien cómo el tema de la
escritura de archivos y cómo poder manipularlos con Python. venimos aprendiendo para
aprender algo nuevo adelante tengamos que implementarlos en algunos proyectos podamos
hacerlo. escribir en ellos y saber manipularlos es lenguaje de programación. y se manipulan en
cualquier programa que normalmente avanzada. primero qué es un archivo, cómo crearlos y
cómo poder manipularlos con Python. que ya todos conocemos y es simplemente un
contenedor de información. que es un archivo, pero no saben bien bien qué es lo que es un
archivo. También tienen un formato. un tipo de datos, así como tenemos strings, ints, arrays y
demás. tipo de datos, si es por ejemplo.png es un de audio. video. que se componen en cuanto
al nombre de dos partes, del nombre y del formato. un archivo que contiene hojas de cálculo,
video, imagen y todo lo que estuvimos viendo. dos tipos de archivos. es un archivo de texto
plano, muy simple. carpeta llamada archivos y un archivo llamado.leer.txt.py. código K. blog de
notas, y vamos a escribir dos líneas. el material activa la campana, que campana no te regales
maestro, no preguntes. poner abogado, que abogado, no preguntes, no se donen, otra vez. en
la misma carpeta archivos, texto de dalto.txt. nos puede aparecer en la ruta. a la función open,
no literalmente darle a la función open, sino que digamos escribirla. en este caso es texto de
dalto.txt. se fijan, en mi caso me va a tirar un error de enrutamiento. la carpeta, en este caso la
carpeta de contenedores archivos, entonces le doy archivos. barras? No me pregunten, yo
copio y pego. ponerle igual si tienen un teclado común, Python mínimamente se van a poner la
barra invertida. fijan no nos lanza ninguna excepción. a algo, porque si ya está lo abrimos, pero
¿qué vamos a hacer con el archivo, flaco? ¿Qué hacemos? Le damos archivo, igual y lo que
escribimos recién. archivo ya igual a esta variable, así que ahora vamos a mostrarlo en
pantalla. todo un código extraño, eso es porque teníamos abierto el archivo. el archivo y el
material que tiene adentro tenemos que leerlo. punto, read y acá lo que hacemos es actualizar
activa la campana. ¿qué abogado? No pregunten. lo estamos leyendo, ahora si se fijan nos tira
esto que está acá. acá? Bien, por un tema de codificación. que es una codificación universal
que lee todos los caracteres. o utilizando otro tipo de codificación puede que no le salte el
error. es acá le agregamos el encoding, igual ahí nos tira, fíjense. fíjense en que no tenemos
problema. esta hermosa, que en HTML le recuerdan si lo van a ir a ver a la misma, van a poner
posi y lo van a ver. un error a veces, de que nos tiraban, no nos tomaban las comas o los
acentos tampoco, no los tomaba. Metacharse UTF-8 y con eso hacíamos que todo digamos,
universal. así no hay problema, estamos abriendo este leyendo. es decir, yo puedo decir
archivo sin leer, archivo sin leer punto read. es archivo estamos haciendo lo correcto porque lo
estamos leyendo. no un archivo sin leer. mostrando justamente esto, el mismo código que
antes. Ok, es lo mismo pero más barato. shift, ok, ahí ven cambio el idioma entra, están
cambiando el idioma del teclado. hago algunas cositas, ok, como que dejan de del teclado. que
yo les mostré que teníamos otros caracteres de acá en Latinoamérica, te cambia el idioma
cambia los caracteres. las llaves, me tira esto, las llaves comunes. ahora aprieto el mismo
signo, ya no me aparece una especie de apostrofe. alt más shift y ahí tienen de vuelta las que
andar haciendo la embola. Y ahora por ejemplo el acento me sale bien. de código acá, si se
fijan, de código, dos líneas en realidad de texto, con las líneas individuales. ¿Cómo hacemos
para leer una línea específica? o mejor dicho, línea1 es igual a archivo.readlines vamos a usarlo
en el archivo sin leer, archivo sin leer. con todas las líneas. hecho es líneas, no línea1. si yo acá
por ejemplo pongo readline y le digo que me muestre la línea1, mostrando es la primer línea
que en este caso no tiene nada. readlines, lo que me va a mostrar en línea1 es un arreglo
vacío. no tiene nada, es porque una vez que el archivo se lee ya no se puede volver a leer. ¿Por
qué? Porque no lo cerramos. a leerlo tenemos que cerrarlo, si no ya el utilizado. a leer, por un
motivo de seguridad del archivo. en este caso poner esta línea, la vamos a comentar, línea y
abajo vamos a decir leer línea por línea, esto que está acá, que es lineas igual archivos y leer
readlines. corre el programa, lineas, lineas, me devuelve una lista, una lista con esto y esto. N,
barra invertida N, es la forma que tenemos en línea. caracteres, que es la barra invertida y la N,
un archivo van a ver que esta es la forma en la que podemos dejar un espacio en línea. en línea
solamente se deja con este carácter. podemos hacerlo de la siguiente forma. vamos a
comentar esto, y acá vamos a decir no lines, line. cierto que estamos en un curso en español.
está siguiendo el material activa la campana. le digo que me muestre uno me está mostrando
la S. mostrando, si yo le pongo diez me va a mostrar bastantes más letras. line es si no lee la
línea completa, lee la cantidad de caracteres que le dijimos. límite de caracteres y me sobra
cien. line. primera letra, listo, buenísimo. letras y demás, joya. tenemos. qué es interesante?
Porque antes lo que hacíamos era usar esto, que es utilizar for. de varias vueltas en el bucle.
esa función lo que hacíamos era meter esto leer línea por línea. lines. que para archivos
grandes se puede consumir puede quedar sin RAM, básicamente, sin memoria. con conciencia
y por ahora nos vamos a quedar con esta solución. de texto, la podemos usar, pero cuando son
con otros procesos. haciendo. que queremos hacer y cuando lo entendemos, mejor forma en
código de llevarlo a hacer. Es fácil. lo terminamos de utilizar, tenemos que cerrarlo con close.
decir, por ejemplo, archivo sin leer punto close. este caso ahora le vamos a dar archivo. Ahí
está, más fácil. Y ahora es archivo sin leer, close y lo usamos. no, archivo. y nos dice que ya,
bueno, no nos dice nada, pero ya esto cerró correctamente. y le damos un print archivo punto
read y esto vuelve a leernos el código? ya se cierra y si queremos leerlo tenemos que usar de
vuelta la función open. la información que ya teníamos y utilizarla como querramos. una sola
línea y ya tenemos acá la primer línea del archivo, leída sin problema. puede perder datos al
cerrarse de forma inesperada. hasta que el programa no se cerró. el sistema operativo limita,
el archivo mismo abierto el mismo archivo. y a veces puedo abrir ese archivo con un programa
pero no con otros. archivo puede ser abierto por los mismos programas. o algún vídeo o algo
abierto y les dice... usando porque si no, no se puede abrir. con el archivo. puede leerse de
vuelta. otros lugares. ser abiertos por un programa a la vez. el archivo, liberamos los recursos
que nuestra este archivo. ¿Cómo solucionamos este problema? cerrar el archivo cada rato,
perder todo esto? una solución interesante que es... dejarlo así y vamos a abrir otro archivo
nuevo. Un new file que va a ser LerTXTOptimamente.py. solución y la forma de leer ahora que
estamos sin librerías, que es WIthOpen. Ahora vamos a ver bien para qué. bueno usar librerías
como pandas, pero para TXT no hace falta. está muy bien. le damos WIthOpen y acá ponemos
el nombre del archivo. archivo original. archivo, barras invertidas, LerTXT. a ver qué pasa acá. a
ejecutar solamente si el archivo se logra abrir correctamente. Perdón, no es LerTXT.py, no es
esto. barra barra. Ahí está, está funcionando. Ahora sí, dice hola. Ahí me devolvió hola. ejecutó
el código de este bloque y se cerró. que finalizaron las instrucciones. Esto es la forma óptima
de abrir un archivo. esto se abre con modo de lectura. Es decir, read. haciendo es leerlo.
escribiendo. el culo. que le vamos a cambiar el nombre. che d'alto, tenías archivo antes.
¿Cómo hago para asignar la misma variable? Le damos as, archivo. actualizamos y corremos el
programa, nos tira esto. ¿Se acuerdan que teníamos que hacer? Le damos read. el material,
activa la campana. Abogado a que abogado? Acá usamos lo mismo. Le damos encoding, utf8.
pero mejor. pero más barato. Lo mismo, pero más barato. menos recursos, es más rápido, es
más óptimo. Así que de 10. Y además es más rápido. O sea, en código es menos. Fíjense. acá
adentro. errores de excepciones. Open nos tira más errores y este es menos. O sea, mejor en
todo sentido. esto que nos falta. abrimos con una codificación universal. O más fácil, usando
open para abrir un archivo. Archivo con una codificación universal. leer una sola línea, leer
línea por línea De hecho acá podríamos hacer esto. Podemos igualar esto a esto que está acá.
iba a quedar mal al descomentarlo. cuando actualizo, metí una excepción. cerrado. Esto en
este caso lo voy a comentar. Y voy a dejar acá archivo. Así tenemos bien el ejemplo. esto en el
anterior. Así que vamos a hacerlo de forma óptima. open. igual archivo.read. contenido. al usar
with open. Y ahí tenemos exactamente lo mismo que antes. Solamente que tenemos un código
más óptimo. escribirtxt.py. Vamos a escribirlos. abrirlos con otro tipo de permisos. para poder
escribir en él. abrir el with open. With open. Y vamos a abrir el mismo archivo. Vamos a usar
las dos barras en archivos. Archivos, barra, barra. de dalto.txt. La codificación universal,
encoding utf8. Acá vamos a decir as, archivo, dos puntos. Pero acá tenemos que agregarle un
valor extra. Que es el de write. En este caso lo vamos a poner antes. Y ahora sí la codificación.
¿Por qué? Porque el segundo parámetro write. vamos a tener un permiso de escritura. Vamos
a escribir en el archivo. Y ahora podemos escribir. le pongo jajajajate la recontra teclie. Y
parece que no hizo nada. Pero si llegamos a abrir el archivo de texto. Bastante extraño el ruido
ese. Se me cerró el explorador archivo, gente. Bueno, esto no lo hagan. Mentira, está todo más
que bien. ¿Unió el explorer? la recontra teclie. el archivo. lo que hace es escribirnos. Y
sobrescribirnos el archivo. No guarda la información porque no lo lee. No hace nada más que
escribirlo. Y en este caso si ya tenemos un archivo. Lo acabamos de sobrescribir. Y cagamos
básicamente. Entonces que por un lado tenemos write. Y por otro lado tenemos write lines.
Vamos a ver para qué sirve esta función. En este caso, si yo voy a comentarlo. Voy a poner
sobrescribiendo el archivo. Entonces así lo voy a comentar. sobrescribiendo. Y acá si ponemos
write. En este caso archivo. Archivo punto write lines. Y yo acá le voy a escribir algo. Por
ejemplo, hola maestro cómo andas. Vamos a ver qué es lo que pasa. Yo acá por ejemplo voy a
darle enter. Parece que no pasó nada. cómo andas. ¿Qué pasó acá? Como por ejemplo
misericordia. ¿Por qué puse esta palabra? No sé, pero era muy improbable que la ponga.
Entonces la puse simplemente fuera de contexto. Actualizo el programa, lo corro. Y me tira un
error. Porque dice que solamente se pide un argumento. Y sobran dos. Porque acá lo que nos
pide es un iterable. Yo acá por ejemplo le paso una lista. Y acá le pongo la palabra misericordia.
Cuando actualizo. Ahora si acaba de hacer algo. andas. Misericordia. ¿Qué es lo que hace esto?
Lo que hace esto es que se escribe líneas. Le podemos pasar. Es como el proceso inverso a
read lines. ¿Se acuerdan de read lines? Que lee las líneas. Esto es como el proceso inverso. En
vez de pedírselas. líneas. Esto lo que hace es. Lo que sucedía antes es que nos pasaba. Si se
acuerdan en este tipo de archivos. Específicamente acá. Vamos a descomentar esto. Y pedirle
que nos pasen las líneas. Si ejecutamos esto. Nos devuelve si se acuerdan. Las líneas. Todas las
líneas. Pero vamos a dejar un espacio abajo. Y ahora vamos a de vuelta correrlo. El de acá. Y
teníamos esto que está acá. Para el espacio en línea. Entonces si yo esto que está acá. Lo pego
acá. En este caso vamos a pegar. Acá esto. Y corre el programa. Ahora me acaba de escribir lo
mismo. De hecho voy a borrar esto. Voy a actualizar esto. Y si se fijan. Ahora se actualizó. Y me
dejó el espacio en línea. Literalmente es el proceso inverso a Readlines. Porque en vez de
repito. Pedíselo que nos devuelve una lista con líneas. Le estamos pasando la lista con las
líneas. N. Barra invertida N. En los mails. En donde se imaginen. Es interesante. Que pasa si uso
dos veces. Por ejemplo la función Write. O la función Write Lines. Ambas escriben. Siempre
sobrescriben. Si existe algo lo sobrescribe. Y si no lo crea. Que pasa si la uso dos veces. Vamos
a probar. Si la uso dos veces. Voy a poner otro texto acá. Para diferenciarlo. Y vamos a ver que
pasa. Evidentemente funciona. Pero lo que pasa es que nos escribe ambas. Ahora si que no
sobrescribe. Porque Write Lines. Lo que hace es como que se acumula. Si ponemos este.
Después ponemos este. Es como si hiciéramos algo parecido a esto. Yo voy a mostrarles. Que
es como si hiciéramos esto. Y no cambio nada. Porque es lo mismo. Si ponemos esto.
Solamente que. Vamos agregándolo. Y lo podemos utilizar. En un bucle. En un for. Si queremos
ir agregando información. Podemos ir agregando información. Y usar esto. Es como la forma
inversa. Que las funciones restrict. Y les comentaba. Algo parecido. Podemos ir agregando
líneas. Acá voy a comentar. Voy a dejar un espacio. Y comentar. Agregando dos líneas. Con
Write Lines. Y acá abajo voy a poner. Agregando. Otras dos líneas. De hecho es importante. Al
final de cada. El resultado. Y que sea línea por línea. Entonces acá ponemos. Hola maestro
como andas. No sé. Por qué dije eso. Yo tampoco. Como si fuera un diálogo de conversación. Y
ahí está. Corremos el programa. Y cuando vamos al resultado. No sé por qué dije eso. Acá
vamos a cambiarlo. Y poner. No sé por qué dijiste eso. Corremos de vuelta. Y ya tenemos el
diálogo creado. 100% desde Python. Si tienen un teclado con numpad. Lo que pueden hacer.
Es apretar al 92. Y le salta. Y tienen que apretar. El CTRL SHIFT. U. Y C5. Y después suelta el
CTRL SHIFT. Y mantienen apretado el 5C. 5C. Y ahí ya les va a saltar la tecla invertida. Si no
hacen como yo. La copian y pegan. Y listo. Y así es más o menos. Como escribimos. Leemos y
demás. Y trabajamos con archivos. Es tan sencillo que si queremos. Podemos darle en append
incluso. Si yo ahora por ejemplo. Agregar. Txt.pa. Y vamos a hacer lo mismo. Vamos a venir acá
y copiar. Esto que dice escribir. Lo copiamos. Vamos a borrarlo. Pero cuando vuelvo. Esto lo
que hizo fue darle un append. Porque el append. Hace lo mismo que el write. Solamente que
el write. Lo que hace es sobre escribir todo siempre. Mientras que el append. Cada vez que lo
ejecutamos. Una. Tres. Lo ejecuté tres veces. Ahora tengo tres veces el mismo código. Porque
append lo que hace es agregar. Acá por ejemplo. asquerosidad. Pero cada vez que usamos
append. Lo que hace es literalmente agregarnos. De hecho lo que podemos hacer acá. Es yo
escribo write varias veces. Y ahora escribo otra cosa. Pongo el uno adelante. Le doy F5. Y
cuando vengo acá. Escribe primero uno. Y después el otro. De hecho podemos venir acá y usar
un bucle. Y in range 5. Y acá decir. Archivo punto write. Línea. Vamos a usar la F. Acá agregada.
Vamos a darle I más uno. Y ahora cuando corremos esto. Se ejecutó. Corrió. Y acá me dice.
Línea una agregada. Línea tres agregada. Línea cinco agregada. Y ahí me tira toda la lata. Para
darle el barra N al final. Barra N. Para que pueda dejar un espacio en línea. Así que voy a.
Borrar todas estas líneas que agrego. Jaja. Esto que está acá lo voy a dejar. Y esto lo corro de
vuelta. Y ahora si se fijan. Línea dos agregadas. Línea tres agregadas. Así más o menos
podemos ir trabajando. Agregando el archivo. Usando un bucle. Para agregar. Varias líneas.
Acá vamos a usar. El write. Antes del bucle for. Para agregar simplemente. Un espacio en línea.
Antes de que comience. Esto es para que. Tengamos el programa. Y ahí nos funcionó. Y
comenzó desde acá. Líneas. Y incluso si quieren. Los desafío a ustedes. A utilizar for. En una
sola línea de código con esto. Esto se puede. Utilizar. Con una sola línea de código. A ver si se
animan a simplificarlo. Que es bastante sencillo. Se los dejo. Ahora que ya más o menos
sabemos. Cómo leer un TXT. Cómo leerlo óptimamente. Y cómo escribir. Y agregar más
información. Sobre escribirlo y trabajar con esto. Como es el tema de escribir. Trabajar y
demás. Con archivos. Vamos. Vamos a ver ahora. Bueno, ahora vamos a trabajar con un
digamos, valores separados por comas, ¿ok? un nuevo archivo que se va a llamar Ler.csv.py
desactivadas, pero por algún motivo me acabo de hacer una notificación ¿De qué grupo? Del
grupo de nuestra familia así nadie nos jode están viendo este curso, agregan el modo avión,
¿ok? es la mayor fuente de distracciones curso, alguna notificación sonó o con algo se
distrajeron y por ahí desviaron su atención modo avión, lo suspenden, lo dejan ahí sin
problema y le dan algo acá anda mal, me parece que algo no de programación con el celular
que quiere con su vida, ¿no? y ahora sí vamos a comenzar a trabajar CSV, en este caso vamos a
crear un archivo CSV cualquiera apellida, la tercera edad vamos a poner una coma igual 99,
pues yo tengo 99 años Y abajo vamos a poner Roberto, Demencial, tipo numérico, ahí va, 42,
coma y espacio en línea o Dalto a ser 24 vamos a guardarlo como datos.csv CSV, algo que
puede interpretar tranquilamente Excel o lo que sea dos puntos, print data leída
correctamente tenemos que hacer lo que hacíamos antes archivos dos barras, corremos leída
correctamente bueno vamos a chequearlo un valor, as archivo y acá le doy archivo.read que
está acá, pero vamos a importar CSV, el módulo CSV a poder leer sin ningún tipo de problema
ahora sí cambia el asunto lo ejecutamos, ahora, otro mosquito curso, no me la contes a hacer
publicidad a esta marca y menos cuando se trata de off salvaste Sai, muchas gracias, se tira así
mucho mejor Uh, increíble En mi cuatronia de pelotudos viste de que por lo menos los
mosquitos tampoco era esa off Ah bueno, es demasiado y me vino a dar una manito para sufrir
conmigo el calor por el curso Python Boy y te acompaña a sufrir con esto podemos hacer
muchas cosas trabajar con CSV de formas diferentes que no son DataFrames como tal Pero sí
poder manipularlas para hacer cosas igual, archivo, más fácil, CSV punto Reader, archivo como
ya lo vimos antes, PrintRader el objeto lo podemos recorrer For, ponemos Row in Reader son
filas por filas las filas nos muestra esto como filas filas Si se fijan, nombre, apellido, edad,
LucasDalto99 un cuarto valor ¿Por qué tenemos este cuarto valor? en datos, si se fijan, les
dejamos la coma Entonces deberíamos sacarle la coma, actualizarlo CSV, acá está un CSV se
separan por comas y por espacio espacio en línea línea Y así se separan como los nombres
Excel de las columnas Vieron que arriba ponen el nombre de la columna Bueno, y los demás
son los datos de las columnas de cálculo, por ejemplo Y acá tenemos tres datos y Camila y
Dalto Y después las edades, que son 99, 42 y 24 trabajar porque estamos leyendo el archivo
profesionalmente con Python y con archivos No recomiendo leer eso con esta librería llama
Pandas mismo código y leerlo con Pandas Y después le voy a explicar las diferencias análisis de
datos CSVs en nuestra ruta de aprendizaje de datos y demás con esto que vamos a aprender
Pandas que nos permite hacer esto pero mejor y menos limitaciones que CSV Así que vamos,
creamos un archivo que es Ler CSV con pandas.py Y ahora hacemos algo que es bastante loco
Pandas? Yo le doy import pandas as pd es pd pandas La tienen que asignar como pd pd para
identificarla Entonces ahora la acabamos de importar Pero si yo actualizo el código y lo corro
Así que vamos a comenzar a instalarlo Primero vamos a venir acá al cmd Ok, de Windows,
escriben cmd Le dan botón derecho a ejecutar como administrador Ok, si Y ahí se desarrolla, le
voy a cerrar Lo primero que tenemos que hacer es instalar pip Y si no salta pueden poner py
pip Si no salta pueden poner py-m pip instalado pip Porque si no tuviera instalado pip instalado
Bueno, si estás en Mac o en Linux la documentación oficial en la página Si ya llegaron a este
punto del curso de Python encontrarla instalar pandas Y lo van a poder hacer Yo les voy a
mostrar el proceso en Windows en Linux y en Mac Si tienen Ubuntu es lo mismo Lo van a
poder hacer también Van a ver que acá le saltan varias fuentes Ustedes pueden ir a lo oficial si
quieren Que es la documentación de pip a explicar cómo descargársela Existen dos
mecanismos para instalar pip de pip Headpip.py que es el común Acá tenemos en Linux, en
Mac OS o en Ventanas Ventanas Bueno, vamos a Ventanas Porque como lo traducimos al
español Windows es Ventanas Acá me dice cómo obtener esto Acá dice que Python viene con
este módulo Que puede instalar pip en el entorno de Python el CMD Le damos CTRL V Y ahí
automáticamente se instala pip Ya está, se instaló, ya tenemos pip a verificarlo Para verificarlo
entonces es sencillo Py yom m pip se puede hacer Podemos proceder a instalar pandas Esto es
lo mismo, es Py yom m pip Instal pandas Le dan ENTER a correr Y acá me dice que ya se instaló
sin problema Vamos a verificar si está instalado Acá se sigue instalando, se sigue instalando
Vamos a esperar a que se termine de instalar Y no voy a usar la famosa yo No lo instalo porque
ya lo tengo me importa nada Vengo a todo o nada lo dije Ahí se instaló Cerramos, corremos
esto y vamos a ver si funciona Ok, está corriendo el programa, funciona Print type pd Listo,
class module funciona ¿Para qué hicimos todo esto, dalto? ¿Para qué me hiciste tan reucada?
Bueno, ahora les voy a explicar Relájame porque te meto un cachetazo, ¿entendiste? la
función read read En este caso es pd.read Acá tenemos todas las funciones, ¿ven? read.csv Y
acá ponemos el nombre del archivo En este caso usamos datos.csv Y no se olviden que usamos
el archivo también Así que nos va a tirar una excepción Vamos a ponerle archivos La barra,
barra Actualizamos y ahí está funcionando Ya tenemos leído el archivo Ahora simplemente lo
mostramos Print archivo csv Acá podríamos trabajar con chapiter notebook oficial Y análisis de
datos más óptima diría yo Yo de repente acá pongo control shift p Y pongo chapiter notebook
Que es como un cuaderno de chapiter ¿ven? Lo copio, lo copio acá y lo pego Si esto que está
acá yo lo corro Permitir acceso Y le damos instalar Hay que instalar chapiter Lo podemos
instalar desde cualquier lugar Pero acá se me instala automáticamente Lo que voy a tener acá
es de datos Esto es lo que tenemos que usar y es chapiter de desarrollo diferente muchísimo
No me voy a involucrar mucho con esto Ni tampoco me voy a meter a fondo de trabajar De
hecho acá si se fijan Me dice que la ejecución tardó 0,3 segundos Y acá me tira los datos De
hecho si yo acá le saco el print Y le doy solamente archivo Corro esto Y me tira, ya me lo tira en
formato Me tira un formato El primer dato es un auto incrementable Que no depende de
nosotros se lo digamos Y el resto de datos es Nombre, apellido, edad Ya automáticamente le
da un formato propio adelante Con análisis de datos Sepan bien cómo manejar júpitas De
hecho acá puedo seguir creando columnas Acá tengo más código Ya acá por ejemplo tengo un
código Lo puedo cambiar, lo puedo modificar Lo puedo arrastrar, puedo cambiar De hecho, yo
acá puedo ver cuánto tarda Por ejemplo, en importar pandas Y en leer un archivo Leerme el
archivo Entonces, ahora vamos a ejecutar una por una Una, tres, se ejecutó en 0,1 Esta se
ejecutó en 0,2 Y ahora en mostrarlo Solamente se que tardó 0,1 Ahora no le vamos a dar
mucha bola a esto Vamos a, en el curso de inteligencia artificial O de análisis de datos Sí lo
vamos a ver Pero ahora vamos a cerrarlo Y vamos a concentrarnos en esto Es importante que
lo entiendan Que trabajar con Jupyter es muy importante Jupyter Notebook se utiliza mucho
Como les dije, así que Vamos a usarlo Intenten seguir familiarizándose Pero por ahora vamos a
usar esto Para no dar mucha vuelta No quiero que anden cambiando de contextos A cada rato
Y que tengan que andar adaptándose constantemente Que es lo que hay que hacer en la
tecnología hay que hacer así Pero estamos en un curso Vamos más tranqui Bueno, acá lo que
hice fue comentarlo Ok, que fue lo que estuvimos haciendo Le agregué otros dos datos que
trabajar Y me gustaría que vayamos viendo Algunas otras cositas extra Para empezar, esto
deberíamos redefinirlo Y en vez de ponerle archivo Deberíamos ponerle DF Porque esto, en
realidad No es el archivo como tal Sino que es el DataFrame Los DataFrame, como ya les
comenté O no recuerdo si les comenté Pero bueno, se los voy a repetir de vuelta Son digamos
estructuras de datos Bidimensionales Similares a una hoja de cálculo Lo podemos, digamos,
trabajar y tratar igual Como si fuera una hoja de cálculo No exactamente igual Pero
conceptualmente para que lo entendamos Entonces al no comportarse como un archivo Tiene
su propia forma de accederse Siempre los valores que van a tener son dos Filas, columnas De
hecho, si yo le digo por ejemplo Que me muestre esto Bueno, para empezar es lo mismo Me
va a mostrar la misma información Le voy a pedir que me muestre Por ejemplo ahora La
columna nombre Vamos a ver que me muestra cuando actualizo Bueno, de esta forma me
obtiene Todos los datos de la columna nombre De hecho, voy a comentarlo también
Obteniendo los datos de la columna nombre Acá voy a poner nombre Nombre es igual Y acá
obtengo los datos Ahora, ¿qué pasa si yo por ejemplo Quisiera cargar los encabezados De una
forma diferente Quiero cargarlos de otra forma Lo que hacemos es Al llamar al archivo Le
asignamos el valor Names, ok, igual Y acá le pasamos una lista con Por ejemplo, en lugar de ser
Nombre, apellido y edad Le podemos decir Lo podemos traducir al inglés Name, last name y
age Entonces, si yo actualizo esto Y lo muestro Print def Lo que me está mostrando es Bueno,
acá me está diciendo que Hay un error en nombre Porque ya no se llama más nombre Ahora
se llama name Ahí va, actualizamos Nos está utilizando El nombre, apellido y edad Digamos
Como las primeras filas Y ahora Forman parte Ok, de lo que antes no formaban parte Antes, si
se ven Vamos arriba Nos mostraba cero lucas Ahora nos muestra que lucas Ahora nos muestra
que lucas es el Ahora nos muestra que lucas es el primero Porque nos agregó esto Como si
fuera el encabezado Como las columnas Que componen los nombres de las columnas Como lo
que componen los nombres de las columnas Esto, la primer fila en este caso Hace referencia a
Justamente el nombre Eso lo podemos hacer Con esto que está acá Pero lo voy a borrar
Solamente para que lo tengan de referencia Para que lo sepan Y si lo quieren hacer Lo pueden
hacer De hecho, vamos a Más adelante Cuando plantemos algunos ejercicios rápidos Para
hacer con TXT y CSB Vamos a hacer todos en CSB En realidad en TXT uno solo Que es lo que les
plantea hacer antes Pero lo vamos a resolver nosotros Ahí recién vamos a empezar a trabajar
Más profundamente, ¿no? Pero que sepan que se puede usar Ahora tenemos que aprender un
concepto nuevo Llamado Slicing Y si bien lo pude haber explicado antes Lo preferí explicar
ahora Porque bien, antes no quería meter tanto Si bien ya metí todo y solamente me dejé Eso
es porque no lo habríamos visto El Slicing Hasta ahora La anotación Slice O Slicing en este caso
Es una especie de técnica que tiene Python Que nos permite realizar ciertas cosas Cuando
trabajamos con algunos elementos En el caso de los arrays Nos permite identificar El principio
y el final Si yo tengo No vamos a crear acá una lista Lista igual O una cadena Una cadena simple
Cadena Del 1 al 9 Y vamos a decir desde el 0 al 9 Así si lo llamamos por index Más o menos
tenemos esto Recuerdan que si yo por ejemplo Quiero acceder a algún valor de la cadena
Vamos a Esto no comentarlo más Yo pongo cadena 0 Esto me mostraría técnicamente Me
colgué con eso Si acá mostramos el código Nos va a decir 0 Porque cadena 0 es igual a 0
Cadena 1 Es igual al segundo elemento Entonces me tiene que devolver 1 Vamos a ver si nos
devuelve 1 Nos devuelve 1 Esto ya lo conocemos Ya lo vimos hasta acá Lo entendemos Y es
muy sencillo ¿Qué pasa si yo quiero por ejemplo acceder Desde el valor 2 Hasta el valor 4?
específicos Y demás Bueno, hay una técnica llamada Slicing Que justamente es Utilizando los
dos puntos Cuál va a ser el principio Y cuál va a ser el fin Si lo dejamos por defecto Esto que
está acá Nos va a correr Todo Estamos llamando a todo Es como si simplemente No le
especificáramos nada Es como si me mostrara la cadena completa Porque no le especificamos
nada De este lado viene donde comienza Y de este lado donde termina Si no lo especificamos
Arranca en el primer elemento En el primer elemento de la forma de recorrerlo Y termina en la
posición final O sea arranca en la posición 0 Es decir la menos 1 Pero si yo acá por ejemplo le
digo que vaya Desde el arranque Hasta el 3 Esto me va a mostrar Porque comenzó acá Y
terminó acá Si yo le digo por ejemplo Hasta el 7 Comenzó en el 0 Y terminó en el 7 El 7 no está
incluido Si yo acá por ejemplo pongo 2 Lo que está haciendo acá Es que me está mostrando
Desde el carácter 2 Hasta el carácter 6 Y esta es la forma en la que funciona el slicing La
posición de inicio Si se incluye La posición de final No se incluye Si yo acá quisiera que me
tenga la posición No es la posición 9 incluida Sino que está ahí incluida Porque estamos
incluyendo la 9 Cuando hacemos referencia a la 10 Entonces decir esto Es exactamente lo
mismo que decir esto Y también lo mismo que decir esto Solamente que no sirve Porque si
queremos acceder a valores específicos Lo podemos hacer En definitiva ¿Por qué les explico
esto ahora? Porque lo siguiente que vamos a utilizar Maneja este concepto de slicing Pandas
más comunes Es el slicing Y es muy común Ahora que ya vimos el slicing Podemos
simplemente ignorarlo Hacer de cuenta que ustedes ya lo entienden Si quieren, vayan y
agreguenselos Si ustedes lo quieren guardar Pero si no, ya lo van a tener bastante claro Ahora,
esto ya que lo aprendimos Vamos a más adelante verlo bien En unos segundos De hecho, unos
minutos Pero ahora vamos a seguir con lo siguiente Que es cómo podemos hacer Si yo por
ejemplo quiero ordenar los datos Supónganse que tengo diferentes edades, ¿no? antes El data
frame Lo que tenemos es 5 datos con edades diferentes Si yo quisiera ordenar esto la edad Acá
ordenamos el data frame por la edad Que el data frame, ok, punto sort values Y acá podemos
usar el parámetro by Es decir, por qué vamos a ordenarlo Pero en este caso no le vamos a dar
el by opcional Sino que como parámetro principal Y le vamos a dar Queremos ordenarlo por la
columna age Entonces, en este caso Vamos a darle edad Porque no lo estamos ordenando por
age Sino que por edad Y bueno, no me muestra nada el print defe ¿Qué creen que habrá
hecho ustedes? ¿Habrá modificado esto? O simplemente creó un valor anónimo? Bueno,
vamos a verlo ¿No lo modificó? Creó un valor anónimo Entonces vamos a decir def ordenado
En este caso, data frame ordenado Así que ahora vamos a mostrar el ordenado Y ahora si se
fijan Antes estaba la edad 97 primero Ahora está última Porque ahora lo ordenó los índices
Esto está desordenado Porque el ordenado ahora es esto Incluso si queremos ordenarlo de
forma descendente Podemos usar el segundo parámetro Ahora vamos a decirlo Ordenándolo
de forma descendente Pegamos el mismo código Pero agregamos el segundo valor Que ahora
el segundo valor Va a ser igual a ascending Igual false Porque este segundo parámetro Por
defecto viene configurado Para que de forma ascendente Se ordene, es decir, de menor a
mayor De forma incluso alfanumérica Desde la A hasta la Z Pero si le damos en false Es inverso
O sea, no arranca del menor al mayor Sino que arranca del mayor al menor Y en cuanto a los
números No arranca de la A a la Z Sino que de la Z a la A Y si ahora mostramos exactamente lo
mismo Y el data frame ordenado Ahora está ordenado al revés El 97 arriba El 24, que es la
edad más pequeña Abajo Acá le vamos a poner ordenado Orden descendente Orden
ascendente Así no me cambia la información Bien, bueno Acá tenemos hasta ahora lo que
venimos viendo Obtenimos el archivo Lo supimos leer Obtuvimos los datos de la columna
nombre Los ordenamos por la edad Después los ordenamos de forma descendente Incluso si
quisimos Ahora, ¿cómo podríamos hacer para concatenarlos? Supónganse que yo tengo dos
data frames Vamos a leer exactamente los mismos Y le doy df2 Vamos a leer el mismo archivo
Pero los vamos a concatenar ¿Cómo hacemos para concatenarlo? Bueno, usamos la función
concat Acá venimos acá y decimos Concatenando los dos data frames Bien, acá lo que
tenemos que hacer Para concatenarlos Es decir, que por ejemplo df concatenado Recuerden
que pd hace referencia a Este módulo de pandas, ¿ok? Y acá ponemos punto concat Que es un
método de pd Y decimos Primero data frame el original Y después coma data frame 2 Acá puse
dos listas, perdones Solamente una lista Para poner, o sea El parámetro que nos pide es una
lista Una lista con todos los que queremos concatenar En este caso concatenamos estos dos
Corremos y ahí más o menos nos tira Los concatenados Y nos lo concaten Es decir, ahora es
solamente Un data frame con todos estos archivos Con todos estos datos en realidad Después
tenemos la función head y tail Que justamente nos permite Primero ver los encabezados Las
filas de arriba hacia abajo Y después tail Que nos permite ver las últimas filas Desde abajo
hacia arriba Si yo por ejemplo digo Accediendo a la primer fila con head Puedo decir df o más
fácil Primer fila es igual a df.head Primer fila la corro para ver Que es lo que me muestra Y me
va a mostrar Me va a mostrar todo por qué head Nos pide un parámetro Que le pasemos algo
Si yo acá por ejemplo le paso 1 Lo que me va a mostrar acá Es la fila 1 Ok, que es esta que está
acá Si yo le paso 0 Solamente me va a mostrar el encabezado Que es este que está acá Me lo
devuelve de otra forma Que tiene las columnas No tiene filas Entonces no dice que igual es un
data frame Pero es un data frame vacío Porque tiene solamente los nombres De las columnas
O sea el encabezado Pero nada de información al respecto Si queremos acceder a la primer fila
Le damos en head 1 Y ahí nos muestra la primer fila Queremos darle en head 2 Y nos muestra
las primeras dos filas No la segunda Las primeras dos filas abajo Entonces la primer fila
Accedemos con head Y de hecho acá vamos a cambiarlo Y vamos a poner Accediendo a las
primeras tres filas Con head Y abajo vamos a poner Accediendo a las últimas tres filas Con tail Y
vamos a probarla En este caso Primeras filas Y acá abajo vamos a poner Últimas filas Df.tail Y
acá vamos a darle un 3 Lo mismo, un 3 Y acá vamos a decirle Que me muestre las últimas filas
Vamos a ver qué nos muestra Nos muestra las últimas tres filas Desde abajo hasta arriba
Recuerden que acá tenemos la lista completa Con todos los nombres Esta que está acá Y las
últimas tres son Máquina, Nicolás y Camila Si venimos abajo de todo Nos muestro eso La 4, la 3
y la 2 Que son las filas 5, 4, 3 Entonces con head Accedemos a las filas de arriba para abajo Y
con tail Accedemos a las filas de abajo para arriba Después si queremos decir Che, la verdad
que Tengo archivos que me van pasando Ok? Tengo archivos que me pasan Y yo quiero hacer
cálculos distintos Dependiendo de la cantidad de filas Y la cantidad de columnas que me pasen
filas hay Porque dependiendo de esta cantidad Voy a hacer una cosa u otra Si hay tres
columnas Hago tres columnas Si hay diez columnas Muestro diez columnas Por ahí puedo
crear por ejemplo Si lo mezclo con páginas web Quiero crear un elemento tenga Me cree la
cantidad de elementos O la cantidad de filas O lo que sea las filas? Accediendo a la cantidad de
filas y columnas Con shape Shape es una propiedad Es decir, es un atributo Es como una
variable del objeto Para eso simplemente decimos que Filas y columnas totales Df.shape Si
ahora mostramos acá Esto lo que nos va a devolver es Cinco y tres de filas Y lo segundo es la
cantidad de columnas Y es una tupla Una tupla con dos valores Es muy simple Entonces si yo
quiero obtener las tuplas Simplemente digo Filas totales Filas totales es igual a Y si quiero
acceder a las columnas totales Uno Y ahora puedo acceder a los valores O puedo hacer lo que
estuvimos aprendiendo Para desempaquetarlo Y simplemente decir Columnas totales Igual
df.shape Y de esa forma desempaquetamos Entonces si ahora mostramos Me va a mostrar las
filas Que son cinco Y si muestro las columnas totales Puedo acceder a las columnas que son
Tres Muy bien, hasta ahora venimos de diez Después tenemos funciones más complejas Como
por ejemplo describe Que nos permite obtener números estadísticos Obteniendo Data
Estadística Del data frame Si yo ahora por ejemplo le doy df.info df.describe Si yo ahora me
muestro la información Vamos a ver que nos tira Vamos a ver que nos lanza Acá tenemos
básicamente la cantidad de Tenemos el promedio Tenemos la división estándar Tenemos el
mínimo Tenemos los cuartiles Y tenemos la máxima Entonces estas son informaciones
estadísticas Que en el análisis de datos nos sirven Y ya vamos a ver qué es lo que son Cuando
hagamos justamente un curso de esto No se apuren porque esto ya es más matemático Y
cuando lo veamos con inteligencia artificial Les va a cerrar mucho más Pero por ahora
Relájennos Pero nada, si les sirve obtener esta información La podemos obtener acá ¿Por qué
les dije que íbamos a tener justamente Que aprender el slicing? Bueno, sobre el slicing vamos
a trabajar ahora Porque vamos a trabajar con dos métodos Muy interesantes que son lock y
elock Accediendo a un elemento específico Con lock Si yo ahora por ejemplo le digo Elemento
específico Lock Es igual a data frame punto lock No es un método, es otra propiedad en
realidad Entonces, lo primero que nos pide es el índice llamar a las filas Las filas, si recuerdan
Ven, las filas tienen nombres filas es con números Con un índice Uno, dos, tres, cuatro Se le
asigna automáticamente por el índice fila Dos No en la cero, no en la uno Y quiero acceder a la
edad Voy a poner edad específico Si yo pongo Elemento específico lock Acá me devuelve
veinticuatro Y si vamos a los datos Es verdad Estas son las columnas de los nombres La
ignoramos Esta es la fila cero Esta es la fila uno Esta es la fila dos Este es el nombre Este es el
apellido Esta es la edad a este elemento Así accedemos con lock Ahora vamos a acceder con
iloc Con iloc accedemos solo por los índices De hecho la i adelante es de index Si contamos
como si fuera un índice Esto sería cero, uno, dos Para acceder a los valores de la edad
Tenemos que acceder por el valor dos Así que decimos dos, dos Y de esta forma accedemos al
mismo valor Accediendo a la edad de la fila dos Ahora vamos a decir exactamente lo mismo
Ahora lo hacemos con iloc Ahí tenemos lo mismo todas las filas de una columna ¿Cómo puedo
hacer? Bueno, yo voy a decir por ejemplo Accediendo a todas las filas de una columna me
muestre una Pero filas quiero que me muestre varias Entonces voy a decir todos o apellidos
Voy a poner iloc Iloc Apellidos va a ser igual a df.lock Porque recuerde que esto nos pide
posiciones Acá la posición que le vamos a pasar es X va a acceder a todo Y va a acceder
solamente al primer elemento Que son los apellidos Es nombre, apellidos Cero es nombre Uno
es apellidos Entonces acá estamos diciendo Accedeme a todos los elementos Con el slicing le
pedimos accedeme a todos a los apellidos Entonces yo ahora muestro esto Perdón, esto es con
iloc Y ahora sí me muestra Me está accediendo a todos los apellidos DALTO DEMENCIAL,
DALTO SOSTEN GALÁCTICA Ahí accedió a todos los apellidos En este caso vamos a decir
primero loc Y después iloc Así nos queda en orden a todos los datos de una fila Y lo mismo con
las columnas Si queremos acceder por ejemplo Accediendo a la fila 3 con loc Es lo mismo
Ponemos fila 3 Igual df.lock Y esta decimos simplemente fila 3 Que es en la 2 Es 0, 1, 2 La 3 es
la 2 la fila 2 Yo ahora muestro fila 3 Cuando lo corro me muestra la fila 3 Todos los datos El
nombre es camila El apellido es dalto Le da 24 Y si yo lo quiero acceder con iloc Lo que toca
hacer A ver si se dan una idea Exacto, en este caso funciona igual ¿Por qué funciona igual?
Porque en este caso la fila Como lo llamamos por índice Y la fila en este caso funciona por
índices También va a funcionar Van a ver que lo voy a sobrescribir Y también funciona Es
exactamente igual De la misma forma No hay problema con hacerlo Y aquí puedo usar una
condición Por ejemplo quiero acceder a filas A ver Donde la edad sea mayor A 30 Entonces voy
a decir Accediendo a filas Con edad mayor que 30 Mayor que 30 es igual a Df.log Las filas ¿Qué
seleccionamos? Algo Vamos a poner coma ¿Y qué seleccionamos acá? Entonces columnas
todas Filas Bueno vamos a ir ahora con las filas Las filas van a ser solamente las Df Edad Vamos
a acceder a la columna Y vamos a decir solamente Mientras que esto Sea mayor a 30 Acá le
tenemos que decir que sea Mayor que 30 Y nos va a devolver Solamente las filas mayores a 30
Ven Y yo ahora le digo Devolve solamente las que son Menores a 30 Me van a devolver Las que
son menores Entonces de esta forma Hacemos cosas Porque el primer dato que nos pide Es las
filas Y el segundo las columnas Columnas le pedimos todas Solamente Las que edad sea mayor
a 30 Bueno ahora que ya vimos Más o menos cómo manipular Y trabajar con archivos Vamos a
plantearnos Un par de ejercicios Antes de avanzar con lo siguiente Supongamos que estamos
Construyendo una aplicación Y necesitamos trabajar Con TXT Y con CSV ¿Cuáles son los
problemas Que nos pueden plantear? Esto no es un ejercicio práctico No lo confundan No es
un ejercicio práctico Pero es algo parecido Porque vamos a plantear Los problemas Pero
muchos más problemas Pero que se resolven Mucho más rápido Problemas más cortitos Así
que vamos rápido Con el apartado de Resolviendo problemas En el que vamos a resolver
Algunos problemas de TXT y CSV Así, rápido Vamos para envolver estos archivos resolviendo
problemas bajo voy a arrastrarla por fuera porque no simplemente afuera resolviendo
problemas o resueltos bien ahora vamos a crear un nuevo archivo que va existe es lo siguiente
es algo muy rápido tenemos dos tiene nombre otra tiene apellido tenemos que escribir óptima
con un for bueno fácil vamos a poner dos listas a crearlas nombres igual a poner lucas matías y
apellidos dalto sing camila también dalto pedro vamos a mostrarlos registrar esta información
con un for como ya dijimos vamos a crear el texto en creado va a ser nombres y apellidos.txt y
antes vamos a asignarle un valor en este caso y vamos a escribir los datos son dos puntos y
ahora barra n no hace falta esta es una línea así que vamos a n los datos son barra n ya que
usamos un for pero en se acuerdan lo que tenemos que hacer es decirle sola línea arch.write
lines f nombre dos puntos ya que vamos a ponerle el barra n y abajo vamos a poner apellido
mismo vamos a poner después barra n y guiones para dejar n y qué va a valer a bien
básicamente vamos a decir igual a los valores de zip nombres y apellidos in for in y ahí está
técnicamente si ejecutamos como python file además algo pasó bueno vamos a ver
evidentemente así que algo salió mal a no por fuera mira hermosa accedemos y acá nos dice
los datos d'alto nombre matías apellido sin nombre camila que esto no deja un espacio en
línea después así que ahí va bueno lo corremos de vuelta y ahora sí de hecho al primero le
vamos a dejar dos espacios está nuestro archivo creado con los datos los datos son apellido sin
nombre camila apellido d'alto como si tiramos acá abajo ok se los pongo así for n a digeramos
lo mismo ok lo mismo lo mismo lo mismo acá esto viendo funciona exactamente igual
solamente hacerlo así tenemos que decir che mira no va a tener los a ponerlo dentro de un
array y de esta forma en cada vuelta del bucle ok es como si acá básicamente yo voy a borrar
esto de hecho si yo les llevo a sacar es importante si lo sacan en lo sacan de acá y yo esto me
dice que no funciona porque programas que no a nada es importante que entiendan que la un
nada estamos poniendo dentro una lista importante mantenerlo y adentro pero esta es la
forma de del for básicamente es una forma como les dije de debería ser simplemente un
repaso bueno ahora a resolver ok vamos a ponerlo acá dentro acá todo usaba la doble barra
así que ahí está en que está casi que le ponemos la doble barra y listo lo crea y adentro lo voy a
borrar delete delete pero me dice los datos son dos puntos porque no sé en qué a cambiar no
sé en qué momento se me convirtió está todo bien perfecto ya estamos lo mismo a crear otro
archivo que va a ser problemas csv.py no problemas chiquitos pero rápido resolver columna
supongamos que yo de repente tengo esto no import frame igual pd.read.csv y acá lo abrimos
el archivo vamos a copiarlo y pegarlo acá vamos a cerrar el tequiste todos esos archivos
abiertos vamos a pegar caso es datos.csv para ver que esté todo ok le damos los datos bueno
la consigna en este caso es cambiar tipo de datos una columna bien lo vamos a hacer muy a
decir por ejemplo la columna edad va a ser vamos a cambiárselos va a ser igual a df para
convertirlo en string vamos a verificarlo si yo a ver qué es lo que nos muestra me dice 97 a ver
qué es lo que nos devuelve nos devuelve vamos a poner type para cerrarlo en type a ver qué
nos si yo no pusiera esto aquí sería igual a numpy int es con que es una especie de número ok
entonces a string los datos de una columna y de esta mostrar el tipo de datos el primer
elemento de la reemplazar valores si yo por ejemplo quiero df nombres o nombre sería perdón
nombre punto por maestro y si yo no lo muestro print df este caso vamos a reemplazar el
apellido perdón dalto dalto dalto porque es esto porque nos en este caso es true ok para que
nos termine de cerrar el dalto por maestro cada vez que aparece alto me lo reemplaza aparece
maestro voy a poner reemplazando los datos dalto en este caso esto vamos a descomentarlo
incluso porque porque si es necesario ya que no nos interesa más mostrarlo de repente tienen
filas con columnas que estarían que está faltando y otro coma tiene dos datos a dejarlo así voy
a borrarle esto también bueno datos que están faltando fácil decimos def igual def que viene
siendo las filas ok con datos faltantes si y después lo muestro de vuelta print def pues ahora
cuando que me faltan dos datos me dice stange nan nan y ya está el quinto no te lo muestro
porque te lo eliminando las filas repetidas supongamos exactamente repetida se repite así
como la ven es que quería decirles que si ustedes quisieran lo que deberían hacer es decirle
axis 1 y ahí se 0 son las filas el 1 son las columnas por defecto así pero es raro eliminar
columnas solamente que lo sepan que lo pueden hacer entonces las que tienen las filas con
datos faltantes filas con datos faltantes y ahora eliminamos drop duplicates y ahora
eliminamos las filas el data frame al nuevo data frame con las print def vamos a ver que ya por
un lado no tiene ni ni tampoco tiene las filas repetidas las que estaba eliminó bueno acá
básicamente si se dan cuenta lo que un montón de cosas que nos reemplacen los que nos
reemplacen el data frame el apellido donde se nos elimine las filas con datos faltantes y que
nos un data frame limpio tenemos otro problema queremos no sabemos escribir todavía en
data en csv resultante limpio en este caso es el data el data frame en un archivo csv y le
ponemos y vamos a decirle datos y un bajo limpios así me acaba de crear el archivo datos
limpios el data frame que hemos creado tenemos lo mismo que incluso si ustedes lo quisieran
llamar podrían básicamente la cree muy rápido para que podamos surgir como por ejemplo
que tenemos que cambiar el tipo que reemplazar todo un valor o que tenemos que eliminar
repetidas pueden surgir problemas y de esta forma como que no es que tanto un problema
pero como les dije antes y ok pero háganlo de forma óptima bueno acá hay otro hacer lo que
les dije que se escribir muchas acá lo hacemos con dos listas juntas pero va corre y va vamos a
plantear problemas gráficos ok acá de resuelto vamos a ponerle simples ok problemas vamos a
sacar también problemas problemas y acá lo mismo ahora me gustaría que resolvamos
problemas gráficos así carpeta más que va a hacer archivos problemas gráficos y de lo que
vamos a tener ahora porque ahora plantear diversas problemáticas y resolverlos pero a nivel
consola sino que con cosas gráficas si vamos a usar la quiero que vean un poquito de lo que
nos puede así que vamos a ir aprendiendo mientras vamos a resolver estos problemas vamos
un archivo que va a ser gráficolineal.py un gráfico de líneas Vamos a plantear un problema de
problemas estomacales pedos y cada vez que me tiro un pedo, esto se registra Entonces,
después de un tiempo, ok tengo un archivo CSV con dos columnas La primera columna es las
fechas tiré en esa fecha dice pedos.csv y básicamente dice fecha pedos me tiré ese día y al lado
tenemos la fecha Ok, entonces son dos datos ¿Qué es lo que queremos hacer? en los que tuve
problemas estomacales Primero importamos pandas import pandas as pd mostré cuando
trabajábamos con módulos matplotlib Pero vamos a acceder puntualmente a pyplot y vamos a
asignarle el nombre lt de plot datos, básicamente para visualizar datos de forma gráfica Y
después vamos a importar cia-borne as sns estadísticos Nos permite dar más gráficos
estadísticos no lo tengo instalado Así que lo vamos a instalar Vamos a copiar esto y vamos a
venir a cmd Y decir lo que ya sabemos Decimos py-m pip install matplotlib Le damos enter y se
instala Ahí está, se está instalando, buenísimo Listo, instalada Y ahora vamos a instalar cia-
borne pip install cia-borne Instalada correctamente Bueno, vamos a verificarlo Si ahora
corremos este programa Ok, no nos tira ningún error Entonces funciona es el archivo Así que
vamos a leerlo DataFrame va a ser igual a pd problemas gráficos barra barra p2.csv Vamos a
ver si lo lee Si lo lee vamos a darle printf Si lo lee está todo bien Está todo bien Lo lee Aquí voy
a decir abajo sns Vamos ya a acceder a trabajar con este objeto Y le vamos a dar punto lineplot
Y vamos a crear un gráfico de líneas Esto nos dice ¿Qué vas a tener en x? Bueno, en x vamos a
poner fecha ¿Y en y qué vas a tener? Bueno, en y vamos a poner p2 ¿Y cuál es la información?
de DataFrame El valor de x el de fecha Encontrame la columna fechas Esa columna va a ser x Y
después encontrame la columna p2 Y esa columna va a ser y ¿En dónde tengo que buscar esas
columnas? En DataFrame Entonces le decimos data Igual DataFrame Y ahora tenemos que
mostrarlo Tenemos que decirle plt.show Porque con show mostramos el gráfico Corremos esto
Y ahora se nos abre el gráfico Listo, ya está Tenemos el gráfico agrandamos Las fechas, ¿no? Y
evidentemente entre el 8 del 1 y el 11 del en su vida Se ha tirado 17 pedos evidentemente
Quiero marcar el 17 con un punto Ok, en este caso, como sabemos Esto lo podríamos hacer de
forma dinámica Detectando cuál es el punto máximo Y simplemente como sabemos que es el
17 Y la fecha es el 0109 Vamos a crear acá abajo un plt.plot que ser 0107 Perdón, 09 Y el
segundo tiene que ser 17 que haga un puntito el puntito ahí arriba ¿Lo ven? Tengo el puntito
marcado Para identificar que el punto más alto fuese Ya está, lo logramos Creando un punto
en el momento de más pedos Creando el gráfico Y acá mostrando el gráfico Así ya tenemos el
primer ejercicio resuelto Bueno, el segundo problema nos indica lo siguiente programador
Para los que no saben, Cofla es un meme nuestro verlo durante el curso Vamos
resolviéndoselo en código Así que está buena la dinámica Está en el curso de javascript Si venís
de ahí, espectacular Pero bueno, en definitiva trabajo como programador de ingresos Porque
como apareció en el curso de javascript Eso le dejó regalías Se volvió influencer Además
invierte en cripto ingresos Entonces tenemos este CSV llamado Coflaingresos.csv Y el primer
valor es fuente y el segundo ingresos Una fuente de ingresos es trabajo fijo Y le da 3000
dólares por mes Bastante bien Después es freelance en sus tiempos libres Y le genera 800
dólares por mes Piola yo hice todos los meses Entonces piola por él Gana 600 dólares por mes
Y además invierte en cripto de inversión Que tiene un interés compuesto bastante alto Y le da
150 dólares por mes Jodj estas fuentes de ingresos en un gráfico datos de diferentes lugares?
El gráfico de barras Para esta situación nos viene de 10 Así que vamos a copiar esto Y vamos a
guardarlo como gráfico de barras.py La diferencia es que en lugar de poner lineplot Vamos a
poner barplot Gráfico de barras Y en lugar de poner fecha y pedos Los datos que tenemos acá
son fuente e ingresos a poner ingresos Y la data es esta que está acá Entonces acá decimos
creando el gráfico El punto acá no hace falta que lo creemos Porque no tienen puntos estos
Sería extraño crear un punto acá con los datos Y lo mostramos puede interpretar el input
fuente que importar kofla Ingresos.csv abrir el gráfico Hermoso, mira la fuente de ingresos de
kofla Tiene trabajo fijo, 3,000 dólares Freelance, 800 YouTube, regalías, influencias en total
total de todo Bueno, vamos a mostrarlo en un print a def ingresos.zoom Esto es un método
que lo que hace es Nos suma todos los datos del valor ingreso O que tienes un valor numérico
O que ahí nos suman todos los números Así que vamos a hacer Vamos a decir mostrando el
gráfico Y abajo vamos acá arriba de todo Vamos a decir mostrando el total Obteniendo el total
de ingresos Y acá abajo decimos mostrando el total Print f El total de ingresos es de dos puntos
Y acá decimos total ingresos Acá vamos a darle el signo de dólares De moneda en realidad Acá
vamos a poner USD Entonces ahora corremos esto Y cuando lo ejecutamos Por un lado, se
abre el gráfico Y acá en console nos dice El total de ingresos es de 4,900 dólares Bien, kofla, un
grande Bien, ya tenemos este ejercicio resuelto de Vamos entonces con el tercero Bueno, acá
tenemos el tercer problema Y es simple, no es tan problemático Simplemente tenemos datos
Ok, datos que son puntos, son coordenadas Coordenadas en un gráfico cartesiano Tenemos
tiempo y tenemos dinero Vamos a sacar un archivo Que se llame gráfico de dispersión .py,
perdón, ahí va Vamos a agarrar el código Y vamos a mostrar el mismo código Esto lo vamos a
eliminar Porque no necesitamos total de ingresos Esto también lo vamos a eliminar Y
simplemente acá vamos a decir Cater plot Esto es un gráfico de dispersión ¿Para qué es este
gráfico? Bien, vamos a mostrarlo primero Y poner dispersión Y es tiempo y dinero Tiempo y
dinero Vamos a hacer de cuenta Vamos a correr este Esto y lo voy a explicar Acá se nos abre
este gráfico Ok, este es un gráfico muy utilizado Por inteligencia artificial Sobre todo para los
primeros algoritmos Que son de regresión lineal Y regresión plenómica y demás Y básicamente
nos sirve para trazar Diferentes tipos de líneas Y poder predecir y demás De hecho, en muchos
casos Nos sirve también para poder clasificar Pero básicamente acá tenemos varios puntos
Acomodados en coordenadas Y nos sirve para hallar Relaciones entre dos variables Pueden ser
dos o pueden ser más Y acá lo que podemos hacer es Simplemente trazar líneas, sacar medias
Y muchas otras cosas Pero que sepan que si quieren trabajar Un gráfico de dispersión Para los
que los conocen E incluso tienen datos SBCOM Muchos puntos Esta es la forma Usar un scatter
plot Que es justamente un gráfico de dispersión orientada a objetos? forma más de
programar, todos los demás conceptos que tenemos en programación orientada a objetos,
sobre las que después podemos construir y diseñar cualquier software que tengamos ganas.
Cada objeto es una instancia de una clase. especie de plantilla que tenemos, que la creamos
nosotros, de los objetos que se crean a partir de esas mismas clases. blanco, negro, chino y
demás. van a ser de cierto nivel de inteligencia. para ser humanos. Y después cada humano
tiene sus propias cosas. ojos, nuestro propio tamaño, altura y demás. somos todos humanos,
venimos de la clase humano. organizar la estructura y la organización de nuestro código. el
código, es decir, ampliarlo de forma óptima y también poder mantenerlo. código, ya que si
creamos objetos constantemente de una misma clase, ni sus métodos, porque ya más o menos
está todo establecido en la clase. que anda creando la receta cada vez que la voy a cocinar.
mezclar los ingredientes, les doy los ingredientes y ya se hace sola. Yo la cocino nada más. sea
más seguro, ya que lo podemos encapsular se puede acceder con métodos específicos. de
programación, incluyendo Python, complejos pero también flexibles. entre sí de manera
organizada. a objetos es un estilo de programación que se centra en desarrollar software
basándonos en las clases y en los objetos. del código, paradigmas más usados en todo el
mundo. te la voy a enseñar. hice y puedes ver en la descripción. curso de POO, que significa
programación orientada a objetos, y ahí entras al curso. el canal. Si no ven este curso,
olvídense, despreocúpense. un curso de programación orientada a objetos, la lógica, les va a
ayudar mucho con otros programas ser programadores expertos, tienen que saber. durado
mucho más y no es la idea tener un curso que no nos entre. pueden durar 12 horas,
sobrepasado. voy a poder hacer ejercicios a objetos así muy rápido, muy rápido, muy sencillo.
y muchas otras cosas. Dale pausa, haz un stop y anda a ver ese curso. Ok, si ya lo viste, podés
continuar. mi recomendación es mírenlo. algo nuevo que les va a servir muchísimo con, por
ejemplo, desarrollo web y demás, sí lo tenemos que utilizar. además una vez que lo aprenden
les cambia completamente la visión de todo. se ponen a pensar en programar las cosas suerte.
esta sección antes de comenzar con la sección avanzada lo que vamos a ver en la sección
avanzada ya arranca siendo picante. es un tema muy avanzado, lo complejizas y como
elemento aparte de nada nuevo de lo que estuvimos viendo un elemento avanzado. con
programación orientado a objetos no necesita programación orientado a objetos, a objetos
podemos hacer muchas más cosas. más, si los mezclamos con POP van a ser la mayoría
mejores. que me traje cohetes y bombas para explotar Acá lo tengo muchachos. presentar a...
Chasqui Boom. ustedes no se esperaban esto para el curso, pero carajo, sí que lo merece. del
curso de Python. Así que vamos carajo. Vamos carajo. ¿Y los efectos, maestro? ¿Y los efectos?
¿Podemos cambiar de editor? son señales de... Estás haciendo las cosas bien. en el curso
avanzado de Python ¡Nos vemos! avanzada del curso de Python. Es decir, estamos entrando en
un mundo diferente. así con estos colores, este vestuario. me dejé crecer la barba. que no nos
importa más nada que el código. es lo que va a pasar con nosotros. en la que me voy a enfocar
en la sección que tenemos que hacer ahora. Y estamos hablando de las excepciones. primero
deberíamos entender que es un evento. que suceda dentro de nuestro programa. para poder
actuar en consecuencia. cualquier letra, soltar cualquier tecla. suceso dentro de un programa
es un evento. que otros. puedo apretar un botón y eso ya es un evento entero. el evento de
apretar un botón, otro de mantenerlo apretado, otro de soltarlo. Tenemos eventos de mouse,
eventos de teclado, eventos de un montón de cosas que se imaginan. Cada suceso es un
evento. es capturar estos eventos, estos sucesos, estas cosas que pasan para actuar en
consecuencia. detecta que el usuario tecleo. Entonces, ¿qué hace en consecuencia? Me
muestra lo que el usuario tecleo. trabajamos con un dato que nos da el usuario. y
automáticamente muestra ese dígito que el usuario introdujo, ¿no? entender que algo sucedió
y actuar en consecuencia. los adios en Instagram, por ejemplo. se clic en este botón hacemos
tal cosa, y así con un montón de cosas. eventos. de nuestro programa. el flujo normal de
ejecución. toda acción en el programa. 5 lanza una excepción, las demás no se van a ejecutar
porque el programa finalizó ahí. básicamente, es saber actuar en consecuencia de estas
mismas. manejarla para que no finalice el programa y podamos hacer algo al respecto. Vamos
a ver un ejemplo. que va a ser excepciones. un nuevo archivo dentro de esta carpeta.
excepciones.py quiero que forcemos a propósito una excepción. una excepción. Para empezar,
vamos a crear la función suma. hacer es pedirnos un número. resultado. resultado es igual a a
más b. Y después retornamos el resultado. Hasta acá está todo bien. función ejecuto cuando la
corra. número 2 20. Hasta acá todo bien. excepciones. nos debería mostrar lo que está
retornando. Así que vamos a hacer la misma prueba. 40 20 y nos da 40 de int. ¿Por qué sucede
esto? Y porque no lo convertimos a entero. Vamos a convertirlo entero. int a más int b. Acá lo
estamos convirtiendo entero. Entonces número 1 40, número 2 20, tenemos Esto funciona
perfectamente. Ahora vamos a ejecutar de vuelta el programa. va a ser igual a. Hola maestro,
jaja. Y el segundo va a ser un número, por ejemplo, de lanzar una excepción. inválido para un
entero. número de base 10. El número de base 10 es el sistema que conocemos. 1, 2, 3, 4, 5,
desde el 0 al 9, digamos. Eso es un sistema de base 10. Un sistema decimal. Y le estamos
pasando. Esto no está dentro de los números de base Es decir, no es un número común.
Entonces me lanzó una excepción. El tipo de excepción es value error. al programa. a entero.
Algo que no sea un número. consecuencia. sentencia try. está abajo intentalo. excepción.
Intentalo, ¿ok? Básicamente te decimos eso. Intentemos hacerlo igual. Lo otro que le tenemos
que pasar es el except. partes. Una parte es intentar hacer lo siguiente. En caso de que nos
lance una excepción. Vamos a hacer lo siguiente. Vamos a decirle print, por favor, no te
detengas. Y ahora nos va a mostrar resultado. Entonces, vamos a decir, sumar 2, ejecutamos.
Corremos el programa número 1. Le vamos a decir, hola, número 2, paint. acceder a la variable
local resultado. Porque no tiene ningún valor asociado. más. que no tengamos el valor de
resultado. No lo vamos a retornar. es podemos meterlo en un bucle. Decirle che, mira, vamos a
hacer una cosa. Esto, while true. Esto se va a ejecutar siempre. No va a tener un fin, ok? Esto
no va a tener un fin. Todo esto lo metemos adentro de un bloque. nos va a mostrar otra cosa.
Le vamos a decir che, mira, a ver. tonto que no pusiste un número y pusiste salame, no te
hagas el gracioso. ahí le decimos, número 40, número 2, 20. Perfecto, ahí es un número, no
pasa nada. Está todo bien, funciona. que no termina más. va a salir nunca. ver, si esto se puede
ejecutar, no me va a lanzar una excepción. a decir che, mira, si resultado funcionó, entonces
terminamos el bucle. que no nos rompa todo. dice número 2, hola. Número 2 y 30. gracioso.
una y otra y otra y otra y otra y otra vez esto, esto que está acá. los números no los estamos
pidiendo de vuelta. así que lo vamos a poner acá adentro. adentro, ahí está. a ver, te voy a
pedir número A, número B. perdón, convertirlos enteros y después sumarlos. te pedí un
número salame, no te hagas el Y vuelve a funcionar el bucle. entonces esto continúa y nos dice
break. número 1 es hola, número 2 es 20, por ejemplo. hola. gracioso, ahora le paso texto y
texto. de verdad. 40 y 40. Y ahora me dice 80, perfecto. Ahí va, me sumo y logramos manejar la
excepción. le vamos a decir te pedí un número salame, no te hagas el gracioso. forma de
actuar, sino que lo que deberíamos utilizar es quizá un else. Es como, a ver, else break. no nos
lanzó ninguna excepción, acá lanzamos el break. ¿Por qué? Porque se puede usar un else. un
else en el try. else. Si el else se ejecuta, no se ejecuta el except. try nos lanza una excepción.
esto se ejecuta. y no nos tiro errores porque el tarado no ingresó un dato que no sea un
número. bloque, el bucle y retornamos al resultado. Parece complicado, pero es bastante
simple. van a entender mejor. un bucle, pidiendo números, intentando convertirlos a entero y
sumarlos. los datos. Si todo salió bien, terminamos el bucle. pero lo vamos a hacer igual.
Mostrando el resultado. Y después tenemos una cláusula extra. Supongamos que le damos
retornar resultado. un finally. que se ejecuta sin importar lo que pase. ejecuta el except y el
finally. el except, si el else, pero también el final. tres, el final se va a ejecutar siempre. me vas
a lanzar una excepción o no me vas a lanzar una excepción. Pero el final me lo mostrás igual.
print, esto se ejecuta siempre. uno es hola, número dos es 234. ese gracioso. Esto se ejecuta
siempre. se ejecuta siempre. Se va a ejecutar siempre. excepción finalizado. no está dentro de
este manejo de excepciones. de excepción finalizado. Y después de eso nos muestra el 50. El
final y raro a veces es útil. de encontrar un caso útil de uso. van a encontrar cuando lo tengan
que utilizar. el manejo de excepciones. pero a veces es bastante útil. acceder a las excepciones.
exception. de todas las excepciones. derivados de la clase exception. O son derivados de una
subclase de exception. subclase de exception. incluso. como ase. E. No te haga ese gracioso. Y
abajo vamos a mostrar el error. Error, dos puntos. Acá ponemos F. Y acá decimos E. Error, dos
puntos, E. nos ante una excepción. with base 10, hola. O sea, la excepción la lanzó este valor.
función int, se lanzó este valor. el nombre de la excepción. bajo. Name, yo en bajo, yo en bajo.
Y de esta forma tenemos el nombre. Si corremos el programa de vuelta. Acá va un punto,
perdón, punto. Ahí va, recorremos de vuelta el programa. igual a 20. Ahí dice error, value
error. Ahora sabemos que el nombre del error es ese. darle acá en value error. Y ya ahora
cuando mostremos la excepción. Mostremos E, por ejemplo. Hacemos que el código vuelva a
correr. Le damos hola, O. Y acá nos dice lo mismo. que está lanzando es esta. Se pueden usar
varios excepts. le paso es un número que se divide por cero. Por ejemplo, acá me dice número
uno. for int. Porque dice 10 dividido cero. Y esto es un entero. que nos divide por cero. Y eso
no se puede. No existe, no se puede dividir por cero. se llama. Por ejemplo, zero division error.
Es otro nombre de otra excepción. Y acá vamos a actuar. No dividas por cero. que nos lanza.
Sabemos los motivos del por qué la lanzó. Y podemos actuar en consecuencia. Y ahí
terminamos. Acá vamos a poner, esto se ejecuta siempre. Finally se ejecuta siempre. Vamos a
crear otro archivo ahora. Que va a ser. MiExcepción.py. Y vamos a crear una propia excepción.
¿Cómo creamos una excepción? Vamos a crear una clase. Class MiExcepción. Esto como ya
saben es crear una clase. Sabrán que estamos creando una clase. Que se llama MiExcepción.
Las clases normalmente las creamos con CamelCase. Pero además de utilizar CamelCase. La
primera letra es mayúscula. O sea que no es CamelCase real. CamelCase sería así. para las
clases. Mayúsculas. Y esto va a heredar la clase excepción. Está heredando la clase. atributos.
De la clase para la excepción. La vamos a heredar. real. Sabrán lo que es heredar. Acá le damos
dos puntos. Y comenzamos a crear la clase. Vamos con el constructor. DefInit. Le damos el
parámetro self. Que self como ya saben se lo tenemos que dar. Siempre sin importar cual sea
la clase. clasco mayúscula. Qué boludo que soy. Clases con minúscula. Self. Y acá vamos a decir
error. Este va a ser nuestro error. Y vamos a crear este método constructor. Vamos a decirle
print. El error es error. No, mejor vamos a darle impressionan. Cometiste el siguiente error. Y
ahí le vamos a pasar el error. Y acá ya está. Ya tenemos una clase. Que literalmente crea
nuestra propia excepción. Vamos a probarla. lanzar. Vamos a lanzarla a propósito nosotros.
Vamos a darle try. Try. Rise. Rise es la palabra clave para lanzar excepciones. la excepción.
Valué error. Y acá le diramos except. Es más, ni siquiera se puede usar un try. Si acá usáramos
la palabra rise. Solamente acá. Por el simple hecho de poner el rise. dice una excepción ha
ocurrido. Si ahora le decimos zero division error. Y acá le damos una descripción. Qué boludo.
Dividiste por cero. Corremos esto. Actualizamos y me dice. Exception has occurred. Zero
division error. Y acá dice. De esta forma lanzamos excepciones. Y vamos a lanzarla a nuestra
propia. Mi excepción. Y vamos a decirle. Ja ja ja ja ja ja ja. Taradito. No no. Es muy agresivo. Ja
ja ja. Persona poco oculta. Y abajo vamos a decir. Except. Vamos a manejar la excepción. Cómo
vas a cometer ese error. Corremos y nos dice. Impresionante. Ja ja ja ja ja. Persona poco
oculta. Esta es la forma de crear excepciones y lanzarlas. Así que acá vamos a poner.
Comentarios. Lanzando mi propia excepción. Acá vamos a poner. Manejándola. Y acá arriba
vamos a poner. Creando mi propia excepción personalizada. Entonces ahora si corremos este
programa. Esto que está acá me lanza la excepción. De hecho vamos a comentarlo. Así no nos
lanza la excepción. Y todo lo demás se puede ejecutar correctamente. Ahí tenemos
básicamente. Nuestra propia excepción. Y como está por fuera este archivo. Lo vamos a meter
adentro de excepciones. No sé por qué los puse afuera. Pensé que lo había puesto adentro. En
definitiva las excepciones. Si bien son útiles. Y aunque no sean muy utilizadas. Ya que nos
permiten por ejemplo. Saber cómo actuar ante errores que nos lancen. O a la entrada del
datos del usuario. O para registros internos. falta que al usuario final se le muestre un
mensaje. mi empresa. Entonces está bueno que se me muestren errores. puedan corregirlos. Y
entender lo que está sucediendo. Y tiene esos usos. No siempre es la mejor opción usar
excepciones. cuándo usarlas. realidad. Pero ahora tienen una herramienta más. Dentro de su
estat de conocimientos. Y de Python avanzado. Así que me pone muy contento por decir eso.
particularmente. Y es el apartado de las expresiones regulares. Y estas expresiones regulares.
Miren lo que vamos a ver ahora. Observenlo. Expresiones regulares. Que están viendo ahora.
Son expresiones regulares. Son todos caracteres. Así como si estuviéramos hablando chino.
Pero tienen un uso. Lo vamos a ver, lo vamos a entender. chiquitito. Y meterlo dentro de un
lenguaje de programación. que dura 10 horas. o 9 horas. Entre los tres cursos de Javascript. o
menos. Y de esas 30 horas no pude explicarles. Lo que ahora en Python alcancé a explicarles.
Estoy muy contento. Pero no tan rápido. Todavía no se los explique. Así que vamos. Perdón,
perdón. Yo sé, yo sé. Me emocioné demasiado. Pasa que me habían sobrado. Quise
aprovechar la situación. Olvídense. una hora entera todo transpirando, todo sudado, siendo...
Y terminó y se me cortó la luz. Esta de mierda de la en... Uy. continúo el curso cuando vuelva la
luz. de ti solo, no hay nadie. Tenemos este archivo de expresiones regulares, que es el módulo
que utilizamos para trabajar con expresiones regulares. digamos, el que más utilizamos. ese,
pero lo utilizamos también. que nos trae incorporado por defecto la biblioteca estándar de
Python. ok? Como por ejemplo split, search y demás. lo que más importa es que tienen que
entender que hay que encontrar coincidencias. con expresiones regulares es patrones. punto
con una A. que queremos encontrar eso. una coincidencia es simplemente devolverla. por
otra, usarla como separador. O sea, hay muchas cosas que podemos hacer. simple y vamos a
hacer que el texto sea... Hola maestro, ¿cómo estás? Mi capitán. Mi capitán. Acá vamos a
poner un signo de preguntas. de texto, ok? Quiero que tenga varias líneas. vamos a utilizar
triple comilla simple. Ahí está, para dejar espacio en línea. texto y esta es la final definitiva, mi
capitán. Y es decir, resultado igual re.search. Esta es la primer función de todas. a utilizar. Pero
básicamente vamos a comenzar con search. coincidencias y devolverlas. llamada texto. mira,
te devuelvo un objeto match. Bien, match hola. Encontré el primer hola. Fácil. los hola. está,
ahora me va a devolver todos los está. ¿Por qué? Porque es está y estás. No hay más, los
demás son con mayúsculas. Si yo les pusiera con mayúscula por ejemplo. flags. ciertos
parámetros. Por ejemplo re.ignore case. está, está, está, está. y las minúsculas. es lo que
queremos. regulares. simple. Esta es la parte simple de todo esto. regular. tienen mucho barra
invertida. La primera es barra de minúscula. Y esto básicamente lo que va a buscar es... Busca
dígitos numéricos del 0 al 9. Es lo que busca, ¿ok? Dígitos numéricos del 0 al 9. Es bastante
simple. re.find all. F. por ejemplo concatenar. Esto lo sabemos. Acá puedo concatenar. que no
es que voy a concatenar. Lo que voy a hacer es usar expresiones regulares. expresiones
regulares. de. Entonces esto lo que me está diciendo es... del 0 al 9 en texto. Entonces yo
ahora corremos. Vamos a comentar el anterior resultado. Esto me va a mostrar 1. una sola.
Entonces si yo acá le pongo más. Por ejemplo esta es la cadena 1. Esta es la línea 2. Línea 2 voy
a poner acá. Y esta es la final entre paréntesis línea Entonces acá tengo esto. Porque hay tres
números. después este. regulares con letras minúsculas y mayúsculas. Para hacer casos
contrarios. No siempre, pero en la mayoría de los casos. O en los principales por lo menos. las
coincidencias. Que no sean números... Dígitos numéricos. Simplemente la pongo en
mayúscula. Pues si ahora acá le digo con D mayúscula. Busca todo menos dígitos numéricos. Si
yo ahora devuelvo esto. Comento el anterior. lo anterior. Todo. que encontró. Todo menos
números. Fíjense que ahora hay todo menos números. En esta lista que nos está devolviendo.
Hay todo menos números. de la palabra cadena. Espacio. Y ahora hay una coma. El uno estaba
entre el espacio y la coma. Y no me lo mostró. numéricos. Después tenemos el carácter W.
alfanuméricos. viene siendo. Desde la A a la Z. Del 0 al 9. Y también el guión bajo. Es decir, A, B,
C, D. Así hasta la Z. En minúscula. A, B, C, D. En mayúscula. Y además nos busca el guión. En
Python, el guión bajo se considera... Puede ser guión bajo, piso. Como ustedes quieran decir.
Se considera un carácter alfanumérico. No en otros lenguajes de programación. Pero en
Python particularmente sí. Entonces si yo acá, por ejemplo, le muestro. Le pido que me pase la
W. Acá vamos a hacer lo mismo. Pero hacer que esto sea con W mayúscula. Adivinen que nos
busca la W mayúscula. Todo menos caracteres alfanuméricos. Así que vamos a comentar la de
abajo. Y mostrar con W minúscula. Vamos a correr. Nos muestran todos los caracteres
alfanuméricos. No nos muestran los puntos. No nos muestran las comas. No nos muestran los
paréntesis. Les comento este y comento el de arriba. Ahora me está mostrando todos los
alfanuméricos. Con W mayúscula. Chequiémoslo. A chequear. Me está mostrando los espacios.
Porque estos que está acá son espacios. Cada espacio que dejé acá es un carácter. Así que
cada espacio me lo muestra. ¿El barra N? ¿Qué será? Bueno, este es el espacio en línea. es la
forma universal de representar a los espacios en línea? Bueno, acá tenemos un espacio en
línea. Que es este que está acá. Y acá tenemos otro espacio en línea. Entonces, esto que está
acá. De hecho, cuando hacemos esto. Que hacemos TUC. De hecho, si yo saco los espacios en
línea. Y corre el programa de vuelta. Corremos. Fíjense que ahí los barra N no nos lo muestra.
Lo volvemos a dejar. Y ahí lo muestra de vuelta. línea que acabamos de darle. O sea, si está así.
O así es casi lo mismo. Porque acá estamos sobrescribiendo. Suponiendo que todas las
anteriores se ejecuten. anteriores. alguna. Es mejor porque tarda menos en ejecutarse. ignorar
el código. Entonces, lo ignora por completo. No lo ejecuta. Así que si esto tiene mil líneas.
Siempre la va a sobrescribir. Solamente que si lo comentamos. El programa es más rápido. Así
que lo estamos comentando por ese motivo. Después tenemos otro. Que también justamente
es la S. La S minúscula. Que lo que hace es. Busca espacios en blanco. La S busca espacios en
blanco. Que en este caso los espacios en blanco son. Espacios comunes. Todo lo que es el tab.
Tab. Tabulación. Tabs. Y también busca los saltos de línea. Es decir, saltos de línea. Los new
lines. Así que si yo acá verifico y pongo la S. Y mostramos el resultado. Ven. Nos muestra los
espacios en blanco. Los saltos en línea. Eso es todo lo que nos muestra. Y adivinen que pasa. Si
yo le paso la S mayúscula. La S mayúscula nos busca. Todo menos espacios en blanco y demás.
Ahora nos está devolviendo. Todo lo que antes no nos devolvía. Es como. Todo lo que antes
nos devuelve. En el que es mayúscula. Nos devuelve todo lo contrario. Por eso está bueno.
Que lo que hace Python. De caracterizarlo de esta forma. Ven que no era tan complicado. Esto
de expresiones regulares. Parece realmente. Una locura. Cuando lo aprendemos en serio. No
es. La gran cosa. El punto lo que hace es. Busca saltos en línea. O saltos de línea. O saltos en
línea. Igual re punto. Find all. Estamos buscando todas las coincidencias. Bujamos simplemente
un punto. Y nos muestra. Corrí el programa. Y me mostró todo menos saltos en línea. Esto es
busca. Todo menos saltos en línea. En realidad busca todo lo contrario. Todo lo contrario a los
saltos en línea. Y adivinen cómo deberíamos hacer. Si queremos buscar saltos en línea. Para
buscar saltos en línea. Simplemente usamos barra N. El famoso salto en línea. Bueno, para
buscarlo usamos lo mismo. O sea que si ponemos el barra N. Literalmente buscamos saltos en
línea. Vamos a chequearlo. Ejecutamos el resultado. Barra N, barra N. Es verdad. Nos buscó
dos saltos en línea. Y si dejáramos algunos más. que estamos dejando. Vamos a volver a poner
como estaba antes. Ejecutamos de vuelta. Ahora me muestra los dos que estaban antes.
Hubiera estado bueno igual que. Así como antes era. Minúscula, mayúscula. Y demás. N
minúscula. Buscará saltos en línea. Vamos a comentarlo también. empieza a complejizar un
poco. Si ponemos solamente la barra. Lo que hacemos es cancelar caracteres especiales. Con
la barra cancelamos caracteres especiales. O sea que yo acá puedo decir resultado. punto. no
son alfanuméricos. De la A a la Z. Mayúsculas y minúsculas. Y el guión bajo son caracteres
alfanuméricos. Es decir, el signo de pregunta no es alfanumérico. Es un carácter especial. Coma
o paréntesis son caracteres especiales. No son alfanuméricos. Guiones bajos sí son
alfanuméricos. ¡Ah! Los callé. Guiones medios no son alfanuméricos. Pero los guiones bajos sí.
extraño que raramente es alfanumérico. Pero bueno, es un alfanumérico. Para Python es
alfanumérico. lo podemos cancelar. Acá voy a poner varios puntos. Voy a poner hola maestro,
punto. Esta es la cadena 1, punto. Ahora corro esto y me va a decir. Che, pero yo estoy
buscando puntos. Vos estás buscando todo menos saltos en línea. devolves. Todo lo demás sí.
No flaco, pero yo te pedí un punto. ¿Cómo hago para buscar un punto? Cancelas, estás
cancelando. Con la barrita delante le decís. no la tenés. fueras un punto. Y vamos a buscar un
punto. F5 y ahí me devuelve los puntos. En este caso cancela caracteres especiales. de que
estamos buscando puntos. vamos a armar una cadena medianamente buena. seguido de un
texto, seguido de un espacio. No, y un espacio, un espacio, un espacio normal. ¿Cómo
hacemos esto? Bueno, le damos resultado. Vamos a cancelarlo. número, que después del
número haya un Y es que después del punto es un espacio. coincidencia usaramos search. Pero
queremos buscar todas las coincidencias. buscar para empezar un número. Los números los
buscamos con barra D. Ok, un dígito numérico, uno solo. podemos darle punto. le damos
punto nos busca todo menos altos S. Cualquier espacio en blanco. blanco, demás. conjunto de
todo esto. Vamos a ver qué es lo que nos devuelve. Le damos texto y corremos a ver. Y acá
hay. un uno que le sigue un punto que le sigue un espacio en blanco. Vamos a ver si lo
encontramos. Aquí está. el programa de vuelta, lo dejó de devolver. con el patrón que le
pasamos. que tenga número, punto y después un espacio en blanco. le faltó el espacio en
blanco. Ahí se lo volvemos a dejar. efectivamente el patrón que encontró. vamos entendiendo.
Vamos con otra cosa extra. línea o el principio de una línea, por ejemplo? Usa un signo que es
peor que la barra invertida. Es la B, pero dada vuelta. B, dada vuelta. Es la que está acá. Esa
misma. y la usamos. Busca el comienzo de una línea, ¿ok? Y bueno, ah. saber cómo llama este
signo asqueroso es el acento circunflejo. Es una asquerosidad, pero bueno, nada. Es extraño
decir. a los nombres de paréntesis, corchetes y demás. Pero corchetes, corchetes. Bueno, no
importa. En fin, sigamos. Hagamos de cuenta que no ha pasado nada eso. Y nos devolvió el
principio de una línea. Pero esto es para utilizar en conjunto. No lo podemos utilizar solo. de
texto tienen un principio. ¿Cómo lo podemos usar? Yo quiero saber si, por ejemplo, Hola está
al principio de esta cadena. Y le voy a decir, bueno, mira. Y si muestro el resultado me va a
decir, Sí, está al principio. Ok, está al principio. Si yo le digo, che, a ver. ¿Está maestro?
Maestro. Me dice maestro, no lo encontramos. de la línea. voy a poder mostrar. Básicamente.
Buscando Hola al principio de la línea. Ahora, una curiosidad. Esta. Esta que está acá. Vamos a
decirle, actualizo. No me devuelve coincidencias. Pero porque sí es una nueva línea. Esto tiene
un parámetro. Recuerdan que les dije. Flags. la forma en la que lo interpretamos. En este caso,
si le damos re. Ignore case. Recuerden que esto hace. Ignora mayúsculas y minúsculas.
También lo ignora. Pero tenemos otro. Que es re.m. sea multilínea. O sea, quiero que cada
línea. Después del barra n. nueva línea. ¿Qué significa eso? Con este parámetro activado.
Cuando actualizamos me va a decir. Esta me devolvió. a ser. Esto, esto y esto. Acá tenemos
tres diferentes comienzos. Si le sacamos el parámetro. total. fuera una sola línea. Para por lo
menos utilizar este signito. El circunflejo. Pero, ahora si le activamos este parámetro. Podemos
poner. Veinte líneas. y veinte posibilidades. Si yo de hecho le pongo dos líneas. Actualizo y me
devuelve dos esta. una línea. Encontró dos veces el patrón. De esta, la cadena esta. Que esté al
principio de una línea. Es buenísimo. Flags igual re.m activa la multilínea. Dejamos eso.
Comentamos esto que está acá. Y ahora pasamos al otro. Que me imagino que se lo
imaginarán. Vamos a copiar y pegar esto. Y vamos a usar el signo del dólar. O del moneda. Que
esto lo que busca es el final. Final de una línea. lo tenemos arriba. Y ahora lo que hacemos es
buscar el final. Como con el signo pesos. final. No, no aparece al final. Bueno vamos a ver si
capitán. Aparece al final de alguna línea. Bueno vamos a chequearlo. Pegamos. No me
devuelve nada. final de una línea. Y porque el final. No es el final. Es un espacio. El final está
acá. Entonces vamos a ponerlo al final. Cerramos. Y me dice capitán capitán. Porque hay dos
veces. Ah mira. Me acabo de dar cuenta de eso. Ah es verdad. Se repite. Capitán acá. Y capitán
acá. Hay dos coincidencias. Con el patrón que le pedimos. Capitán. Que esté al final de alguna
línea. grupos. Vamos a ponerle. Repite. N cantidad de veces. Busca. El valor de la izquierda. Si
yo por ejemplo digo. Les voy a mostrar. Más fácil el código. Si yo por ejemplo tengo esto.
Tengo esto. Y acá normalmente le pido que me muestre. Los dígitos. Agarramos y me muestra
los dígitos. Pero ahora. Yo quiero. Que no busque. Un solo dígito. Que busque alguna cadena.
En donde. haya. 3 dígitos juntos. Esto se tiene que encontrar 3 veces. Y no me lo devuelve. Ah
bueno. Pero si yo a la cadena ahora le pongo. Estos números juntos. Corro el programa y ahora
me tira. Porque encontró la condición. ¿La condición cuál era? Y la condición era. Encontrarme.
3 veces. Para que encuentre una coincidencia. Tiene que haber. 3 números. Y yo ahora le digo.
Quiero que me encuentres. 3 números juntos. Un espacio. Y eso. Me está encontrando. Y un
espacio. Porque acá arriba tenemos. Y después le digo un espacio. Si yo le borrar este espacio.
Me lo deja de mostrar. O que no cumple todas las condiciones. Solamente me muestra. 3
números juntos pero el espacio no. Entonces no se cumple la cadena. Corremos y ahí nos
muestra. 3 números juntos esta vez. Y después tenemos para hacer rangos. Nosotros
queremos que busque. Al menos. Y como máximo. M cantidad de veces. M. Como máximo.
Entonces esto lo que busca es. Por lo menos que haya. Y como máximo que haya. 4
coincidencias. Entonces esto que me va a devolver. Y acá tenemos. Acá tenemos. Otro. Otro y
acá tenemos otro. Me está devolviendo. Todos los valores. En donde encuentra. Por lo menos
1. Y como máximo 4. Si yo acá le dijera. No, no. Quiero que por lo menos sean. 2 caracteres los
que me está mostrando. Y me va a mostrar solamente este. Porque este. Todos los demás
tienen 1. Y necesito que por lo menos me muestre 2. A este le voy a agregar. 2 caracteres más.
mostrando un máximo de 4 caracteres. Le agrego más números. Ahora me está devolviendo.
Encontró el máximo de 4. Y después me devolvió otros 3 números. Porque encontró esto. Esto
que está acá y le dijimos. Ah no, para. Máximo devolvéme. Me devolvió los 4. Mínimo 2. Acá
encontró 2. Y me devolvió los 3 que encontró. Así es como funciona, digamos. Esta función.
Esta expresión regular, perdón. Después tenemos conjuntos. Si yo por ejemplo le quiero decir
que me encuentre. Más fácil, mira. A, B en este orden. Lo que está haciendo Es buscando
donde encontremos la B. Solamente la B. Si yo acá por ejemplo pongo. B, B, B, B. Y acá pongo
B, B, B, B, B. Corro el programa. Y esto no me está buscando la A. Me está buscando la A.
Seguida de una B. En donde al menos se encuentre 2 o 4 veces. O sea que voy a poner la A. Y
aquí voy a poner la A. Corre el programa. Y esto me dice A. B, B, B, B, B. A, B, B, B. lado. Y esto
solamente afecta al primer carácter. a la A. Lo encerramos en algo llamado grupo. Los grupos
los hacemos con paréntesis. Así como cuando hacemos cálculos combinados. Que decimos por
ejemplo. Entre paréntesis. A más B. Y de afuera del paréntesis. Todo esto por 5. Así es lo
mismo. Ahora quiero que esto. En su conjunto. Lo busques. Al menos 2. Que lo encuentres al
menos 2 veces. Y máximo 4. Entonces acá. Y ya no nos lo muestra. ¿Cómo hacemos para que lo
muestre? Y ahora no tiene que ser A, B. Tiene que ser A, B, A, B, A, B, A, B. Ahí corremos y me
muestra. A, B, A, B. Bueno, vamos a... A ver qué pasa si le decimos 3, 4. Y no lo muestra. Vamos
a mostrar solamente 3. ¿Qué es lo que está pasando? Y lo que está pasando en este caso. Es
otra cosa. Nos está devolviendo. Un A, B. Cada vez que encuentra. El A, B. Por 2 por ejemplo. Si
yo acá por ejemplo. Digo mira. Si encontrás. 2 veces. A, B junto. Me devuelves solamente A, B.
Y acá a ver vamos a checarlo. Me devuelve un A, B. Otro más. Me devuelve otro A, B. Y
después otro más. Eso es lo que está sucediendo en este caso. No me va a devolver los... O sea
lo que encontró no me lo devuelve. Una cosa es lo que encuentra. Otra cosa es lo que me
devuelve. A, B, A, B si lo encuentra. Le estamos diciendo si encontrás. Que está. solamente A,
B. Corchetes. encuentre. que esto se va a aplicar a cada uno de estos. la A. 2 veces la B. vamos
a devolverla. Entonces así es como funciona este. Pero no nos vamos a enroscar tanto. Nos
vamos a quedar con el anterior. cantidad porque si no nos vamos a volver locos realmente.
terminar de hacer que nos cierre esto. útil también. Que es la propiedad O. Esto es fácil. Busca
una cosa o la otra. Lo que está a la izquierda de ese operador. O lo que está a la derecha.
Vamos a devolver esto y vamos a pegarlo. Y acá hacemos lo mismo. Decimos, a ver. Me vas a
buscar esto. antes. O si no encuentras eso. También me vas a devolver la palabra hola.
Entonces me devuelve ambas. Me devuelve hola. Porque la encontró. Y también me devuelve
esto. dicho que primero nos devuelva esto. Primero nos devolvió esto. ¿Por qué? Porque la
cadena aparece primero. Entonces por más que lo pongamos después. Siempre lo va a
devolver primero. Entonces eso nos devuelve. Una cosa o la otra. Pero no es elegite una. No es
si me devolves una. No me devolves la otra. Es encontrás sola devolvelo. Joya. Encontrás esto
devolvelo. No es o esta o la otra. Es la condición or. Con que alguna de las dos se cumpla. Ya te
vamos a devolver un objeto. Ahora con todo esto listo. Es analizar un par de cadenas de texto.
que me voy a descargar ahora. Y cuando las tenga. Vamos a analizarlas. Bueno vamos a
analizar esta que está acá. ChatGPT. del vídeo. regulares y me las creó. está pidiendo esto. Nos
está diciendo che mira. Buscame una cadena en donde D. encontrar cualquier cosa que no sea
un espacio El asterisco. porque se lo puedo explicar. Afecta al anterior operador. Y
básicamente lo que le decimos es che mira. línea. Bueno encontrame cero o más ocurrencias.
pasar. Y si encontrás más de una ocurrencia. Bueno devuélvemelas. que no es un espacio en
línea devuélvemelo. Si encontrás cero te lo perdono. Si encontrás treinta dame los treinta. que
coincidan con esto. Cuando llegue alguno que no coincida, listo. No pasa nada lo terminamos.
Pero eso es lo que hace este operador. la cadena de texto. es como que te lo permite. con
treintadas. Con este operador te va a devolver las treintadas. pasar igual. A vos se lo
permitiste. Le dijiste si encontrás alguna ponelas. pasa nada. Te lo tomo igual. Entonces vamos
de vuelta. La cadena de texto tiene que empezar con T. Empieza con T perfecto. Y tiene que
estar al principio de la línea. Está de 10 listo. no sean espacios de línea los que quieras. de
línea. de 10. Se cumplió. Ah pero hay más condiciones. Ok tiene que haber DOG. Es decir ok a
ver si lo encuentra. Bien DOG perfecto. Encontró DOG o sea que D está al principio. DOG bien.
Ah pero DOG tiene que estar al final. Ok también está al final. devolver correctamente.
Actualizamos y esto nos va a devolver sí. Porque esto nos devolvió una coincidencia. Primera
expresión regular. Validada. Vamos con la segunda. Esta es más compleja. Dice la fecha es 23
del 6 del 21. Y el teléfono es más 1 55. Perfecto listo. Bueno este es el patrón a buscar. Bueno
acá básicamente es pattern. Creamos un patrón de expresión regulares. Después buscamos
una barra. Acá hay una barra. Después buscamos de vuelta dos veces un número. Acá
encontramos otros dos números. Después otra barra. Otra barra. Y después buscamos cuatro
veces un número. Acá encontramos cuatro veces número. una coincidencia. Porque esto tiene
dos veces un número. Una barra. Dos veces un número. Y cuatro veces un número. Y es lo que
le dijimos acá. Así que me lo encuentra. Encontró la fecha. Es una fecha válida. Y acá estamos
creando otra cadena que dice... Cadena de reemplazo. Fecha oculta. apariciones del patrón en
la cadena de texto. New Text es igual a re.sub. Sub básicamente lo que hace es... Encuentra la
cadena y hace un reemplazo. Primero este es el patrón. es este. oculta. ¿En dónde lo vamos a
reemplazar? En el texto. Entonces lo que vamos a hacer es... Primero agarramos el texto.
Después vamos a buscar el patrón. Es este que está acá. por fecha oculta. ¿Para qué? Para
ocultar la fecha. Entonces el resultado final va a ser... Texto modificado. La fecha es fecha
oculta. Y el teléfono es el teléfono. es un formato fecha. Y cambiarlo por fecha oculta.
Fascinante. Vamos con la tercera expresión regular. Reemplazando todas las vocales por el
asterisco. Bueno, re.sub. Vas a encontrar todas las vocales. La A, la E, la I, la O y la U.
Cualquiera de estos caracteres devolvémelos. No tienen que estar todos juntos. Puede ser
cualquiera por separado. Si le dijéramos así... orden. La A, la E, la I, la O y la U juntas. por
separado. Y que la reemplace por el asterisco. ¿En dónde? En esta cadena. Entonces si
encontramos... Si ejecutamos new text. O más fácil, por asteriscos. Reemplazando todas las
vocales por asteriscos. Entendimos su funcionamiento. Vamos con la cuatro. Acá hay una... Es
una muy larga esta. Que está validando mails. Acá le decimos. El guión medio sirve para hacer
separaciones. Por un lado me está diciendo. tengan de la A a la Z. De la A mayúscula a la Z
mayúscula. Todo lo que no sea un espacio en línea. Los guiones bajos también están
permitidos. Tenemos esto que está acá del signo de porcentaje. Que es un comodín digamos.
de él lo va a validar. Tenemos el más. El más lo que hace es... o más coincidencias? Esto nos
busca una o más coincidencias. El asterisco era flexible. Nos decía che mira a ver. Si encontrás
una coincidencia, mostralo. El más dice no. Me encontrás una coincidencia o más, mostralas.
de coincidencias es uno. No es cero. O sea si no coincide, no te lo dejo pasar. Y cerramos este
conjunto. Después acá lo mismo. Encontrame al menos una coincidencia con todo este patrón.
O sea alguna de todas estas tiene que estar al menos una sola vez. El más modifica en este
caso a todo el corchete junto. Porque como está encerrado en corchetes, modifica todo junto.
Encontrame al menos alguna vez a alguno de todos estos caracteres. Acá lo encontró. En
example, arroba example.com. Esto es un mail que por lo menos la primer parte la validamos.
Hasta el arroba. El arroba lo encontró. Antes del arroba tiene que haber al menos algún
caracter que cumpla estas condiciones. Acá la cumplió. Después se encontró un arroba.
Después se ejecutó el mismo resultado. Solamente que le sacó el porcentaje. También
funciona. Encontró también las condiciones. Después usamos un punto, como ponemos la
barra delante. Ahora no estamos buscando todo menos espacios en líneas. Estamos buscando
específicamente el punto este. Acá lo encontramos. Hay un punto. Y después que me
devuelva. Valores de la A a la Z minúscula. De la A a la Z mayúscula. Al menos dos veces. Claro.
Porque un dominio tiene que ser por ejemplo google.com, gmail.com, facebook.com. Y los
mails son algo arroba algo.com. Tenemos.br,.ar,.co de Colombia. Pero no existen dominios que
tengan una sola letra. Lo mínimo que tiene son dos. Entonces tenemos que decirle que por lo
menos se encuentre dos veces esto. Que encuentra al menos dos caracteres alfanuméricos.
Que en realidad no son alfanuméricos. Tienen que ser caracteres. De las letras del abecedario.
No importa si es mayúscula o minúscula. Dos veces. ¿Y por qué está coma y fácil? Porque
estamos diciendo y sin límite. Y porque puede ser.tv. Puede ser.online. Puede ser.algo. .god.
No sabemos lo que puede. No le vamos a dar un máximo. Pero hay algún dominio que es que
yo no sé. Facebook.la maestra está buenísima. Y no sabemos el límite. Entonces no importa el
límite. Lo dejamos abierto. Pueden ser dos, tres, cuatro. No te vamos a poner un máximo.
Recuerden que es un rango. Esto ya es un rango. Entonces que al menos tenga dos letras. Y
después las que quiera. Y cumple. Entonces lo que hacemos es intentando buscar con match.
Lo que buscamos es encontrar que coincida. Si coincide nos dice que es válido. Nos va a
devolver que es el valor válido. Si no coincide nos dice que es inválido. Es una dirección de
correo válida. Si le pasamos algún correo cualquiera. Dice que es un correo. Una dirección de
correo inválida. Le vamos a pasar. Lucasdaltonuevoshemail.com Vamos a ver si yo me creo
esta cuenta. Me dice que es válida. A ver si le pongo.c. A ver si me la toma. Entonces con
expresiones regulares. Acabamos de validar que una cadena de texto. Sea un mail. Acabamos
de encontrar una forma de validar. Un mail. Un campo de mail. Vamos a cerrar esto y vamos a
abrir la última. Acá lo que estamos buscando. A ver si se dan cuenta. HTTPS. Nos damos cuenta
que estamos intentando validar una url. Tiene que arrancar con HTTPS. Este signo de pregunta
es. Este signo de pregunta significa. Si encontrás HTTPS adelante. Mostrámelo. Si no. El signo
de pregunta adelante. Acuerdan que el asterisco decía. Cero coincidencias. O algunas. El más
decía. Al menos una coincidencia. Bueno este me dice. Encontrame. Ninguna coincidencia. Si
encontrás más. No me lo muestres. Después de esta coincidencia que encontró. En caso de
que la haya encontrado. Si no, no pasa nada. Tiene que haber dos puntos barra barra. Y
después tiene que haber al menos una vez. Que es el carácter del dominio. Después tiene que
haber un punto. Y después tiene que haber lo mismo. El formato. Que en este caso es. Letras.
Y después la que sea. Entonces por ejemplo. Dos puntos barra barra. Facebook. Me lo toma.
Válido. De diez. Si encuentro una página web. Example.com. Example.org. Vamos a mostrarle.
Proyectodalto. Proyectodalto.com. A ver si nos detecta esto. Si no el HTTPS. No la detecto.
Porque no le pusimos el. Y ahora si me lo detecta. Me está detectando solamente direcciones.
Que son. Válidas. Esto es una página web. Fíjense que usa Studio Code. Lo subraya. Y ahí.
Acabamos de entender más o menos cómo funcionan las expresiones regulares. Así que ahora
lo que voy a hacer es. Crear un archivo que va a ser. Creando. Expresiones.py. Detectando.
Caba. Y ocultándolo. Vamos a ocultar el número. El texto va a ser igual a. Mi número es. Vamos
a dejarlo así para que sea más complicado. Vamos a crear el patrón. Patrón. Para en inglés.
Para que no lleve acentos. Y vamos a decir que. Primero. Tiene que arrancar con un más. Un
más. Como el más. Tenemos que cancelarlo. Lo cancelamos con la barrita. Entonces para
empezar. Busca eso. Vamos a ir mostrando el resultado. Reemplazo. Tenemos que importar el.
La librería. Import. Re. Sub. Vamos a intentar encontrar. Este patrón. Reemplazarlo por.
Oculto. En. Texto. Vamos a ver si efectivamente funciona. Vamos a mostrarlo. Hola Pedro.
Número oculto. Hasta ahora encontró el más. Ahora además del más. Después del más. Tiene
que venir un 54. Barra D. Y lo ejecutamos. Esto dos veces. Queremos que después del más. De
esta forma estamos variando. Que sea un número de Argentina. Por lo menos. Si queremos
variar específicamente. Que sea Argentina. Pero en este caso vamos a decir que. Tiene que
haber al menos uno. Y máximo tres. Para validar la característica de un país. Bueno en este
caso. Vamos a validar que sea Argentina. Que tenga dos números. La estamos rebuscando. Me
gusta por eso. Podría ser 54. Pero para hacerla compleja. Chequeamos. A ver. Bien. Ahora nos
encontró el 54. Más 54 lo reemplaza por número oculto. Vamos a por el 11. Tenemos que
encontrar un espacio. Barra S. Para que busque un espacio. Ahora tienen que encontrar un
espacio. Después tienen que encontrar un. Y en vez de 11 vamos a hacer lo mismo. Vamos a
darle. Pedirle dos números. Que nos encuentre dos números. Después que nos encuentre otro
espacio. Tiene que haber otro espacio. Después tienen que encontrar. Cuatro números.
Después tienen que encontrar un guión. Pero el guión recuerden. Que tiene un efecto. De
carácter especial. Pero vamos a verificarlo. ¿Ven? Me está reemplazando el guión. Ok. No tiene
efecto de carácter especial. Porque no está dentro de un corchete. Zafamos. Y si ahora le
pedimos lo mismo. Que de vuelta nos devuelva otros cuatro números. Lo logramos. Logramos
reemplazar este número. Ok. Pero qué pasa si el tipo pone. Dos veces el número por ejemplo.
Y ahí está. Tenemos otros números. Si lo pone dos veces. Lo reemplaza dos veces. Ahora
tenemos una expresión regular. Que básicamente lo que hace es buscar. Números que tengan
este formato. De Argentina a Buenos Aires por lo menos. Y lo reemplaza. Esto justamente fue
la sección de expresiones Si quieren investigar. Tienen un apartado enorme. Porque
expresiones regulares hay un montón. Realmente pueden profundizar un montón. Podría ser
un curso entero de dos horas de Tampoco me la vi. No iba a ser cursos específicos de todo.
Porque se nos va de las manos. No nos vamos a enfocar por ahora en expresiones De hecho
cuando trabajamos con inteligencia artificial. Ni siquiera ahí vamos a trabajar con expresiones
regulares tanto. Porque no es muy normal trabajarlas. Pero con esto tenemos lo necesario.
Sabemos que es una herramienta poderosa. Y si tenemos que trabajar encontrando
coincidencias o demás. Es cuestión de buscar en internet. Buscar en la documentación oficial
de Python. Y buscar otras expresiones regulares que todavía no vimos. Que las van a
encontrar. Pero si sigo se nos irá larguísimos. Pero ahí tenemos un montón de las expresiones
regulares más usadas. Las más comunes. Y con las que ya pueden trabajar. Darle uso y hacer
un montón de cosas. Así que estoy re contento por haberles podido explicar expresiones
regulares. Hace un montón quería llegar a explicarles en algún lenguaje. Por lo menos
expresiones regulares. Y que sean Python me puso muy contento. Así que bueno nada. Ahora
vamos con el siguiente tema. Que es excelente. Nos falta ver de todo. Nos falta ver
decoradores, generadores. Closures y demás. Así que bueno seguimos con el siguiente tema.
Vamos con esta sección avanzada que estamos con todo. ¡Vamos! bastante tryhard Porque
llegó el momento de explicar Eh Dalto, ya está. ¿Qué estás haciendo? ¿Eh? ¿Pero de qué estás
hablando, chabón? Sí, ya está. Termina el curso acá gente quiere seguir aprendiendo? de
terrible curso, man a los demás cursos A ver, el superar es subjetivo con otros visual como de
material en este curso? Sí, obvio, a ver, pero no es para tanto tarde en tres horas en hacerlo
Que sea 4K, que meta chistes de por medio de este curso yo avanzados en un curso hasta el
intermedio de seguir explicando Dalto, los hiciste unas bestias en Python hasta cómo
encontrar nuevo material Sí, sí, está bien, eso sí es verdad van a querer seguir aprendiendo
saben que van a seguir aprendiendo más estás esperando? Uy, no hicimos un proyecto final
con cada punto que ibas explicando para cerrar el proyecto, unir todos los conocimientos
regulares Identifique un número y reemplace eso por... Número oculto Sí, está bien, eso es
verdad enseño, llévenlo a la práctica haciendo sus propios proyectos potente que eso sé yo,
unir todos los conocimientos, no sé, algo más primera vez que vean este curso van a entender
cosas más todavía para que la gente vea el curso dos veces cosas que antes no vieron, es decir,
que antes pasaron de largo van a saber más de lo que ya saben Escuchad, hagamos algo Mirá,
cerra el curso acá, ok? un montón, está contenta, está satisfecha y va a esperar más, ok? Dale
un fin y un cierre a este ciclo qué es lo que sigue ahora? bueno o bueno en YouTube, ya sabes
de qué te estoy hablando y va a romper todo si lo llegas a lanzar Ok, está bien, pero ¿cuál es?
te pide, de lo que la gente no para de decirte de eso, que es re contrapotente y que la gente lo
necesita de este curso es el de programación orientada a objetos? bien, este es un curso útil,
excelente para complementar este curso trabajando todo este tiempo? canal, en el proyecto
de alto, hay muchas no sé, igual, tengo varios en mente, no me hagas decirlo para que no
react-siones lo sabe ¿Vos acabas de revelar? Sí, ah bueno, me estás cargando de que hablemos
menos y hagamos más que podía ser de las cosas más increíblemente útiles para la gente que
sigue el canal descripción para que si alguien está viendo este vídeo, cuando salió, lo pueda ver
que vayan a seguirme a Instagram, arroa SoyDalto Sí, sí, igual no hagas spam, por favor es
donde pongo todas las novedades, donde carajo poco, ya me calme que comenzaste hace
mucho, completarías stacks que venías enseñando en este canal estás esperando, pa? es lo
que te dedica? ¿Me motivaste? te quiero hacer una pregunta ¿Qué necesitas saber? ¿Quién
eras vos? ¡Ah! Yo soy... A mí no, a la cámara Yo soy Dalto Con más gana, flaco ¿Y de dónde nos
vemos? Y nos vemos en el curso de... ¿En cuál curso? En el curso de...