SlideShare uma empresa Scribd logo
1 de 19
INTRODUZIONE A PYTHON
                       Lezione 2
           Paolo Ferretti per Deltapromo
 URL corso: http://corso-deltapromo.paoloferretti.net/

             http://www.paoloferretti.net
               paolo@paoloferretti.net
ARGPARSE


• Parser   per linea di comando

• Aggiunto   in Python 2.7

  • prima   si usava optparse che attualmente è deprecato
ARGPARSE

• Configurare   un parser

 • import argparse
   parser = argparse.ArgumentParser(description='This is a
   PyMOTW sample program')

• Definire   gli argomenti

 • parser.add_argument('-a', action="store_true", default=False)
   parser.add_argument('-b', action="store", dest="b")
DATETIME


• Funzioni   e classi per la manipolazione delle date

• Maneggiare    SEMPRE le date con questo modulo

• Utile   anche quando si devono gestire i fusi orari
DATETIME

t = datetime.time(1, 2, 3)
t                            01:02:03
t.hour                          1
t.minute                        2
t.second                        3
t.microsecond                   0
t.tzinfo                      None
DATETIME

   datetime.time.min          00:00:00



  datetime.time.max        23:59:59.999999



datetime.time.resolution   00:00:00.000001
DATETIME
• today   = datetime.datetime.today()
               today              2011-05-20 19:04:33.982872

           today.ctime()           Fri May 20 19:04:33 2011

          today.toordinal()                734277

             today.year                     2011

            today.month                       5

             today.day                       20
LOGGING


• Facilita   le operazioni di logging su file

• Impostazioni     semplici con basicConfig

  • logging.basicConfig(filename=LOG_FILENAME,
        level=logging.DEBUG
    )
LOGGING

• Cinque   livelli di verbosity

 • CRITICAL       (50)

 • ERROR     (40)

 • WARNING         (30)

 • INFO    (20)

 • DEBUG      (10)
LOGGING



•I   livelli di verbosity servono per filtrare i messaggi di logging

•I logging visualizzati sono sempre quelli maggiori o uguali al
 livello dell’handler
MATH



• Libreria   con funzioni matematiche

• Molte   generica, ci sono le funzioni e le costanti più comuni
PPRINT


• Modulo   per pretty print

• Ottimo   per stampare strutture dati

• Normalmente    lo uso per un debug grezzo
RANDOM


• Modulo    per la generazione di numeri pseudo casuali

• Basato   su algoritmo Mersenne Twister

• Diverse
        utility per generazione di numeri float, interi o casuali
 deterministici
SYS

• E’ un   modulo sterminato

• Contiene    i servizi per:

  • ottenere     e modificare la configurazione dell’interpete a
    runtime

  • interagire   col sistema operativo
URLLIB

• Semplice   interfaccia per l’accesso a risorse di rete

• Funzioni   più usate

  • urlopen(): per   aprire una URL

  • urlencode(): per     fare l’encoding di una url. Importantissima!

    • quote(): simile    ad urlencode ma per utilizzo locale
URLLIB

• Per   richiesta

  • GET

    • passare  a urlopen l’url più i parametri dell’url in un unico
        parametro -> urlopen(url + encoded_params)

  • POST

    • passare  a urlopen l’url e i parametri dell’url in due
        parametri diversi - urlopen(url, encoded_params)
URLLIB2



• Versione   più sofisticata di urllib

• Permette   la gestione di protocolli diversi da HTTP
URLPARSE



• Permette   una gestione completa delle url

• Spezza   una url in tutte le sue componenti
OS


• Permette    di interfacciarsi col sistema operativo sottostante

• os.path   contiente le utility per maneggiare i path

• os.environ   contiene le variabili di ambiente

Mais conteúdo relacionado

Semelhante a Corso Python Deltapromo - Lezione 2

Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017Gianluca Hotz
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013Myti S.r.l.
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Fabio Armani
 
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterMySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterPar-Tec S.p.A.
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Alessandro del Gobbo
 
TSQL Advanced Query Techniques
TSQL Advanced Query TechniquesTSQL Advanced Query Techniques
TSQL Advanced Query TechniquesGianluca Sartori
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...azuredayit
 
Smau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSmau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSMAU
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeomarcocasario
 
CDays15 - AZ08 - DocumentDB: il NoSql secondo Azure
CDays15 - AZ08 - DocumentDB: il NoSql secondo AzureCDays15 - AZ08 - DocumentDB: il NoSql secondo Azure
CDays15 - AZ08 - DocumentDB: il NoSql secondo AzureDavide Benvegnù
 
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15Andrea Cardinali
 
DDive2011 - Performance on Lotus Domino
DDive2011 - Performance on Lotus DominoDDive2011 - Performance on Lotus Domino
DDive2011 - Performance on Lotus DominoGTTech
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisGianluca Sartori
 
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...UltraUploader
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Meet Magento Italy
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode LinuxMajong DevJfu
 

Semelhante a Corso Python Deltapromo - Lezione 2 (20)

PoC IoT in 1 ora
PoC IoT in 1 oraPoC IoT in 1 ora
PoC IoT in 1 ora
 
OrientDB & Big Data
OrientDB & Big DataOrientDB & Big Data
OrientDB & Big Data
 
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017
 
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
No sql introduzione. Corso Sistemi Informativi Politecnico di Milano 12-11-2013
 
Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)Design Patterns - Enterprise Patterns (part 2)
Design Patterns - Enterprise Patterns (part 2)
 
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterMySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013
 
Emerasoft Git quickstart
Emerasoft Git quickstartEmerasoft Git quickstart
Emerasoft Git quickstart
 
