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']>