PDA

View Full Version : [Python] - Esercizio sulle stringhe


88MIKI88
13-10-2008, 18:22
Stavo svolgendo un esercizio proposto dal libro su cui studiando Python:

"Esercizio: scrivi una funzione che prende una stringa come argomento e la stampa un carattere per riga partendo dall'ultimo carattere."

Io ho trovato la soluzione volevo vedere se gli esperti di Python me ne tiravano fuori un'altra:


def Function1(stringa):
i = -1
c = 0
while c < len(stringa):
lettera = stringa[i]
print lettera
i = i - 1
c = c + 1

Torav
13-10-2008, 18:39
io avrei fatto una cosa del genere (sicuramente ci sono mille modi più eleganti del mio però :p ):


def inversePrint(string):
for i in range(len(string)):
print string[len(string) - 1 - i]

variabilepippo
13-10-2008, 18:41
def inverti(stringa):
return stringa[::-1]

print inverti("Ciao")

88MIKI88
13-10-2008, 19:32
Altre 2 domande gli esercizi li sto svolgendo tutti e qui di seguito posterò i vari codici più che altro volevo i pareri dei più esperti per vedere come migliorarmi. Probabilmente le mie soluzioni in certi casi saranno di sicuro più lunghe e complesse delle vostre (sono 2 settimane che studio Python però :P). Accetto ogni tipo di critica / consiglio




Esercizio: modifica la funzione Trova per accettare un terzo parametro che rappresenta la posizione dove si deve cominciare a cercare all'interno della stringa.

Codice Base:

def Trova(Stringa, Carattere):
Indice = 0
while Indice < len(Stringa):
if Stringa[Indice] == Carattere:
return Indice
Indice = Indice + 1
return -1


CODICE MODIFICATO:

def Trova(Stringa, Carattere,Posizione):
I = Posizione
while I < len(Stringa):
if Stringa[I] == Carattere:
return I
I = I +1
return -1

cdimauro
13-10-2008, 19:35
Avrei risposto come variabilepippo. Aggiungo un altro esempio giusto per dare una soluzione diversa:
print ''.join(reversed('Ciao'))

x 88MIKI88: se l'esercizio ti chiede espressamente di modificare la funzione Trova, non è che puoi andare molto lontano dalla soluzione che hai proposto. ;)

88MIKI88
15-10-2008, 20:14
Volevo sottoporvi anche questo semplicissimo esercizio per vedere se magari c'erano forme più "eleganti" per risolverlo:


['ciao!', 1, ['mela', 'pera', 'banana'], [1, 2, 3]]

Esercizio: scrivi un ciclo che attraversa la lista precedente e stampa la lunghezza di ogni elemento.


def Function1(Lista):
i = 0
while i < len(Lista):
c = len(Lista[i])
i = i + 1
print
c


Io francamente ho risolto l'esercizio in modo generico quindi metto una lista come parametro e poi eseguo la funzione..

cdimauro
15-10-2008, 20:32
L'importante è risolvere l'esercizio.

Io avrei risolto così:
print [len(Elemento) for Elemento in Lista]
visto che l'esercizio non specifica il formato dell'output. ;)