Python

Sintassi

Variabili

I principali tipi di variabili utilizzati in python sono i seguenti:

Str = stinghe 
Int = intero
Float = numeri con virgola
Bool = True o False

- In Python, quando si dichiara una variabile, va sempre valorizzata a differenza di altri linguaggi di programmazione.

- Quando si dichiara la variabile non serve specificare che tipo di variabile è perchè la riconosce in automatico Python, es:
x = 1 #intero
y = 'ciao' #stringa
z = 4.5 #decimale
a = True #booleano
Per eseguire un commento in python dobbiamo utilizzare # . Non si può commentare su più righe come in altri linguaggi di programmazione ma bisogna utilizzare # davanti ad ogni riga che si vuole commentare.

Operazioni Aritmetiche

OPERATORI ARITMETICI DI BASE

+ # somma
- # sottrazione
/ # divisione
% # modulo ovvero prendo il resto
** # potenza es 5 ** 2
// # divisione con risultato arrotondato per difetto

OPERATORI ASSEGNAMENTO

= #assegno valore
+= #sommo alla variabile un numero es: x+=2 ovvero x = x+2
== #comparazione

METODI MIN, MAX,ABS,POW
x=min(4,6,2) #trova il minimo
x=max(4,6,2) #trova il massimo
x=abs(-5) #valore assoluto, ovvero darà -5
x=pow(4,6) #elevazione 4 alla sesta

Stringhe

Sintassi

Le stringhe sono un tipo di dato dove andiamo ad inserire del testo es:

x = 'ciao'
y = "gino"
Il testo in una stringa puo essere messo sia tra ' ' che tra " "

- Per stampare a video una stringa, basterà utilizzare il comando print().
x = 'Giovanni'
print(x)

- Se utilizzo i ' ' o " ", la stringa può essere utilizzata solo con il testo nella stessa riga, invece se voglio fare un testo più articolato e andare a capo, devo utilizzare """    """.
x = """ciao gigi
come stai
io bene"""

Stringhe come array

Le stringhe possono essere utilizzate come Array, infatti Python, senza la corretta libreria non possiede gli Array.


- Dobbiamo sapere che si inizia a contare i caratteri di una stringa dal numero 0 (indice), es:
x = 'ciao' # c=0 i=1 a=2 o=3
 Non bisogna confondere il partire a contare con il numero 0 dal numero di caratteri della stringa, infatti la stringa precedente ha in totale 4 caratteri.

- Se volessi stampare a video uno specifico carattere della stringa devo utilizzare sempre il comando print(), ma con la posizione del carattere. es: 
x = 'giovanni'

print(x[0]) # visto che stampo il carattere con uindice 0 avrò come risultato la g

- Se volessi stampare a video la lunghezza basta urilizzare in aggiunta al comando print(), il comando len. es:
x = 'gianna'

print(len(x)) #come risultato avrò 6 visto che len da il numero di caratteri e non l'indice


PRENDERE PARTI DI STRINGA

In Python possiamo dire di prendere della parti dalla nostra stringa, dando degli intervalli di indice inseriti tra le parentesi []. es:
x = 'pinocchio'

print(x[1:5]) #stampiamo i caratteri della stringa x compresi tra indice 1 e 5 (5 escluso). Il risultato sarà inoc

Il secondo indice che mettiamo nelle [], non è compreso nella stampa. Quindi se ho [2:8], stamperò i caratteri dal indice 2 al 7.


Posso stampare anche un carattere partendo con l'indice dal fondo, basta inserire nelle [] il numero al contrario e negativo. es:
x = 'bepi'
print(x[-4])#stampero il carattere e. perchè la i=-1, la p=-2 e l'altra p=-3 
Quando vado a stampare un carattere, partendo dal fondo, l'indice non parte da 0 ma da -1.

Metodi per le stringhe
Vediamo alcuni metodi che ci offre python per le stringhe
x=' ciao '
y="sono luca"

print(x.upper())#stampa la stringa in maiuscolo

print(x.lower())#stampa la stringa in minuscolo

