Questi esempi Python introducono:
# Apertura del file in modalità lettura/scrittura
f = open("readMe.txt", "r+")
# Lettura della prima riga
line = f.readline()
# Ciclo che legge riga per riga fino alla fine del file
while line != "":
line = f.readline()
# Scrittura in coda al file
f.write("Prima riga Appesa\n")
f.write("Seconda riga Appesa\n")
# Chiusura del file per rendere permanenti le scritture
f.close()
# Riapertura del file in modalità lettura
f = open("readMe.txt", "r")
# Lettura e stampa dell'intero contenuto del file
print(f.read())
f.close()
# Riapertura del file in modalità lettura
f = open("readMe.txt", "r")
# Metodo alternativo: lettura riga per riga con for
for line in f:
print(line)
f.close()
📌 Concetti chiave
open, close)readline o for line in file)write)for (maiuscolo)# Trasforma in maiuscolo la prima lettera dopo ogni spazio
stringa = input("Inserisci la stringa: ")
# Trasformo il primo carattere
nuova = stringa[0].upper()
# Scansione della stringa
for i in range(len(stringa)-1):
if stringa[i] == " ":
# Carattere successivo maiuscolo
nuova = nuova + stringa[i+1].upper()
else:
# Carattere successivo così com'è
nuova = nuova + stringa[i+1]
print("La vecchia stringa è", stringa)
print("La nuova stringa è", nuova)
📌 Concetti chiave
if per rilevare spaziwhile e find (maiuscoloConFind)# Trasforma in maiuscolo la prima lettera dopo ogni spazio
# soluzione alternativa con find() e while
stringa = input("Inserisci la stringa: ")
# Trasformo il primo carattere
nuova = stringa[0].upper()
# Copio la stringa in una variabile temporanea
temp = stringa
# Trova la posizione del primo spazio
i = temp.find(" ")
# Ripeti finché ci sono spazi
while i != -1:
# Parte prima dello spazio (senza modifiche)
prefix = temp[1:i]
# Parte dopo lo spazio
suffix = temp[i+1:]
# Concateno: prefix + spazio + primo carattere maiuscolo della parte restante
nuova = nuova + prefix + " " + suffix[0].upper()
# Aggiorno temp
temp = suffix
# Trova prossimo spazio
i = temp.find(" ")
# Aggiungo eventuali restanti caratteri
nuova = nuova + temp[1:]
print("La vecchia stringa è", stringa)
print("La nuova stringa è", nuova)
📌 Concetti chiave
find() per cercare spaziwhile controllato da condizioneEcco una versione Pythonica, chiara e compatta, che realizza lo stesso effetto (prima lettera di ogni parola in maiuscolo) senza cicli complessi o find(), usando split() e join():
# Trasforma in maiuscolo la prima lettera di ogni parola
stringa = input("Inserisci la stringa: ")
# Divido la stringa in parole
parole = stringa.split(" ")
# Trasformo la prima lettera di ogni parola in maiuscolo
parole_maiuscole = [p[0].upper() + p[1:] if p else "" for p in parole]
# Ricompongo la stringa
nuova = " ".join(parole_maiuscole)
print("La vecchia stringa è:", stringa)
print("La nuova stringa è:", nuova)
for compatto (list comprehension).if p else "").# ==========================================================
# VERSIONE 1: Ciclo for con indici
# ==========================================================
print("=== Versione 1: For con indici ===")
stringa1 = input("Inserisci una stringa: ")
nuova1 = stringa1[0].upper() # prima lettera maiuscola
for i in range(len(stringa1)-1):
if stringa1[i] == " ":
nuova1 += stringa1[i+1].upper()
else:
nuova1 += stringa1[i+1]
print("Risultato:", nuova1)
print()
# ==========================================================
# VERSIONE 2: Ciclo while con find()
# ==========================================================
print("=== Versione 2: While con find() ===")
stringa2 = input("Inserisci una stringa: ")
nuova2 = stringa2[0].upper()
temp = stringa2
i = temp.find(" ")
while i != -1:
prefix = temp[1:i]
suffix = temp[i+1:]
nuova2 = nuova2 + prefix + " " + suffix[0].upper()
temp = suffix
i = temp.find(" ")
nuova2 += temp[1:] # aggiunge eventuali restanti caratteri
print("Risultato:", nuova2)
print()
# ==========================================================
# VERSIONE 3: Pythonica con split() e join()
# ==========================================================
print("=== Versione 3: Pythonica ===")
stringa3 = input("Inserisci una stringa: ")
parole = stringa3.split(" ")
parole_maiuscole = [p[0].upper() + p[1:] if p else "" for p in parole]
nuova3 = " ".join(parole_maiuscole)
print("Risultato:", nuova3)
| Versione | Caratteristiche | Pro / Contro |
|---|---|---|
| For con indici | Scorre la stringa carattere per carattere | Leggibile, ma un po’ verboso; bisogna gestire manualmente gli indici |
| While + find | Cerca spazi e ricostruisce la stringa | Più complessa, difficile da leggere; utile come esercizio di manipolazione stringhe |
| Pythonica | Usa split(), list comprehension e join() |
Più compatta, leggibile, robusta; approccio consigliato in Python moderno |