Profilo di Coffee

Nome Coffee
Indirizzo email n/a
Messaggi3
  • Re: Aiuto:Eliminare più di una volta la sottostringa
    Forum >> Principianti
    Strano, fare funzioni ricorsive è la cosa più facile del mondo ;)
    Ho mantenuto la tua impostazione solo dove era sensata.

    Questo codice funziona sia in python3 che in python2 (che è quello che stai usando, e dovevi specificarlo).
    def sottrai(stringa1, stringa2) :
        if stringa2 not in stringa1 : return stringa1
        STR = ""
        indice = stringa1.find(stringa2)
        for i in range(indice) : STR = STR + stringa1[ i ]
        for i in range(indice + len(stringa2), len(stringa1)) : STR = STR + stringa1[ i ]
        return sottrai(STR, stringa2)
    


    --- Ultima modifica di Ὅμηρος 蟒蛇 in data 2018-03-19 21:52:22 ---
    grazie!comunque si, mi sono confrontato con Cherry ed è una mia compagna alla quale avevo chiesto dei consigli per scrivere la mia funzione inizialeXD
    grazie ancora!
  • Re: Aiuto:Eliminare più di una volta la sottostringa
    Forum >> Principianti
    Ciao Ὅμηρος 蟒蛇 grazie della tua risposta.



    probabile dato che molti in classe hanno problemi con l'esercizio

    per quanto riguarda la funzione ricorsiva si ci avevo pensato e ho fatto delle prove ma non riesco ad impostarla correttamente.
  • Aiuto:Eliminare più di una volta la sottostringa
    Forum >> Principianti
    Ciao a tutti sono nuovo in questo forum ed ho da poco iniziato a studiare python. Mi è stato assegnato un esercizio nel quale devo costruire una funzione che mi verifichi l'esistenza di una sottostringa in una stringa di partenza e, me la elimini tutte le volte che la incontra.



    Esempio se inserisco come stringa: "mangio la mela e mangio il kiwi"

    e come sotto stringa da cercare: "mangio"

    l'output dovrà essere: "la mela e il kiwi"




    Ora io ho costruito questa funzione ma facendo qualche tentativo mi sono accorto che cancella una sola volta la sottostringa nella prima posizione in cui la trova.

    quindi output: "la mela e mangio il kiwi".




    Come posso modificare il mio programma in modo da risolvere questo problema? Purtroppo mi è espressamente chiesto nell'esercizio di non usare funzioni già presenti tipo split, replace,ecc.




    ecco la mia funzione anche in allegato. Grazie a tutti in anticipo. :ok:




    def sottrai(stringa1,stringa2):

    STR = ""



    if (len(stringa1)) < (len(stringa2)):

    return

    elif stringa2 == "":

    return stringa1

    else:

    indice = stringa1.find(stringa2)

    print indice

    contatore = stringa1.count (stringa2)

    print contatore

    if contatore>=1:

    for i in range(indice):

    STR = STR + stringa1

    for i in range (indice+1+len(stringa2),len(stringa1)):

    STR = STR + stringa1

    cont-=1

    return STR