Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source...

30
Laboratorio Sistema Operativo Python Usare Python in Linux Introduzione 28 Febbraio 2014 Usare Python in Linux

Transcript of Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source...

Page 1: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

Usare Python in LinuxIntroduzione

28 Febbraio 2014

Usare Python in Linux

Page 2: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

Outline

1 LaboratorioStruttura e programma delle lezioni

2 Sistema OperativoDefinizioneMini tutorial

3 PythonIntroduzioneProgrammazione

Usare Python in Linux

Page 3: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

PythonStruttura e programma delle lezioni

Outline

1 LaboratorioStruttura e programma delle lezioni

2 Sistema OperativoDefinizioneMini tutorial

3 PythonIntroduzioneProgrammazione

Usare Python in Linux

Page 4: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

PythonStruttura e programma delle lezioni

Lezione tipo

Correzione degli esercizi svolti autonomamente e consegnatiall’indirizzo di posta elettronica: [email protected] rassegna di alcuni concetti spiegati a lezioneAssegnazione di esercizi da svolgere in laboratorio/aulaAssegnazione di esercizi da svolgere autonomamente

Usare Python in Linux

Page 5: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

PythonStruttura e programma delle lezioni

Progetto

IndividualeConsegna delle specifiche di progetto circa a metà aprileValutazione:

insufficiente → si deve ripresentare il progetto a una data diconsegna successiva, ma il voto terrà conto della prima consegnasufficiente → si assegna un valore compreso tra 0 e 5 da sommareal voto dello scritto

Usare Python in Linux

Page 6: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

PythonStruttura e programma delle lezioni

Programma delle lezioni di Laboratorio

Introduzione a Linux e Python primi costruttiComando di condizione, comando di input, iterazioneincondizionata: concetti, esempi ed eserciziSequenze immutabili e iterazione condizionata: concetti, esempied eserciziRicorsione: concetto, esempi ed eserciziConfronto tra le diverse possibili soluzioni di uno stessoproblema: esempi ed eserciziListe: concetti, esempi ed eserciziDizionari: concetti, esempi ed eserciziCode pile ed alberi: concetti, esempi ed eserciziEsercizi in preparazione all’esame

Usare Python in Linux

Page 7: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Outline

1 LaboratorioStruttura e programma delle lezioni

2 Sistema OperativoDefinizioneMini tutorial

3 PythonIntroduzioneProgrammazione

Usare Python in Linux

Page 8: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Sistema Operativo (SO) e interazioni con gli utenti

Usare Python in Linux

Page 9: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Definizione di Sistema Operativo

Un Sistema Operativo (SO) è:un programma che agisce come intermediario tra Utente,Software Applicativo e Hardware.

Obiettivi e compiti:fornire un ambiente nel quale un utente possa eseguireprogrammi in modo conveniente ed efficiente su un determinatohardware;fornire un’interfaccia utente (grafica e non) per poter eseguireapplicazioni;evitare che i programmi in esecuzione contemporanea entrino inconflitto;fornire sevizi ai programmi in esecuzione.

Usare Python in Linux

Page 10: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Il S.O. e il suo linguaggio

Il linguaggio del S.O. è rappresentato da tutti i comandi che possonoessere riconosciuti dall’interprete del S.O. Ogni comando ha:

una sintassi (come devono essere scritti per essere riconosciuti)una semantica (quale operazione sarà effettuata)

Usare Python in Linux

Page 11: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

ComandiI comandi sono specifici dei vari S.O.:

Usare Python in Linux

Page 12: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Cos’è Linux?

È un S.O. Open SourceRicordiamo che i S.O. moderni hanno tra le altre anche le seguentifunzionalità:

presentano un’interfaccia (grafica e a linea di comando) pergestire le richieste dell’utentegestiscono i vari programmi in esecuzionegestiscono le richieste di I/O

Usare Python in Linux

Page 13: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Outline

1 LaboratorioStruttura e programma delle lezioni

2 Sistema OperativoDefinizioneMini tutorial

3 PythonIntroduzioneProgrammazione

Usare Python in Linux

Page 14: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Come usare Linux da riga di comando