print(x.strip())#stampa togliendo gli spazzi prima e dopo es:(da " ciao " a "ciao")

print(x.replace("o","w"))#scambia tutte le O con la W


print(x+y)

Concatenare stringhe con numeri


x = 23
y = 1.70
prova = "ciao mi chiamo Emanuele, peso {}, altezza{}" #le graffe servono per concatenare numeri alla stringa

print(prova.format(x, y)) #comando per stampare numeri su stringa

Se nella stringa devo mettere del testo tra le virgole dobbiamo fare l'escape dei caratteri, dobbiamo utilizzare  \ prima delle virgolette

Costrutti

IF
Per creare l'IF in python bisogna utilizzare la seguente sintassi:
if condizione da verificare :
    comadi da eseguire se la condizione è verificata  #importante identazione altrimenti darà errore

Il costrutto IF serve a fare eseguire una parte di codice se si verifica una determinata condizione scelta dal utente

ESEMPIO PRATICO
x = 5
y = 13

if x<13:
   print(x)

# se x è minore di 13 allora stampo a video la x 


ELSE
 Per creare l'ELSE in python bisogna utilizzare la seguente sintassi dopo aver creato un IF:
if condizione da verificare :
    comadi da eseguire se la condizione è verificata  #importante identazione altrimenti darà errore
else:
    comadi da eseguire se non viene verificata la condizione precedente  #importante identazione altrimenti darà errore

ELSE è come dire "altrimenti", ovvero se si verifica la condizione allora eseguo il cosice del IF ALTRIMENTI  eseguo il codice che metto dentro else

ESEMPIO PRATICO
x = 5
y = 13

if x<13:
   print(x)
else:
   print(y)


# se x è minore di 13 allora stampo a video la x altrimenti stampo a video la y
 

ELIF

  Per creare l'ELSE IF in python bisogna utilizzare la seguente sintassi dopo aver creato un IF:
if condizione da verificare :
    comadi da eseguire se la condizione è verificata  #importante identazione altrimenti darà errore
elif condizione da verificare:
    comadi da eseguire se viene verificata la condizione precedente  #importante identazione altrimenti darà errore

ELIF è come dire "altrimenti se", ovvero se si verifica la condizione allora eseguo il cosice del IF, ALTRIMENTI  SE VERIFICATA LA SECONDA CONDIZIONE eseguo il codice che metto dentro elif.

ESEMPIO PRATICO
x = 5
y = 13

if x<13:
   print(x)
elif x=13:
   print(y)


# se x è minore di 13 allora stampo a video la x altrimenti se x=13 stampo a video la y

Ricorda che si possono concatenare più elif, e in fine si può anche mettere un else

GPIO

Libreria
Per utilizzare i pin di raspberry chiamati GPIO, dobbiamo importare una libreria
import RPi.GPIO as GPIO  #importo libreria RPi.GPIO e do il nome GPIO

Se dobbiamo utilizzare il Delay dobbiamo importare un'altra libreria
import time #libreria per delay

Una volata importata le librerie possiamo utilizzare i vari comandi per pilotare le GPIO 

Comandi GPIO
Per prima cosa andiamo a dire a python che utilizziamo lo schema BCM, ovvero i numeri che diremo dei pin sono quelli scritti nello schema di Raspberry e non in ordine dal primo all'ultimo. Per fare ciò utilizziamo il seguente comando:
GPIO.setmode(GPIO.BCM)

Per impostare un GPIO come input o output dobbiamo utilizzare il seguente comando:
GPIO.setup (numero pin,GPIO.OUT/IN)

Se vogliamo dare in output 3,3V o 0V, dobbiamo utilizzare il seguente comando:
GPIO.output(numero pin, True/False)

Per utilizzare un delay dobbiamo usare il seguente comando:
time.sleep(2) #in secondi, quindi in questo caso sarà 2 secondi, se vogliamo, per esempio, dare 200ms scriviamo.2

Per fare una lettura digitale, utilizziamo il seguente comando:
GPIO.input(numero pin) # solitamente si assegna ad una variabile, es: bt=GPIO.input(20)