logo

Python String-formaat() Methode

Deformat()>method is een krachtig hulpmiddel waarmee ontwikkelaars opgemaakte tekenreeksen kunnen maken door variabelen en waarden in tijdelijke aanduidingen binnen een sjabloontekenreeks in te sluiten. Deze methode biedt een flexibele en veelzijdige manier om tekstuitvoer te construeren voor een breed scala aan toepassingen. Python tekenreeksformaat() functie is geïntroduceerd om efficiënter met complexe tekenreeksopmaak om te gaan. Soms willen we in dat geval algemene afdrukinstructies maken in plaats van elke keer dat we het concept van opmaak gebruiken, afdrukinstructies schrijven.

Python String Format()-syntaxis

Syntaxis: { }.format(waarde)



Parameters:

  • waarde : Kan een geheel getal, een numerieke constante met drijvende komma, een tekenreeks, tekens of zelfs variabelen zijn.

Retourtype: Retourneert een opgemaakte tekenreeks waarbij de waarde is doorgegeven als parameter op de plaatsaanduidingspositie.

String Format() in Python-voorbeeld

Een eenvoudige demonstratie van de Python String format() Methode in Python.



Python3






name>=> 'Ram'> age>=> 22> message>=> 'My name>is> {>0>}>and> I am {>1>} years> >old. {>1>}>is> my favorite> >number.'.>format>(name, age)> print>(message)>

>

>

Uitvoer

My name is Ram and I am 22 years old. 22 is my favorite number.>

Met behulp van de .Format()-methode

Deze methode van de ingebouwde stringklasse biedt functionaliteit voor complexe vervangingen van variabelen en waardeopmaak. Deze nieuwe opmaaktechniek wordt als eleganter beschouwd. De algemene syntaxis van de methode format() is string.format(var1, var2,…). Hier zullen we proberen te begrijpen hoe u een tekenreeks met accolades kunt opmaken Python .

Python3




txt>=> 'I have {an:.2f} Rupees!'> print>(txt.>format>(an>=> 4>))>

>

>

Uitvoer

I have 4.00 Rupees!>

Eén enkele formatter gebruiken

In dit voorbeeld gebruiken we de notatie van tekenreeksbeugels programma om de str. format() methode. Formatters werken door een of meer vervangende velden en tijdelijke aanduidingen in te voeren, gedefinieerd door accolades { } in een string en roep de str.format() .

Python3




# using format option in a simple string> print>(>'{}, A computer science portal for geeks.'> >.>format>(>'techcodeview.com'>))> # using format option for a> # value stored in a variable> str> => 'This article is written in {}'> print>(>str>.>format>(>'Python'>))> # formatting a string using a numeric constant> print>(>'Hello, I am {} years old !'>.>format>(>18>))>

>

terminal kali linux

>

Uitvoer

techcodeview.com, A computer science portal for geeks. This article is written in Python Hello, I am 18 years old!>

String format() met meerdere tijdelijke aanduidingen

Er kunnen meerdere paren accolades worden gebruikt bij het opmaken van het tekenreeks in Python . Laten we zeggen dat er nog een vervanging van variabelen nodig is in de zin, wat gedaan kan worden door een tweede paar accolades toe te voegen en een tweede waarde in de methode door te geven. Python zal de tijdelijke aanduidingen vervangen door waarden in volgorde.

Syntaxis: { } { } .format(waarde1, waarde2)

Parameters: (waarde1, waarde2) : Dit kunnen gehele getallen, numerieke constanten met drijvende komma, tekenreeksen, tekens en zelfs variabelen zijn. Het enige verschil is dat het aantal waarden dat als parameters wordt doorgegeven in de methode format() gelijk moet zijn aan het aantal tijdelijke aanduidingen dat in de tekenreeks is gemaakt.

Fouten en uitzonderingen:

Indexfout: Treedt op wanneer de tekenreeks een extra tijdelijke aanduiding heeft en we er geen waarde voor hebben doorgegeven in de format() -methode. Python wijst de tijdelijke aanduidingen gewoonlijk toe met een standaardindex in de volgorde zoals 0, 1, 2, 3…. om toegang te krijgen tot de waarden die als parameters zijn doorgegeven. Dus wanneer het een tijdelijke aanduiding tegenkomt waarvan de index geen enkele waarde als parameter heeft doorgegeven, genereert het IndexError.

