vuoi
o PayPal
tutte le volte che vuoi
Python
linguaggio interpretato, dinamico (non vengono specificati i tipi delle variabili), di alto livello
istruzioni eseguite nell’ordine in cui appaiono
indentazione
operatori
per assegnare variabili
= per separare comandi
; divisione intera
// per numeri complessi
import cmath
potenza
** resto
%
Precedenza degli operatori: , , , , , ,
** * / // + - %
variabili e tipi è come a ← b + c
a = b + c
stampa il tipo di variabile
type()
il loro nome non può iniziare con un numero
sensibili al maiuscolo
per nomi delle classi
CamelCase per nomi delle funzioni
under_score
Comandi e linguaggi 2
oggetti
sempre passati per referenza
stringhe
f-strings
f"[text+functions]
mettono insieme stringhe e variabili
funzioni: input/output
definizione
scopo
liste
documentare per uso successivo
passaggio per referenza e per valore
si possono mettere valori predefiniti
(!) evitare variabili globali
cicli while
for : cicla una lista di elementi, valore start incluso, valore stop
range(start, stop, step)
escluso
liste indici degli elementi partono da 0
mutabili
appendere: aggiungere altre liste, concatenazione
slicing: sottoliste
indicizzazione sottoliste: l[i_lista][i_sottolista]
indici negativi per contare a ritroso (partono da -1)
tuple
liste immutabili, ma elementi mutabili
t = (1,2,3)
se una funzione restituisce un parametro, restituisce una tupla
si possono estrarre direttamente dei valori: a,b = (0,1) #nl# print(a+1,b+1
Comandi e linguaggi 3
classi
= oggetti = tipi generici
possono contenere dati o funzioni
consentono ridefinizione degli operatori
: costruttore che crea istanza di una classe con attributi di essa le
__init__(self, x,y)
coordinate con referenza
x,y self
referenze diverse possono contenere dati diversi
istanza: variabile che contiene referenza ad una classe
attributi: dati contenuti in ogni istanza
metodi: funzioni interne alle classi, possono accedere agli attributi
costruttori
metodi speciali: ci si può fare operator overloading
per accedervi
istanza.attributo
per modificare output (es: non andare a capo ad ogni output)
end='stringa'
input()
id()
operatore che rende visibile identità (indirizzo di memoria) degli oggetti
id delle liste rimangono gli stessi, ma non quelli degli elementi
Comparazioni aritmetiche e logiche
basate sull’identità dell’oggetto
,
is is not
, : appartenenza ad una lista
in not in
commenti iniziano con #
len salva l’argomento come stringa
input()
file , e flag di C
open close
per non chiudere file esplicitamente
with
Librerie per vedere comandi in una libreria
library.[tab]?]
Comandi e linguaggi 4
per visualizzare tutti i comandi di una libreria
dir(library)
ignorare comandi con __command__ ⇒
stesse funzioni possono essere definite in modo diverso in librerie diverse
NO from library import command
SI import #library# as #lb#
numpy
Numerical Python, open source
: è un alias di
import numpy as np np numpy
forza il limite di tipo di dati
dtype
evita cicli for
ridefinisce funzioni matematiche per lavorare su vettori
operazioni element-wise: agiscono su singoli elementi
+,-,/,*,**
sue funzioni operano su array, su dati di tipo fissato
array
più veloci delle liste
possono essere multidimensionali
attributi : numero tot di elementi
size
ndim : lista con di ogni dimensione
shape size
, : legge e scrive file di testo in formato riga-colonna
leadtxt savetxt
uso degli assi
matrice di zeri np.zeros()
sys crea una lista con tutti i comandi scritti nella riga corrente come stringhe
script
si può importare nel compitino
math
è uno statement, non una funzione
return numero in formato esponenziale
numero:.[n]e
codici snippet: brevi celle
Comandi e linguaggi 5
C linguaggio compilato
estensioni: ,
.c .h
file : eseguibile con istruzioni in esadecimale in linguaggio macchina
.x
compilatore: (GNU C Compiler)
gcc
main()
preprocessore direttiva del preprocessore (= in Python)
#include <> import
legge comandi che iniziano con #
commenti
// per separare ogni comando
;
case sensitive
NB: indentare
è preferibile mettere sulla stessa riga di definizione della funzione
{
variabili
occorre sempre specificare il tipo (linguaggio tipizzato)
char
int
(!) : non usarlo
float
double
modificatori
blocco di codice limitato da {}
promozione del tipo
operatori meglio di
a++ ++a
printf("numero=%d", num);
%d //stampa intero
%lf //stampa double
aggiungi nel programma slide 17 ed eseguilo
printf
: referenza
&
Comandi e linguaggi 6