logo

Pitone | Formattazione dell'output

In Python esistono diversi modi per presentare l'output di un programma. I dati possono essere stampati in un formato leggibile dall'uomo o scritti in un file per un utilizzo futuro o anche in qualche altra forma specificata. Gli utenti spesso desiderano un maggiore controllo sulla formattazione dell'output rispetto alla semplice stampa di valori separati da spazi.

Formattazione dell'output in Python

Esistono diversi modi per formattare l'output utilizzando il metodo String in Pitone .



  • Utilizzo dell'operatore Modulo stringa(%)
  • Utilizzo del metodo di formattazione
  • Utilizzo del metodo delle stringhe
  • Regola di conversione del formato di Python

Formattazione dell'output utilizzando l'operatore String Modulo(%)

IL Modulo operatore % può essere utilizzato anche per la formattazione delle stringhe. Interpreta l'argomento sinistro in modo molto simile a un formato in stile printf() come nelle stringhe del linguaggio C da applicare all'argomento destro. In Python non esiste la funzione printf() ma è contenuta la funzionalità dell'antica printf Pitone . A questo scopo, l'operatore modulo % viene sovraccaricato dalla classe string per eseguire la formattazione della stringa. Pertanto, viene spesso chiamato operatore modulo stringa (o talvolta anche chiamato operatore modulo). L'operatore modulo stringa ( % ) è ancora disponibile in Python(3.x) ed è ampiamente utilizzato. Ma oggigiorno il vecchio stile di formattazione è stato rimosso dal linguaggio.

Python3








# Python program showing how to use string modulo operator(%)> print>(>'Geeks : %2d, Portal : %5.2f'> %> (>1>,>05.333>))> print>(>'Total students : %3d, Boys : %2d'> %> (>240>,>120>))># print integer value> print>(>'%7.3o'> %> (>25>))># print octal value> print>(>'%10.3E'> %> (>356.08977>))># print exponential value>

>

>

Produzione

Geeks : 1, Portal : 5.33 Total students : 240, Boys : 120 031 3.561E+02>
Formattazione dell'output utilizzando l'operatore Modulo stringa(%)

Formattazione dell'output utilizzando l'operatore Modulo

Ce ne sono due nel nostro esempio: %2d e %5.2f. La sintassi generale per un segnaposto di formato è:

 %[flags][width][.precision]type>

Diamo un'occhiata ai segnaposto nel nostro esempio.

  • Il primo segnaposto '%2d' viene utilizzato per il primo componente della nostra tupla, ovvero l'intero 1. Verrà stampato con 2 caratteri e poiché 1 consiste di una sola cifra, l'output viene riempito con 1 spazio iniziale.
  • Il secondo segnaposto '%5.2f' è per un numero float. Come altri segnaposto, viene introdotto con il carattere %. Specifica il numero totale di cifre che la stringa deve contenere, incluso il punto decimale e tutte le cifre, sia prima che dopo il punto decimale.
  • Il nostro numero float 05.333 è formattato con 5 caratteri e una precisione di 2, indicato dal numero che segue il '.' nel segnaposto. L'ultimo carattere 'f' indica che il segnaposto rappresenta un valore float.

Formattazione dell'output utilizzando il metodo Format

Il metodo format() è stato aggiunto in Python(2.6). Il metodo di formattazione delle stringhe richiede uno sforzo manuale maggiore. Gli utenti utilizzano {} per contrassegnare dove verrà sostituita una variabile e possono fornire direttive di formattazione dettagliate, ma l'utente deve anche fornire le informazioni da formattare. Questo metodo ci consente di concatenare elementi all'interno di un output tramite la formattazione posizionale. Per esempio -

Esempio 1: Il codice spiega varie tecniche di formattazione delle stringhe Python. I valori sono forniti esplicitamente o indicati nell'ordine in cui appaiono nella procedura format(). Le stringhe f consentono l'uso di parentesi graffe e del prefisso f per incorporare espressioni all'interno della stringa letterali. Le espressioni delle f-Strings vengono valutate e i loro valori appropriati vengono sostituiti.

Python3




print>(>'I love {} for '{}!''>.>format>(>'Geeks'>,>'Geeks'>))> # using format() method and referring a position of the object> print>(>'{0} and {1}'>.>format>(>'Geeks'>,>'Portal'>))> print>(>'{1} and {0}'>.>format>(>'Geeks'>,>'Portal'>))> print>(f>'I love {'Geeks'} for '{'Geeks'}!''>)> # using format() method and referring a position of the object> print>(f>'{'Geeks'} and {'Portal'}'>)>

>

