SlideShare una empresa de Scribd logo
PYTHON
TU MEJOR AMIGO
PARCERO
IRMAO
Otros amigos de nuestra jornada:
● Ubuntu, especificamente la version 20.04
● HackerRank: https://www.hackerrank.com/ [portal de practica]
● “LA” Terminal/Consola. (Nombre real: Terminal de Texto)
○ Normalmente dependiendo del contexto solo terminal puede tener varios significados.
INTRO TERMINAL
Terminal de Texto: Interfaz utilizada para interactuar con la computadora por medio de comandos. ref
Shell: Programa/Software que se ejecuta en la terminal y procesa los comandos.
Abrir una terminal en ubuntu: CTRL+ALT+T
Terminal para iniciantes (Guia):
● ES:
https://marquesfernandes.com/es/tecnologia-es/como-para-iniciar-para-usar-el-comando-terminal-line-no-lin
ux-tutorial-for-beginners/
● PT: https://youtu.be/sHvcL4al_oM?t=180
Instalación de Python
Existen muchas formas de instalar python en nuestro sistema, por ejemplo:
● Usando un installador, bajado de la pagina oficial: https://www.python.org/downloads/ (Mejor opcion para
windows)
● Compilando el código fuente de python (Hard Mode)
● Usando el gestionador de paquetes del sistema operativo (linux, windows tiene pero poco usado, eg. choco)
Nosotros usamos el gestor de paquetes de Ubuntu (APT), comandos a ejecutar:
1. sudo apt update
2. sudo apt install software-properties-common
3. sudo add-apt-repository ppa:deadsnakes/ppa
4. sudo apt install python3.9 python-dev python3-pip
Que es un gestor de paquetes?, respuesta
Instalaremos algunas herramientas que nos servirán durante la primera parte de este curso, la idea es que además
de aprender python, te familiarizes con la terminal de linux.
Por lo cual no usaremos editores de texto gráficos y navegaremos por los directorios usando solamente la
terminal :)
● sudo apt install vim (editor de texto)
● pip3 install ipython (consola de python mejorada)
Qué es PIP3?
PIP es el gestor de paquetes de python :), el 3 en el comando es para hacer referencia a que usaremos PIP del
Python 3.x en nuestro sistema.
Instalando otras cositas
Hello World
1. Abrir la terminal, shortcut: CTRL + ALT + T
2. Crear un directorio python_course
a. cmd (creando directorio): mkdir python_course
b. cmd (accediendo directorio): cd python_course
3. Crear un archivo dentro del directorio, con nombre: mi_primer_script.py
a. cmd (creando archivo): touch mi_primer_script.py
4. Abrir el archivo con un editor de texto y escribir lo siguiente en el archivo:
a. cmd (abriendo el archivo con vim/nano): vim/nano mi_primer_script.py
b. Presionar I en el teclado y escribir lo siguiente:
5. Guardar cambios en el archivo:
- VIM: presionando esc, seguido de :, w, p y por último enter.
- NANO: CTRL + O
6. Ejecutar el script, cmd: python mi_primer_script.py
cmd significa comando
NOTA: Hello world se ha convertido en el nombre del primer paso en el aprendizado de alguna tecnología, es decir, el primer paso que realizas al usar por
primera vez un programa, no necesariamente será un hello world.
Qué es python?
Python es un lenguaje de alto nivel de programación, es interpretado, cuya filosofía hace hincapié en la
legibilidad de su código, se utiliza para desarrollar aplicaciones de todo tipo, ejemplos: Instagram, Netflix, Panda
3D, entre otros.​
Se trata de un lenguaje de programación multiparadigma, ya que soporta parcialmente la orientación a objetos,
programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, dinámico y
multiplataforma.
Administrado por la Python Software Foundation (PSF), posee una licencia de código abierto, denominada Python
Software Foundation License. Python se clasifica constantemente como uno de los lenguajes de programación más
populares.
Popularidad de Python
Otros análisis de popularidad:
● https://pypl.github.io/PYPL.html
● https://www.tiobe.com/tiobe-index/
● https://www.jetbrains.com/lp/devecosystem-2021/
JavaScript completes its ninth year in a row as the most commonly used programming language. For most
developers, programming is web programming.
Python traded places with SQL to become the third most popular language.
Usos de Python
Python es usado en muchas áreas laborales y tiene muchos usos diferentes, como lo son:
● Desarrollo Web.
○ Django, Flask, FastAPI.
● Análisis Científico y IA
○ Scikit-Learn, SciPy, Pandas.
● Desarrollo Desktop (Aplicaciones de escritorio).
○ Kivy, PyQT.
● Aplicaciones de negocios (ERP)
○ Odoo.
● Procesamiento de Imágenes.
○ OpenCV.
● Hardware
○ MicroPython (una version de python que ejecuta en microcontroladores)
● Desarrollo de Software en General.
referencia (EN)
Quien usa Python?
Porqué Python es tan especial?
Una de las principales razones por la que python ha sido tan popular es su facilidad de aprendizado y su bien
definida filosofía, estándares lo que ha creado una fuerte comunidad soportando este.
La filosofía de python es lo que llamamos Zen de Python que son recomendaciones no obligatorias que tu
codigo/app debería cumplir.
Los estándares de python, son las mejoras implementadas en el lenguaje que son obligatorias a implementar en
los programas, y son llamados PEP’s (Python Enhancement Proposals).
● Zen de Python (EN): https://peps.python.org/pep-0020/
○ ES: https://es.wikipedia.org/wiki/Zen_de_Python
○ PR: https://pt.wikipedia.org/wiki/Zen_of_Python
● PEPs de python: https://peps.python.org/
The Zen of Python
Blogs de ayuda:
● PT (Traduçao):
https://wiki.python.org.br/TheZenOfPython
● PT (Explicaçao):
https://wiki.python.org.br/TheZenOfPythonExplaine
d
● ES (Explicacion + Traduccion):
https://elpythonista.com/zen-de-python
Hello World 2.0 - Part 1
Hagamos nuestro segundo HelloWorld, pero antes expliquemos un poco sobre algoritmos:
Un algoritmo es simplemente un conjunto de pasos para ejecutar una acción finita, por ejemplo los pasos para
hacer el café podría considerarse un algoritmo.
Por lo anterior, los pasos de nuestro HelloWorld2.0 serían:.
1. Solicitar un número N al usuario.
2. Multiplicar N por 2.
3. Mostrar al usuario el resultado de la multiplicación.
Cabe resaltar que, los algoritmos tienen 3 componentes.
INPUTS EJECUCIÓN OUTPUTs
Hello World 2.0 - Part 2
Los cuales describen:
1. Inputs: Datos de entrada del algoritmo.
2. Ejecución: Lógica del algoritmo.
3. Outputs: Datos de salida del algoritmo o resultados.
En nuestro Hello World 2.0, cuales serian esos componentes?
● Comentarios
● La importancia de la indentación.
● Jugando con la REPL (Read-Eval-Print Loop).
Notas Importantes #1
Comentarios:
Existen 2 tipos de comentarios en python, single-line y multi-lines,
los primeros se pueden declarar con # <comment> al inicio de una línea.
los segundos se declaran con “”” <comment> “”” y pueden encapsular varias líneas entre esas 3 comillas
dobles/simples.
Indentación:
A diferencia de otros lenguajes que usan {} para delimitar bloques de código, python utiliza la indentación (mover un
bloque de texto hacia la derecha insertando espacios o tabuladores) como segmentador de bloque, la cual debe ser de
4 espacios.
Comandos de terminal CheatSheet
Actividad #1
● Registrarse en HackerRank
● Hacer los desafíos:
○ Say "Hello, World!" With Python
○ Print Function
● Filtros HackerRank:
■ SKILLS: Python (Basic)
■ DIFFICULTY: EASY
■ SUBDOMAINS: Introduction
Conceptos Basicos
Variables
Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de estas se realiza con
una operación de asignación.
Ejemplo (python):
● a = 3
● b = “texto”
Python es un lenguaje de tipado dinámico y fuerte, lo que quiere decir 2 cosas:
1. Las variables pueden cambiar su tipo de dato en cualquier momento de la ejecución del programa (dinámico).
a. la variable a podría ser cambiada a tipo texto, asignándole un valor texto en el código.
2. Operaciones entre tipos de datos incompatibles no es posible (fuerte)
a. Ejemplo: a + b daría error porque la operación matemática + entre enteros y texto no es compatible.
[Artículo] Python 2 vs 3
● Mutable: si su contenido (o dicho valor) puede cambiarse en tiempo de ejecución.
● Inmutable: si su contenido (o dicho valor) no puede cambiarse en tiempo de ejecución.
“Variables” & Python
Las “variables” en python son algo especial comparado a otros lenguajes de programación, desde la versión 3 de
python toda variable/función es un objeto (instancia de una clase) y se comporta de una manera diferente a otros
lenguajes de programación.
En qué sentido?, digamos que la variables en python son nombres que se le asignan a valores y referencian al mismo
objeto.
Ejemplo: una variable a = 1 y b = 1, no son 2 objetos diferentes, sino que son 2 nombres diferentes para el mismo
objeto, veamos un ejemplo con código….
Cabe resaltar que las operaciones sobre mencionados nombres provocan que ese nombre ahora etiquete un objeto
diferente, provocando que ya no sean iguales.
Operadores
Son símbolos soportados por el lenguaje de programación que ejecutan una acción sobre un, muchos o entre
objeto(s)/variable(s).
En python los operadores son clasificados de la siguiente forma:
● Arithmetic Operators (Operadores aritméticos): [+ - * / % ** //]
● Relational Operators (Operadores de relación/comparación): [< > == >= <= !=]
● Bitwise Operators (Operadores Bitwise/Operaciones binarias): [& | ^ ~ >> <<]
● Assignment Operators (Operadores de asignación): [= += -= *= /= %= **= //= &= |= ^= >>= <<=]
● Logical Operators (Operadores Lógicos): [and or not]
● Membership Operators (Operadores de Pertenencia): [in `not in`]
● Identity Operators (Operadores de Identidad): [is `is not`]
Operadores Aritméticos
Operadores Relacionales /
Comparación
Operadores Bitwise/Operaciones
Binarias
Operadores de Asignación
Operadores Lógicos
Let’s Code
● Ejemplo cada tipo de dato.
○ comprensión statements.
● Mini-Calculadora.
○ practicando operadores.
● Librería.
○ practicando diccionarios.
● Funciones disponibles de python:
○ https://docs.python.org/3/library/functions.html
Notas Importantes #2 - Part 1
Keyword vs Reserved-Words:
En los lenguajes de programación existen 2 tipos de palabras especiales que normalmente NO deberían ser usadas,
ya que son usadas por el lenguaje de programación y existen 2 tipos:
1. KeyWords (Palabras claves): son palabras que son utilizadas por el lenguaje de programación, teniendo un
valor semántico.
2. Reserved-Words (Palabras reservadas): son palabras utilizadas por el lenguaje de programación y NO se
les permite al programador usarlas.
Además, una keyword puede ser una reserved word, pero no necesariamente toda keyword es una reserved
word.`
Notas Importantes #2 - Part 2
Reserved Words Python:
Useful cmd [REPL]: help("keywords")
Blog post
source1 - source2
Keywords Python:
Python tiene ciertas funciones por defecto disponible en todo su contexto, las cuales sus nombres son keyword pero
no necesariamente reserved words.
Lista de funciones: https://docs.python.org/3/library/functions.html
ACTIVIDAD - Part 1
● Hacker Rank Challenges:
○ Lists
○ Tuples
○ List Comprehensions
○ String Formatting
○ Arithmetic Operators
○ Input()
● Hacker Rank Filtros:
○ SKILLS: Python (Basic)
○ DIFFICULTY: Easy
○ SUBDOMAINS: Basic Data Types, Strings
● Ejercicios
ACTIVIDAD - Part 2
Ejercicio #1 [ES]:
Escribí un programa que solicite al usuario que ingrese su nombre. El nombre se debe almacenar en una variable
llamada nombre. A continuación se debe mostrar en pantalla el texto “Ahora estás en la matrix, [usuario]”, donde
“[usuario]” se reemplazará por el nombre que el usuario haya ingresado.
Ejercicio #1 [PT]:
Escrever um programa que solicite ao usuário para digitar seu nome. O nome deve ser armazenado em uma variável
chamada nome. Seguido, o programa deve mostrar, o texto “Agora você está na matriz, [usuário]” na terminal, onde
“[usuário]” ​
​
será substituído pelo nome que o usuário digitou.
Ejemplo de Ejecución:
Python Basic #2
Condicionales
También llamados controladores de flujo, son definiciones (statements) dentro del lenguaje que nos permite
definir flujos de ejecución dependiendo de una serie de condiciones que son validadas.
Python nos permite realizar lo anterior con 3 reserved words, if, else, elif, donde:
● if <condicion>: verifica si una condición es True, si es el caso ejecuta el codigo en su bloque/contexto.
● else: define el codigo a ejecutar si una condición de if NO es True.
● elif <condicion>: define otra validación a ser realizada caso el if NO sea True.
Ejemplo:
Python Basic #2
Bucles o Sentencias Cíclicas
Son definiciones dentro del lenguaje que nos permite definir que ciertos bloques de codigo se ejecuten multiples
veces basados en ciertas condiciones.
Python actualmente (v3.10) tiene las siguientes definiciones:
● for <element> in <IterableObject>: el codigo sera ejecutado tantas veces como el IterableObject tenga o este
retornando informacion.
● while <condition>: el codigo sera ejecutado solamente si la condicion es True y terminara la ejecución
solamente si esta es Falsa.
Algunas aclaraciones:
● IterableObject: Hace referencia a cualquier variable que sea una Sequencia (list, tupla, set, dict) o a un generador
(seran explicados mas adelante).
● Condition: Hace referencia a una operacion logica que da como resultado (retorna) un valor booleano
(True/False).
Let’s Code
● Ejemplos simples condicionales:
○ Usando operadores lógicos
■ is, is not, in,, not in
○ Entendiendo la tabla de la verdad.
■ and, or, not, ^/xor()
○ Calculadora con condicionales.
○ source
● Ejemplos simples con ciclos.
○ Iterando sobre secuencias.
○ Leyendo un archivo en python.
■ built-in open
○ source
Notas Importante #3
Jerarquía de tipos de datos en python, source
ACTIVIDAD
● Hacker Rank Challenges:
○ Python If-Else
○ Loops
○ Find the Runner-Up Score!
○ Mutations
○ What's Your Name?
● Hacker Rank Filtros:
○ DIFFICULTY: Easy
Python Basic #3
Funciones
Son bloques de código reutilizables que pueden ser invocados en otros lugares del programa y retornan un valor,
en python se utiliza el keyword def para definirlos o lambda (usado también para definir funciones anónimas - sin
nombre), formato:
● def <name>([<parameters>: <annotation> = <default_value>?...]): <code block>
● <variable> = lambda [<parameters> = <default_value>?...] : <code block>
ejemplo:
Let’s Code
● Calculadora con funciones.
○ Explicación de anotaciones.
● Ejercicios simples.
○ no typechecking.
○ return None siempre por defecto.
○ Contexto de las variables.
■ locales, globales.
○ Lambda & Lambda anónimas.
Clases - Part 1
Concepto introducido en el paradigma de programación POO (Programming Object Oriented)
“Una clase es la descripción de un conjunto de objetos similares; consta de métodos y de datos que resumen las
características comunes de dicho conjunto” ref
En python las clases se definen con el keyword class <name>(<BaseClasses>):, los metodos dentro de esta se
define con la keyword def igual a una función, ejemplo:
Clases - Part 2
Como mencionado anteriormente las clases nacen de un paradigma de programación llamado POO, el cual define
una serie de conceptos a entender, como lo son:
● Clases: Descripción genérica de un objeto, es decir, sin programar definir cuales son los atributos, métodos, etc.
● Objetos: Definición a nivel de programación de una clase.
● Instancias: Elementos creados de una Objeto específico.
● Atributos: Hace referencia a los datos que un Objeto puede guardar.
● Métodos: Hace referencia a las funciones que un Objeto puede tener.
● Herencia: Su definición, permite que un Objeto pueda tener atributos, métodos de otro objeto.
● Encapsulamiento: Su definición, establece tipos de atributos/métodos de una clase en que cambia el
comportamiento de acceso, estos son privados, públicos, protegidos.
● Polimorfismo: Su definición, se establece como la acción de definir diferentes comportamientos a los métodos
de ciertos objetos, ya sea sobreescribiendo o ejecución de comportamiento por valor.
Clases - Part 3
Debemos realizar algunas aclaraciones sobre los conceptos observados anteriormente:
● Clases, Objetos & Instancias: Normalmente estos conceptos cambian su significado, es decir,
○ Clases son objetos y Objetos son instancias: cuando dice la “Clase X” hace referencia a los Objetos
(Definición de class en el code) y “El Objeto de la clase X” hace referencia a la instancia del objeto
○ Clases son Objetos y Instancias son instancias.
y cuando dicen.
○ normalmente se tiende a usar la primera forma, la cual usaremos aqui en el curso.
● Encapsulamiento en Python: normalmente los atributos/métodos de una clase en python son públicos, y
tenemos un encapsulamiento débil para los protegidos (_) y privados (__) que su nombre debe iniciar con el
simbolo dentro de los paréntesis.
● Herencia en Python: Además de la Herencia Simple (1 clase hereda los atributos de otra), se soporta la Herencia
Múltiple (1 Clase hereda las propiedades de N Clases).
Let’s Code
● Registro Personas.
● Veterinaria.
○ Gestión de Gatos y perros.
○ métodos mágicos (algunos)
Artículos interesantes:
● Portugues
● Espanhol
00Ps (Object-Oriented Programming System)
Notas Importante #3
Métodos Mágicos: Las clases de python tiene pre-definido ciertos métodos los cuales siempre inician con
(__<name>__) los cuales se consideran mágicos, algunas guias para profundizar los son:
● https://python-course.eu/oop/magic-methods.php
● https://rszalski.github.io/magicmethods/
● https://www.analyticsvidhya.com/blog/2021/08/explore-the-magic-methods-in-python/
Actividad
Ejercicios [ES]:
● Realizar un programa que conste de una clase llamada Alumno que tenga como atributos el nombre y la nota
del alumno. Definir el método gano que retornara “PASO” si la nota es mayor ha 3, de lo contrario retornara “NO
PASO”
● Realizar un programa que tenga una clase Persona. La clase tendrá como atributos el nombre y la edad de
una persona. Definir el método presentar que imprima los datos de la persona y si es vieja (edad >50) o no.
● Crear una clase Triangulo, y sus atributos (lado_uno, lado_dos, lado_tres, angulo_uno, angulo_dos,
angulo_tres), la suma de los angulos no podra ser mayor a 180, ademas Implementar los metodos tipo (retorna
el tipo de triangulo), area (retorna la area del triangulo).
Ejercicios [PT]:
● Criar um programa com uma classe com nome Alumno, e tem (nombre, nota) como atributos. Com o método
gano que vai retornar “PASO” se nota>3, caso contrario retornará “NAO PASO”
● Criar um programa com uma classe Persona. e temr (nome, idade) como atributos. Definir o método
presentar que retornara os atributos e se a pessoa for velho (idade>50) ou nao..
● Criar uma classe Triangulo, attributos: (lado_uno, lado_dos, lado_tres, angulo_uno, angulo_dos,
angulo_tres), a suma dos 3 ângulos nao pode ser >180, Definir os metodos tipo (retorna o tipo do triangulo),
area (retorna a area do triangulo).
La Vida Real y
Python
source
source
source
Librerías en Python
Al igual que en otros lenguajes de programación, existe una comunidad que crea programas para ser reutilizados
por programadores, Python no es la excepción a esto.
En python las librerías se gestionan con pip (nuestro viejo amigo), el cual las descarga de algún repositorio en
internet, el repositorio publico mas populas es https://pypi.org/
Un repositorio es el lugar donde otros programadores publican las librerias/programas que quieren compartir con
el mundo, un ejemplo de estas, es: https://pypi.org/project/Flask/
Cada libreria debería contener una licencia anexada que explica, límites de uso de la lib y como esta puede ser
usada comercialmente, ejemplo: https://github.com/pallets/flask/blob/main/LICENSE.rst
Practiquemos un poco….
● Instalando y usando Pandas
Paquetes y Módulos
En los proyectos de python existen:
● Paquetes: Un directorio que contiene archivos .py o otros paquetes, dentro de él, se identifica por el archivo
obligatorio __init__.py.
● Módulo: un archivo .py es considerado un módulo.
La importancia de saber esta diferencia, es para entender un poco mejor las importaciones en python, porque
estas cargan códigos de otros archivos .py
las cuales se realizan con las palabras from y/o import.
Practiquemos….
● Organicemos nuestra veterinaria.
Algunos blogs interesantes:
● ES: https://recursospython.com/guias-y-manuales/el-sistema-de-importacion-import/
● PT: http://devfuria.com.br/python/modulos-pacotes/
Entornos Virtuales - Part 1
Un entorno virtual es un entorno Python en el que el intérprete Python, las bibliotecas y los scripts instalados en él
están aislados de los instalados en otros entornos virtuales, y (por defecto) cualquier biblioteca instalada en un
«sistema» Python, es decir, uno que esté instalado como parte de tu sistema operativo. ref
En palabras simples, es un python + librerías aisladas que se utiliza normalmente para 1 proyecto local en
específico.
Ejemplo:
Imagina que instalaste python 3.8 en tu maquina y descargas un proyecto que utiliza la misma versión, pero
requiere que instales 50 librerías de python, entonces procedes a instalarlas, dentro de estas existía una lib llamada
requests y el proyecto usa la version 0.0.1
Despues al dia siguiente descargas otro proyecto que soporta la misma versión de python pero requiere que instales
10 librerías, y dentro de estas esta requests pero la versión 1.0.0, al momento de instalar las librerías de este
último proyecto, romperás el primero proyecto porque no soporta la librería requests en la versión 1.0.0.
Entornos Virtuales - Part 2
Para el control de entornos virtuales en python existe una librería core llamada venv, disponible desde la version
3.3, https://docs.python.org/es/3.8/library/venv.html
Además de otras librerías de terceros, algunas son:
● virtualenv: https://virtualenv.pypa.io/en/latest/
● virtualenv-wrapper: https://virtualenvwrapper.readthedocs.io/en/latest/
Más usadas en la vida real (además de configurar entornos virtuales, ayudan con las librerías y sus versiones):
● poetry: https://python-poetry.org/
● pipenv: https://pipenv.pypa.io/en/latest/
Para manejar múltiples versiones de python en la misma maquina, la mas popular es
https://github.com/pyenv/pyenv
Nosotros usaremos pipenv, practiquemos… (Configurando pipenv en la veterinaria)
Articulo interesante: https://www.rootstrap.com/blog/how-to-manage-your-python-projects-with-pipenv-pyenv/
ACTIVIDAD - Estudiar GIT & Crearse una
cuenta en GITHUB/GITLAB
Cursos:
● introductorio [ES]:
https://www.youtube.com/watch?v=jSJ8xhKtfP4&list=PLTd5ehIj0goMCnj6V5NdzSIHBgrIXckGU
● Curso Rapido GIT [ES]: https://youtu.be/VdGzPZ31ts8
GIT & Github - Part 1
GIT: Es el sistema de control de versiones distribuido más usado en el mundo, casi toda empresa de software lo
utiliza, creado por Linus Torvalds (Creador del kernel Linux), pagina oficial: https://git-scm.com/
Un sistema de control de versiones es un programa que funciona para manejar/mantener los cambios sobre
archivos, son importantes para llevar el control de los archivos, mantener el histórico de cambios y sincronizar estos
cambios de manera colaborativa con otras personas.
GITHUB: Es la plataforma web que permite almacenar y gestionar proyectos de GIT de manera remota.
Instalando GIT (ubuntu):
● cmd: sudo apt-get install git
GIT & GitHub - part 2
Antes de configurar nuestro proyecto de git, expliquemos como el gestiona los archivos.
Cuando un proyecto tiene GIT, todos los archivos del proyecto tienen un estado el cual podria ser:
● Untracked (?): Hace referencia a que el archivo no está registrado en GIT.
● Unmodified: Estado del archivo cuando ya fue salvado en GIT.
● Modified (M): Estado del archivo cuando es editado después de salvado.
● Staged (A/M): Estado del archivo cuando su edición esta preparada para ser salvada.
En la terminología de GIT, normalmente no se utiliza la palabra salvado/a, el termino correcto seria comitear que
hacer referencia al nombre del comando usado en git para guardar los cambios git commit, ref
Practiquemos….
● Configuremos GIT en la veterinaria.
● git add/commit/remote/push/pull
GIT & GitHub - part 3
De forma general la relación de los comandos de git con el estado de los archivos.
GIT & GitHub - part 4
Preguntas importantes:
● Como le digo a GIT que ignore un archivo? r/ usando un archivo .gitignore.
Links de ayuda para profundizar el tema:
● PT
○ Definición
○ Blog
○ Video [git en la práctica]
● ES:
○ Blog
○ [VIDEO] Curso Introductorio
ACTIVIDAD
New feature en Veterinaria
y proyecto final

Más contenido relacionado

PDF
Programador Jr. para Python Primera Parte
PDF
Python_para_todos.pdf
PDF
Python para todos
PDF
Python para todos
PDF
PDF
python-para-todos.pdf
PDF
python-para-todos.pdf
PDF
Python_para_todos.pdf
Programador Jr. para Python Primera Parte
Python_para_todos.pdf
Python para todos
Python para todos
python-para-todos.pdf
python-para-todos.pdf
Python_para_todos.pdf

Similar a Introduccion a Python & Temas Basicos.pptx (20)

PDF
Libro python para todos
PDF
Python para todos
PDF
Introducción a Python
DOCX
Manual de python
PPTX
introduccion a phyton, origen e historia del lenguaje de programación
PDF
Introducción a python
PDF
Parallel Python sistemas operativos avanzados
PDF
Introduccion a-python
PDF
Python_Module_01_Courtesy.pdf
PDF
Parallel python sistemas operativos avanzados
PPTX
Aprendizaje de Lenguaje de Programación Python
PDF
Python para ingenieros civiles.pdf
PDF
1 curso-de-python-introducci-n-a-python
PDF
Python basic slides for beginners to learn python
PPTX
Investigacion de Python.pptx
PPTX
PDF
PIAD-211_MATERIAL.pdf
PDF
programa curso python 2022.pdf
PDF
DIAPOSITIVAS CURSO PYTHON.pptx.pdf
PPTX
Como usar el lenguaje c++
Libro python para todos
Python para todos
Introducción a Python
Manual de python
introduccion a phyton, origen e historia del lenguaje de programación
Introducción a python
Parallel Python sistemas operativos avanzados
Introduccion a-python
Python_Module_01_Courtesy.pdf
Parallel python sistemas operativos avanzados
Aprendizaje de Lenguaje de Programación Python
Python para ingenieros civiles.pdf
1 curso-de-python-introducci-n-a-python
Python basic slides for beginners to learn python
Investigacion de Python.pptx
PIAD-211_MATERIAL.pdf
programa curso python 2022.pdf
DIAPOSITIVAS CURSO PYTHON.pptx.pdf
Como usar el lenguaje c++
Publicidad

Último (6)

PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PPTX
sistemas de informacion.................
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
Su punto de partida en la IA: Microsoft 365 Copilot Chat
Conceptos basicos de Base de Datos y sus propiedades
Derechos_de_Autor_y_Creative_Commons.pptx
sistemas de informacion.................
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
AutoCAD Herramientas para el futuro, Juan Fandiño
Publicidad

Introduccion a Python & Temas Basicos.pptx

  • 2. Otros amigos de nuestra jornada: ● Ubuntu, especificamente la version 20.04 ● HackerRank: https://www.hackerrank.com/ [portal de practica] ● “LA” Terminal/Consola. (Nombre real: Terminal de Texto) ○ Normalmente dependiendo del contexto solo terminal puede tener varios significados. INTRO TERMINAL Terminal de Texto: Interfaz utilizada para interactuar con la computadora por medio de comandos. ref Shell: Programa/Software que se ejecuta en la terminal y procesa los comandos. Abrir una terminal en ubuntu: CTRL+ALT+T Terminal para iniciantes (Guia): ● ES: https://marquesfernandes.com/es/tecnologia-es/como-para-iniciar-para-usar-el-comando-terminal-line-no-lin ux-tutorial-for-beginners/ ● PT: https://youtu.be/sHvcL4al_oM?t=180
  • 3. Instalación de Python Existen muchas formas de instalar python en nuestro sistema, por ejemplo: ● Usando un installador, bajado de la pagina oficial: https://www.python.org/downloads/ (Mejor opcion para windows) ● Compilando el código fuente de python (Hard Mode) ● Usando el gestionador de paquetes del sistema operativo (linux, windows tiene pero poco usado, eg. choco) Nosotros usamos el gestor de paquetes de Ubuntu (APT), comandos a ejecutar: 1. sudo apt update 2. sudo apt install software-properties-common 3. sudo add-apt-repository ppa:deadsnakes/ppa 4. sudo apt install python3.9 python-dev python3-pip Que es un gestor de paquetes?, respuesta
  • 4. Instalaremos algunas herramientas que nos servirán durante la primera parte de este curso, la idea es que además de aprender python, te familiarizes con la terminal de linux. Por lo cual no usaremos editores de texto gráficos y navegaremos por los directorios usando solamente la terminal :) ● sudo apt install vim (editor de texto) ● pip3 install ipython (consola de python mejorada) Qué es PIP3? PIP es el gestor de paquetes de python :), el 3 en el comando es para hacer referencia a que usaremos PIP del Python 3.x en nuestro sistema. Instalando otras cositas
  • 5. Hello World 1. Abrir la terminal, shortcut: CTRL + ALT + T 2. Crear un directorio python_course a. cmd (creando directorio): mkdir python_course b. cmd (accediendo directorio): cd python_course 3. Crear un archivo dentro del directorio, con nombre: mi_primer_script.py a. cmd (creando archivo): touch mi_primer_script.py 4. Abrir el archivo con un editor de texto y escribir lo siguiente en el archivo: a. cmd (abriendo el archivo con vim/nano): vim/nano mi_primer_script.py b. Presionar I en el teclado y escribir lo siguiente: 5. Guardar cambios en el archivo: - VIM: presionando esc, seguido de :, w, p y por último enter. - NANO: CTRL + O 6. Ejecutar el script, cmd: python mi_primer_script.py cmd significa comando NOTA: Hello world se ha convertido en el nombre del primer paso en el aprendizado de alguna tecnología, es decir, el primer paso que realizas al usar por primera vez un programa, no necesariamente será un hello world.
  • 6. Qué es python? Python es un lenguaje de alto nivel de programación, es interpretado, cuya filosofía hace hincapié en la legibilidad de su código, se utiliza para desarrollar aplicaciones de todo tipo, ejemplos: Instagram, Netflix, Panda 3D, entre otros.​ Se trata de un lenguaje de programación multiparadigma, ya que soporta parcialmente la orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, dinámico y multiplataforma. Administrado por la Python Software Foundation (PSF), posee una licencia de código abierto, denominada Python Software Foundation License. Python se clasifica constantemente como uno de los lenguajes de programación más populares.
  • 7. Popularidad de Python Otros análisis de popularidad: ● https://pypl.github.io/PYPL.html ● https://www.tiobe.com/tiobe-index/ ● https://www.jetbrains.com/lp/devecosystem-2021/ JavaScript completes its ninth year in a row as the most commonly used programming language. For most developers, programming is web programming. Python traded places with SQL to become the third most popular language.
  • 8. Usos de Python Python es usado en muchas áreas laborales y tiene muchos usos diferentes, como lo son: ● Desarrollo Web. ○ Django, Flask, FastAPI. ● Análisis Científico y IA ○ Scikit-Learn, SciPy, Pandas. ● Desarrollo Desktop (Aplicaciones de escritorio). ○ Kivy, PyQT. ● Aplicaciones de negocios (ERP) ○ Odoo. ● Procesamiento de Imágenes. ○ OpenCV. ● Hardware ○ MicroPython (una version de python que ejecuta en microcontroladores) ● Desarrollo de Software en General. referencia (EN)
  • 10. Porqué Python es tan especial? Una de las principales razones por la que python ha sido tan popular es su facilidad de aprendizado y su bien definida filosofía, estándares lo que ha creado una fuerte comunidad soportando este. La filosofía de python es lo que llamamos Zen de Python que son recomendaciones no obligatorias que tu codigo/app debería cumplir. Los estándares de python, son las mejoras implementadas en el lenguaje que son obligatorias a implementar en los programas, y son llamados PEP’s (Python Enhancement Proposals). ● Zen de Python (EN): https://peps.python.org/pep-0020/ ○ ES: https://es.wikipedia.org/wiki/Zen_de_Python ○ PR: https://pt.wikipedia.org/wiki/Zen_of_Python ● PEPs de python: https://peps.python.org/
  • 11. The Zen of Python Blogs de ayuda: ● PT (Traduçao): https://wiki.python.org.br/TheZenOfPython ● PT (Explicaçao): https://wiki.python.org.br/TheZenOfPythonExplaine d ● ES (Explicacion + Traduccion): https://elpythonista.com/zen-de-python
  • 12. Hello World 2.0 - Part 1 Hagamos nuestro segundo HelloWorld, pero antes expliquemos un poco sobre algoritmos: Un algoritmo es simplemente un conjunto de pasos para ejecutar una acción finita, por ejemplo los pasos para hacer el café podría considerarse un algoritmo. Por lo anterior, los pasos de nuestro HelloWorld2.0 serían:. 1. Solicitar un número N al usuario. 2. Multiplicar N por 2. 3. Mostrar al usuario el resultado de la multiplicación. Cabe resaltar que, los algoritmos tienen 3 componentes. INPUTS EJECUCIÓN OUTPUTs
  • 13. Hello World 2.0 - Part 2 Los cuales describen: 1. Inputs: Datos de entrada del algoritmo. 2. Ejecución: Lógica del algoritmo. 3. Outputs: Datos de salida del algoritmo o resultados. En nuestro Hello World 2.0, cuales serian esos componentes? ● Comentarios ● La importancia de la indentación. ● Jugando con la REPL (Read-Eval-Print Loop).
  • 14. Notas Importantes #1 Comentarios: Existen 2 tipos de comentarios en python, single-line y multi-lines, los primeros se pueden declarar con # <comment> al inicio de una línea. los segundos se declaran con “”” <comment> “”” y pueden encapsular varias líneas entre esas 3 comillas dobles/simples. Indentación: A diferencia de otros lenguajes que usan {} para delimitar bloques de código, python utiliza la indentación (mover un bloque de texto hacia la derecha insertando espacios o tabuladores) como segmentador de bloque, la cual debe ser de 4 espacios. Comandos de terminal CheatSheet
  • 15. Actividad #1 ● Registrarse en HackerRank ● Hacer los desafíos: ○ Say "Hello, World!" With Python ○ Print Function ● Filtros HackerRank: ■ SKILLS: Python (Basic) ■ DIFFICULTY: EASY ■ SUBDOMAINS: Introduction
  • 16. Conceptos Basicos Variables Son elementos que toman valores específicos de un tipo de datos concreto. La declaración de estas se realiza con una operación de asignación. Ejemplo (python): ● a = 3 ● b = “texto” Python es un lenguaje de tipado dinámico y fuerte, lo que quiere decir 2 cosas: 1. Las variables pueden cambiar su tipo de dato en cualquier momento de la ejecución del programa (dinámico). a. la variable a podría ser cambiada a tipo texto, asignándole un valor texto en el código. 2. Operaciones entre tipos de datos incompatibles no es posible (fuerte) a. Ejemplo: a + b daría error porque la operación matemática + entre enteros y texto no es compatible.
  • 17. [Artículo] Python 2 vs 3 ● Mutable: si su contenido (o dicho valor) puede cambiarse en tiempo de ejecución. ● Inmutable: si su contenido (o dicho valor) no puede cambiarse en tiempo de ejecución.
  • 18. “Variables” & Python Las “variables” en python son algo especial comparado a otros lenguajes de programación, desde la versión 3 de python toda variable/función es un objeto (instancia de una clase) y se comporta de una manera diferente a otros lenguajes de programación. En qué sentido?, digamos que la variables en python son nombres que se le asignan a valores y referencian al mismo objeto. Ejemplo: una variable a = 1 y b = 1, no son 2 objetos diferentes, sino que son 2 nombres diferentes para el mismo objeto, veamos un ejemplo con código…. Cabe resaltar que las operaciones sobre mencionados nombres provocan que ese nombre ahora etiquete un objeto diferente, provocando que ya no sean iguales.
  • 19. Operadores Son símbolos soportados por el lenguaje de programación que ejecutan una acción sobre un, muchos o entre objeto(s)/variable(s). En python los operadores son clasificados de la siguiente forma: ● Arithmetic Operators (Operadores aritméticos): [+ - * / % ** //] ● Relational Operators (Operadores de relación/comparación): [< > == >= <= !=] ● Bitwise Operators (Operadores Bitwise/Operaciones binarias): [& | ^ ~ >> <<] ● Assignment Operators (Operadores de asignación): [= += -= *= /= %= **= //= &= |= ^= >>= <<=] ● Logical Operators (Operadores Lógicos): [and or not] ● Membership Operators (Operadores de Pertenencia): [in `not in`] ● Identity Operators (Operadores de Identidad): [is `is not`]
  • 25. Let’s Code ● Ejemplo cada tipo de dato. ○ comprensión statements. ● Mini-Calculadora. ○ practicando operadores. ● Librería. ○ practicando diccionarios. ● Funciones disponibles de python: ○ https://docs.python.org/3/library/functions.html
  • 26. Notas Importantes #2 - Part 1 Keyword vs Reserved-Words: En los lenguajes de programación existen 2 tipos de palabras especiales que normalmente NO deberían ser usadas, ya que son usadas por el lenguaje de programación y existen 2 tipos: 1. KeyWords (Palabras claves): son palabras que son utilizadas por el lenguaje de programación, teniendo un valor semántico. 2. Reserved-Words (Palabras reservadas): son palabras utilizadas por el lenguaje de programación y NO se les permite al programador usarlas. Además, una keyword puede ser una reserved word, pero no necesariamente toda keyword es una reserved word.`
  • 27. Notas Importantes #2 - Part 2 Reserved Words Python: Useful cmd [REPL]: help("keywords") Blog post source1 - source2 Keywords Python: Python tiene ciertas funciones por defecto disponible en todo su contexto, las cuales sus nombres son keyword pero no necesariamente reserved words. Lista de funciones: https://docs.python.org/3/library/functions.html
  • 28. ACTIVIDAD - Part 1 ● Hacker Rank Challenges: ○ Lists ○ Tuples ○ List Comprehensions ○ String Formatting ○ Arithmetic Operators ○ Input() ● Hacker Rank Filtros: ○ SKILLS: Python (Basic) ○ DIFFICULTY: Easy ○ SUBDOMAINS: Basic Data Types, Strings ● Ejercicios
  • 29. ACTIVIDAD - Part 2 Ejercicio #1 [ES]: Escribí un programa que solicite al usuario que ingrese su nombre. El nombre se debe almacenar en una variable llamada nombre. A continuación se debe mostrar en pantalla el texto “Ahora estás en la matrix, [usuario]”, donde “[usuario]” se reemplazará por el nombre que el usuario haya ingresado. Ejercicio #1 [PT]: Escrever um programa que solicite ao usuário para digitar seu nome. O nome deve ser armazenado em uma variável chamada nome. Seguido, o programa deve mostrar, o texto “Agora você está na matriz, [usuário]” na terminal, onde “[usuário]” ​ ​ será substituído pelo nome que o usuário digitou. Ejemplo de Ejecución:
  • 30. Python Basic #2 Condicionales También llamados controladores de flujo, son definiciones (statements) dentro del lenguaje que nos permite definir flujos de ejecución dependiendo de una serie de condiciones que son validadas. Python nos permite realizar lo anterior con 3 reserved words, if, else, elif, donde: ● if <condicion>: verifica si una condición es True, si es el caso ejecuta el codigo en su bloque/contexto. ● else: define el codigo a ejecutar si una condición de if NO es True. ● elif <condicion>: define otra validación a ser realizada caso el if NO sea True. Ejemplo:
  • 31. Python Basic #2 Bucles o Sentencias Cíclicas Son definiciones dentro del lenguaje que nos permite definir que ciertos bloques de codigo se ejecuten multiples veces basados en ciertas condiciones. Python actualmente (v3.10) tiene las siguientes definiciones: ● for <element> in <IterableObject>: el codigo sera ejecutado tantas veces como el IterableObject tenga o este retornando informacion. ● while <condition>: el codigo sera ejecutado solamente si la condicion es True y terminara la ejecución solamente si esta es Falsa. Algunas aclaraciones: ● IterableObject: Hace referencia a cualquier variable que sea una Sequencia (list, tupla, set, dict) o a un generador (seran explicados mas adelante). ● Condition: Hace referencia a una operacion logica que da como resultado (retorna) un valor booleano (True/False).
  • 32. Let’s Code ● Ejemplos simples condicionales: ○ Usando operadores lógicos ■ is, is not, in,, not in ○ Entendiendo la tabla de la verdad. ■ and, or, not, ^/xor() ○ Calculadora con condicionales. ○ source ● Ejemplos simples con ciclos. ○ Iterando sobre secuencias. ○ Leyendo un archivo en python. ■ built-in open ○ source
  • 33. Notas Importante #3 Jerarquía de tipos de datos en python, source
  • 34. ACTIVIDAD ● Hacker Rank Challenges: ○ Python If-Else ○ Loops ○ Find the Runner-Up Score! ○ Mutations ○ What's Your Name? ● Hacker Rank Filtros: ○ DIFFICULTY: Easy
  • 35. Python Basic #3 Funciones Son bloques de código reutilizables que pueden ser invocados en otros lugares del programa y retornan un valor, en python se utiliza el keyword def para definirlos o lambda (usado también para definir funciones anónimas - sin nombre), formato: ● def <name>([<parameters>: <annotation> = <default_value>?...]): <code block> ● <variable> = lambda [<parameters> = <default_value>?...] : <code block> ejemplo:
  • 36. Let’s Code ● Calculadora con funciones. ○ Explicación de anotaciones. ● Ejercicios simples. ○ no typechecking. ○ return None siempre por defecto. ○ Contexto de las variables. ■ locales, globales. ○ Lambda & Lambda anónimas.
  • 37. Clases - Part 1 Concepto introducido en el paradigma de programación POO (Programming Object Oriented) “Una clase es la descripción de un conjunto de objetos similares; consta de métodos y de datos que resumen las características comunes de dicho conjunto” ref En python las clases se definen con el keyword class <name>(<BaseClasses>):, los metodos dentro de esta se define con la keyword def igual a una función, ejemplo:
  • 38. Clases - Part 2 Como mencionado anteriormente las clases nacen de un paradigma de programación llamado POO, el cual define una serie de conceptos a entender, como lo son: ● Clases: Descripción genérica de un objeto, es decir, sin programar definir cuales son los atributos, métodos, etc. ● Objetos: Definición a nivel de programación de una clase. ● Instancias: Elementos creados de una Objeto específico. ● Atributos: Hace referencia a los datos que un Objeto puede guardar. ● Métodos: Hace referencia a las funciones que un Objeto puede tener. ● Herencia: Su definición, permite que un Objeto pueda tener atributos, métodos de otro objeto. ● Encapsulamiento: Su definición, establece tipos de atributos/métodos de una clase en que cambia el comportamiento de acceso, estos son privados, públicos, protegidos. ● Polimorfismo: Su definición, se establece como la acción de definir diferentes comportamientos a los métodos de ciertos objetos, ya sea sobreescribiendo o ejecución de comportamiento por valor.
  • 39. Clases - Part 3 Debemos realizar algunas aclaraciones sobre los conceptos observados anteriormente: ● Clases, Objetos & Instancias: Normalmente estos conceptos cambian su significado, es decir, ○ Clases son objetos y Objetos son instancias: cuando dice la “Clase X” hace referencia a los Objetos (Definición de class en el code) y “El Objeto de la clase X” hace referencia a la instancia del objeto ○ Clases son Objetos y Instancias son instancias. y cuando dicen. ○ normalmente se tiende a usar la primera forma, la cual usaremos aqui en el curso. ● Encapsulamiento en Python: normalmente los atributos/métodos de una clase en python son públicos, y tenemos un encapsulamiento débil para los protegidos (_) y privados (__) que su nombre debe iniciar con el simbolo dentro de los paréntesis. ● Herencia en Python: Además de la Herencia Simple (1 clase hereda los atributos de otra), se soporta la Herencia Múltiple (1 Clase hereda las propiedades de N Clases).
  • 40. Let’s Code ● Registro Personas. ● Veterinaria. ○ Gestión de Gatos y perros. ○ métodos mágicos (algunos) Artículos interesantes: ● Portugues ● Espanhol 00Ps (Object-Oriented Programming System)
  • 41. Notas Importante #3 Métodos Mágicos: Las clases de python tiene pre-definido ciertos métodos los cuales siempre inician con (__<name>__) los cuales se consideran mágicos, algunas guias para profundizar los son: ● https://python-course.eu/oop/magic-methods.php ● https://rszalski.github.io/magicmethods/ ● https://www.analyticsvidhya.com/blog/2021/08/explore-the-magic-methods-in-python/
  • 42. Actividad Ejercicios [ES]: ● Realizar un programa que conste de una clase llamada Alumno que tenga como atributos el nombre y la nota del alumno. Definir el método gano que retornara “PASO” si la nota es mayor ha 3, de lo contrario retornara “NO PASO” ● Realizar un programa que tenga una clase Persona. La clase tendrá como atributos el nombre y la edad de una persona. Definir el método presentar que imprima los datos de la persona y si es vieja (edad >50) o no. ● Crear una clase Triangulo, y sus atributos (lado_uno, lado_dos, lado_tres, angulo_uno, angulo_dos, angulo_tres), la suma de los angulos no podra ser mayor a 180, ademas Implementar los metodos tipo (retorna el tipo de triangulo), area (retorna la area del triangulo). Ejercicios [PT]: ● Criar um programa com uma classe com nome Alumno, e tem (nombre, nota) como atributos. Com o método gano que vai retornar “PASO” se nota>3, caso contrario retornará “NAO PASO” ● Criar um programa com uma classe Persona. e temr (nome, idade) como atributos. Definir o método presentar que retornara os atributos e se a pessoa for velho (idade>50) ou nao.. ● Criar uma classe Triangulo, attributos: (lado_uno, lado_dos, lado_tres, angulo_uno, angulo_dos, angulo_tres), a suma dos 3 ângulos nao pode ser >180, Definir os metodos tipo (retorna o tipo do triangulo), area (retorna a area do triangulo).
  • 43. La Vida Real y Python
  • 45. Librerías en Python Al igual que en otros lenguajes de programación, existe una comunidad que crea programas para ser reutilizados por programadores, Python no es la excepción a esto. En python las librerías se gestionan con pip (nuestro viejo amigo), el cual las descarga de algún repositorio en internet, el repositorio publico mas populas es https://pypi.org/ Un repositorio es el lugar donde otros programadores publican las librerias/programas que quieren compartir con el mundo, un ejemplo de estas, es: https://pypi.org/project/Flask/ Cada libreria debería contener una licencia anexada que explica, límites de uso de la lib y como esta puede ser usada comercialmente, ejemplo: https://github.com/pallets/flask/blob/main/LICENSE.rst Practiquemos un poco…. ● Instalando y usando Pandas
  • 46. Paquetes y Módulos En los proyectos de python existen: ● Paquetes: Un directorio que contiene archivos .py o otros paquetes, dentro de él, se identifica por el archivo obligatorio __init__.py. ● Módulo: un archivo .py es considerado un módulo. La importancia de saber esta diferencia, es para entender un poco mejor las importaciones en python, porque estas cargan códigos de otros archivos .py las cuales se realizan con las palabras from y/o import. Practiquemos…. ● Organicemos nuestra veterinaria. Algunos blogs interesantes: ● ES: https://recursospython.com/guias-y-manuales/el-sistema-de-importacion-import/ ● PT: http://devfuria.com.br/python/modulos-pacotes/
  • 47. Entornos Virtuales - Part 1 Un entorno virtual es un entorno Python en el que el intérprete Python, las bibliotecas y los scripts instalados en él están aislados de los instalados en otros entornos virtuales, y (por defecto) cualquier biblioteca instalada en un «sistema» Python, es decir, uno que esté instalado como parte de tu sistema operativo. ref En palabras simples, es un python + librerías aisladas que se utiliza normalmente para 1 proyecto local en específico. Ejemplo: Imagina que instalaste python 3.8 en tu maquina y descargas un proyecto que utiliza la misma versión, pero requiere que instales 50 librerías de python, entonces procedes a instalarlas, dentro de estas existía una lib llamada requests y el proyecto usa la version 0.0.1 Despues al dia siguiente descargas otro proyecto que soporta la misma versión de python pero requiere que instales 10 librerías, y dentro de estas esta requests pero la versión 1.0.0, al momento de instalar las librerías de este último proyecto, romperás el primero proyecto porque no soporta la librería requests en la versión 1.0.0.
  • 48. Entornos Virtuales - Part 2 Para el control de entornos virtuales en python existe una librería core llamada venv, disponible desde la version 3.3, https://docs.python.org/es/3.8/library/venv.html Además de otras librerías de terceros, algunas son: ● virtualenv: https://virtualenv.pypa.io/en/latest/ ● virtualenv-wrapper: https://virtualenvwrapper.readthedocs.io/en/latest/ Más usadas en la vida real (además de configurar entornos virtuales, ayudan con las librerías y sus versiones): ● poetry: https://python-poetry.org/ ● pipenv: https://pipenv.pypa.io/en/latest/ Para manejar múltiples versiones de python en la misma maquina, la mas popular es https://github.com/pyenv/pyenv Nosotros usaremos pipenv, practiquemos… (Configurando pipenv en la veterinaria) Articulo interesante: https://www.rootstrap.com/blog/how-to-manage-your-python-projects-with-pipenv-pyenv/
  • 49. ACTIVIDAD - Estudiar GIT & Crearse una cuenta en GITHUB/GITLAB Cursos: ● introductorio [ES]: https://www.youtube.com/watch?v=jSJ8xhKtfP4&list=PLTd5ehIj0goMCnj6V5NdzSIHBgrIXckGU ● Curso Rapido GIT [ES]: https://youtu.be/VdGzPZ31ts8
  • 50. GIT & Github - Part 1 GIT: Es el sistema de control de versiones distribuido más usado en el mundo, casi toda empresa de software lo utiliza, creado por Linus Torvalds (Creador del kernel Linux), pagina oficial: https://git-scm.com/ Un sistema de control de versiones es un programa que funciona para manejar/mantener los cambios sobre archivos, son importantes para llevar el control de los archivos, mantener el histórico de cambios y sincronizar estos cambios de manera colaborativa con otras personas. GITHUB: Es la plataforma web que permite almacenar y gestionar proyectos de GIT de manera remota. Instalando GIT (ubuntu): ● cmd: sudo apt-get install git
  • 51. GIT & GitHub - part 2 Antes de configurar nuestro proyecto de git, expliquemos como el gestiona los archivos. Cuando un proyecto tiene GIT, todos los archivos del proyecto tienen un estado el cual podria ser: ● Untracked (?): Hace referencia a que el archivo no está registrado en GIT. ● Unmodified: Estado del archivo cuando ya fue salvado en GIT. ● Modified (M): Estado del archivo cuando es editado después de salvado. ● Staged (A/M): Estado del archivo cuando su edición esta preparada para ser salvada. En la terminología de GIT, normalmente no se utiliza la palabra salvado/a, el termino correcto seria comitear que hacer referencia al nombre del comando usado en git para guardar los cambios git commit, ref Practiquemos…. ● Configuremos GIT en la veterinaria. ● git add/commit/remote/push/pull
  • 52. GIT & GitHub - part 3 De forma general la relación de los comandos de git con el estado de los archivos.
  • 53. GIT & GitHub - part 4 Preguntas importantes: ● Como le digo a GIT que ignore un archivo? r/ usando un archivo .gitignore. Links de ayuda para profundizar el tema: ● PT ○ Definición ○ Blog ○ Video [git en la práctica] ● ES: ○ Blog ○ [VIDEO] Curso Introductorio
  • 54. ACTIVIDAD New feature en Veterinaria y proyecto final