Introduzione a Python ed installazione di Jupyter

Documenti analoghi
Gestione di files Motivazioni

ARRAY E STRINGHE. ESERCIZIO 2 Scrivere un programma che calcola il numero di doppie e di dittonghi (2 vocali vicine) presenti in una stringa.

Strutture dati e loro organizzazione. Gabriella Trucco

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Unità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.

Programmazione in Java (I modulo)

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Linguaggio C: le funzioni. Introduzione e sintassi

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Primi passi col linguaggio C

Algoritmi e basi del C Struttura di un programma

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

INDICE. Vista Libretto Pt. Coordinate 2. Inserimento e modifica dei punti di coordinate note 4. Inserimento e modifica dei punti di orientamento 5

Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22

Definizione di metodi in Java

Stringhe e allocazione dinamica della memoria

Linguaggio C: introduzione

Access. P a r t e t e r z a

Strutture di Controllo

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Laboratorio di programmazione

PYNQ: Python for Zynq. La PYNQ-Z1 board è basata su un Zynq System-on-Chip (SOC)

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Video Scrittura (MS Word) Prima Parte

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

28/02/2014 Copyright V. Moriggia

Formule e funzioni. Manuale d uso

5 - Istruzioni condizionali

Strutture Dinamiche. Fondamenti di Informatica

perror: individuare l errore quando una system call restituisce -1

Fondamenti di Informatica T1 Mappe

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

PROGRAMMAZIONE: Le strutture di controllo

Quando usiamo Python in modo interattivo in genere e' lo shell utilizzato che gestisce l'indentazione e la deindentazione.

Introduzione al Python

Array multidimensionali e stringhe

Introduzione al Foglio Elettronico

Programmazione in Python. Moreno Marzolla

Codice Gray. (versione Marzo 2007)

Istituto Tecnico Industriale M. M. Milano Polistena. Classe III D a.s. 2015/2016 C++ Guida Base

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

I puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore

Linguaggio C - sezione dichiarativa: costanti e variabili

Capitolo 4: Tabelle. y(x) = x 3 ì 2x. Capitolo 4: Tabelle 67. Nota: le tabelle non sono disponibili nel modo di rappresentazione grafica 3D.

Introduzione al software R

3. Le routine evento in Access 2000/2003

Precorsi di matematica

Sviluppo di programmi

Il linguaggio C. Notate che...

La sintassi del C APPENDICE H

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Lettura da tastiera e scrittura su monitor

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

VBA Principali Comandi

Caratteri e stringhe

Lab 01 Introduzione a Codelite

Heap e code di priorità

Programmazione Orientata agli Oggetti in Linguaggio Java

Esercitazione 4. Comandi iterativi for, while, do-while

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Analizzatori Lessicali con JLex. Giuseppe Morelli

4 GLI ARRAY E LE STRINGHE

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Fondamenti di Programmazione

Introduzione al DEV C++

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

HOMEWORKS. in modo che il programma stampi N ripetizioni della stringa HelloWorld (su righe diverse), con N inserito dall utente.

Costrutti condizionali e iterativi

Excel. I fogli di calcolo Le funzioni base Gli strumenti. 1

Fondamenti di Informatica T-1

Transcript:

Introduzione a Python ed installazione di Jupyter Marco D. Santambrogio marco.santambrogio@polimi.it Emanuele Del Sozzo emanuele.delsozzo@polimi.it Lorenzo Di Tucci lorenzo.ditucci@mail.polimi.it Giuseppe Natale giuseppe.natale@polimi.it Marco Rabozzi marco.rabozzi@polimi.it Alberto Scolari alberto.scolari@polimi.it Ver. aggiornata al 7 Novembre 2016

Agenda Introduzione a Python Tipi e costrutti Liste, dizionari e insiemi Funzioni Classi File 2

