Giochiamo con le stringhe

In questo esempio in Python giochiamo un pochino con le stringhe e proviamo a far leggere le parole al contrario.

# scrittura di una stringa al contrario
# made by Fausto
# versione 0.1
# 2016.04.15
print("Inserire una parola che verrà scritta al contrario")
parola = str(input(": "))
lunghezza = len(parola)
lista_numeri = range(0, lunghezza )
for x in lista_numeri:
    print(parola[x], ' ')
print("ora la scrivo al contrario")

i = lunghezza
while i>0 :
    print(parola[i-1], ' ')
    i = i - 1
print("Fine")

In questo esempio viene usata una variabile chiamata parola per memorizzare una stringa di caratteri. Questi caratteri poi vengono scritti uno alla volta in verticale prima in ordine "normale" dal primo all'ultimo eppoi in ordine "invertito" dall'ultimo al primo.

RESTART: C:/Users/stringaAlContrario.py
Inserire una parola che verrà scritta al contrario
: roma
r  
o  
m  
a  
ora la scrivo al contrario
a  
m  
o  
r  
Fine
>>>

<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

L'esempio precedente ci piace poco nel fatto che i singoli caratteri vengono scritti in verticale.

Proviamo a modificarlo.

# scrittura di una stringa al contrario
# made by Fausto
# versione 0.1
# 2016.04.15
# versione 0.2
# 2017.04.20
# scrittura della parola al contrario su una sola riga

def str_al_contr(stringa):
    i = len(stringa)-1
    a = ''
    while i >= 0:
        lettera = stringa[i]
        a += lettera
        a += " "
        i -= 1
    return a

print("Inserire una parola che verrà scritta al contrario")
parola = str(input(": "))
lunghezza = len(parola)
print(parola) 
print("La parola al contrario la voglio scrivere su una riga")
parolaAlContrario = str_al_contr(parola)
print(parolaAlContrario) 
print("Fine")

Nel nuovo esempio si fa uso di  una funzione custom chiamata str_al_contr() per generare la stringa al contrario che viene poi stampata.

Ecco il risultato:

==== RESTART: C:/Users/stringaAlContrario.py ====

Inserire una parola che verrà scritta al contrario : Roma

Roma

La parola al contrario la voglio scrivere su una riga

amoR

Fine

>>>

 

ESERCIZIO:

Sapresti trovare un algoritmo e codificarlo in Python per vedere se la stringa è palindroma?

Come c'è scritto - fra l'altro - su Wikipedia Il palindromo (dal greco antico πάλιν "di nuovo" e δρóμος "percorso", col significato "che può essere percorso in entrambi i sensi") è una sequenza di caratteri che, letta al contrario, rimane invariata. Per esempio, "i topi non avevano nipoti"  - non considerando gli spazi!!!