logo

Python String-opmaak – Hoe String opmaken?

Met tekenreeksopmaak kunt u dynamische tekenreeksen maken door variabelen en waarden te combineren. In dit artikel bespreken we ongeveer 5 manieren om een ​​string op te maken.

Je leert verschillende methoden voor het opmaken van tekenreeksen met voorbeelden voor een beter begrip. Laten we ze nu bekijken!



Hoe tekenreeksen in Python te formatteren

Er zijn vijf verschillende manieren om tekenreeksopmaak uit te voeren Python

  • Formatteren met % Operator.
  • Formatteren met de tekenreeksmethode format().
  • Opmaak met letterlijke tekenreeksen, f-strings genoemd.
  • Opmaak met tekenreekssjabloonklasse
  • Opmaak met de stringmethode center().

We zullen dus het geheel van de bovengenoemde manieren zien, en we zullen ons ook concentreren op welke tekenreeksopmaakstrategie de beste is.

1. Tekenreeks opmaken met % Operator

Het is de oudste methode voor het formatteren van tekenreeksen. Hier gebruiken we de modulo % exploitant . De module % is ook bekend als de tekenreeksformatteringsoperator.



Python-formaattekenreeks met behulp van de %-operator

In de uitdrukking De schurftige, magere zwerfhond %s heeft % ‘haastig’ opgeslokt, wordt de tijdelijke aanduiding %s binnen de string vervangen door de waarde ‘haastig’.

Python3

Java-datum naar tekenreeks






print>(>'The mangy, scrawny stray dog %s gobbled down'> %>'hurriedly'> +> >'the grain-free, organic dog food.'>)>

>

>

Uitvoer

The mangy, scrawny stray dog hurriedly gobbled downthe grain-free, organic dog food.>

Meerdere strings injecteren met behulp van de modulo-operator

Hier voegen we meerdere tekenreeksen in met de %-operator.

Python3




x>=> 'looked'> print>(>'Misha %s and %s around'>%>(>'walked'>,x))>

>

>

Uitvoer

Misha walked and looked around>

Precisieafhandeling in Python met behulp van de %-operator

Drijvende-kommagetallen gebruiken het formaat %a.bf . Hier, A zou het minimumaantal cijfers zijn dat in de string aanwezig moet zijn; deze kunnen worden opgevuld met witruimte als het hele getal niet zoveel cijfers bevat.

Dichtbij dit, vriend geeft aan hoeveel cijfers er achter de komma moeten worden weergegeven.

In deze code bevat de string ‘De waarde van pi is: %5.4f’ een formaatspecificatie %5.4f. De indelingsspecificatie %5.4f wordt gebruikt om een ​​getal met drijvende komma op te maken met een minimale breedte van 5 en een nauwkeurigheid van 4 decimalen.

Python3




print>(>'The value of pi is: %5.4f'> %>(>3.141592>))>

>

>

Uitvoer

The value of pi is: 3.1416>

Meerdere formatconversietypes

In de gegeven code wordt de opmaakreeks Python geconverteerd naar Integer en drijvende komma met %d,%f.

Python3




variable>=> 12> string>=> 'Variable as integer>=> %>d > Variable as>float> => %>f'>%>(variable, variable)> print> (string)>

>

>

kaarten Java
Uitvoer

Variable as integer = 12 Variable as float = 12.000000>

Opmerking: Voor meer informatie over %-formattering, zie Tekenreeksopmaak in Python met %

2. String formatteren met de format()-methode

Format()-methode werd geïntroduceerd met Python3 voor het efficiënter verwerken van complexe tekenreeksopmaak.

Formatters werken door een of meer vervangende velden en tijdelijke aanduidingen, gedefinieerd door een paar accolades { }, in een string te plaatsen en de str.format() . De waarde die we in de tijdelijke aanduidingen willen plaatsen en samenvoegen met de tekenreeks die als parameters wordt doorgegeven aan de formaatfunctie.

Syntaxis: ‘String hier {} en dan ook {}’.format(‘iets1′,’iets2’)

Tekenreeks Python formatteren met behulp van de format()-methode