Installazione Anaconda fornisce: Python Virtual Machine IDE per la scrittura di codice Python (Spyder, Jupyter) Scaricare Anaconda dal seguente link: https://www.continuum.io/downloads Scegliere solo Python 3.5 3

Cosa è Python? Python è un linguaggio di programmazione Di alto livello Interpretato Debolmente tipizzato Orientato agli oggetti E comodo per sviluppare rapidamente applicazioni e script Documentazione: https://www.python.org/doc/ 4

C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti 5

C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti Allocazione esplicita della memoria (gestione dei puntatori) Allocazione implicita della memoria 6

C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti file.c Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti file.py gcc interprete Python codice macchina codice interpretato 7

C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti int a; a = 5; a = stringa ; //Corretto //Errore!! a = 5 a = stringa a = 1.3 #Corretto #Corretto #Corretto Il tipo della variabile va dichiarato esplicitamente Nessuna dichiarazione esplicita di tipo 8

C vs Python C - Basso livello - Compilato - Fortemente tipizzato - Non a oggetti Python - Alto livello - Interpretato - Debolmente tipizzato - A oggetti void sort(int * array){...}... int vet[] = {1, 6, 4, 8, 9}; sort(vet); vet = [1, 6, 4, 8, 9] vet.sort() sort è una funzione dell oggetto vet ed agisce su di esso 9

Introduzione alla sintassi Python Le variabili non vanno dichiarate prima di essere usate Non è necessario usare i punti e virgola alla fine di ogni istruzione I costrutti (if-else, for, funzioni) usano i due punti al posto delle graffe di apertura e devono essere indentati con spazi o tabulazione (evitare di usarli entrambi) I commenti si inseriscono con # (singola linea) o commento (multi linea/docstring) 10

Jupyter Una volta installato Anaconda, aprite Jupyter e create un nuovo notebook Python 11

Hello World Proviamo a scrivere un Hello World in Python e ad eseguirlo sull interprete 12

Input / Output Per leggere da linea di comando, usate la funzione input() Per stampare valori a schermo, usate la funzione print() Il risultato è: 13

Input / Output: stampa di stringhe Se volete stampare una stringa insieme ad un valore, è necessario convertire il valore in una stringa e concatenarli La concatenazione è fatta usando l operatore + I valori letti con input() sono stringhe! Per convertire un numero in una stringa, usate la funzione str(obj) Per passare da stringa ad intero, int(obj) se è possibile! 14

Esempio di tipizzazione debole Vediamo cosa succede quando prima assegniamo a due variabili i caratteri rappresentanti due numeri e li sommiamo Assegniamo ora alle stesse variabili i due interi precedenti e sommiamoli ancora 15

Inclusione librerie Come in C, è possibile importare librerie (moduli) ed usare le funzioni definite all interno Esistono differenti modi di importare e usare i moduli: import os #importa lo spazio dei nomi del modulo os import os as O #importa lo spazio dei nomi del modulo os come O from os import * #importa tutto dallo spazio dei nomi del modulo os from os import curdir as CC from os import listdir as LS #importa un elemento specifico con un alias os.curdir os.listdir( Desktop ) O.curdir O.listdir( Desktop ) curdir listdir( Desktop ) CC LS( Desktop ) 16

Funzioni utili len(obj) riporta la lunghezza dell oggetto obj (stringa, lista, etc.) passata come argomento dir(obj) riporta tutti i dati e le funzioni contenute in un modulo help(obj) mostra la documentazione relativa ad un oggetto obj 17

Tipi e costrutti in Python

Tipi base I tipi (classi) base di python sono: tipi esempio int 1, 2, 3 float 1.5, 2.2, 4.3 bool True, False str abc, stringa list [1, 2, 3, 4], [ abc, def, ghi ] dict {chiave1: valore1, chiave2: valore2} tuple (1, 2, 3, 4), ( abc, def, ghi ) set {1, 2, 3, 4}, { abc, def, ghi } 19