Python-programma dat meerdere tijdelijke aanduidingen gebruikt om de str.format()-methode te demonstreren.

Python3




# Multiple placeholders in format() function> my_string>=> '{}, is a {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))> # different datatypes can be used in formatting> print>(>'Hi ! My name is {} and I am {} years old'> >.>format>(>'User'>,>19>))> # The values passed as parameters> # are replaced in order of their entry> print>(>'This is {} {} {} {}'> >.>format>(>'one'>,>'two'>,>'three'>,>'four'>))>

>

>

Uitvoer

techcodeview.com, is a computer science portal for geeks Hi! My name is User and I am 19 years old This is one two three four>

Tekenreeksformat() IndexError

Python-programma dat demonstreert dat het indexfoutnummer van tijdelijke aanduidingen vier is, maar er worden slechts drie waarden doorgegeven.

Python3




# parameters in format function.> my_string>=> '{}, is a {} {} science portal for {}'> print>(my_string.>format>(>'techcodeview.com'>,>'computer'>,>'geeks'>))>

>

>

Uitvoer

IndexError: tuple index out of range>

Tekenreeksen opmaken met behulp van Escape-reeksen

U kunt twee of meer speciaal aangewezen tekens binnen een tekenreeks gebruiken om een ​​tekenreeks op te maken of een opdracht uit te voeren. Deze karakters worden ontsnappingsreeksen genoemd. Een Ontsnappingsreeks in Python begint met een backslash (). is bijvoorbeeld een ontsnappingsreeks waarin de algemene betekenis van de letter n letterlijk wordt geëscaped en een alternatieve betekenis krijgt: een nieuwe regel.

Ontsnappingsreeks Beschrijving Voorbeeld
N Breekt de tekenreeks op in een nieuwe regel print(‘Ik heb dit rijm ontworpen om het te zijner tijd uit te leggen Alles wat ik weet’)
T Voegt een horizontaal tabblad toe print(‘Tijd is iets waardevols’)
Drukt een backslash af print(‘Zie hoe het voorbij vliegt erwijl de slinger zwaait’)
Drukt één enkele offerte af print(‘Het maakt niet eens uit hoe hard je het probeert’)
Drukt een dubbel aanhalingsteken af print(‘Het is zoonwerkelijk‘)
A maakt een geluid als een bel afdrukken(‘a’)

Formatters met positionele en trefwoordargumenten

Wanneer tijdelijke aanduidingen { } leeg zijn, zal Python de waarden die door str.format() worden doorgegeven, op volgorde vervangen. De waarden die bestaan ​​binnen de str.format() methode zijn in essentie tupel gegevenstypen en elke individuele waarde in het tupel kan worden aangeroepen door het indexnummer, dat begint met het indexnummer 0. Deze indexnummers kunnen worden doorgegeven aan de accolades die dienen als tijdelijke aanduidingen in de originele string.

Syntaxis: {0} {1}.format(positioneel_argument, trefwoord_argument)

Parameters: (positioneel_argument, trefwoord_argument)

  • Positioneel_argument kunnen gehele getallen, numerieke constanten met drijvende komma, tekenreeksen, tekens en zelfs variabelen zijn.
  • Trefwoord_argument is in wezen een variabele die een waarde opslaat, die als parameter wordt doorgegeven.

Voorbeeld: Het gebruik van formatters met positionele sleutelargumenten demonstreren.

Python3




# Positional arguments> # are placed in order> print>(>'{0} love {1}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> # Reverse the index numbers with the> # parameters of the placeholders> print>(>'{1} love {0}!!'>.>format>(>'techcodeview.com'>,> >'Geeks'>))> print>(>'Every {} should know the use of {} {} programming and {}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,> >'Operating Systems'>))> # Use the index numbers of the> # values to change the order that> # they appear in the string> print>(>'Every {3} should know the use of {2} {1} programming and {0}'> >.>format>(>'programmer'>,>'Open'>,>'Source'>,>'Operating Systems'>))> # Keyword arguments are called> # by their keyword name> print>(>'{gfg} is a {0} science portal for {1}'> >.>format>(>'computer'>,>'geeks'>, gfg>=>'techcodeview.com'>))>

>

>

Uitvoer

techcodeview.com love Geeks!!  Geeks love techcodeview.com!!  Every programmer should know the use of Open Source programming and Operating Systems  Every Operating Systems should know the use of Source Open programming and programmer  techcodeview.com is a computer science portal for geeks>

