Anteprima
Vedrai una selezione di 6 pagine su 23
Appunti Informatica Python (corso 1° anno)  Pag. 1 Appunti Informatica Python (corso 1° anno)  Pag. 2
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Appunti Informatica Python (corso 1° anno)  Pag. 6
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Appunti Informatica Python (corso 1° anno)  Pag. 11
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Appunti Informatica Python (corso 1° anno)  Pag. 16
Anteprima di 6 pagg. su 23.
Scarica il documento per vederlo tutto.
Appunti Informatica Python (corso 1° anno)  Pag. 21
1 su 23
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

VARIABILI IN FUNZIONI

Variabili locali = definite in una funzione/blocco di codice;

Variabili globali = definite al di fuori delle funzioni/blocchi di codice;

Esempio:

balance = 10000

def function(amount):

    global balance #dichiarazione "global" per usare variabili globali in funzioni

    if balance > amount:

        etc…

TOOLKIT = raccolta di funzioni o classi tra loro correlate, aventi l'obiettivo di risolvere un problema specifico; le funzioni di un toolkit possono essere inserite in un file a sé, per poi importarle in qualsiasi programma. Esempio di toolkit è "imgtools" (per la modifica delle immagini).

5. LISTA

LISTA = contenitore che memorizza valori. Esempio:

values = [1, 2, 3, 7, 10]

print(values[3]) # Printa il numero 7 (indice = 3)

Dunque le liste le troviamo nella forma list = [n1, n2, n3…]; elemento della lista = list[i] con i < len(list) - 1 (list[0] ≤ i ≤ len(list)-1), altrimenti dà errore di intervallo.

  • [“out of range”]). Con , siparte a contare gli elementi dal fondo (-1 ultimo, -2 penultimo e così via).
  • SCANSIONE DI UNA LISTA:
for i in range(len(list1)):
    print(i, list1[i]) # Ottengo l’indice e l’elemento relativo della lista
  • Questa scrittura è uguale a quella della funzione enumerate( ):
for (i, element) in enumerate(list1):
    print(i, element)
  • Riferimenti a liste:
list1 = [1, 2, 3, 4, 5]
list2 = list19 DOMIZIO MATTIA
list1[3] = 10
print(list2[3]) # Printa il numero 10
  • OPERAZIONI CON LISTE:
Aggiungere elementi a liste list1.append(element)→
Aggiungere elemento in posizione specifica list1.insert(i, element) [ad ogni insert→ cambiano indici]
Aggiungere tutti gli elementi di una lista ad un’altra: Concatenazione list1 + list2→o list1.extend(list2)o
Cercare elemento in lista list1.index(element) # Dà l’indice della 1^ occorrenza→ dell’elemento nella lista oppure, se non c’è l’elemento

nella lista, da “ValueError”

Eliminare un elemento tramite il suo indice list1.pop(2) [con solo list1.pop( ) si→ elimina l’ultimo]

Eliminare un elemento list1.remove(element)→ Eliminare tutti gli elementi della lista list1.clear( )→ Replicare elementi della lista list1 * n→ Verificare se due liste sono uguali list1 ==list2→ Sommare tutti i valori della lista sum(list1)→ Massimo e minimo di una lista max(list1) / min(list1)→ Ordinare una lista: →secondo l’ordinamento lessicografico crescente list1.sort( ) /o list1.sort(reverse=False) →secondo l’ordinamento lessicografico decrescente list1.sort(reverse=True)o →secondo l’ordinamento crescente, ma creando una nuova lista sorted(list1)oCopiare elementi lista in una nuova lista list2 = list(list1) / list1.copy( )→ Rovesciare l’ordine degli elementi list1.reverse( )→ Porzioni di lista (slice) list[from : to]

(escluso) : step]; se scrivo list1[1 : 4] = [1, 2] → sostituisco i valori della list1 con indice da 1 a 4 (escluso) con i valori 1 e 2 (riducendo anche in questo caso la len(list1)). Scambio di elementi della lista: - element = list1[i] - list1[i] = list1[j] - list1[j] = element tramite le TUPLE (list1[i], list1[j]) = (list1[j], list[i]) # Tupla = (n1, n2, etc...) sono come le liste, ma con parentesi tonde e non possono essere modificate (utili nel return delle funzioni) DA STRINGHE A LISTE (e viceversa): stringa.split(sep, maxsplit=n): restituisce una lista di sottostringhe ottenute suddividendo la stringa ad ogni occorrenza del separatore (sep; se sep è omesso, per default è spazio vuoto). Se maxsplit è specificato, saranno fatte al massimo n separazioni partendo da sinistra; stringa.rsplit(sep, maxsplit=n): come split, ma suddivide la stringa partendo da destra; stringa.splitlines(): come split, ma usa come separatore il '\n',

suddivide quindi la stringa in una lista contenente le singole righe di testo presenti nella stringa;

sep.join(list1): restituisce un’unica stringa contenente tutti gli elementi della list1, separati da sep.

TABELLA (o matrice) = disposizione dei valori costituita da righe e colonne; accedo aglielementi della tabella usando 2 indici (tabella[i][j]); gli elementi adiacenti si trovano ponendogli indici con un +1 o un -1. Esempio di tabella:

10 DOMIZIO MATTIA

for i in range(len(tabella)):