Tipi base Per sapere il tipo di una variabile, usate la funzione type(obj) Per sapere I metodi e attributi di un tipo, usate la funzione dir sull oggetto, or la funzione help sul tipo 20

Operatori logici Operazioni C Python And logico && and Or logico or Not logico! not Uguaglianza ==,!= ==,!=, is, is not Confronto <, >, <=, >= <, >, <=, >= 21

Operatori logici - uguaglianza Operazioni C Python And logico && and Or logico or Not logico! not Uguaglianza ==,!= ==,!=, is, is not Confronto <, >, <=, >= <, >, <=, >= ==,!= verifica se due oggetti hanno lo stesso valore is, is not verifica se due oggetti sono lo stesso oggetto 22

If - else La struttura base di un if-else è: Se è necessario usare più if-else in cascata, usate elif: elif 23

Ciclo while La sintassi del ciclo while in Python è identica a quella del C: Inoltre, a differenza del C, è possibile inserire un ramo else alla fine del while Il ramo else verrà eseguito quando la condizione del while diventa falsa 24

Ciclo for Il ciclo for di Python è abbastanza diverso dal C Una variabile itera su una serie di valori in una sequenza La sequenza può essere: Una lista, dizionario, tupla, insieme Una stringa Un iteratore Anche alla fine del for si può inserire il ramo else 25

Iteratori Gli iteratori sono oggetti che restituiscono una sequenza di oggetti uno alla volta tramite il metodo next() L iteratore che si usa solitamente nel ciclo for è range, la cui sintassi è: Solo il parametro fine è obbligatorio, mentre inizio e passo opzionali: L iterazione va fino a fine escluso In mancanza di inizio, l interazione parte da 0 In mancanza di passo, il passo di default è 1 Il passo può essere inserito solo se è presente anche l inizio Se inizio è maggiore (o uguale) a fine, il for non verrà eseguito (a meno di un passo negativo) 26

Iteratori: esempi La variabile i va da 0 a 10 (escluso) con passo 1 La variabile i va da 20 a 30 (escluso) con passo 1 La variabile i va da 10 a 60 (escluso) con passo 5 La variabili i va da 20 a 10 (escluso) con passo -1 27

Break e continue Il comando break serve per uscire dall esecuzione di un ciclo (in questo caso, NON viene eseguito l eventuale else del ciclo) Il comando continue serve per saltare all iterazione successiva del ciclo 28

Liste, dizionari e insiemi in Python

Liste Le liste sono oggetti di dimensioni variabili che contengono altri oggetti in un ordine preciso dato dall inserimento Le liste possono contenere diversi tipi Differenza tra liste Python e array in C (tipi diversi e lunghezza dinamica) C - Gli array non possono contenere elementi di tipi diversi - Gli array non possono cambiare la propria dimensione Python - Le liste possono contenere elementi di tipi diversi - Una lista può cambiare la propria dimensione 30

Creazione di una lista Una lista può essere creata in due modi: Operatore [ ] Funzione list() quindi evitate di chiamare una lista list! Esempi di creazione con l operatore [ ] [ ] crea una lista vuota [val1, val2, val3] crea una lista a partire dai valori inseriti Esempi di creazione con la funzione list() list() crea una lista vuota list(iteratore) crea una lista a partire dall iteratore 31

Lettura, inserimento e rimozione di elementi Lettura lista[indice] dove indice è la posizione dell elemento a cui voler accedere Inserimento append(val) inserisce l elemento val in coda alla lista insert(indice, val) inserisce un valore in posizione indice 32

Lettura, inserimento e rimozione di elementi Rimozione pop(indice) rimuove l elemento alla posizione indice remove(val) rimuove la prima occorenza del valore val 33

Scorrere gli elementi di una lista Per scorrere una lista solitamente si usa un ciclo for come in C E anche possibile iterare direttamente sulla lista In questo caso i assume il valore di ognuno degli elementi presenti all interno della lista 34

