Simulazione funzione replace

di il
6 risposte

Simulazione funzione replace

Devo scrivere una funzione sostituisci che si comporti come il metodo replace delle stringhe.

Avrei pensato:

def sostituisci(s,c1,c2,count=None):
   pos = 0
   while pos>-1:
       pos = s.find(c1)
       print(pos)
       s = s[:pos]+c2+s[pos+1:]
       print(s)
   return s
s = input("Inserisci una stringa: ")
c1 = input("Inserisci la stringa da sostituire: ")
c2 = input("Inserisci stringa che sostituirà: ")
print("La stringa è: ", sostituisci(s,c1,c2,count=None))

ma non ottengo il risultato voluto. potete aiutarmi?

6 Risposte

  • Re: Simulazione funzione replace

    dovrei aver capito, cosìsembra andare
    def sostituisci(s,c1,c2,count=None):
    pos = 0
    while pos>-1:
    pos = s.find(c1)
    print(pos)
    if pos>-1: s = s[:pos]+c2+s[pos+1:]
    print(s)
    return s
    s = input("Inserisci una stringa: ")
    c1 = input("Inserisci la stringa da sostituire: ")
    c2 = input("Inserisci stringa che sostituirà: ")
    print("La stringa è: ", sostituisci(s,c1,c2,count=None))

  • Re: Simulazione funzione replace

    Se non metti il codice indentato bene non si capisce niente.

    Ho provato e al primo tentativo non va (ma magari non ho formattato il codice in modo corretto):

    stringa? altamarea

    trova?alta

    sostituisci? bassa

  • Re: Simulazione funzione replace

    Si scusa. Riprovo a incollarlo. Comunque è vero funziona solo se il carattere da sostituire è uno. Devo pensare a qualcosa di altro. 
    Forse dovrei contare quanti sono i caratteri da sostituire, o magari hai qualche suggerimento?

    def sostituisci(s,c1,c2,count=None):
       pos = 0
       while pos>-1:
           pos = s.find(c1)
           if pos>-1: s = s[:pos]+c2+s[pos+1:]
      return s
    s = input("Inserisci una stringa: ")
    c1 = input("Inserisci la stringa da sostituire: ")
    c2 = input("Inserisci stringa che sostituirà: ")
    print("La stringa è: ", sostituisci(s,c1,c2,count=None))

  • Re: Simulazione funzione replace

    Ora mi funziona

    def sostituisci(s,c1,c2,count=None):
       pos = 0
       while pos>-1:
           pos = s.find(c1)
           print(len(c1))
           print(pos)
           if pos>-1: s = s[:pos]+c2+s[pos+len(c1):]
           print(s)
       return s
    s = input("Inserisci una stringa: ")
    c1 = input("Inserisci la stringa da sostituire: ")
    c2 = input("Inserisci stringa che sostituirà: ")
    print("La stringa è: ", sostituisci(s,c1,c2,count=None))

  • Re: Simulazione funzione replace

    15/10/2023 - gdisimone ha scritto:


    Forse dovrei contare quanti sono i caratteri da sostituire, o magari hai qualche suggerimento?

    Invece di sommare 1, somma la lunghezza della stringa da sostituire.

    PS: Nel menu dell'editor del forum il quarto pulsante da sinistra permette di formattare il codice…

  • Re: Simulazione funzione replace

    Graazie

Devi accedere o registrarti per scrivere nel forum
6 risposte