Introduzione alla programmazione in Python (II)

In questa second parte, continuiamo la nostra esplorazione del linguaggio Python introducedo altri operatori e commandi per manipolare dati.

ESPRESSIONI LOGICHE E OPERATORI

Python dispone di operatori logici che consentono di costruire complesse espressioni logiche.

In Python, le espressioni logiche e gli operatori sono ampiamente utilizzati per la costruzione di complessi algoritmi di controllo di flusso dei dati in un programma.

Le espressioni logiche sono utilizzate per confrontare due o più valori booleani e restituire un valore booleano True o False. Gli operatori logici sono utilizzati per combinare o negare espressioni booleane.

Ecco alcuni degli operatori logici più comunemente usati in Python:

OperatoreEsempioRisultato
andrestituisce True solo se tutte le espressioni booleane coinvolte sono True.9! = 6 and 2 < 3Vero
orrestituisce True se almeno una delle espressioni booleane coinvolte è True.2 == 3 or -1 < 5Vero
notrestituisce l’inverso di un’espressione booleana.not 7 > 0Falso

Puoi utilizzare questi operatori logici per creare condizioni complesse nelle tue istruzioni if-else o nei cicli while del tuo codice.

Python dispone di operatori relazionali che consentono di confrontare due valori e restituire un valore booleano (True o False) in base alla relazione tra i valori. Ecco gli operatori relazionali disponibili in Python:

OperatoreSignificatoEsempioRisultato
==(uguaglianza):Restituisce True se i due valori sono uguali, False altrimenti.1 + 1 == 2Vero
!=diverso): restituisce True se i due valori sono diversi, False altrimenti.3.2! = 2,5Vero
< (minore di): restituisce True se il primo valore è minore del secondo, False altrimenti.10 < 5Falso
> (maggiore di): restituisce True se il primo valore è maggiore del secondo, False altrimenti.10 > 5Vero
<= (minore o uguale a): restituisce True se il primo valore è minore o uguale al secondo, False altrimenti.126 <= 100Falso
>=(minore o uguale a): restituisce True se il primo valore è minore o uguale al secondo, False altrimenti.5,0 >= 5,0Vero

Gli operatori relazionali sono spesso utilizzati in combinazione con le espressioni logiche e gli operatori condizionali per creare condizioni complesse in un programma Python.

INSERIRE INFORMAZIONI DALLA TASTIERA

input() è una funzione di Python utilizzata per acquisire l’input dell’utente dalla tastiera. La funzione input() riceve gli input dell’utente dal prompt di input e restituisce una stringa di input.

Ad esempio, fornendo la seguente riga di codice a Python:

nome = input("Inserisci il tuo nome: ")

Python mostrerà un prompt di input simile al seguente:

Inserisci il tuo nome:

L’utente può quindi inserire il proprio nome e premere il tasto Invio. Il valore inserito dall’utente verrà quindi assegnato alla variabile nome.

È possibile utilizzare la funzione input() per acquisire input dall’utente per una vasta gamma di scopi, ad esempio per creare programmi che interagiscono con l’utente o per acquisire dati di input da file di testo.

ESEMPIO PRATICO

Un esempio pratico dell’utilizzo di input() è il seguente programma che acquisisce come input una temperatura in Celsius, e la converte nei valori in altre scale.

#
# ESEMPIO: Semplice Programma di Conversione Scale di Temperature 
#

# Inserisci temperatura in Celsius 

Ce = float(input('Enter T in Celsius: '))
Ce=100

#
# Effettua la conversione
#

# Kelvin [K] = [°C] + 273.15
K=Ce+273.15
print ("La temperatura di ", Ce, "°C, corrisponde a ", K, "Kelvin")
# Fahrenheit [°F] = [°C] ×  9⁄5 + 32
Fa = Ce*9.0/5.0+32.0
print ("La temperatura di ", Ce, "°C, corrisponde a ", Fa, "Fahrenheit")
# Rankine [°R] = ([°C] + 273.15) ×  9⁄5
Ra=(Ce+273.15)*9.0/5.0
print ("La temperatura di ", Ce, "°C, corrisponde a ", Fa, "Rankine")

OPERAZIONI SULLE STRINGHE

In questo paragrafo estendiamo le conoscenze sulla manipolazione delle stringhe di caratteri.

STAMPA DELLE STRINGHE

La formattazione del testo stampato consente di personalizzate le uscite rendendole più eleganti e leggibili a seconda delle esigenze. Un modo per formattare le stringhe in Python è utilizzare il metodo .format(). In questo metodo si possono inserire delle parentesi graffe {} all’interno di una stringa, indicando l’ordine con cui verranno sostituite dai valori specificati all’interno del metodo.

print("Pinocchio è un {}, {}, e {} {}!".format("simpatico", "e biricchino!", "bambino", "di legno")) 

ESEMPIO

print("Pinocchio è un {2}, {3}, e {0} {1}!".format("simpatico", "e biricchino!", "bambino", "di legno")) 