Altre operazioni sulle liste E possibile usare indici negativi sulle liste: -1 restituisce l ultimo elemento, -2 il penultimo, La funzione reverse() inverte una lista stessa 35

Altre operazioni sulle liste E possibile concatenare due liste con l operatore + Si può creare una lista di N elementi uguali moltiplicando una lista contenente gli elementi desiderati per N 36

Liste di liste Una lista può essere definita all interno di un altra lista Per accedere ad un certo elemento di una delle liste, si accede prima alla lista di interesse e poi all elemento corrispondente 37

Definire matrici tramite liste Le matrici in Python possono essere definite come lista di liste La lista più esterna contiene le righe della matrice, quelle più interne gli elementi delle colonne relative a quella riga Esempi di creazione di matrice Si possono creare matrici con righe di dimensioni diverse 38

List comprehension List comprehension è un metodo che permette di costruire liste in maniera veloce e compressa Si crea una lista a partire da una descrizione inserita tra [ ] x indica il valore che voglio andare ad inserire nella lista Il valore inserito nella lista può essere anche il risultato di operazioni 39

List comprehension La lista può essere costruita usando anche condizioni (if-else) E possibile costruire una matrice con list comprehension 40

Operatore ternario Questa list comprehension si basa su un operatore ternario, ossia un operatore che restituisce un certo valore basandosi sul fatto che una condizione sia vera o falsa Se la condition è vera, l output dell istruzione sarà il valore cond_true, altrimenti il valore cond_false 41

Tipi immutabili e mutabili Tipi immutabili Tipi mutabili int float bool str tuple list dict set I tipi immutabili vengono passati per copia alle funzioni: La funzione riceve una copia dei parametri Le modifiche ai parametri non vengono viste al di fuori della funzione I tipi mutabili vengono passati per riferimento alle funzioni: La funzione riceve il riferimento dei parametri (stile array in C) Le modifiche ai parametri vengono viste al di fuori della funzione 42

Dizionari I dizionari in Python sono uno strumento molto potente che consente di organizzare i dati sotto forma di coppie <chiave, valore> Data una chiave, è possibile chiedere al dizionario di fornirci il relativo valore (se presente) La chiave deve essere un tipo immutabile (int, float, str, ) mentre il valore può essere di qualunque tipo I dizionari vengono usati comunemente per salvare delle associazioni: Dato il nome ed il cognome di una persona (chiave), recuperare il suo numero telefonico (valore di tipo intero) Dato il nome di un corso (chiave) recuperare la lista dei docenti che hanno insegnato quel corso (valore di tipo lista) Dato il nome di una città (chiave) recuperare l elenco telefonico degli abitanti di quella città (valore di tipo dizionario) 43

Creare un dizionario Un dizionario può essere creato in due modi: Operatore {} Funzione dict() Esempi di creazione con l operatore {} chiave Esempi di creazione con la funzione dict() valore 44

Aggiungere, modificare e rimuovere elementi Per aggiungere un elemento al dizionario o modificarlo se già esiste, si utilizzano le parentesi quadre: Per rimuovere un elemento dal dizionario partendo dalla sua chiave, si usa pop(chiave): 45

Accedere agli elementi di un dizionario Il numero di elementi presenti nel dizionario si ottiene usando len(dizionario) Per leggere il valore corrispondente ad una chiave si usano ancora le parentesi quadre Per verificare se una chiave esiste si può utilizzare l operatore in: 46

Iterare sugli elementi di un dizionario Un dizionario dà la possibilità di iterare sulle chiavi presenti al suo interno. Sfruttando le chiavi è poi possibile ottenere i valori corrispondenti Esempio: 47

Insiemi L insieme in Python è un tipo di dato che ha proprietà simili agli insiemi matematici Un insieme contiene un certo numero di elementi tutti distinti tra loro Gli elementi di un insieme non sono ordinati (come accade invece per le liste) Gli insiemi vengono comunemente usati per verificare la presenza o meno di un certo elemento 48

