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
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. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.