Python e gli operatori di assegnazione, matematici, logici, bitwise: overview

web designer umbriaOverview su Python ci hanno fatto apprezzare l’importanza di questo semplice linguaggio che merita successivi approfondimenti come amplificato da https://umbriawayinfo.wordpress.com/2020/05/12/ho-comprato-3-libri-di-scacchi-sulla-pirc-e-6-sulla-owen-per-distribuirli-ai-miei-alunni-allora-stai-programmando-con-un-linguaggio-che-non-e-scomparso-con-i-dinosauri/ e https://umbriawayincrementa.wordpress.com/2020/05/13/big-data-la-tendenza-del-momento-approccio-preliminare-per-la-configurazione-dell-ambiente-di-sviluppo/ . Per cui approfondiamo prima di addentrarci in un pozzo simbolico la questione dei commenti:

#
# Fondamenti di Python
# Commenti riga singola
#

commento che viene esplicato con il cancelleto e il commento non inibisce le istruzioni successive. Non esistono commenti multi riga ma esistono le tre virgolette per delimitare gli spazi di commento plus:

“”” La seguente funzione
stampa una stringa
in questo caso “Ciao mondo!”
“””

print(‘Ciao mondo!’)

mandando in esecuzione il programma ovviamente vedrò solo il ciao mondo. Inutile sottolineare la forza e l’uso dei commenti, che tracciano, esplicano, chiariscono e tramandano il contenuto del proprio pensiero ad altri programmatori che verranno e leggeranno il nostro elaborato codice (a complicarsi la vita con Python ce ne vuole eh). Python al momento dell’ installazione offre già delle funzionalità, ne avevamo viste diverse anche nelle scorribande precedenti come help() e print() per esempio ma ho una settantina circa di metodi che fanno le cose più svariate, dalle funzioni matematiche per le operazioni, alla gestione delle stringhe, alla conversione tra valori e tipi di dati, creazione dati etc. etc. Le funzioni denominate built-in vengono usate come il pane in Python. Usiamo dati come numeri, stringhe, valori booleani. Poi abbiamo formi di dati più elaborati. La tipizzazione che abbiamo in Python è forte ma anche dinamica. Per cambiare il tipo di dato abbiamo bisogno di una conversione esplicita. Abbiamo per i numeri i tipi interi interi con virgola e numeri complessi. Le stringhe gestiscono formule alfanumeriche e la parte logica è costituita da vero e falso. Le strutture dati sono importanti in Python, quindi usiamo liste e gli elementi si riconosceranno in base alla loro posizione, poi abbiamo i dizionari con chiavi e valori e poi i SET insieme di elementi che non verranno memorizzati per posizione. Le liste ammettono duplicati. Poi ci sono altri tipi di dato presenti nella libreria standar per offrire supporto anche alla programmazione ad oggetti. Python è fortissimamente espandibile quindi sarà necessario integrare i moduli giusti al momento giusto. Le operazioni matematiche sono di stampo classico, le precedenze operazionali sono quelle classiche prima l’elevamento a potenza, poi le moltiplicazioni e le divisioni per finire con somma e sottrazione. Le parentesi tonde hanno la precedenza e dopo risultati soggette all’ ordine precedentemente enunciato:

Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type “help”, “copyright”, “credits” or “license()” for more information.

>>> 2+6
8
>>> 8*9
72
>>> 9-3
6
>>> 9/5
1.8
>>> 9//5
1
>>> 3**4
81
>>> 3**2+6
15
>>> 3**(2+6)
6561
>>> 3**2*2
18
>>> 3**(2*2)
81
>>> pow(3,4)
81
>>>

Dopo gli operatori matematici vediamo adesso gli operatori di assegnazione in azione, tenendo presente le legende riassuntive nella gallery a fine post:

Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type “help”, “copyright”, “credits” or “license()” for more information.

>>> a=2
>>> a
2
>>> a+=3
>>> a
5
>>> a*=20
>>> a
100
>>> a/=2
>>> a
50.0
>>> a//=3
>>>
>>> a
16.0
>>> a**=2
>>> a
256.0
>>> a%=7
>>> a
4.0
>>>

diamo anche un occhiata alle comparazioni logiche tra bit otulizzando gli operatori bitwase:

Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32 Type “help”, “copyright”, “credits” or “license()” for more information.

>>> 50 & 33
32
>>> bin(50)
‘0b110010’
>>> bin(33)
‘0b100001’
>>> bin(32)
‘0b100000’
>>> 50 | 33
51
>>> bin(51)
‘0b110011’
>>> 50 ^ 33
19
>>> bin(19)
‘0b10011’
>>> bin(50)
‘0b110010’
>>> bin(33)
‘0b100001’
>>> 8 << 2
32
>>> bin(32)
‘0b100000’
>>> bin(8)
‘0b1000’
>>> 8 >> 2
2
>>>

Per concludere il nostro studio base sulla matematica Python vediamo un esempio riassuntivo che calcola la media dei voti di un alunno mettendo in action un arrotondamento che estrapola solo un numero dopo la virgola:

#
# Fondamenti di Python
# Esempio riepilogativo operatori aritmetici
#

voto1=8
voto2=6
voto3=7.5

somma=voto1+voto2+voto3
media=somma/3
risultato=round(media, 1)
print(risultato)

A video ci verrà restituito il risultato preannunciato 7.2

Python offre una libreria di funzioni molto esauriente per chi opera in campo scientifico vedere articoli come : https://www.meccanismocomplesso.org/scipy-una-libreria-python-per-la-matematica-la-scienza-e-lingegneria/ . Entrando nel dettaglio delle citazioni wiki: ciPy è una libreria open source di algoritmi e strumenti matematici per il linguaggio di programmazione Python che uscì dalla collezione originale di moduli d’estensione Multipack per Python di Travis Oliphant del 1999 . Contiene moduli per l’ottimizzazione, per l’algebra lineare, l’integrazione, funzioni speciali, FFT, elaborazione di segnali ed immagini, solver ODE e altri strumenti comuni nelle scienze e nell’ingegneria. Trova utilizzo in quei programmatori che usano anche MATLAB, Gnu Octave e Scilab. SciPy è sotto licenza BSD e il suo sviluppo è portato avanti da una comunità di sviluppatori. Sito ufficiale per il download: https://scipy.org/scipylib/ al momento la scorribanda nel mondo matematico di Python è conclusa, buon calcolo a tutti.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...