shell La shell/terminale è l’interfaccia dell’interprete del SOdove un utente inserisce i comandi che vuole eseguire.

comandi Possiamo suddividerli in:1 Documentali2 Gestionali:

archivifile e directoryprocessistampatesto

3 Operazionali su file di dati4 Informativi:

sullo spazio su discosu di noi e sul sistema

5 Operazionali di ricerca6 Vari

Usare Python in Linux

Page 15: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Documentali

MANsintassi man [section] [option...] NAME.

descrizione man formatta e visualizza le possibili pagine delmanuale che riguardano NAME. NAME può essere: uncomando, una funzione, un file di configurazione. Sesection viene specificata, man cerca ladocumentazione soltanto in quella sezione. La sezioneè la suddivisione in categorie dei comandi

esempio man man→ entra nel manuale del comando man, peruscire dal manuale usare q

APROPOSsintassi apropos NAME.

descrizione apropos da informazioni riguardo la voce NAMEesempio apropos man→ visualizza informazioni sui diversi

manuali presenti

Usare Python in Linux

Page 16: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Gestione file e directory

LSsintassi ls [option...] [NAME_DIRECTORY...] [NAME_FILE...]

descrizione ls lista il contenuto di ogni directory indicata in[NAME_DIRECTORY...] e i file individuati da[NAME_FILE...].

esempi ls→ visualizza tutti i file e le directory presenti nelladirectory corrente

MKDIRsintassi mkdir [option...] NAME_DIRECTORY...

descrizione mkdir crea le directory specificate con(NOME_DIRECTORY...).

esempio mkdir /home/nome.cognome/python→ crea ladirectory python nella nostra home

Usare Python in Linux

Page 17: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Gestione file e directory

RMsintassi rm [option...] [NAME_FILE...]

descrizione rm cancella i file specificati, ma non le directory.esempio rm prova.txt→ rimuove se esiste il file prova.txt

RMDIRsintassi rmdir [option...] NAME_DIRECTORY...

descrizione rkdir cancella le directory specificate con(NOME_DIRECTORY...).

esempio rmdir prova→ rimuove se esiste la directory prova

Usare Python in Linux

Page 18: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Gestione file e directory

CDsintassi cd [DIRECTORY]

descrizione cd entra nella directory specificata. NB. bisognadescrivere il percorso corretto. Se non è fornita alcunadirectory allora entra nella home directory dell’utente.

esempi cd /usr/include→ entra nella directory /usr/includeCP

sintassi cp [option...] FILE_ORIGINE... DIRECTORY || cp[option...] FILE_ORIGINE FILE_DESTINAZIONE

descrizione Copia i file specificati con FILE_ORIGINE nelladirectory DIRECTORY. || Copia il file FILE_ORIGINEnel file FILE_DESTINAZIONE.

esempi cp x.* y.* /home/nome.cognome→ copia x,y nellanostra home || cp prova.* prova2.*→copia il file prova inprova2

Usare Python in Linux

Page 19: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

Lanciare un programma da shell

Per lanciare un programma da shell, indicare il nome del fileeseguibile.

Per esempio apriamo un editor di testo col comandoNANO

nano nomefile.*→ si apre l’editor sul file specificato da nomefile.*’E→ indica la combinazione di tasti Ctrl E

VIMun altro esempio di editor è VIMVIM opera in due modalità:

comando: permette di interagire col programma editor, utilizzandospecifiche combinazioni di tasti che corrispondono ai comandiriconosciuti da VIM; come ad esempio: aprire un file, salvare unfile, uscire, ricercare e sostituire paroleinserimento: permette di scrivere e modificare il testo salvato nelfile.

Usare Python in Linux

Page 20: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

DefinizioneMini tutorial

VIM

Passaggio da una modalità all’altra:VIM si apre in modalità comando, per cambiare contesto si editail carattere ’i’per tornare alla modalità comando si usa il tasto ’esc’

Comandi principali::r nomefile → per aprire un file

:w → per salvare un file senza uscire:w nomefile → per salvare con nome

:wq → per salvare ed uscire:q → per uscire (solo se non si sono apportate modifiche)

