Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Guida Python 3.0 - Dispensa, Dispense di Fondamenti di informatica

Guida Python 3.0 - Dispensa illustrata

Tipologia: Dispense

2019/2020

Caricato il 06/12/2020

roberto-lamuraglia
roberto-lamuraglia 🇮🇹

4.8

(33)

21 documenti

1 / 114

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Python 3
01/02/2014 release #1.00
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Anteprima parziale del testo

Scarica Guida Python 3.0 - Dispensa e più Dispense in PDF di Fondamenti di informatica solo su Docsity!

  • Python
    • 01/02/2014 release #1.

La Traduzione:

Guida introduttiva a Python 3

Python è un potente linguaggio di programmazione facile e divertente da imparare. Possiede strutture di dati di alto livello molto potenti e semplici da maneggiare utilizzando un' approccio object-oriented cioè orientato agli oggetti. Inoltre la sua sintassi è elegante ed ha la gestione dei tipi dinamica unitamente alla sua natura di tipo interprete, tutto questo rende Python un linguaggio ideale per lo scripting e lo sviluppo rapido di applicazioni in molte aree sulla maggior parte delle piattaforme. L'interprete Python possiede un'ampia libreria standard liberamente disponibile in formato sorgente o in forma binaria per tutte le principali piattaforme disponibili sul sito Web di Python, http://www.python.org/, che possono essere utilizzate e distribuite liberamente. Lo stesso sito contiene anche collegamenti a molti moduli liberi prodotti da terzi per Python, programmi strumenti e documentazione aggiuntiva. L'interprete di Python è facilmente estendibile permette di aggiungere nuove funzioni e tipi di dati implementati in C o C + + (o altri linguaggi richiamabili da C). Esso è adatto anche come linguaggio di estensione per applicazioni personalizzabili. Questa guida, introduce informalmente il lettore ai concetti base e alle caratteristiche del linguaggio e di sistema. Aiuta ad utilizzare l'interprete in modo pratico per esperienza alla mano con tutti gli esempi pratici descritti in modo da poterla utilizzare anche senza l'utilizzo di una connessione. Per una descrizione degli oggetti standard e dei suoi moduli, consultare la libreria standard di Python. The Python Standard Library fornisce una definizione più formale e dettagliata del linguaggio. Per scrivere estensioni in C o C + +, fare riferimento a The Python Language Reference. Inoltre ci sono moltissimi libri in lingua inglese ed alcuni in lingua italiana di ottimo livello per poter approfondire la sua conoscenza con tecniche altamente professionali. Altri importanti riferimenti si trovano a questi link: Extending and Embedding the Python Interpreter e Python/C API Reference Manual. Questa guida, non intende essere esaustiva e coprire ogni singola caratteristica, o anche tutte le funzionalità di uso comune. Tende invece a introdurre molte fra le caratteristiche più notevoli di Python e vi darà una buona idea sul gusto e stile del linguaggio. Dopo averla letta, sarete in grado di leggere e scrivere moduli e programmi e sarete pronti ad imparare di più sui vari moduli della libreria Python descritta in in The Python Standard Library. Vale inoltre la pena dare un'occhiata al Glossary.

  • 5.3. Tuple e Sequenze
  • 5.4. Insiemi o Sets
  • 5.5. Dizionari
  • 5.6. Tecniche di Ciclo
  • 5.7. Approfondimento sulle condizioni
  • 5.8. Confronto Di Sequenze e Altri Tipi
    1. Moduli
  • 6.1. Ancora Sui Moduli
  • 6.1.1. Eseguire Moduli Come Script
  • 6.1.2. Il Modulo Ricerca Path
  • 6.1.3. Files Python “Compilati”
  • 6.2. Moduli Standard
  • 6.3. La Funzione dir()
  • 6.4. I Packages o pacchetti
  • 6.4.1. Importazione * From Da Un Package
  • 6.4.2. Referenze Intra-package
  • 6.4.3. Packages in Directory Multiple
    1. Input e Output
  • 7.1. Formattazione Avanzata dell'Output
  • 7.1.1. Formattazione Stringhe Classica
  • 7.2. Lettura e Scrittura File
  • 7.2.1. Metodi dell' Oggetto File
  • 7.2.2. Salvare strutture di dati con json
      1. Errori ed Eccezioni
  • 8.1. Errori di sintassi
  • 8.2. Eccezioni
  • 8.3. Trattamento delle Eccezioni
  • 8.4. Lancio delle Eccezioni
  • 8.5. Eccezioni Definite Dall'Utente
  • 8.6. Definizione dell'Azione di Pulizia (Clean-up)
  • 8.7. Azioni Predefinite di Pulizia (Clean-up)
    1. Classi
  • 9.1. Considerazioni Circa i Nomi e Gli Oggetti
  • 9.2. Spazio dei Nomi e Visibilità in Python
  • 9.2.1. Esempi di Ambiti e Spazio Dei Nomi
  • 9.3. Un Primo Sguardo alle Classi
  • 9.3.1. Sintassi nella Definizione di Classe
  • 9.3.2. Oggetti Classe
  • 9.3.3. Instanze di Oggetti
  • 9.3.4. Metodi degli Oggetti
  • 9.4. Note Casuali
  • 9.5. L'Ereditarietà
  • 9.5.1. Ereditarietà Multipla
  • 9.6. Variabili Private
  • 9.7. Varie
  • 9.8. Le Eccezioni Possono Essere Anche Classi
  • 9.9. Iteratori
  • 9.10. Generatori
  • 9.11. Generatore di Espressioni
    1. Panoramica Sulle Librerie Standard
  • 10.1. Interfaccia al Sistema Operativo
  • 10.2. File Jolly
  • 10.3. Argomenti della Linea di Comando
  • 10.4. Reidirizzamento Output degli Errori e Terminazione Programma
  • 10.5. Corrispondenza di Stringhe
  • 10.6. Matematica
  • 10.7. Accesso a Internet
  • 10.8. Date e Tempo
  • 10.9. Compressione Dati
  • 10.10. Misurazione delle Prestazioni
  • 10.11. Controllo Qualità
  • 10.12. Tutto compreso
    1. Panoramica Sulle Librerie Standard Parte II
  • 11.1. Output Formatting
  • 11.2. Modellazione
  • 11.3. Lavorare con i Data Record Layouts Binari
  • 11.4. Multi-threading
  • 11.5. Logging
  • 11.6. Referimenti deboli
  • 11.7. Strumenti per Lavorare con le Liste
  • 11.8. Decimal Floating Point Arithmetic
    1. E Adesso?
    1. Input ed Editing Interattivo Sostituzioni e Cronologia
  • 13.1. Editare le Linee
  • 13.2. Sostituzione cronologica
  • 13.3. Tasti Collegati
  • 13.4. Alternative all'Interprete Interattivo Predefinito
    1. Aritmetica in Virgola Mobile: Problemi e Limiti
  • 14.1. Errori di Rappresentazione