Deze code gebruikt {} als tijdelijke aanduiding en vervolgens hebben we de methode.format() aangeroepen op 'gelijk' aan de tijdelijke aanduiding.

Python3




print>(>'We all are {}.'>.>format>(>'equal'>))>

>

>

Uitvoer

We all are equal.>

Op index gebaseerde invoeging

In deze code worden accolades {} met indices gebruikt binnen de tekenreeks ‘{2} {1} {0}’ om de posities aan te geven waar de overeenkomstige waarden worden geplaatst.

Python3




print>(>'{2} {1} {0}'>.>format>(>'directions'>,> >'the'>,>'Read'>))>

>

>

Uitvoer

Read the directions>

Object invoegen door trefwoorden toe te wijzen

In deze code worden accolades {} met benoemde tijdelijke aanduidingen ({a}, {b}, {c}) gebruikt binnen de tekenreeks 'a: {a}, b: {b}, c: {c}' om aan te geven de posities waar de overeenkomstige benoemde argumenten zullen worden geplaatst.

Python3




print>(>'a: {a}, b: {b}, c: {c}'>.>format>(a>=> 1>,> >b>=> 'Two'>,> >c>=> 12.3>))>

>

>

Uitvoer

a: 1, b: Two, c: 12.3>

Hergebruik de ingevoegde objecten

In deze code worden accolades {} met benoemde tijdelijke aanduidingen ({p}) gebruikt binnen de string 'De eerste {p} was in orde, maar de {p} {p} was moeilijk.' argument p wordt geplaatst.

Python3




print>(> >'The first {p} was alright, but the {p} {p} was tough.'>.>format>(p>=>'second'>))>

>

>

Uitvoer

The first second was alright, but the second second was tough.>

Zweef precisie met de.format() methode

Syntaxis: {[index]:[breedte][.precisie][type]}

Het type kan worden gebruikt met formaatcodes:

  • 'D' voor gehele getallen
  • 'F' voor getallen met drijvende komma
  • 'B' voor binaire getallen
  • 'O' voor octale getallen
  • 'X' voor octale hexadecimale getallen
  • 'S' voor snaar
  • 'Het is' voor drijvende komma in een exponentformaat

Voorbeeld:

Beide codes voeren tekenreeksopmaak uit. De eerste string is geformatteerd met ‘%’ en de tweede string is geformatteerd met .format().

Python3




print>(>'The valueof pi is: %1.5f'> %>3.141592>)> print>(>'The valueof pi is: {0:1.5f}'>.>format>(>3.141592>))>

>

computer uitgevonden welk jaar
>

Uitvoer

The valueof pi is: 3.14159 The valueof pi is: 3.14159>

Opmerking: Raadpleeg voor meer informatie over str.format(). format()-functie in Python

3. Python f-snaar begrijpen

PEP 498 introduceerde een nieuw tekenreeksformatteringsmechanisme dat bekend staat als Literal String Interpolation of beter bekend als F-snaren (vanwege het leidende f-teken dat voorafgaat aan de letterlijke tekenreeks). Het idee achter f-String in Python is om stringinterpolatie eenvoudiger te maken.

Om een ​​f-string in Python te maken, zet je de string vooraf met de letter f. De string zelf kan op vrijwel dezelfde manier worden opgemaakt als u dat zou doen str. formaat() . F-strings bieden een beknopte en handige manier om Python-expressies in te sluiten in letterlijke tekenreeksen voor opmaak.

Tekenreeksopmaak met F-Strings

In deze code is de f-string fMijn naam is {naam}. wordt gebruikt om de waarde van de naamvariabele in de string te interpoleren.

Python3




name>=> 'Ele'> print>(f>'My name is {name}.'>)>

>

>

Uitvoer

My name is Ele.>

Deze nieuwe opmaaksyntaxis is zeer krachtig en eenvoudig. Je kunt ook willekeurige Python-expressies invoegen en je kunt er zelfs rekenkundige bewerkingen in uitvoeren.

Rekenkundige bewerkingen met behulp van F-strings

In deze code is de f-string f Hij zei dat zijn leeftijd {2 * (a + b)} is. wordt gebruikt om het resultaat van de uitdrukking 2 * (a + b) in de string te interpoleren.

Python3

sneltoetsen voor Linux