:q! → per uscire senza salvareVIM nomefile.*→ si apre il file nomefile.* con l’editor VIM

Usare Python in Linux

Page 21: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Outline

1 LaboratorioStruttura e programma delle lezioni

2 Sistema OperativoDefinizioneMini tutorial

3 PythonIntroduzioneProgrammazione

Usare Python in Linux

Page 22: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Cos’è Python?

È un linguaggio di programmazione:interpretatomulti-piattaformamulti-paradigma.

La versioneUseremo Python 3.* (il libro di testo è riferito a 2.6 o 2.7).

Usare Python in Linux

Page 23: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Python

Per programmare useremo IDLE (Ambiente di sviluppo integrato diPython) Per mandare in esecuzione il IDLE si devono eseguire leseguenti operazioni da terminale:

accediamo alla directory corretta→ cd /usr/lib/python3.2/idlelibmandiamo in esecuzione il programma digitando→ python3.2idle.pysi apre un editor su cui scriveremo e salveremo i nostri (file)programmi

Usare Python in Linux

Page 24: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Outline

1 LaboratorioStruttura e programma delle lezioni

2 Sistema OperativoDefinizioneMini tutorial

3 PythonIntroduzioneProgrammazione

Usare Python in Linux

Page 25: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Comandi

Riprendiamo alcuni comandi:print ('Hello World!') (scrive Hello World!)x=2 (assegna il valore intero 2 alla variabile x)x=x+5 (al valore di x somma 5 e il risultato lo assegna a x)

Ogni operazione definisce un comando specifico a seconda del tipodi dato che si sta usando.

Usare Python in Linux

Page 26: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Tipo di dato

Semplici:interi (int)→ operazioni tra interinumeri in virgola mobile (float)→ operazioni tra floatnumeri complessi (complex)→ operazioni tra complessivalori booleani (bool)→ operazioni tra booleani

Composto:valori stringa (str)→ operazioni tra stringhe

Usare Python in Linux

Page 27: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Operazioni su interi, virgola mobile, complessi

Rappresentazioni:interi: M=3float: M=3.0complessi: M=(3+1j)

Operazioni:M+M→ somma (interi, float, complessi)M*M→ prodotto (interi, float, complessi)M/M→ divisione con risultato intero, float, o complessoM%M→ modulo (solo tra interi)M**M→ elevamento a potenza (interi, float, complessi)

Usare Python in Linux

Page 28: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Operazioni stringhe

Rappresentazioni:M = ’Prova’; N=’casa’

Operazioni:M+N→ concatena la stringa M ed N es. ProvacasaM*3→ concatena 3 volte la stringa contenuta in M es.ProvaProvaProvalen(M)→ restituisce la lunghezza di M es. 5M[0], · · · M[len(M)-1]→ restituisce i singoli caratteri della stringa.es: M[0]→ PM[x:y]→ restituisce una sotto-striga di quella di partenzapartendo dalla posizione x fino alla posizione y-1. es. M[:2] Pr

Usare Python in Linux

Page 29: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Esercizi

Scrivere uno script che assegnati due valori a x e y stampi ilperimetro e l’area di un rettangoloScrivere uno script che assegnate due stringhe a x e y stampi lastringa formata dalla concatenazione dai primi caratteri delle duestringhe, dai due caratteri nella posizione (len(x)//2) e dagliultimi due. (es. ’casa’, ’piovra’→ ’cpsvaa’)Scrivere uno script che assegnati quattro valori a x1, y1; x2, y2stampi i valori di m e q della retta passante per i due puntiScrivere uno script che assegnata una stringa a x la stampi inordine inverso.

Usare Python in Linux

Page 30: Usare Python in Linux - Introduzionezuppirol/lez12013.pdf · Cos’è Linux? È un S.O.Open Source Ricordiamo che i S.O. moderni hanno tra le altre anche le seguenti funzionalità:

LaboratorioSistema Operativo

Python

IntroduzioneProgrammazione

Cosa abbiamo fatto?

1 LaboratorioStruttura e programma delle lezioni

2 Sistema OperativoDefinizioneMini tutorial

3 PythonIntroduzioneProgrammazione

Usare Python in Linux