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

Do you need help?

Notice Board

metodo str.format()

Gabriele97 (2010 points)
12 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!
1.0k 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)
21 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)
12 29 38
by (2.0k points)
A non avevo proprio idea si potesse risolvere con la doppia graffa, grazie mille!
francesco.dev (33560 points)
21 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)
21 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