a>=> 5> b>=> 10> print>(f>'He said his age is {2 * (a + b)}.'>)>

>

>

Uitvoer

He said his age is 30.>

Wij kunnen ook gebruiken lambda uitdrukkingen in f-snaar opmaak.

Lambda-expressies met behulp van F-strings

In deze code wordt een anonieme lambda-functie gedefinieerd met behulp van lambda x: x*2. Deze lambdafunctie neemt een argument x en retourneert het dubbele.

Python3




print>(f>'He said his age is {(lambda x: x*2)(3)}'>)>

>

>

Uitvoer

He said his age is 6>

Zweefprecisie in de f-String-methode

In deze code wordt de f-string-opmaak gebruikt om de waarde van de num-variabele in de string te interpoleren.

  Syntax  : {value:{width}.{precision}}>

Python3




num>=> 3.14159> print>(f>'The valueof pi is: {num:{1}.{5}}'>)>

>

>

Uitvoer

The valueof pi is: 3.1416>

Opmerking: Raadpleeg voor meer informatie over f-snaren f-snaren in Python

kaarten Java

4. Python-tekenreekssjabloonklasse

In de String-module stelt Template Class ons in staat een vereenvoudigde syntaxis voor uitvoerspecificatie te creëren. Het formaat maakt gebruik van tijdelijke aanduidingen gevormd door $ met geldige Python identificatiegegevens (alfanumerieke tekens en onderstrepingstekens). Door de tijdelijke aanduiding met accolades te omringen, kan deze worden gevolgd door meer alfanumerieke letters zonder tussenliggende spaties. Door $$ te schrijven, ontstaat er een enkele ontsnapte $:

String Python opmaken met behulp van sjabloonklasse

Deze code importeert de klasse Template uit de stringmodule. Met de klasse Template kunnen we een sjabloonreeks maken met tijdelijke aanduidingen die kunnen worden vervangen door werkelijke waarden. Hier vervangen we de waarden n1 en n2 in plaats van n3 en n4 in de string n.

Python3




from> string>import> Template> n1>=> 'Hello'> n2>=> 'techcodeview.com'> n>=> Template(>'$n3 ! This is $n4.'>)> # and pass the parameters into the> # template string.> print>(n.substitute(n3>=>n1, n4>=>n2))>

>

>

Uitvoer

Hello ! This is techcodeview.com.>

Opmerking: Raadpleeg voor meer informatie over de klasse String Template Tekenreekssjabloonklasse in Python

5. String opmaken met de center()-methode

De methode center() is een ingebouwde methode in de str-klasse van Python die een nieuwe string retourneert die gecentreerd is binnen een string met een opgegeven breedte.

Tekenreeks opmaken met de methode center().

Deze code retourneert een new snaar opgevuld met spaties aan de linker- en rechterkant.

Python3




string>=> 'GeeksForGeeks!'> width>=> 30> centered_string>=> string.center(width)> print>(centered_string)>

>

>

Uitvoer

 GeeksForGeeks!>

Python-indelingsreeks: % versus .format versus f-string letterlijk

f-snaren zijn sneller en beter dan beide %-opmaak En str.format() . f-strings-expressies worden tijdens runtime geëvalueerd, en we kunnen ook expressies insluiten in f-string, met behulp van een zeer eenvoudige en gemakkelijke syntaxis.

De expressies binnen de accolades worden tijdens runtime geëvalueerd en vervolgens samengevoegd met het stringgedeelte van de f-string, waarna de laatste string wordt geretourneerd.

Opmerking: Gebruik Template String als de string een door de gebruiker geleverde string is. Gebruik anders f-Strings als je Python 3.6+ gebruikt, en. format() als dat niet het geval is.

We hebben alle 5 manieren van tekenreeksopmaak in Python besproken. Er zijn veel gebruiksscenario's en voorbeelden voor elke methode. We hebben deze methoden ook vergeleken om te bepalen welke het meest efficiënt is om te gebruiken in echte projecten.

Soortgelijke teksten:

  • Tekenreeksopmaak in Python
  • Tekenreeksformatters gebruiken in Python
  • Hoe een string te formatteren met behulp van een woordenboek in Python