Articoli Correlati

Aggiungere un numero random in un file

In questa lezione svilupperemo un semplice algoritmo per aggiungere un numero random in un file in Python.

Supponiamo di avere un file che contiene un numero.

Innanzitutto stampiamo il numero contenuto nel file, dopo generiamo un numero random e lo sommiamo al numero che è contenuto nel file.

Poi sommiamo i due numeri e aggiungiamo il numero così ottenuto al file, iniziando da una nuova riga.

Supponendo che il file number_random.txt contenga il numero 6, proviamo questo codice di esempio:

import random

f = open(‘number_random.txt’, ‘r+’)
numero = f.readline()
print(numero)

random_number = random.randint(1, 100)
print(random_number)

somma = random_number + int(numero)
print(somma)

f.write(‘n’ + str(somma))
f.close()

Occorre utilizzare la modalità r+ per poter aprire un file in lettura e scrittura contemporaneamente.

Ricordiamo inoltre che il metodo write() vuole una stringa, quindi dobbiamo convertire il numero ottenuto dalla lettura del file in una stringa utilizzando il casting con str().

Aggiungere un numero random in un file – secondo esempio

In questo secondo esempio cercheremo di indovinare il numero che è contenuto nel file di testo number.txt.

Supponendo che il file contenga un solo numero, apriamo il file in modalità di sola lettura e leggiamo il numero. Dopo chiediamo qual è il numero contenuto nel file e diamo un messaggio di vittoria o di sconfitta dopo averlo confrontato.

Sviluppiamo un possibile algoritmo che risolve il nostro problema utilizzando anche una semplice funzione:

f = open(‘number.txt’, ‘r’)
number = f.readline()

def indovina(num):
if num == number:
return True

my_number = input(‘Quale numero è contenuto nel file?: ‘)

risultato = indovina(my_number)

if risultato:
print(‘Hai indovinato!’)
else:
print(‘Non hai indovinato’)
print(‘Il numero era: ‘ + number)

Aggiungere un numero random in un file – terzo esempio

Adesso modifichiamo l’algoritmo dando degli aiuti all’utente. Ogni volta che l’utente proverà ad indovinare gli verrà detto se il numero pensato è più basso o più alto di quello contenuto nel file di testo.

Il tutto per 5 volte.

Quando siamo davanti ad un problema complesso dobbiamo scomporlo in sottoproblemi per renderlo più semplice.

Allora dapprima sviluppiamo il caso più semplice, cioè una sola risposta:

f = open(‘number.txt’, ‘r’)
number = f.readline()

def indovina(num):
if num == number:
return 0
elif num > number:
return 1
else:
return 2

my_number = input(‘Quale numero è contenuto nel file?: ‘)

risultato = indovina(my_number)

if risultato == 0:
print(‘Hai indovinato!’)
elif risultato == 1:
print(‘Il numero da indovinare è più basso’)
else:
print(‘Il numero da indovinare è più alto’)

Adesso generiamo i 5 tentativi, facendo in modo di terminare il gioco quando si finiscono i tentativi oppure quando si indovina.

Generiamo una prima soluzione nella quale usciremo dal ciclo attraverso l’uso di break:

f = open(‘number.txt’, ‘r’)
number = f.readline()

def indovina(num):
if num == number:
return 0
elif num > number:
return 1
else:
return 2

tentativi = 5

for i in range(tentativi):
my_number = input(‘Quale numero è contenuto nel file?: ‘)
risultato = indovina(my_number)
if risultato == 0:
print(‘Hai indovinato!’)
break
elif risultato == 1:
print(‘Il numero da indovinare è più basso’)
else:
print(‘Il numero da indovinare è più alto’)

Adesso creiamo una nuova funzione evitando così l’utilizzo del break:

f = open(‘number.txt’, ‘r’)
number = f.readline()

def indovina(num):
if num == number:
return 0
elif num > number:
return 1
else:
return 2

tentativi = 5
trovato = False

def gioco():
for i in range(tentativi):
my_number = input(‘Quale numero è contenuto nel file?: ‘)
risultato = indovina(my_number)
if risultato == 0:
print(‘Hai indovinato!’)
return
elif risultato == 1:
print(‘Il numero da indovinare è più basso’)
else:
print(‘Il numero da indovinare è più alto’)

gioco()

In questa lezione abbiamo sviluppato alcuni algoritmi come ad esempio aggiungere un numero random in un file in Python, oppure indovinare il numero contenuto in un file di testo. Nelle prossime lezioni ci eserciteremo ancora sui file.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

“Una scuola moderna e ben attrezzata. I teneri agnelli di oggi non diventino lupi di domani”. Quattro sindaci del Reggino scrivono a Valditara

Di redazione

Gli amministratori di Africo, Careri, Platì, e San Luca, quattro comuni della provincia di Reggio Calabria, hanno scritto una lettera al Ministro dell’Istruzione e del Merito, Giuseppe Valditara. Nella loro lettera, sottolineano la necessità di “Salvare i nostri ragazzi, implementando la qualità educativa e didattica delle nostre scuole”.

Le ferite sociali e i problemi di queste regioni, evidenziati dai sindaci Domenico Modaffari, Bruno Bartolo, Rosario Sergi e Giuseppe Pipicella, sono radicati nella latitanza dello Stato, in una politica di assistenzialismo, clientelismo e lassismo, riscontrabili in molte aree del Mezzogiorno. Questi problemi sono acuiti da un’antica tradizione di relazioni violente e criminali organizzate nelle ‘ndrine.
Per contrastare questi problemi, gli amministratori locali hanno avviato un percorso comune di antimafia, con progetti educativi mirati a offrire ai giovani un’alternativa alla vita di strada. L’obiettivo è far comprendere ai ragazzi che si può cambiare, costruendo un futuro di ricchezza economica e culturale grazie alle proprie competenze. Il loro desiderio è che i “teneri agnelli che oggi frequentano i banchi scolastici non diventino i lupi di domani”. L’antidoto? Una scuola moderna e ben attrezzata.
Un altro pilastro delle loro proposte riguarda l’offerta di opportunità lavorative per combattere la disoccupazione. Il loro obiettivo è liberare i giovani dalla sudditanza al boss locale e dalla tentazione del crimine. Chiedono un incontro con il Ministro per discutere questi problemi prima dell’inizio del prossimo anno scolastico. Desiderano discutere di povertà scolastica, con l’obiettivo di colmare il gap educativo dei giovani, come dimostrato dai risultati delle prove Invalsi.
I sindaci sottolineano che le scuole delle loro città hanno bisogno di miglioramenti strutturali, con strutture spesso assenti o fatiscenti. Chiedono di utilizzare una piccola frazione dei fondi destinati alla riparazione dei danni dell’alluvione della Romagna per combattere le ‘ndrine nel loro territorio. Infine, chiedono l’istituzione di un dirigente scolastico a tempo pieno, una figura che ritengono essenziale per garantire un’istruzione di qualità. Solo così, sostengono, si può combattere la povertà educativa che attualmente affligge i giovani di questi territori Aspromontani.

Pubblicato in Politica scolastica

Vuoi rimanere aggiornato sulle nuove tecnologie per la Didattica e ricevere suggerimenti per attività da fare in classe?

Sei un docente?

soloscuola.it la prima piattaforma
No Profit gestita dai

Volontari Per la Didattica
per il mondo della Scuola. 

 

Tutti i servizi sono gratuiti. 

Associazione di Volontariato Koinokalo Aps

Ente del Terzo Settore iscritta dal 2014
Tutte le attività sono finanziate con il 5X1000