Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 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 2021-22 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.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

metodo str.format()

Gabriele97 (2010 points)
8 29 38
in Programmare in Python by (2.0k points)
Ciao;

visto che siamo in tema stringhe pongo un domanda direttamente qua:

il metodo str.format() da quello che so è molto simile alla funzione printf() in C che usa l operatore '%';  sostanzialmente sostituisce dei valori, dati in input, ai segnaposti '{}' che ritrova in una stringa.

Supponendo che ciò che ho scritto sia giusto, e se non lo è correggetemi, volevo sapere in che modo il metodo str.format() sa che i due placeholder in una stringa sono da sostituire piuttosto che lasciali come puro testo da stampare?

Grazie in anticipo!
643 views
related to an answer for: Curiosità sulle stringhe

2 Answers

V
Vlad (4580 points)
2 14 24
by (4.6k points)

Se vuoi stampare una parentesi graffa come testo basta scriverla due volte: {{ oppure }}

fonte: https://docs.python.org/3/library/string.html#formatstrings

paragrafo 6.1.3: "Format strings contain “replacement fields” surrounded by curly braces {}. Anything that is not contained in braces is considered literal text, which is copied unchanged to the output. If you need to include a brace character in the literal text, it can be escaped by doubling: {{ and }}."

francesco.dev (33560 points)
14 51 129
by (33.6k points)
Ottimo Vlad, stavo seguendo anche io la domanda e mi hai tolto un bel dubbio!
Grazie.
Gabriele97 (2010 points)
8 29 38
by (2.0k points)
A non avevo proprio idea si potesse risolvere con la doppia graffa, grazie mille!
francesco.dev (33560 points)
14 51 129
by (33.6k points)
Anche io stavo pensando a chissà quale soluzione a tale problema quando, in realtà, a volte la soluzione è anche la cosa più ovvia e semplice :)
V
Vlad (4580 points)
2 14 24
by (4.6k points)
Grazie a voi ragazzi, e ai creatori di python che hanno trovato una soluzione così semplice
francesco.dev (33560 points)
14 51 129
by (33.6k points)

Ciao Gabriele97!

A quanto so il problema è proprio questo! Usando le graffe e richiamando la funzione format() ogni coppia di graffe che l'interprete trova la sostituisce con ciò che hai passato come parametro della funzione stessa!
Quindi, nella sintassi del print troveremo una stringa contenente almeno una graffa e, dopo tale stringa, richiamerai la funzione format, passando come parametri i valori da sostituire alle varie graffe che hai inserito nella stringa (ovviamente in ordine).

Per risolvere tale problema, ti consiglio ciò che mi è venuto in mente:
Se vuoi stampare una coppia di graffe ti basterà creare una print diversa da quella che richiama la funzione format, cosicché tu possa usare le graffe senza che l'interprete pensi che servano per contenere i valori inseriti come parametri della funzione format().

Vediamo se qualcun'altro ha qualche idea!

Come ha detto Vlad forse una ce n'è, ovvero l'utilizzo della doppia graffa in apertura ed in chiusura: {{}}
Non ne ero a conoscenza e ringrazio Vlad per averci aiutato!


Nel mentre spero di averti aiutato,
Buona serata.

- Francesco Pio Scognamiglio