for j in range(len(tabella[i])):

print(tabella[i][j], end=" ")

print()

6. FILE E ECCEZIONI

FILE:

Aprire e chiudere file:

infile = open("input.txt", "r") # Memorizza in variabili i file "input.txt" e "output.txt"

outfile = open("output.txt", "w") # Modalità di apertura: "r" = reading, "w" = writing

# Leggi dati da infile

# Scrivi dati in outfile

infile.close() # Chiudi i file

dopol'elaborazione outfile.close()

Tutte le modalità di apertura di un file:

  • Leggere un file: string = file.readline() restituisce in una stringa la successiva riga di testo dal file (seguita da "\n" se dopo c'è un'altra riga); se è stata raggiunta la fine del file, viene restituita una stringa vuota (""); se il file contiene una riga vuota, readline restituisce "\n" (new line) [vengono restituite solo stringhe, quindi per avere dei numeri vanno convertiti]
  • Scansione di un file riga per riga:
line = infile.readline()
while line != "":
    line = infile.readline()

Scrivere un file: quando un file è stato aperto in modalità di scrittura ("w"), vi si può scrivere del testo con il metodo write("stringa (con eventualmente operatori di formato per i numeri)"):

outfile.write("Hello, World!\n")

⚠ In alternativa, si può scrivere testo in un file con la

funzione print: print(“Hello, World!”, file=outfile) oppure, senza andare a capo, print(“Hello, World!”, end=“”, file=outfile)

Si possono anche scrivere più righe contemporaneamente con il metodo outfile.writelines(righe), che ha come parametro/argomento una lista di stringhe, ovvero le righe, ciascuna delle quali delle avere già scritto il carattere new line (“\n”).

Per aprire un file non nella stessa directory in cui stiamo lavorando, bisogna conoscerne il percorso file (“file path”); inoltre, per scrivere le backslash del percorso, dobbiamo inserirne 2 al posto di 1: infile = open(“c:\\homework\\input.txt”, “r”)

Modificare le righe di un file: line.lstrip() - elimina i caratteri di spaziatura (spazi vuoti, caratteri di tabulazione e new line) partendo da sinistra (se si usa line.lstrip(caratteri), vengono eliminati da sinistra i caratteri) line.rstrip() uguale a

line.lstrip() ma da destra line.strip() uguale ma sia da destra che da sinistra Suddividere le righe di un file in liste:line.split() prende le parole separate da spazi nella riga e le mette in una lista line.split(separatore) uguale ma con un separatore definito (e non lo spazio vuoto) line.split(separatore, maxsplit) maxsplit = massimo di suddivisioni eseguite, generando una lista di len = maxsplit + 1line.rstrip(separatore, maxsplit) come split() ma partendo da destra (dalla fine) line.splitlines() suddivisa usando come separatore della riga new line (“\n”) Questi metodi di suddivisione delle stringhe sono specialmente utili nei testi strutturati, consequenze di dati composti (record di dati) contenenti ciascuna più dati diversi sulla stessa riga(es. massa-volume-superficie)Leggere i caratteri di una stringa:stringa = file.read() legge l’intero contenuto del file, restituendolo come una singolastringa; se invece
import re file = open("nome_file.txt", "r") # legge i successivi n° caratteri dal file e li restituisce in una stringa char = file.read(n) # restituisce una stringa vuota se abbiamo raggiunto la fine del file if char == "": char = "“”" # legge tutto il file come una lista di stringhe (una stringa per ogni riga del file) lines = file.readlines() # utilizza il modulo re per suddividere la stringa in base a un'espressione canonica splitline = re.split("espressione_canonica", line) file.close()
"[^A-Za-z]+"tokens = split(regex, line) # ["http", "python", "org"]
Carattere = valore compreso tra 0 e 255; ci sono vari modi per codificarli, uno è l’UTF-8 ecodifica ciascun carattere come una sequenza di byte (da 1 a 4); se dobbiamo elaborare filecon caratteri speciali (cinesi, caratteri accentati o simboli speciali per esempio), dobbiamousare la codifica UTF-8:
infile = open("input.txt", "r", encoding=“utf-8”)
outfile = open("output.txt", "w", encoding=“utf-8”)
Elaborare file in formato CSV: la maggior parte delle applicazioni che elabora fogli di calcoloarchivia i dati in un file con un proprio formato, ma per fortuna sono anche in grado di copiarei dati in un formato portabile, chiamato CSV (Comma-Separated Values). Esempio di12 DOMIZIO MATTIAprogramma che legge dati da un file csv che contiene informazioni su film (nome, anno, regia,produzione, attori), ignora i dati
from csv import reader, writer # Libreria csv infile = open("movies.csv") csvReader = reader(infile) # Stessa funzione del open(file, "r") ma per file csv outfile = open("filteredMovies.csv", "w") # Stessa funzione del open(file, "w") ma per file csv csvWriter = writer(outfile) headers = ["Name", "Year", "Actors"] # Scrivo nel file le intestazioni delle colonne csvWriter.writerow(headers) # questo modulo aggiunge nel file una lista scritta su una riga next(csvReader) # Nella lettura ignora la riga delle intestazioni for
Dettagli
Publisher
A.A. 2021-2022
23 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher koisuji di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Torino o del prof Bernardi Paolo.