Python è un linguaggio interpretato, ciò significa che è possibile risparmiare molto tempo durante lo sviluppo del programma, perché non è necessaria la continua compilazione e conseguente linkaggio. L'interprete può essere utilizzato interattivamente il che lo rende facile per sperimentare le caratteristiche proprie, scrivere programmi usa e getta per testare funzioni durante lo sviluppo di un programma principale. Inoltre è anche un'utile calcolatrice. Python consente ai programmi di essere scritti in modo compatto e di essere di facile lettura in quanto obbliga a scriverli in un certo modo. I programmi scritti in Python sono in genere molto più brevi dei programmi equivalenti C C + + o Java, per diverse ragioni fra cui:

  • I tipi di dati di alto livello consentono di esprimere operazioni complesse anche con una singola istruzione;
  • Le istruzioni vengono raggruppate tramite indentazione anziché usare parentesi iniziale e finale o blocchi tipo INIZIO BLOCCO – FINE BLOCCO;
  • Non è necessario dichiarare alcuna variabile. Nota: Quest'ultima caratteristica, farà storcere il naso ad alcuni programmatori specialmente di provenienza C C++ e Java. Ma come vedremo più avanti, la richiesta di scrittura di codice è talmente minore rispetto ad altri linguaggi per esempio da minimizzare la questione. Inoltre essendo fortemente dinamico, usa un' approccio totalmente diverso da altri linguaggi (argomento complesso che sarà trattato più avanti) Python è estendibile: se sapete programmare in C è facile aggiungere una nuova funzione o un modulo pre costruito per l'interprete, sia per eseguire operazioni critiche alla massima velocità, o per collegare programmi Python a librerie che possono essere disponibili solo in forma binaria (ad esempio librerie grafiche proprietarie o di sistema). Una volta che siete diventati davvero pratici, è possibile collegare l'interprete Python in un'applicazione scritta in C e usarlo come linguaggio di estensione o di comando per tale applicazione. Molti si domanderanno perché si chiami Python! Non ha nulla a che vedere con i serpenti, il suo autore Guido Van Rossum è un'appassionato della serie televisiva di sketch “Monty Python". Fare riferimenti alle comiche dei Monty Python nella documentazione è permesso, non solo ma è incoraggiato! (l'uso della parola spam ad esempio è veramente ossessiva (sarà perché la carne in scatola non mi fa impazzire, ma tant'è...) Ora che sarete senz'altro entusiasti di Python, vi consigliamo di esaminare in maggior dettaglio il linguaggio e il suo ambiente. Dal momento che il modo migliore per imparare una linguaggio è quello di usarlo, questa guida vi invita a giocare con l'interprete Python ed ad eseguirne gli esempi. Nel prossimo capitolo, verranno spiegati i meccanismi per utilizzare l'interprete. Si tratta di informazioni piuttosto banali, ma essenziali per provare gli esempi mostrati successivamente. Il resto della guida, introduce varie caratteristiche di Python attraverso esempi iniziando con semplici espressioni, istruzioni e tipi di dati, attraverso funzioni e moduli, ed infine, toccando concetti avanzati come le eccezioni e le classi definite dall'utente ecc.