Type specificeren in Python

Er kunnen meer parameters worden opgenomen binnen de accolades van onze syntaxis. Gebruik de syntaxis van de indelingscode {veldnaam: conversie} , waar veldnaam specificeert het indexnummer van het argument voor de str.format() methode, en conversie verwijst naar de conversiecode van het gegevenstype.

%s gebruiken – tekenreeksconversie via str() voorafgaand aan het formatteren

Python3




print>(>'%20s'> %> (>'geeksforgeeks'>, ))> print>(>'%-20s'> %> (>'Interngeeks'>, ))> print>(>'%.5s'> %> (>'Interngeeks'>, ))>

>

>

Uitvoer

geeksforgeeks Interngeeks  Inter>

%c gebruiken - karakter vóór het formatteren

Python3




type> => 'bug'> result>=> 'troubling'> print>('I wondered why the program was>%>s me. Then> it dawned on me it was a>%>s .'>%> >(result,>type>))>

>

>

Uitvoer

I wondered why the program was troubling me. Thenit dawned on me it was a bug .>

%i gebruiken ondertekend decimaal geheel getal en %D decimaal geheel getal met teken (grondtal 10) vóór het formatteren

Python3




match>=> 12000> site>=> 'Amazon'> print>('>%>s>is> so useful. I tried to look> up mobile>and> they had a nice one that cost>%>d rupees.'>%> (site, match))>

>

>

Uitvoer

Amazon is so useful. I tried to lookup mobile and they had a nice one that cost 12000 rupees.>

Nog een nuttige typespecificatie

  • %in niet-ondertekend decimaal geheel getal
  • %O octaal geheel getal
  • F – drijvende-kommaweergave
  • B - binair getal
  • O – octaal getal
  • %X – hexadecimaal met kleine letters na 9
  • %X – hexadecimaal met hoofdletters na 9
  • Het is – exponentnotatie

Je kunt het ook opgeven opmaak symbolen . De enige verandering is het gebruik van een dubbele punt (:) in plaats van %.

Gebruik bijvoorbeeld in plaats van %s {:s} en in plaats van %d gebruik (:d}

Syntaxis: Tekenreeks {veldnaam:conversie} Voorbeeld.format(waarde)
Fouten en uitzonderingen:
Waardefout: Er treedt een fout op tijdens de typeconversie bij deze methode.

Converteer decimale gehele getallen met grondtal 10 naar numerieke constanten met drijvende komma

Python3




print>(>'This site is {0:f}% securely {1}!!'>.> >format>(>100>,>'encrypted'>))> # To limit the precision> print>(>'My average of this {0} was {1:.2f}%'> >.>format>(>'semester'>,>78.234876>))> # For no decimal places> print>(>'My average of this {0} was {1:.0f}%'> >.>format>(>'semester'>,>78.234876>))> # Convert an integer to its binary or> # with other different converted bases.> print>(>'The {0} of 100 is {1:b}'> >.>format>(>'binary'>,>100>))> print>(>'The {0} of 100 is {1:o}'> >.>format>(>'octal'>,>100>))>

>

>

Uitvoer

This site is 100.000000% securely encrypted!! My average of this semester was 78.23% My average of this semester was 78% The binary of 100 is 1100100 The octal of 100 is 144>

Typ Specificatiefouten

Demonstreer ValueError terwijl u geforceerd doet type-conversies

Python3




# When explicitly converted floating-point> # values to decimal with base-10 by 'd'> # type conversion we encounter Value-Error.> print>(>'The temperature today is {0:d} degrees outside !'> >.>format>(>35.567>))> # Instead write this to avoid value-errors> ''' print('The temperature today is {0:.0f} degrees outside !'> >.format(35.567))'''>

>

>

Uitvoer

ValueError: Unknown format code 'd' for object of type 'float'>

Vervangingen opvullen of spaties genereren

Demonstratie van spatiëring wanneer strings als parameters worden doorgegeven

Standaard worden tekenreeksen in het veld links uitgelijnd, en getallen rechts uitgelijnd. We kunnen dit wijzigen door een uitlijningscode net na de dubbele punt te plaatsen.

  <   : left-align text in the field   ^   : center text in the field>: tekst rechts uitlijnen in het veld>

Python3




