Hashtags: #FpInfor #Daw #Dam #Asix #DamMp06
Benvinguts al curs de Python. Aquest curs es un repositori de molta documentació trobada a través de la web (realpython.com,w3schools..., repositoris de github i altres) i vol servir com a introducció a un dels llenguatges més utilitzats avui en dia.
Aquest curs està pensat en ser utilitzat en Cicles Formatius de Grau Superior, mòduls de programació i tots aquells en els que s'hagi d'utilitzar dades i accés a dades.
Aquest curs està obert a tothom. Per fer-hi aportacions no dubteu en contactar amb mi!.
Aquest repositori es una recopilació d'informació pròpia i extreta d'altres repositoris públics i mantinguda per:
- Francesc Barragán ([email protected])
De l'Institut Sa Palomera - Blanes
Alguns del materials que podeu trobar en aquest moodle provenen de les següents fonts:
- Curs de python d'Openwebinars
- Real Python (https://www.realpython.com)
- PyCoders
Conceptes bàsics | Unitats Teoria | Exercicis |
---|---|---|
Introducció | 1 2 3 4 5 | |
Estructura del llenguatge | 6 7 8 9 10 | |
Tipus de dades numèriques | 12 13 | A1 |
Estructures de control Condicionals: IF / ELSE | 15 | A2 |
Estructures de control Repetitives: WHILE / FOR | 17 | A3 |
Tipus de dades seqüencia | 19 | |
Tipus de dades seqüència: Llistes | 20 21 | A4 |
Tipus de dades seqüència: Diccionaris | 33 34 | A5 |
Tipus de dades seqüència: Tuples i Rangs | 23 24 25 | |
Tipus de dades seqüència: Cadenes | 26 27 28 | A6 |
Tipus de dades bytesarray,set,frozenset | 30 31 32 | |
Errors i excepcions | 43 | |
Programació Orientada a Objectes | 50 51 52 53 | A10 |
Persistència de dades amb fitxers | Unitats Teoria | Exercicis |
---|---|---|
Sistema de fitxers | 36 | |
Mòduls de python per la gestió de fitxers | 45 | |
Procés de Serialització | 36a | |
Tipus de fitxers | 36b | |
Treball amb fitxers texte | 36c | |
Treball amb fitxers binari | 36d | |
Fitxers CSV | CSV | |
Fitxers JSON | JSON | |
Fitxers XML | XML | |
Treball de fitxers | A1-1 |
Persistència amb Bases de Dades BDR,BDOR,BDOO | Unitats Teoria | Exercicis |
---|---|---|
Connectors a Bases de dades | 60 | |
Connectar a Postgres | 60a | |
Què és un ORM | 60c | |
--ORM: Peewee | 60d | |
--ORM: Alchemy | 60e | |
Bases de dades Orientades a Objectes/NOSQL | 60f | |
--BD NOSQL: TinyDB Samples | 60f | |
Treball amb Bases de Dades BDR,BDOR,BDOO | A2-1 |
Persistència amb Bases de Dades XML | Unitats Teoria | Exercicis |
---|---|---|
Bases de dades XML | bdxml | |
MongoDB on Premise / on Cloud | mongo | |
MongoDB i Python | mongopython | |
Treball amb Bases de Dades | A3-1 |
Components d'accés a dades | Unitats Teoria | Exercicis |
---|---|---|
Jupyter Notebooks | jupyter | |
Recuperar informació d'una font oberta | opendata | bicing |
Recuperar informació d'una API | APIs | A4-1 |
Recuperar informació mitjançant un webcrawler | webcrawler | |
Treball Final d'accés a dades |
-
- Instal·lació en Linux Debian/Ubuntu
- Instal·lació en altres distribucions Linux
- Instal·lació en Windows
- Instal·lació en Mac
-
Entorns de desenvolupament i editors de text
- IDE Python
- Editors de texts
- IDE us Editors de text
- Característiques dels editors de texts
- Configuració de Visual Studio Code
- Extensions de Visual Studio Code
- Virtual Environments
- Virtualenv
- Anaconda
-
El meu primer programa en Python3
- Us de l'intèrpret
- Escrivim un programa
- Execució de programes utilitzant shebang
- Guía de estil
- Algorísmica
________________________________________ Estructura del llenguatge _________________________________________
-
- Estructura de programa
- Els comentaris
- Paraules reservades
- Exemple
-
Funcions i constants predefinides
- Funcions predefinides
- Alguns exemples de funcions
- Constants predefinides: False,True,None, ...
- Ajuda, función help()
-
- Literals, variables i expressions
- Definició, borrat i àmbit de variables
- Operadors. Precedencia d'operadors
- Funció eval()
-
- Classificació de tipus de dades
- Funció type()
- Funció isistance()
-
- ¿Qué es el tipat dinàmic?
- Objectes inmutables i mutables
- Funció id()
- Operadors d'identitat
- Operadors d'assignació
- Assignació múltiple
-
- Funció input
- Funció print
- Formatejant cadenes de caràcters
- Funció format()
________________________________________ Tipus de dades numèriques _________________________________________
-
- Enters
- Reals
- Complexes
- Operadors aritmètics
- Funcions predefinides que treballen amb números
- Operadors a nivell de bit
- Conversió de tipus
-
- Tipus booleà
- ¿Quins valors s'interpreten com FALS?
- Operadors booleans
- Operadors de comparació
- Funcions all() y any()
-
Exercicis de programació senzills
_____________________________________________________ Estructures de control Alternatives/Condicionals (IF) ______________________________________________________
-
Estructura de control: Condicionals
- Condicionals simples
- Condicionals dobles
- Condicionals múltiples
- Expressió reduïda del if
- Expressió match/else
-
_____________________________________________________ Estructures de control Repetitives (WHILE / FOR) ______________________________________________________
-
Estructura de control: Repetitives
- while
- for
- Instruccions break, continue i pass
- Recorregut amb varies sequències. Funció zip()
-
_____________________________________________________ Tipus de dades seqüència ______________________________________________________
-
- Enumeració dels tipus seqüència
- Característiques principals de las seqüències
-
Tipus de dades seqüència: llistes
- Construcció d'una llista
- Operacions bàsiques amb llistes
- Les llistes son mutables. ¿Com es copien les llistes?
- Llistes multidimensionals
-
- Mètodes d'inserció: append, extend, insert
- Mètodes d'eliminació: pop, remove
- Mètodes d'ordenació: reverse, sort,
- Mètodes de cerca: count, index
- Mètode de copia: copy
-
Operacions avançades amb seqüències
- Funció map
- Funció filter
- Funció reduce
- list comprehension
-
Tipus de dades seqüència: Tuples
- Construcció d'una tupla
- Empaquetat i desempaquetat de tuples
- Operacions bàsiques amb tuples
- Les tuples son inmutables
- Métodes principals
-
Tipus de dades seqüència: Rangs
- Definició d'un rang. Constructor range
- Recorregut d'un rang
- Operacions bàsiques amb range
-
- Introducció a la codificación de caracteres
- La codificación de caracteres en python3
- Funciones chr() y ord()
-
Tipus de dades cadenes de caràcters
- Definició de cadenes. Constructor str
- Operacions bàsiques amb llistes
- Les cadenes son inmutables
- Comparació de cadenes
- Funcions repr, ascii, bin
-
- Mètodes de format
- Mètodes de cerca
- Mètodes de validació
- Mètodes de sustitució
- Mètodes d'unió i divisió
-
Tipus de dades binaris: bytes, bytearray
- Definició de bytes. Constructor bytes
- Definició de bytearray. Constructor bytearray
- Operacions bàsiques amb bytes i bytearray
- Els bytes son inmutables, els bytearray son inmutables
- Mètodes de bytes i bytearray
- Mètodes encode(), decode()
-
Tipus de dades conjunts: set, frozenset
- Definició de conjunts. Constructor set
- Definició de frozenset. Constructor frozenset
- Operacions bàsiques amb set i frozenset
- Els set son inmutables, els frozenset son mutables
- Mètodes principals
-
Tipus de dades iterador i generador
- Iteradors
- Funció next(), reversed()
- Generadors
_____________________________________________________ Tipus de dades mapes ______________________________________________________
-
Tipus de dades mapa: diccionari
- Definició de diccionaris. Constructor dict
- Operacions bàsiques amb diccionaris
- Els diccionaris son tipus mutables
-
Mètodes principals de diccionaris
- Mètodes de eliminació: clear
- Mètodes de agregat i creació: copy, dict.fromkeys, update, setdefault
- Mètodes de retorn: get, pop, popitem, items, keys, values
- El tipus de dades dictviews
- Recorreguts de diccionaris
-
_____________________________________________________ Treballar amb fitxers ______________________________________________________
-
- Seqüència de bytes
- Procés de serialització
- Procés de deserialització
-
- Fitxers de texte
- Fitxers binaris
-
- Pickle
-
- Fitxers de texte i fitxers binaris
- Fitxers de texte
- Funció open()
- Modes d'accés
- Codificació de caràcters
- Objecte fitxer
- Mètodes principals
- Recorregut de fitxers
- Fitxers binaris
-
- Procés de serialització
- Mòdul csv
- Llegir fitxers CSV
- Escriure fitxers CSV
- Gestionar fitxers CSV amb el mòdul Panda
-
- Mòdul json
- Llegir fitxers json
- Escriure fitxers json
- Pretty Json
-
- Mòdul lxml i beautifulsoup
- Llegir fitxers xml
- Escriure fitxers xml
_____________________________________________________ Errors i Excepcions ______________________________________________________
-
- Errors sintàctics i errors d'execució
- Gestionant excepcions. try, except, else, finally
- Obtenint informació de les excpcions
- Propagant excepcions. raise
_____________________________________________________ Móduls, paquets i namespaces ______________________________________________________
-
- Móduls, paquets
- Executant móduls amb scripts
- Important móduls: import
- Namespace i alias
- Important elements d'un mòdul: from...import
- Important mòduls des de paquets
- Función dir()
- ¿On es troben els mòduls?
-
Mòduls estàndards: mòduls de sistema
- Mòdul os
- Executar comandes del sistema operatiu. Mòdul subprocess
- Mòdul shutils
- Mòduls sys
- Execució de scripts amb arguments
-
Mòduls estàndards: mòduls matemàtics
- Mòdul math
- Mòdul fractions
- Mòdul statistics
- Mòdul random
-
Mòduls estàndards: móduls d'hora i data
- Mòdul time
- Mòdul datetime
- Mòdul calendar
- Exemples
-
Instal·lació de mòduls no estàndards
- PyPI i pip
- Instal·lació de mòduls python
- Creant entorns virtuals amb
virtualenv
- Creant entorns virtuals amb
venv
- Instal·lant paquets al nostre entorn virtual
_____________________________________________________ Programació estructurada i modular ______________________________________________________
-
- Introducció a la programació estructurada i modular
- Definició de funcions
- Àmbit de variables. Sentencia global
- Paràmetres formals i reals
- Pas de parámetre per valor o per referencia
- Crides a una funció
- args and kwargs in Python
-
Conceptes avançats sobre funcions
- Tipus d'arguments: posicionals o keyword
- Parámetre *
- Arguments arbitraris (*args y **kwargs)
- Desempaquetar arguments: passar llistes i diccionaris
- Retornar múltiples resultats
-
- Funcions recursives
- Funcions lambda
- Decoradors
- Funcions generadores
-
Exercicis Programació estructurada i modular
_____________________________________________________ Programació orientada a objectes POO ______________________________________________________
-
Programació orientada a objectes
- Introducció a la Programació Orientada a Objectes
- Definició de classe, objecte, atributs i mètodes
- Atributs d'objetos
- Mètode constructor init
- Definint mètodes. El paràmetre self
- Definició d'objectes
-
Conceptes avançats de programació orientada a objectes I
- Atributs de classe (estàtics)
- Atributs privats i ocults
- Mètodes estátics
- Mètodes de classe (estàtics)
- Funcions getattr,setattr,delattr,hasattr
-
Conceptes avançats de programació orientada a objectes II
- Propietats: getters, setters, deleter
- Representació d'objetes __str__ y __repr__
- Comparació d'objectes __eq__
- Operar amb objectes __add__ y __sub__
- Més mètodes especials
-
Polimorfisme, herencia i delegació
- Polimorfisme
- Herència
- La funció super()
- Herencia múltiple
- Funcions issubclass() y isinstance()
- Delegació
-
Exercicis Programació orientada a objectes
_____________________________________________________ Crear un programa executable ______________________________________________________
-
Creació d'un executable a partir d'un script de python amb Pyinstaller
- Utilització de Pyinstaller
- Utilització de py2exe
-
Creació d'un executable a Linux
- Scripts en Linux
_____________________________________________________ Treballar amb Bases de Dades (BDR,BDOR,BDOO) ______________________________________________________
-
- Què és un connector?
- Connectors als principals SGBR en Python
- ODBC i JDBC
-
- MongoDB
_____________________________________________________ Treballar amb dades - DataScience ______________________________________________________
-
- Jupyter Lab
- Jupyter Notebook
- Jupyter Voilà
-
- Normalització de dades
-
- Instal·lació
- Ús
-
- Web Scraping i Web Crawling
- Navegadors web i HTTP
- Scraping i parsing de webs HTTP
- Web Crawlers
- Scraping amb Selenium
- Exemples
- Web Scraping i Web Crawling
-
_____________________________________________________ Creació un entorn de proves ______________________________________________________
-
Creació d'un entorn de proves/curs
- Utilització de la llibreria pytest
_____________________________________________________ Utilització del modul logging DEBUG/INFO _____________________________________________________
-
Logging i debugging de l'aplicació
- Utilització de la llibreria logging
_____________________________________________________ Desenvolupament d'aplicacions en entorn gràfic _____________________________________________________
-
- Tkinter
- wxPython
- PyQt
- Kivy
_____________________________________________________ Desenvolupament d'aplicacions en entorn web _____________________________________________________
-
- Qué son
- Funcionament
- Seguretat
- REST APIs vs SOAP API
-
REST API: Consumició amb el modul requests
- Amb el mètode GET
- Amb el mètode POST
-
REST API: Exemples de consumició d'una API
-
REST API: Creació d'una API
_____________________________________________________ Intel.ligència artificial i Machine Learning _____________________________________________________
-
Què és la Intel.ligència artificial
- Aprenentatge supervisat
- Aprenentatge automàtic
- Aprenentatge semisupervisat
-
- Algorismes de regresió
- Algorismes basats en arbres de decisió
- Algorismes de clustering
- Algorismes de xarxes neuronals
-
- Algorismes de Natural Language
- Algorismes de Image recognition
_____________________________________________________ Creació de Videojocs _____________________________________________________
-
- Llibreria pygame
_____________________________________________________ MarkDown _____________________________________________________
-
_____________________________________________________ BOTS _____________________________________________________
-
- BOTS amb TELEGRAM
_____________________________________________________ Exercicis variats de programació _____________________________________________________
-
Exercicis Simples
Nivell bàsic:
Nivell Mig
HPCDS Codewars
-
Recursos de Python a la Web
- Links Cursos, llibreries, documentació
- Llibreria interessant per veure el grau de similtud entre dues cadenes: https://pypi.org/project/strsimpy/
- https://github.com/jamesturk/jellyfish
- https://exercism.org/tracks