In questo esempio viene stampata la frase “Pinocchio è un bambino di legno simpatico e biricchino!”. Le graffe indicano le posizioni degli argomenti passati al metodo .format(), che sostituirà le graffe con i valori specificati in ordine.

print("Pinocchio è un {0}, {2}, e {3} {1}!".format("simpatico", "e biricchino!", "bambino", "di legno"))

Nel secondo esempio di codice, invece, viene specificata l’ordine diverso delle parole da stampare. Quindi la frase diventa “Pinocchio è un simpatico bambino di legno e biricchino!”.

Inoltre, si possono utilizzare i due punti per specificare come formattare i valori in output. Ad esempio, nella terza porzione di codice viene indicato di stampare i primi due valori con un certo numero di cifre decimali.

La formattazione dei testi in Python consente di creare stringhe molto flessibili e personalizzate, adattabili alle esigenze specifiche del programma che si sta scrivendo.

ARITMETICA CON LE STRINGHE

  • Puoi concatenare le stringhe con il segno +:

Esempio:

nome = "Lucio"
cognome = "Dalla"
saluto = nome + " " + cognome
print(saluto)

Output: “Ciao Mondo

  • Puoi fare concatenazioni multiple con il segno *:

Esempio:

nome = "Ciao"
ripetizioni = 3
saluto = nome * ripetizioni
print(saluto)

Output: “CiaoCiaoCiao”

  • Ma non puoi aggiungere stringhe e interi insieme:

Esempio:

numero = 42
parola = "ciao"
risultato = numero + parola  # Errore!
  • Dovresti concatenare solo stringhe, convertendo gli altri tipi di variabili in stringhe:

Esempio:

numero = 42
parola = "ciao"
risultato = str(numero) + parola
print(risultato)

Output: “42ciao”

  • Le stringhe possono essere confrontate:

Esempio:

parola1 = "casa"
parola2 = "albero"
if parola1 < parola2:
    print(parola1, "viene prima di", parola2)
else:
    print(parola1, "viene dopo", parola2)

Output: “casa viene prima di albero”

INDICIZZAZIONE DELLE STRINGHE


I caratteri in una stringa sono numerati con indici a partire da zero come in un array. Questo permette di accedere ai sigoli caratteri inidcate la posizione nella string a con l’indice.

Esempio:

nome = "Python.."
#       012345
print(nome[0])  # Output: "P"
print(nome[3])  # Output: "h"

FUNZIONI DI LIBRERIA PER STRINGHE


Python dispone di un ampio insieme di funzioni per l’elaborazione delle stringhe. Ecco alcuni esempi:

  • len(stringa) – numero di caratteri in una stringa (inclusi gli spazi)
  • str.lower(stringa) – versione in minuscolo di una stringa
  • str.upper(stringa) – versione in maiuscolo di una stringa

Esempio:

nome = "Lucio Dalla"
lunghezza = len(nome)
nome_maiuscolo = nome.upper()
print(nome_maiuscolo, "ha", lunghezza, "caratteri")

Output: “LUCIO DALLA ha 11 caratteri”

FORMATTAZIONE DI NUMERI


È possibile controllare l’output di stampa di valori numerici utilizzando l’opzione di formattazione delle stringhe del comando print.
Il formato dell’ordine dei segnaposto è dato da


%[flags][width][.precision]type

Ecco alcuni tipi di base che dovresti conoscere:
%s – Stringa (o qualsiasi oggetto con una rappresentazione come stringa, come i numeri)
%d – Numeri interi
%f – Numeri in virgola mobile
%width.numero di cifre f – Numeri in virgola mobile con un numero fisso di cifre a destra del punto.

ESEMPIO

import math
print("CURIOSITÀ MATEMATICA.\n\n") 

print("Domanda N. 1.\n")
print("Il numero più piccolo che può essere espresso come somma di due cubi in due modi diversi è chiamato:")

name = "Numero di Hardy-Ramanujan"

# la variabile di stringa "name" viene stampata nella posizione del segnaposto %s
print("%s.\n" % name)

# Qui definiamo la lista di interi in cui il numero può essere decomposto.
nl = [1, 12, 9, 10]

# il contenuto della lista "nl" viene stampato nelle posizioni dei segnaposti %d
print("Il suo valore è uguale a (%d^3+%d^3) o (%d^3+%d^3).\n" % (nl[0], nl[1], nl[2], nl[3]))

print("Riesci a indovinare il numero ora?")

print("\n\nDomanda N. 2.\n")

sn = (1 + math.sqrt(5)) / 2

print("Sai come viene chiamato il numero %40.40f...?" % sn)

REFERENCE

  1. M. Lutz and D. Ascher. Learning Python. O’Reilly, 2004. 
  2. Allen B. Downey. Think Python: How to Think Like a Computer Scientist, 2nd edition. O’Reilly, 2015.

One thought on “Introduzione alla programmazione in Python (II)

  1. Pingback: Introduzione alla programmazione in Python (III) |

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.