# To demonstrate spacing when> # strings are passed as parameters> print>(>'{0:4}, is the computer science portal for {1:8}!'> >.>format>(>'techcodeview.com'>,>'geeks'>))> # To demonstrate spacing when numeric> # constants are passed as parameters.> print>(>'It is {0:5} degrees outside !'> >.>format>(>40>))> # To demonstrate both string and numeric> # constants passed as parameters> print>(>'{0:4} was founded in {1:16}!'> >.>format>(>'techcodeview.com'>,>2009>))> # To demonstrate aligning of spaces> print>(>'{0:^16} was founded in {1:<4}!'> >.>format>(>'techcodeview.com'>,>2009>))> print>(>'{:*^20s}'>.>format>(>'Geeks'>))>

>

>

Uitgang:

techcodeview.com, is the computer science portal for geeks ! It is 40 degrees outside! techcodeview.com was founded in 2009!  techcodeview.com was founded in 2009 ! *******Geeks********>

Toepassingen

Formatters worden over het algemeen gebruikt om gegevens te ordenen. Formatters komen het beste tot hun recht wanneer ze worden gebruikt om veel gegevens op een visuele manier te ordenen. Als we databases aan gebruikers laten zien, kan het gebruik van formatters om de veldgrootte te vergroten en de uitlijning te wijzigen de uitvoer leesbaarder maken.

Voorbeeld: de organisatie van grote gegevens demonstreren met behulp van format()

Python3




# which prints out i, i ^ 2, i ^ 3,> # i ^ 4 in the given range> # Function prints out values> # in an unorganized manner> def> unorganized(a, b):> >for> i>in> range>(a, b):> >print>(i, i>*>*>2>, i>*>*>3>, i>*>*>4>)> # Function prints the organized set of values> def> organized(a, b):> >for> i>in> range>(a, b):> ># Using formatters to give 6> ># spaces to each set of values> >print>(>'{:6d} {:6d} {:6d} {:6d}'> >.>format>(i, i>*>*> 2>, i>*>*> 3>, i>*>*> 4>))> # Driver Code> n1>=> int>(>input>(>'Enter lower range :- '>))> n2>=> int>(>input>(>'Enter upper range :- '>))> print>(>'------Before Using Formatters-------'>)> # Calling function without formatters> unorganized(n1, n2)> print>()> print>(>'-------After Using Formatters---------'>)> print>()> # Calling function that contains> # formatters to organize the data> organized(n1, n2)>

>

>

Uitgang:

Enter lower range :- 3 Enter upper range :- 10 ------Before Using Formatters------- 3 9 27 81 4 16 64 256 5 25 125 625 6 36 216 1296 7 49 343 2401 8 64 512 4096 9 81 729 6561 -------After Using Formatters---------  3 9 27 81  4 16 64 256  5 25 125 625  6 36 216 1296  7 49 343 2401  8 64 512 4096  9 81 729 6561>

Een woordenboek gebruiken voor tekenreeksopmaak

Een woordenboek gebruiken om waarden uit te pakken in de tijdelijke aanduidingen in de tekenreeks die moet worden opgemaakt. Wij gebruiken in principe ** om de waarden uit te pakken. Deze methode kan nuttig zijn bij het vervangen van tekenreeksen tijdens het voorbereiden van een SQL-query.

Python3




introduction>=> 'My name is {first_name} {middle_name} {last_name} AKA the {aka}.'> full_name>=> {> >'first_name'>:>'Tony'>,> >'middle_name'>:>'Howard'>,> >'last_name'>:>'Stark'>,> >'aka'>:>'Iron Man'>,> }> # Notice the use of '**' operator to unpack the values.> print>(introduction.>format>(>*>*>full_name))>

>

>

Uitgang:

My name is Tony Howard Stark AKA the Iron Man.>

Python-formaat() met lijst

Gegeven een lijst met zwevende waarden, is het de taak om alle zwevende waarden af ​​te korten tot twee decimalen. Laten we eens kijken naar de verschillende methoden om de taak uit te voeren.

Python3

nfa naar dfa




# Python code to truncate float> # values to 2 decimal digits.> > # List initialization> Input> => [>100.7689454>,>17.232999>,>60.98867>,>300.83748789>]> > # Using format> Output>=> [>'{:.2f}'>.>format>(elem)>for> elem>in> Input>]> > # Print output> print>(Output)>

>

>

Uitvoer

['100.77', '17.23', '60.99', '300.84']>