Forum >> Principianti >> eliminare una porzione di stringa

Pagina: 1 2 Avanti

Ciao a tutti! Da poco sto studiando il linguaggio python e mi sono imbattuta in un esercizio che mi sta creando non pochi problemi .
l'esercizio mi chiede ,date due stringhe ad esempio "vado a casa" e "vado" ,si sottrarre la seconda alla prima ,ovvero mi aspetto come output "a casa".

Ho provato a scrivere questa funzione ma erroneamente mi cancella i singoli elementi non la seconda stringa,ovvero ho come output "cs". So che per ovviare a questo problema esiste la funzione split,ma non posso utilizzarla.

Qualcuno cortesemente può aiutarmi a capire come modificare la mia funzione o semplicemente può suggerirmi qualcosa per scriverne una nuova?

grazie per la disponibilità che mostrerete

Allego la mia funzione
Allegati
ciao io ho provato a fare cosi
non sarà elegante ma almeno funziona
buona serata
Salvatore in arte il principiante
PS scusa se ti passo un link ma a me il tag codice non funziona mai bene e si creano ambiguità



https://pastebin.com/15305sQR
Ciao ad entrambi, ma un semplice str.replace() non vi piace?

Cya
E che sfizio c'è a usare un metodo .... meglio aguzzare l'ingegno al massimo delle proprie capacità e provarci .... in fondo per imparare ogni tentativo è lecito.
Buon fine settimana

Salvatore 😁
E che sfizio c'è a usare un metodo .... meglio aguzzare l'ingegno al massimo delle proprie capacità e provarci .... in fondo per imparare ogni tentativo è lecito.
Buon fine settimana
Ricorda lo Zen di Python... ;)

Buona fine settimana anche a te.
grazie ad entrambi! sicuramente il primo metodo è più simile a ciò che avrei costruito io con il mio bagaglio di conoscenze attuale ,ma ora che ho conosciuto il replace lo sfodererò appena possibile per snellire qualche esercizio lunghissimo.

:D

ora mi ritrovo con un piccolo problema.ho costruito la mia funzione secondo i consigli ma ho notato che inserendo una stringa in cui compare due o più volte la seconda stringa ,la funzione mi cancella solo quando stringa2 viene incontrata la prima volta.

esempio se ora la mia frase è "vado a casa e dopo vado in palestra" in output ottengo solo "a casa e dopo vado in palestra".

E' possibile fare un ciclo di ricerca della sottostringa?o devo ricorrere ad una forma ricorsiva?grazie ancora

allego la funzioncina scritta :D
Allegati
basta non ciclare per l'inserimento dell'utente per nuove stringhe
prova così
stringa=input(" Inserisci stringa da analizzare ")
StrToFind=input (" inserisci la stringa cercare ")
#while stringa !="":
if StrToFind in stringa :
       stringa = stringa.replace(StrToFind,"")
print (stringa)        
    #stringa=input(" Inserisci stringa da analizzare ")
    #StrToFind=input (" inserisci la stringa cercare ")
 

grazie!purtroppo a quanto pare non mi è consentito utilizzare neanche replace perchè altrimenti non ci sarebbe alcun ragionamento nell'esercizio ;(ora sto provando con la ricorsione ma viene piuttosto terribile visivamente :D
ciao ragazzi!capisco di essere un calvario per voi :Dpurtroppo ci sto sbattendo parecchio la testa su questo esercizio ma ancora non capisco dove sbaglio. ho costruito la mia funzione ricorsiva ma in output il programma gira fino al numero massimo di iterazioni . dove sbaglio?
grazie mille
Allegati
Ciao Cherry.



perchè utilizzi python2? se come tutti noi sei una principiante ti conviene partire subito con python3, è inutile studiare su una versione che non verrà più supportata. l'unico scopo sarebbe quello di dover manutenzionare codice vetusto, ma non è il nostro caso.




detto questo, se il metodo replace() è vietato, io ti consiglierei di usare le liste.

in pratica spezzi le parole all'altezza degli spazi, con append vai a caricare le parole di una stringa in una lista.

a questo punto vai a comparare le due liste e per interferenza vai a eliminare le parole doppie, e ti ritrovi con quello che ti serve




dici che può funzionare?


Pagina: 1 2 Avanti



Esegui il login per scrivere una risposta.