Sostituire caratteri in una stringa (simil Scratch come programma usato)

di il
6 risposte

Sostituire caratteri in una stringa (simil Scratch come programma usato)

Salve a tutti, sono una neofita e mi scuso innanzitutto se questa non e' la sezione corretta dove postare ma...vi spiego subito.

Vivo all'estero e sono al primo semestre di Computing and IT, il programma con cui ci fanno "giocare" e' fornito dall'universita' stessa ma e' praticamente uguale a Scratch, secondo loro e' identico a Python...motivo per cui chiedo aiuto qui.

Sono bloccata da un giorno intero su un esercizio che nella mia testa sembra sciocco, ma in realta' non riesco e mi sto demotivando. Pensavo di essere un tantino portata e poi una sciocchezza simile mi blocca.

Spero possiate aiutarmi se no stanotte non ci dormo.

Praticamente l'esercizio mi chiede di creare un programma in cui il testo, inserito in una sola stringa, se contiene alcuni simboli di punteggiatura: ?, !, , e . deve essere pulito dalla punteggiatura rimpiazzandola con degli spazi. Ad esempio "Yes? No!" deve risultare come "Yes No "

Ho provato in cosi' tanti modi anche prendendo spunto da esercizi simili ma non riesco.
I tentativi principali che ho fatto vanno di pari passo con gli argomenti studiati, quindi ho provato con la creazione di 2 liste parallele ma sembra non leggere la punteggiatura e ora sto provando ad utilizzare la punteggiatura come valore sentinella, ma anche questo con scarsissimi risultati.

Qualcuno riesce a darmi una mano? Ho fatto esercizi simili senza problemi e questo non capisco il motivo per cui mi blocca, credo sia il mio ragionamento, ormai mi son fissata su tot strade e non riesco a vedere alternative.

Ho creato 3 liste:
Punctuation_characters contenente ? ! , .
user_text per ospitare il testo cosi' come scritto dall'utente
final_text che dovrebbe popolarsi del testo ripulito dalla punteggiatura.

Le variabili, per iniziare:
text
position

inizio con:

when green_flag clicked
delete all from punctuation_character list
add ? to punctuation_character list
add ! to punctuation_character list
add . to punctuation_character list
add , to punctuation_character list

when space key pressed
delete all from user_text list
delete all from final_text list
ask "Enter your text here, in a single string, including punctuation"
set text as answer
set position to 1
add text to user_text

[repeat until letter position of text = punctuation_characters
change position to 1]

..e mi blocco, ad esempio il loop del repeat non funziona di gia'. Questo e' uno dei miliardi di esempi che ho fatto, ma erano cosi' tanti che non li ho nemmeno salvati.

Ovviamente non chiedo l'esercizio svolto, mi basta il giusto input per capire dove sbaglio. Purtroppo studio da casa e non conosco praticamente nessuno che possa darmi una mano, nemmeno un collega di corso.

...e accetto anche se mi dite di darmi all'ippica! Grazie mille a tutti

6 Risposte

  • Re: Sostituire caratteri in una stringa (simil Scratch come programma usato)

    Se ti può aiutare, in Python si potrebbe fare così:
    
    s = "Ciao, sono una stringa: sostituite la punteggiatura!"
    x = ""
    for c in s:
        if c in ":;,.?!":
            x += " "
        else:
            x += c
    print(x)
    
  • Re: Sostituire caratteri in una stringa (simil Scratch come programma usato)

    Ciao Weierstrass, grazie dell'aiuto.
    Non riesco a "tradurlo" benissimo sul mio programma.
    Intanto ho fatto un diverso tentativo creando 2 liste e includendo nella prima il testo inserito dall'utente, suddiviso parola per parola, in modo da poter spostare nella seconda lista solo cio' che mi serve, quindi senza spostare la punteggiatura...ma non riesco
  • Re: Sostituire caratteri in una stringa (simil Scratch come programma usato)

    Mi spiace ma non conosco Scratch
    Non hai modo di scorrere text carattere per carattere e creare una nuova stringa? Se il carattere è diverso da quei quattro lo aggiungi alla nuova stringa così com'è, altrimenti aggiungi lo spazio
  • Re: Sostituire caratteri in una stringa (simil Scratch come programma usato)

    Ora ho fatto scorrere text parola per parola inserendo gia' lo spazio, in modo da isolare le punteggiature in una specifica posizione della lista, avere tutto pronto per poterlo spostare nell'altra lista e dovrei lasciarmi indietro solo la punteggiatura... ma mi tocca capire come spostare tutto nella lista finale, tralasciando la punteggiatura
  • Re: Sostituire caratteri in una stringa (simil Scratch come programma usato)

    Grazie per l'aiuto Weierstrass! Alla fine aver seguito il tuo esempio con Phyton mi ha aiutato a fare il punto della situazione, in piu' dormirci su ha avuto il suo beneficio.
    Stamattina ho svolto l'esercizio in meno di 5 minuti, era di una facilita' imbarazzante...e forse proprio questo mi mandava in tilt, perche' continuavo a voler complicare il tutto!

    Se qualcuno e' interessato, ho creato 2 liste: una contenente la punteggiatura da evitare e l'altra vuota in cui inserire il text input ripulito dalla punteggiatura. E' bastato applicare il ciclo per tutta la durata del testo e chiedere al programma di inserire tutto il testo nella lista ad eccezione della punteggiatura, e alla fine leggere il testo.

    Mi sento piu' leggera
  • Re: Sostituire caratteri in una stringa (simil Scratch come programma usato)

    Bene
Devi accedere o registrarti per scrivere nel forum
6 risposte