>

Produzione

I love Geeks for 'Geeks!' Geeks and Portal Portal and Geeks I love Geeks for 'Geeks!' Geeks and Portal>

Le parentesi e i caratteri al loro interno (chiamati campi di formato ) vengono sostituiti con gli oggetti passati al metodo format(). Un numero tra parentesi può essere utilizzato per fare riferimento alla posizione dell'oggetto passato al metodo format().

Esempio 2: Con l'aiuto dei parametri posizionali e di un argomento denominato ('altro') nella prima riga, i valori 'Geeks', 'For' e 'Geeks' vengono aggiunti al modello di stringa. 'Geeks:12, Portal: 0.55′ viene stampato, con il primo valore che appare come un numero intero di 2 cifre e il secondo numero con 2 cifre decimali e una larghezza di 8 bit. Gli argomenti con nome del metodo format(), indicati da etichette specifiche ('a' e 'p') per i numeri '453' e '59.058',

Python3




# combining positional and keyword arguments> print>(>'Number one portal is {0}, {1}, and {other}.'> >.>format>(>'Geeks'>,>'For'>, other>=>'Geeks'>))> # using format() method with number> print>(>'Geeks :{0:2d}, Portal :{1:8.2f}'>.> >format>(>12>,>00.546>))> # Changing positional argument> print>(>'Second argument: {1:3d}, first one: {0:7.2f}'>.> >format>(>47.42>,>11>))> print>(>'Geeks: {a:5d}, Portal: {p:8.2f}'>.> >format>(a>=> 453>, p>=> 59.058>))>

>

>

Produzione

numeri romani 1 100
Number one portal is Geeks, For, and Geeks. Geeks :12, Portal : 0.55 Second argument: 11, first one: 47.42 Geeks: 453, Portal: 59.06>

Il diagramma seguente con un esempio di utilizzo illustra il funzionamento del metodo di formato per i parametri posizionali:

Formattazione dell'output utilizzando il metodo Format

Formattazione dell'output utilizzando il metodo Format

Esempio 3: Il codice mostra come utilizzare i dizionari con il metodo format() di Python. La “scheda” del dizionario nel primo esempio ha chiavi e valori associati. Il metodo format() utilizza l'indicizzazione per inserire i valori nel modello di stringa. Nel secondo esempio, le chiavi con nome in un dizionario vengono utilizzate come dati.

Python3




tab>=> {>'geeks'>:>4127>,>'for'>:>4098>,>'geek'>:>8637678>}> # using format() in dictionary> print>(>'Geeks: {0[geeks]:d}; For: {0[for]:d}; '> >'Geeks: {0[geek]:d}'>.>format>(tab))> data>=> dict>(fun>=>'GeeksForGeeks'>, adj>=>'Portal'>)> print>(>'I love {fun} computer {adj}'>.>format>(>*>*>data))>

>

>

Produzione

dimensione di un cucchiaino
Geeks: 4127; For: 4098; Geeks: 8637678 I love GeeksForGeeks computer Portal>

Formattazione dell'output utilizzando il metodo String

Questo output è formattato utilizzando metodo stringa, ad es. operazioni di affettamento e concatenazione. Il tipo string ha alcuni metodi che aiutano a formattare l'output in modo più elaborato. Alcuni metodi che aiutano nella formattazione di un output sono str.luce() , str.rjust() , E str.centro()

Python3




cstr>=> 'I love geeksforgeeks'> # Printing the center aligned string with fillchr> print>(>'Center aligned string with fillchr: '>)> print>(cstr.center(>40>,>'#'>))> # Printing the left aligned string with '-' padding> print>(>'The left aligned string is : '>)> print>(cstr.ljust(>40>,>'-'>))> # Printing the right aligned string with '-' padding> print>(>'The right aligned string is : '>)> print>(cstr.rjust(>40>,>'-'>))>

>

>

Produzione

Center aligned string with fillchr: ##########I love geeksforgeeks########## The left aligned string is : I love geeksforgeeks-------------------- The right aligned string is : --------------------I love geeksforgeeks>

Regola di conversione del formato di Python

Questa tabella elenca le linee guida per la conversione del formato standard utilizzate dalla funzione format() di Python.

Conversione

Senso

D

Intero decimale

B

Formato binario

O

formato ottale

In

Obsoleto ed equivalente a 'd'

xo X

Formato esadecimale

eo E

Notazione esponenziale

f o F

Decimale in virgola mobile

g o G

Formato generale

C

Singolo carattere

R

Formato stringa (usando repr())

S

Formato stringa (utilizzando str()))

%

Percentuale