TSQL Advanced Query Techniques
TSQL Advanced Query TechniquesTSQL Advanced Query Techniques
TSQL Advanced Query Techniques
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
 
Smau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSmau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del cero
 
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore RomeoHTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
HTML5 Italy: Mai più CSS, fogli di stile moderni con LESS - Salvatore Romeo
 
CDays15 - AZ08 - DocumentDB: il NoSql secondo Azure
CDays15 - AZ08 - DocumentDB: il NoSql secondo AzureCDays15 - AZ08 - DocumentDB: il NoSql secondo Azure
CDays15 - AZ08 - DocumentDB: il NoSql secondo Azure
 
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15WordPress, migrazioni e re-branding: don't try this at home. #wmf15
WordPress, migrazioni e re-branding: don't try this at home. #wmf15
 
DDive2011 - Performance on Lotus Domino
DDive2011 - Performance on Lotus DominoDDive2011 - Performance on Lotus Domino
DDive2011 - Performance on Lotus Domino
 
SQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload AnalysisSQL Server Benchmarking, Baselining and Workload Analysis
SQL Server Benchmarking, Baselining and Workload Analysis
 
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...[Ebook   ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
[Ebook ita - security] introduzione alle tecniche di exploit - mori - ifoa ...
 
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
Marco Zani: Come dimensionare Magento per raggiungere i Key Performance Indic...
 
Introduzione User Mode Linux
Introduzione User Mode LinuxIntroduzione User Mode Linux
Introduzione User Mode Linux
 

Mais de Paolo Ferretti

Multi container applications with docker
Multi container applications with dockerMulti container applications with docker
Multi container applications with dockerPaolo Ferretti
 
Tavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante SudTavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante SudPaolo Ferretti
 
Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5Paolo Ferretti
 
Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3Paolo Ferretti
 
Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4Paolo Ferretti
 

Mais de Paolo Ferretti (6)

Multi container applications with docker
Multi container applications with dockerMulti container applications with docker
Multi container applications with docker
 
OpenStreetMap
OpenStreetMapOpenStreetMap
OpenStreetMap
 
Tavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante SudTavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante Sud
 
Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5
 
Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3
 
Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4
 

Corso Python Deltapromo - Lezione 2

  • 1. INTRODUZIONE A PYTHON Lezione 2 Paolo Ferretti per Deltapromo URL corso: http://corso-deltapromo.paoloferretti.net/ http://www.paoloferretti.net paolo@paoloferretti.net
  • 2. ARGPARSE • Parser per linea di comando • Aggiunto in Python 2.7 • prima si usava optparse che attualmente è deprecato
  • 3. ARGPARSE • Configurare un parser • import argparse parser = argparse.ArgumentParser(description='This is a PyMOTW sample program') • Definire gli argomenti • parser.add_argument('-a', action="store_true", default=False) parser.add_argument('-b', action="store", dest="b")
  • 4. DATETIME • Funzioni e classi per la manipolazione delle date • Maneggiare SEMPRE le date con questo modulo • Utile anche quando si devono gestire i fusi orari
  • 5. DATETIME t = datetime.time(1, 2, 3) t 01:02:03 t.hour 1 t.minute 2 t.second 3 t.microsecond 0 t.tzinfo None
  • 6. DATETIME datetime.time.min 00:00:00 datetime.time.max 23:59:59.999999 datetime.time.resolution 00:00:00.000001
  • 7. DATETIME • today = datetime.datetime.today() today 2011-05-20 19:04:33.982872 today.ctime() Fri May 20 19:04:33 2011 today.toordinal() 734277 today.year 2011 today.month 5 today.day 20
  • 8. LOGGING • Facilita le operazioni di logging su file • Impostazioni semplici con basicConfig • logging.basicConfig(filename=LOG_FILENAME, level=logging.DEBUG )
  • 9. LOGGING • Cinque livelli di verbosity • CRITICAL (50) • ERROR (40) • WARNING (30) • INFO (20) • DEBUG (10)
  • 10. LOGGING •I livelli di verbosity servono per filtrare i messaggi di logging •I logging visualizzati sono sempre quelli maggiori o uguali al livello dell’handler
  • 11. MATH • Libreria con funzioni matematiche • Molte generica, ci sono le funzioni e le costanti più comuni
  • 12. PPRINT • Modulo per pretty print • Ottimo per stampare strutture dati • Normalmente lo uso per un debug grezzo
  • 13. RANDOM • Modulo per la generazione di numeri pseudo casuali • Basato su algoritmo Mersenne Twister • Diverse utility per generazione di numeri float, interi o casuali deterministici
  • 14. SYS • E’ un modulo sterminato • Contiene i servizi per: • ottenere e modificare la configurazione dell’interpete a runtime • interagire col sistema operativo
  • 15. URLLIB • Semplice interfaccia per l’accesso a risorse di rete • Funzioni più usate • urlopen(): per aprire una URL • urlencode(): per fare l’encoding di una url. Importantissima! • quote(): simile ad urlencode ma per utilizzo locale
  • 16. URLLIB • Per richiesta • GET • passare a urlopen l’url più i parametri dell’url in un unico parametro -> urlopen(url + encoded_params) • POST • passare a urlopen l’url e i parametri dell’url in due parametri diversi - urlopen(url, encoded_params)
  • 17. URLLIB2 • Versione più sofisticata di urllib • Permette la gestione di protocolli diversi da HTTP
  • 18. URLPARSE • Permette una gestione completa delle url • Spezza una url in tutte le sue componenti
  • 19. OS • Permette di interfacciarsi col sistema operativo sottostante • os.path contiente le utility per maneggiare i path • os.environ contiene le variabili di ambiente

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n