2. Usare l'interprete di Python.

2.1. Invocare l'interprete.

Su sistemi UNIX/LINUX: L'interprete Python su una macchina Unix/Linux, è generalmente installato in /usr/local/bin/python3.x (la x specifica il particolare numero di versione) su quelle macchine dove è disponibile; mettere /usr/local/bin nel percorso di ricerca della shell Unix/Linux rende possibile avviarlo digitando il comando: python Poiché la scelta della directory in cui risiede l'interprete è un'opzione di installazione, è possibile installare Python in altre posizioni che potete decidere da soli o con l'amministratore del sistema. (Ad esempio, /usr/local/python è una scelta piuttosto popolare.) su sistemi WINDOWS: Su macchine Windows, l'installazione di Python è di solito collocata in C:\Python3x, anche se è possibile modificare la posizione in fase di installazione. Per aggiungere questa directory al file di path, è possibile digitare il seguente comando nel prompt dei comandi in un terminale DOS: set path=%path%;C:\python3x Digitando un carattere di end-of-file ( Control-D su Unix/Linux, Control-Z su Windows) al prompt primario fa sì che l'interprete esca con uno stato di uscita uguale zero. Se questo non funziona, si può uscire l'interprete digitando quit(). E' possibile inoltre far convivere quante versioni di Python si desidera senza che entrino in conflitto far di loro. Gli editor di linea per l'interprete di solito non hanno funzionalità molto sofisticate. Su Unix/Linux, chiunque abbia installato l'interprete può avere abilitato il supporto per la libreria GNU readline, che aggiunge più elaborate funzioni di editing e una cronologia interattiva. Forse il controllo più veloce per vedere se la modifica della riga di comando che si sta scrivendo è supportata è Control-P quando si ottiene il prompt di Python. Se si ottiene un beep, allora si ha l'editing della riga di comando, fare riferimento all'appendice Interactive Input Editing and History Substitution per un'introduzione sull'uso dei tasti. Se ciò non sembra funzionare o se viene visualizzato ^P allora l'editing della riga di comando non è disponibile, sarete solo in grado di utilizzare backspace per rimuovere i caratteri dalla riga corrente. L'interprete di Python, opera all'incirca come una shell Unix/Linux, quando viene chiamato con lo standard input connesso a un dispositivo terminale (la tastiera) legge ed esegue i comandi in modo interattivo, se Python viene chiamato e come argomento, viene passato un file di script, allora Python si avvia eseguendo lo script del file passato. Un secondo modo di lanciare l'interprete è python -c command [arg] ..., che esegue l'istruzione/i al comando, analogo a -C dell'opzione della shell. Poiché istruzioni Python contengono spesso spazi o altri caratteri che sono speciali per la shell, di solito è consigliato l'uso preventivo di apici

