Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Come faccio a dividere una stringa in due?

B
Babby740 (1240 points)
24 35 39
in Es2 by (1.2k points)
closed by
Nell'esercizio 2 per esempio trovo comp10 e mi servirebbe dividerlo in comp e in 10 ma allo stesso tempo riuscire a dividere anche sub7 in sub e in 7.
630 views
closed with the note: deadline expired

3 Answers

Best answer
Auron (15880 points)
51 126 194
by (15.9k points)
selected by

Io ho utilizzato le espressioni regolari perchè mi velocizzavano molto il tutto...
Prima ho verificato se si trattasse di 'comp' o di 'sub' per sapere se assegnare il numero ad una chiave o ad un valore del dizionario, dopo di che ho utilizzato il comando re.sub(r"\D",'',stringaincuicercare) in modo da sostituire tutto quello che non è un numero con vuoto... Mi ha agevolato, rispetto al replace, perchè in questo modo anche la stringa '               comp              8            ' restituisce, dopo la sostituzione il valore '8', in quanto il comando re.sub(r"\D",'') sostituisce sia caratteri alfabetici, che spazi, che caratteri speciali con vuoto... senza dover fare diversi replace successivi :)
 

Nota: Per le espressioni regolari la sintassi r"\D" sta per "tutto quello che non è un numero", logicamente parlando :)

Se ti sono stato di aiuto e sei soddisfatto della mia risposta, per favore contrassegnala come migliore :)

Jury Francia (7520 points)
25 76 100
by (7.5k points)
Potresti prima controllare se è un comp o un sub e successivamente con replace() eliminare dalla stringa la parola comp o sub e ottenere così solo il numero che alla fine è quello che ti serve.
GeraldCaba (2920 points)
6 20 28
by (2.9k points)
edited by
per ottenere il valore del numero potresti utilizzare le slice delle stringhe ad esempio >>>numero=stringa[4:]

quindi prendi tutti gli elementi dal 4 elemento (dopo il "comp") fino all ultimo

ad esempio "comp10" il numero sara 10

per controllare se e un sub o un comp utilizza un if, che controlla se inizia con "sub" o "comp" attraverso  il metodo delle stringhe startswith