Creazione di un insieme Creazione di un insieme vuoto con set() Creazione di un insieme partendo da un iteratore set(iteratore) Creazione di un insieme a partire da una lista con set(lista) (elementi duplicati vengono considerati una sola volta) 49

Insiemi: operazioni base Inserimento di un nuovo elemento con add(elemento) (inserimenti multipli non hanno effetto) Rimozione di un elemento con discard(elemento) (la rimozione di un elemento non presente non genera errore) Verificare la presenza di un elemento usando in 50

Iterare sugli elementi di un insieme Per ottenere il numero di elementi presenti in un insieme, utilizzare la funzione len(insieme): Per scorrere uno ad uno gli elementi di un insieme è sufficiente usare il seguente ciclo for: 51

Insiemi: unione, intersezione, differenza Unione C tra l insieme A e l insieme B (l insieme di tutti gli elementi contenuti in A o in B): Intersezione C tra l insieme A e l insieme B (l insieme di tutti gli elementi contenuti in A e in B): Differenza C tra l insieme A e l insieme B (l insieme di tutti gli elementi contenuti in A ma non in B): Per scoprire quali altre operazioni sono possibili sugli insiemi, utilizzate la funzione help ( help(set()) ) 52

Funzioni in Python

Funzioni Le funzioni sono porzioni di programma riutilizzabili, che possono essere richiamate quando necessario Una funzione Python può ricevere 0 o più parametri e generare 0 o più output Differenza tra funzioni Python e funzioni C C - Le funzioni possono ritornare al più un risultato - Occorre dichiarare il tipo dei parametri e del risultato - Se necessario o lo si desidera, è possibile definire un prototipo Python - Le funzioni possono ritornare più risultati - Non occorre dichiarare i tipi dei parametri ed il tipo di risultato - Le funzioni vengono definite/ridefinite dinamicamente: no prototipi 54

Definizione e chiamata di una funzione Per definire una funzione si utilizza la parola chiave def seguita dal nome della funzione e dai nomi degli input (attenzione ai : finali ed all indentazione del codice!): La chiamata di funzione si esegue specificando il nome della funzione seguita degli eventuali valori di input NOTA: al momento della chiamata, la funzione deve essere stata definita 55

Passaggio di parametri - esempi Qual è l output? 56

Passaggio di parametri - esempi 2) Il valore di var viene copiato in a 3) modifica del valore di a 1) var assume il tipo int Qual è l output? 57

Passaggio di parametri - esempi Qual è l output? 58

Passaggio di parametri - esempi 2) a prende il riferimento di var 3) modifica all oggetto a cui a si riferisce 1) var assume il tipo list Qual è l output? 59

Passaggio di parametri - esempi Qual è l output? 60

Passaggio di parametri - esempi 2) a prende il riferimento di var 3) a riceve il riferimento di una nuova lista 1) var assume il tipo list Qual è l output? 61

Funzioni: ritornare i risultati Per ritornare un risultato, è necessario utilizzare la parola chiave return separando i valori ritornati da virgola 62

Introduzione alle classi in Python

Classi Le classi sono delle strutture dati il cui scopo è quello di contenere variabili di tipo diverso e funzioni utili a fornire funzionalità relative ad un certo dato che si vuole rappresentare A differenza delle struct presenti in C, le classi possono contenere anche funzioni Una istanza di una classe si chiama oggetto C Python Dichiarazione di variabili o funzioni 64

Namespace Quando si crea una classe (vale anche per le funzioni), le variabili/funzioni che si dichiarano risiedono all interno dello spazio dei nomi (namespace) generato per quella classe/funzione Il namespace è un mapping da nomi a oggetti (simile ad un dizionario) che permette di invocare gli attributi e funzioni definite all interno di quel namespace Ad esempio, quando parte l interprete Python, alcune funzioni sono già presenti all interno del namespace iniziale, come print() E possibile aggiungere funzioni/attributi e altri namespace ad uno namespace tramite il comando import 65