modalità interattiva ritorna al prompt primario. Quando invece l'input è venuto da un file, esso esce con uno stato diverso da zero dopo aver stampato la traccia dello stack. (Eccezioni gestite da una clausola except in un'istruzione try non sono errori in questo contesto.) Alcuni errori sono incondizionatamente fatali e provocano un'uscita forzata con un valore diverso da zero, questo vale per le incoerenze interne e alcuni casi tipo esaurimento della memoria disco ecc. Tutti i messaggi di errore vengono scritti nel flusso di errore standard-output tipicamente il monitor o dove specificato. Digitando il carattere di interruzione (di solito Ctrl-C o CANC ) al prompt primario o secondario si cancella l'input e ritorna al prompt primario ( >>> ). [2] Provocare un'interruzione forzata mentre un comando è in esecuzione solleva l'eccezione KeyboardInterrupt, che può essere gestita tramite un'istruzione try.

2.2.2. Scripts Python Eseguibili.

Sui sistemi Unix/Linux in stile BSD, gli script Python possono essere direttamente eseguibili, come script di shell inserendo la riga: #!/usr/bin/env python3.x (supponendo che l'interprete si trovi nel PATH dell'utente) all'inizio dello script e dando al file il permesso di esecuzione. I caratteri #! devono essere i primi due caratteri del file. Su alcune piattaforme, questa prima riga deve terminare con una linea finale in stile Unix (' \n ' cioè il terminatore di linea significante 'nuova linea '), non tipo Windows (' \r\n ' cioè il terminatore di linea significante ' ritorno del carrello più nuova linea '). Va notato che il carattere ' # 'o hash, o carattere cancelletto, viene utilizzato anche per descrivere un commento in Python. Uno script per poter essere eseguito, deve avere un permesso come tale. E possibile renderlo eseguibile utilizzando il comando chmod : $ chmod +x myscript.py Sui sistemi Windows, non vi è alcuna nozione di " modo eseguibile ". Il programma di installazione di Python associa automaticamente l'estensione .Py con python.exe in modo che un doppio clic su un file Python verrà eseguito come uno script. L'estensione può anche essere. PYW , in questo caso, la finestra di console che appare normalmente viene soppressa.

2.2.3. Codifica del codice sorgente.

Per impostazione predefinita, i file sorgenti Python vengono trattati come codificati in UTF-8. Con tale codifica, è possibile rappresentare la maggior parte delle lingue del mondo. Essi possono essere utilizzati contemporaneamente nelle stringhe letterali come identificatori e commenti. Si consiglia comunque di utilizzare solo caratteri ASCII per gli identificatori, ed è buona norma utilizzare solo questo tipo di caratteri se vogliamo che il nostro codice sia veramente portabile e di utilizzare UTF-8 solo per stringhe di testo per i messaggi nella specifica lingua. Comunque per visualizzare correttamente tutti i caratteri, il vostro editor deve riconoscere che il file è UTF-8 , e deve utilizzare un font che supporta tutti i caratteri utilizzati dal file. È anche possibile specificare una codifica differente per i file sorgente. Per fare questo, mettere ancora una riga di commento speciale subito dopo la linea #! per definire la codifica del file di

origine: **# * coding: encoding *** Con questa dichiarazione, tutto nel file sorgente verrà considerata come avente la codifica encoding invece di UTF-8. L'elenco dei possibili codifiche può essere trovata nella Python Library Reference, nella sezione codecs. Ad esempio, se il vostro editor preferito non supporta file codificati UTF-8 e insiste sull'utilizzo di qualche altra codifica, è possibile per esempio scrivere Windows-1252, per ottenere il risultato: **# * coding: cp1252 *** Ciò utilizzerà tutti i caratteri di caratteri nei file sorgente in Windows-1252. Il commento speciale codifica deve essere nella prima riga se è da solo o nella seconda linea se presente quella di path all'interno del file.

2.2.4. Il File Di Avvio In Modalità Interattiva.

