Of het nu gaat om een databasequery of resultaten van wiskundige bewerkingen, de Python-tekenreeksindelingsmethode biedt een meer dynamische en aantrekkelijke manier om resultaten aan een gebruiker te presenteren.
Laten we eens kijken hoe de functie str.format() werkt in Python. U zult ook ontdekken hoe u dit formaat in uw eigen programma's kunt gebruiken.
Met de functie Python str.format() kunt u uw resultaten overal in een tekenreeks invoegen.
Het werkt door ruimte toe te wijzen voor uw resultaten binnen de tekenreeks met behulp van accolades. Vervolgens schrijft het uw uitvoer naar die positie met behulp van de methode format() .
De strings buiten de accolade zijn wat je letterlijke teksten noemt.
De functie str.format() accepteert een waarde en een optionele specificatie van de tekenreeksindeling.
Zo ziet de algemene syntaxis eruit:
str.format(value, format_spec)
Laten we nu eens kijken naar meer praktische voorbeelden van het gebruik van deze Python-tekenreeksmethode.
1. Voeg een waarde in op een specifieke positie
Hier is een eenvoudig voorbeeld van hoe u een waarde in een tekenreeks kunt invoegen met behulp van de str.format()- methode:
Cost = 45 formattedMethod = "This good costs {} dollars only" print(formattedMethod.format(Cost)) Output: This good costs 45 dollars only
De bovenstaande code is hetzelfde als:
formattedMethod = "This good costs {} dollars only" print(formattedMethod.format(45)) Output: This good costs 45 dollars only
2. Voeg meerdere uitgangen in een string in
U kunt ook meerdere resultaten in een tekenreeks invoegen. Hier is hoe:
y = 7*8 f = 5+5 g = 0 a = "The value of y is {}, while f is {}. Nobody can see {}".format(y, f, g) print(a) Output: The value of y is 56, while f is 10. Nobody can see 0
3. Gebruik ontsnappingsaccolades om uitgangen in speciale accolades te plaatsen
Als u een van de resultaten in een accolade wilt plaatsen, is dat eenvoudig. U hoeft slechts twee extra ontsnappingsbeugels aan te brengen.
Stel bijvoorbeeld dat u y in een speciale accolade wilt:
a = "The value of y is {{{}}}, while f is {}. Nobody can see {}".format(y, f, g) print(a) Output: The value of y is {56}, while f is 10. Nobody can see 0
4. Uitvoerwaarden uit een lijst
U kunt specifieke waarden uit een lijst selecteren en deze in een tekenreeks invoegen:
myList = [10, 2, 4, 6] print(("The first is {} and the third is {}").format(myList[0], myList[2])) Output: The first is 10 and the third is 4
Om herhaling binnen de .format()- haakjes te voorkomen, kunt u de opmaakspecificatie zo instellen dat deze naar een enkele variabele verwijst.
Hier is hoe dat te doen:
myList = [10, 2, 4, 6] print(("The first is {yourList[0]} and the third is {yourList[2]}").format(yourList = myList)) Output: The first is 10 and the third is 4
Het bovenstaande voorbeeld is ook van toepassing op andere voorbeelden die we eerder hebben behandeld. Dus je kunt met ze spelen met deze truc.
5. Waarden uit een woordenboek invoegen
Op dezelfde manier kunt u, net als in de vorige sectie, de methode str.format() gebruiken om een woordenboekwaarde in een tekenreeks in te voegen:
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6} print(("The first is {} and the third is {}").format(myDiction["Ten"], myDiction["Four"])) Output: The first is 10 and the third is 4
Gerelateerd: Een lijst converteren naar een woordenboek in Python
En als je de truc uit de vorige sectie wilt gebruiken:
myDiction = {"Ten":10, "Two":2, "Four":4, "Six":6} print(("The first is {Ten} and the third is {Four}").format(**myDiction)) Output: The first is 10 and the third is 4
U kunt de bovenstaande code ook schrijven als:
print(("The first is {d[Ten]} and the third is {d[Four]}").format(d=myDiction)) Output: The first is 10 and the third is 4
6. Voeg de uitvoer van een functie in een string in
Als je de uitvoer van een functie in een string wilt tonen:
def difNums(a, b): if a > b: return a - b else: return return "You can't substract {} from {} using this function".format(a, b) print(("Hey there: {}").format(difNums(2, 6))) Output: Hey there: You can't substract 2 from 6 using this function
Met de indelingsspecificatie kunt u kiezen hoe uw indeling wordt weergegeven. Zoals eerder vermeld, is het een optionele parameter die wordt geleverd met str.format() .
Met deze optie kunt u uw uitvoer uitlijnen, lange reeksen inkorten, uitvoer groeperen of een geheel getal afronden op een specifiek aantal significante cijfers, en zelfs meer.
U schrijft de opmaakspecificaties vaak binnen de accolades. Maar je kunt ze ook expliciet tussen haakjes .format() vermelden .
Laten we doorgaan en enkele van zijn gebruiksscenario's bekijken.
7. Lijn de uitvoer van strings uit
U kunt het grotere ( > ) teken gebruiken om een tekenreeksuitvoer naar rechts uit te lijnen:
print("Hello {:>15}".format(12734589)) Output: Hello 12734589
U kunt uw tekst ook in het midden uitlijnen als u dat wilt:
print("Hello {:^15}".format(12734589)) Output: Hello 12734589
Laten we de bovenstaande uitvoer verder formatteren. U kunt bijvoorbeeld onderstrepingstekens opnemen om de opvulling aan weerszijden van uw tekenreeksuitvoer te zien:
print("Hello {:_^15}".format(12734589)) Output: Hello ___12734589____
Maar zoals eerder vermeld, kunt u de formaatspecificatie expliciet vermelden als een parameter binnen str.format() .
Dus de vorige code ziet er in dat geval als volgt uit:
print("Hello {:{g}}".format(12734589, g = "_^15")) Output: Hello ___12734589____
Voel je vrij om de andere voorbeelden te herschrijven met behulp van de bovenstaande optie.
Mogelijk wilt u ook een bepaald aantal significante cijfers retourneren voor een berekening met behulp van de .format()- methode.
De voorbeeldcode hieronder rondt bijvoorbeeld het resultaat van de wiskundige bewerking af op één significant decimaal getal:
calcprofitPerc = ((45 - 20)/45)*100 formattedOutput = "Our profit on this is {profit: .1f}%" print(formattedOutput.format(profit = calcprofitPerc)) Output: Our profit on this is 55.6%
9. Knip lange snaren af
Hoewel het inkorten van een tekst misschien onpraktisch lijkt, weet je niet waar je het nodig hebt.
Hier leest u hoe u een deel van uw tekenreeksuitvoer afsnijdt met behulp van de str.format()- functie:
print(("Truncate this to the first 3 alphabets: {:.3}").format("idowuomisola")) Output: Truncate this to the first 3 alphabets: ido
10. Afzonderlijke groep nummers met behulp van een criterium
U kunt een groep getallen scheiden met een onderstrepingsteken of een komma:
print("Separated by underscore: {:{g}}".format(12734589, g="_")) print("Separated by comma: {:{g}}".format(12734589, g=",")) Output: Separated by underscore: 12_734_589 Separated by comma: 12,734,589
Gerelateerd: Een string splitsen in Python
Bovendien kunt u de groep getallen die u wilt behandelen specificeren met behulp van de bijbehorende sleutel:
print("First numbers by underscore: {0:{g}}".format(12734589, 123674, 662772, g="_")) print("Third numbers by comma: {2:{g}}".format(12734589, 123674, 662772, g=",")) Output: First numbers by underscore: 12_734_589 Third numbers by comma: 662,772
Een van de manieren waarop u uw programma kunt laten opvallen, is hoe u resultaten en vragen presenteert. Ongetwijfeld biedt de Python-tekenreeksindelingsmethode een schonere manier om resultaten uit te voeren. In tegenstelling tot de vorige modulo-methode van oude Python-versies, is het nieuwe tekenreeksformaat dat in Python 3 is geïntroduceerd, leesbaarder en mensvriendelijker.