Scope Lo scope è una regione testuale di un programma Python in cui è possibile invocare direttamente attributi/funzioni di un namespace Attributi/funzioni di una classe possono essere chiamati in modo diretto solo all interno della classe stessa, mentre, da fuori, è necessario usare un oggetto della classe per chiamarli (tramite l utilizzo del. ) All interno di uno scope, è possibile anche ridefinire attributi/funzioni definite in scope più esterni 66

Esempio var globale var ridefinita da test_scope Tramite global, test_scope modifica var 67

Definizione classe Per definire una classe, si usa la keyword class: class nomeclasse: All interno della definizione della classe, si possono dichiarare attributi e funzioni Il parametro self serve per indicare le variabili/funzioni definite dentro la classe, dall interno della classe stessa Creazione oggetto self non va passato durante l invocazione della funzione 68

Funzione init E possibile definire all interno della classe una funzione speciale chiamata init che serve per inizializzare gli attributi della classe durante la sua creazione Non è necessario che gli attributi siano già stati dichiarati a e b non erano già stati dichiarati I valori di a e b vanno passati durante la creazione dell oggetto 69

Ereditarietà Una classe può essere creata a partire da un altra classe già esistente e più generica La nuova classe eredita tutti gli attributi e funzioni definite nella classe padre L ereditarietà serve per specializzare una classe rispetto ad una classe generica Per ereditare da una classe padre, la sintassi è: class classefiglio(classepadre): Python supporta anche l ereditarietà multipla con la seguente sintassi: class classefiglio(classepadre1, classepadre2, classepadre3): 70

Esempio Classe da cui si eredita pass serve per non dover specificare l implementazione di una classe, funzione, if ecc. 71

Overriding L overriding si usa per ridefinire, all interno della classe figlio, funzioni che sono state già definite dalla classe padre, in modo da renderle più specifiche per il figlio Per eseguire l overriding, basta ridefinire una funzione usando lo stesso nome Di solito si esegue l overriding del costruttore init 72

Esempio Overriding della funzione init La funzione printval appartiene solo a classefiglio, non può essere chiamata da classepadre 73

File in Python

File Python fornisce varie funzionalità per operare su file In particolare, permette di: Aprire, Leggere, Scrivere, Chiudere file La documentazione per l utilizzo di funzioni di I/O è disponibile qui: https://docs.python.org/3/tutorial/inputoutput.html 75

Funzioni su file Apertura file f = open(filename, mode) Nome del file Modalità di apertura: r : lettura w : scrittura (elimina il precedente contenuto) x : crea un nuovo file per la scrittura a : scrive in coda b : modalità binaria t : modalità testuale + : apre un file per aggiornarlo Chiusura file f.close() 76

Funzioni su file Lettura file out = f.read(size) out = f.readline() Legge size caratteri Se omesso, legge fino alla fine del file Scrittura file f.write(stringa) Legge una riga del file Scrive una stringa su file E quindi necessario convertire i dati in stringhe per scriverli 77

Funzioni su file Posizione corrente nel file out = f.tell() Restituisce la posizione corrente all interno del file Cambiare posizione nel file f.seek(offset, da_dove) Offset: spiazzamento di caratteri rispetto ad un punto di riferimento da_dove: punto di riferimento Se 0: inizio file (valore di default) Se 1: posizione corrente Se 2: fine file 78

Esempio file Se il file non è aperto in modalità binaria, la funzione seek può avere come punto di riferimento solo l inizio del file 79

Link utili Sito hackathon http://xph.necst.it Documentazione di Python 3 https://docs.python.org/3.4/ Manuale gratuito di Python 3 http://www.diveintopython3.net Codecademy corso interattivo di Python https://www.codecademy.com/learn/python Documentazione di Pynq http://www.pynq.io/documentation.html Documentazione di NumPy http://www.numpy.org Documentazione di matplotlib http://matplotlib.org 80