Quando si usa Python interattivamente, è spesso comodo che alcuni comandi standard vengano eseguiti ogni volta che l'interprete viene avviato. È possibile farlo impostando una variabile di ambiente denominata PYTHONSTARTUP essa può contenere il nome di un file contenente i comandi di start-up. Questo è simile alla funzione .profile delle shell di Unix/Linux. Questo file viene letto solo nelle sessioni interattive, non quando Python legge comandi da uno script, e non quando /dev/tty è impostata come sorgente dei comandi (altrimenti si comporterebbe come una sessione interattiva). Esso viene eseguito nello stesso spazio dei nomi in cui vengono eseguiti i comandi interattivi, cosicché gli oggetti che definisce o importa possono essere utilizzati senza riserve nella sessione interattiva. È inoltre possibile modificare in questo filele istruzioni sys.ps1 e sys.ps2 che permettono di cambiare i prompt di Python. Se volete leggere un file di avvio addizionale dalla directory corrente, è possibile programmare questo nel file globale di avvio utilizzando il codice tipo os.path.isfile('.pythonrc.py'): exec(open('.pythonrc.py').read()). Se si desidera utilizzare il file di avvio in uno script, deve essere necessariamente nello script: import os filename = os.environ.get('PYTHONSTARTUP') if filename and os.path.isfile(filename): exec(open(filename).read()) Queste impostazioni possono essere utili ma non è necessario che le approfondiate adesso.

2.2.5. La Personalizzazione Dei Moduli.

Python fornisce due modi che consentono di personalizzarli: sitecustomize e usercustomize. Per vedere come funziona, è necessario prima di trovare il percorso della directory site-packages utente.

3.1.1. Numeri.

L'interprete si comporta come una semplice calcolatrice: si può digitare un'espressione ed esso fornirà il risultato. La sintassi delle espressioni è semplice: gli operatori + , - , ***** e / funzionano come nella maggior parte degli altri linguaggi (ad esempio, Pascal o C); parentesi anche nidificate (()) possono essere utilizzati per il raggruppamento e la risoluzione. Per esempio: **>>> 2 + 2 4

50 5* 20 (50 5*6) / 4

8 / 5 # la divisione restituisce sempre un numero in virgola mobile (diversamente da Python 2.x) 1.** I numeri interi (es. 2 , 4 , 20 ) sono di tipo int, quelli con una parte frazionaria (es. 5.0, 1.6) sono di tipo float. Vedremo di più su tipi numerici più avanti nella guida. Divisione (/) restituisce sempre un float. Per ottenere un risultato intero (scartando qualsiasi risultato frazionario) è possibile utilizzare l'operatore // vedere floor division , per calcolare il resto è possibile utilizzare %: **>>> 17/3 #classica divisione restituisce un numero in virgola mobile

17//3 # divisione che scarta la parte decimale 5 17%3 # l'operatore % invece restituisce la rimanenza della divisione 2 5 * 3 + 2 17** Con Python è possibile usare l'operatore ****** per calcolare la potenza di un numero [1]: >>> 5 ** 2 # 5 il quadrato 25 2 ** 7 # 2 elevato alla potenza di 7 128 Il segno di uguale ( = ) viene utilizzato per assegnare un valore a una variabile e non come operatore di confronto (==). Successivamente, nessun risultato viene visualizzato prima del successivo prompt interattivo:

**>>> altezza = 20

larghezza = 5 * 9 altezza * larghezza 900** Se si cercherà di utilizzare una variabile a cui non si sia precedentemente assegnato un valore, si genererà un'errore. >>> n # variabile senza assegnazione Traceback (most recent call last): File "", line 1, in NameError: name 'n' is not defined Python ha un potente supporto per i dati in virgola mobile e operatori di tipo con operandi misti, convertono l' operando intero a virgola mobile: **>>> 3 * 3.75 / 1.

7.0 / 2 3.** In modo interattivo, l'ultima espressione stampata viene assegnata alla variabile _. Ciò significa che quando si utilizza Python come una calcolatrice da tavolo, è un po 'più facile continuare calcoli, ad esempio: **>>> tassa = 12.5 / 100 prezzo = 100. prezzo * tassa

prezzo + _

round(, 2) 113.** 17%3 # l'operatore % invece restituisce la rimanenza della divisione 2 >>> 5 * 3 + 2 17** Con Python è possibile usare l'operatore ****** per calcolare la potenza di un numero [1]: >>> 5 ** 2 # 5 il quadrato 25 >>> 2 ** 7 # 2 elevato alla potenza di 7 128 Il segno di uguale ( = ) viene utilizzato per assegnare un valore a una variabile e non come operatore di confronto (==). Successivamente, nessun risultato viene visualizzato prima del successivo prompt interattivo: >>> altezza = 20 >>> larghezza = 5 * 9 >>> altezza * larghezza 900 Se si cercherà di utilizzare una variabile a cui non si sia precedentemente assegnato un valore, si genererà un'errore. >>> n # variabile senza assegnazione Traceback (most recent call last): File "", line 1, in NameError: name 'n' is not defined Python ha un potente supporto per i dati in virgola mobile e operatori di tipo con operandi misti, convertono l' operando intero a virgola mobile: >>> 3 * 3.75 / 1. 7. >>> 7.0 / 2 3. In modo interattivo, l'ultima espressione stampata viene assegnata alla variabile ****. Ciò significa che quando si utilizza Python come una calcolatrice da tavolo, è un po 'più facile continuare calcoli, ad esempio: >>> tassa = 12.5 / 100 >>> prezzo = 100. >>> prezzo * tassa 12. >>> prezzo + _ 113. >>> round(_, 2) 113. Questa variabile deve essere considerata come a sola lettura da parte dell'utente. Non assegnare esplicitamente un valore ad essa per utilizzare il suo contenuto, bisogna creare una variabile locale indipendente per mascherare la variabile precostituita con il suo comportamento magico.

Oltre a int e float, Python supporta altri tipi di numeri, come Decimal e Fraction. Python ha anche il supporto integrato per i numeri complessi complex numbers , e utilizza il suffisso j o J per indicare la parte immaginaria (es. 3+5j).

3.1.2. Le Stringhe.

Oltre ai numeri, Python può anche manipolare stringhe, che possono essere espresse in vari modi. Esse possono essere racchiuse tra singoli apici ('...') o doppi apici ("...") con lo stesso risultato [2]. il

Usare: Queste [OPZIONI] Visualizza queste righe h ... H hostname ... """) Le stringhe possono essere concatenate (incollate assieme sequenzialmente) con l'operatore + , e ripetuto con ***** : **>>> # 3 volte 'Pippo ', seguito da ' si!'

3 * 'Pippo ' + ' si!' 'Pippo Pippo Pippo si!'** Due o più stringhe letterali (cioè quelle racchiuse tra virgolette) l'una accanto all'altra vengono automaticamente concatenate. >>> 'Py' 'thon' 'Python' Questo funziona solo con i letterali ma non con le variabili o espressioni:

prezzo + _ 113. >>> round(_, 2) 113.** Questa variabile deve essere considerata come a sola lettura da parte dell'utente. Non assegnare esplicitamente un valore ad essa per utilizzare il suo contenuto, bisogna creare una variabile locale indipendente per mascherare la variabile precostituita con il suo comportamento magico. Oltre a int e float, Python supporta altri tipi di numeri, come Decimal e Fraction. Python ha anche il supporto integrato per i numeri complessi complex numbers , e utilizza il suffisso j o J per indicare la parte immaginaria (es. 3+5j). #### 3.1.2. Le Stringhe. Oltre ai numeri, Python può anche manipolare stringhe, che possono essere espresse in vari modi. Esse possono essere racchiuse tra singoli apici ('...') o doppi apici ("...") con lo stesso risultato [2]. il Usare: Queste [OPZIONI] Visualizza queste righe h ... H hostname ... """) Le stringhe possono essere concatenate (incollate assieme sequenzialmente) con l'operatore + , e ripetuto con ***** : >>> # 3 volte 'Pippo ', seguito da ' si!' >>> 3 * 'Pippo ' + ' si!' 'Pippo Pippo Pippo si!' Due o più stringhe letterali (cioè quelle racchiuse tra virgolette) l'una accanto all'altra vengono automaticamente concatenate. >>> 'Py' 'thon' 'Python' Questo funziona solo con i letterali ma non con le variabili o espressioni: >>> prefix = 'Py' prefix 'thon' #non è possibile concatenare una variabile con una stringa. ... SyntaxError: invalid syntax ('un' * 3) 'ium' ... SyntaxError: invalid syntax Se lo scopo è quello di concatenare due variabili, allora dovete usare il segno + : >>> prefix = 'thon' 'Python' Questa caratteristica e spesso usata quando si cerca di spezzare stringhe troppo lunghe: >>> text = ('Mettere più stringhe all'interno di' 'parentesi per unirle.') text 'Mettere più stringhe all'interno di parentesi per unirle.' Le stringhe possono essere indicizzate per cui il primo carattere ha come indice lo 0. Non vi è alcuna distinzione fra caratteri! Semplicemente ognuno rappresenta se stesso:

**>>> word = 'Python'

word[0] # carattere alla posizione 0 'P' word[5] # carattere alla posizione 5 'n'** Gli indici possono essere anche numeri negativi, in questo caso il conteggio inizia da destra: >>> word[1] # l'ultimo carattere 'n' word[2] # penultimo carattere 'o' word[6] # il primo carattere 'P' Si noti che poiché -0 è lo stesso di 0, gli indici negativi partono da -1. Oltre all'indicizzazione, è supportato anche la divisione o slicing (letteralmente 'affettamento'). Mentre l'indicizzazione viene utilizzata per ottenere singoli caratteri, la divisione viene utilizzata per ottenere delle sotto stringhe: prefix 'thon' #non è possibile concatenare una variabile con una stringa. ... SyntaxError: invalid syntax >>> ('un' * 3) 'ium' ... SyntaxError: invalid syntax** Se lo scopo è quello di concatenare due variabili, allora dovete usare il segno + : >>> prefix = 'thon' 'Python' Questa caratteristica e spesso usata quando si cerca di spezzare stringhe troppo lunghe: >>> text = ('Mettere più stringhe all'interno di' 'parentesi per unirle.') >>> text 'Mettere più stringhe all'interno di parentesi per unirle.' Le stringhe possono essere indicizzate per cui il primo carattere ha come indice lo 0. Non vi è alcuna distinzione fra caratteri! Semplicemente ognuno rappresenta se stesso: >>> word = 'Python' >>> word[0] # carattere alla posizione 0 'P' >>> word[5] # carattere alla posizione 5 'n' Gli indici possono essere anche numeri negativi, in questo caso il conteggio inizia da destra: >>> word[1] # l'ultimo carattere 'n' >>> word[2] # penultimo carattere 'o' >>> word[6] # il primo carattere 'P' Si noti che poiché -0 è lo stesso di 0, gli indici negativi partono da -1. Oltre all'indicizzazione, è supportato anche la divisione o slicing (letteralmente 'affettamento'). Mentre l'indicizzazione viene utilizzata per ottenere singoli caratteri, la divisione viene utilizzata per ottenere delle sotto stringhe: >>> word[0:2] # caratteri dalla posizione 0 alla 2 incluse 'Py' word[2:5] # caratteri dalla posizione 0 inclusa a 5 esclusa 'tho' Si noti come l'inizio è sempre incluso, e la fine sempre esclusa. Questo fa in modo che s [: i] + s [i:] è sempre uguale a s : >>> word[:2] + word[2:] 'Python' word[:4] + word[4:] 'Python' Gli indici delle sotto stringhe, hanno valori predefiniti utili; se omesso il primo indice è uguale a zero,

text 'Mettere più stringhe all'interno di parentesi per unirle.'** Le stringhe possono essere indicizzate per cui il primo carattere ha come indice lo 0. Non vi è alcuna distinzione fra caratteri! Semplicemente ognuno rappresenta se stesso: >>> word = 'Python' >>> word[0] # carattere alla posizione 0 'P' >>> word[5] # carattere alla posizione 5 'n' Gli indici possono essere anche numeri negativi, in questo caso il conteggio inizia da destra: >>> word[1] # l'ultimo carattere 'n' >>> word[2] # penultimo carattere 'o' >>> word[6] # il primo carattere 'P' Si noti che poiché -0 è lo stesso di 0, gli indici negativi partono da -1. Oltre all'indicizzazione, è supportato anche la divisione o slicing (letteralmente 'affettamento'). Mentre l'indicizzazione viene utilizzata per ottenere singoli caratteri, la divisione viene utilizzata per ottenere delle sotto stringhe: >>> word[0:2] # caratteri dalla posizione 0 alla 2 incluse 'Py' >>> word[2:5] # caratteri dalla posizione 0 inclusa a 5 esclusa 'tho' Si noti come l'inizio è sempre incluso, e la fine sempre esclusa. Questo fa in modo che s [: i] + s [i:] è sempre uguale a s : >>> word[:2] + word[2:] 'Python' >>> word[:4] + word[4:] 'Python' Gli indici delle sotto stringhe, hanno valori predefiniti utili; se omesso il primo indice è uguale a zero, così se omesso il secondo, viene definito dalla lunghezza della sotto stringa. >>> word[:2] # carattere dall'inizio alla posizione 2 'Py' word[4:] # carattere dalla posizione 4 alla fine 'on' word[2:] # carattere dalla penultima posizione alla fine 'on' Indici fuori intervallo, sono trattati ignorandoli evitando così errori inutili: >>> word[4:42]