Heim > Artikel > Backend-Entwicklung > Gibt es eine Möglichkeit, eine Zeichenfolge in Python zu formatieren? (Vergleichende Einführung)
In diesem Artikel erfahren Sie, welche Methoden es zum Formatieren von Zeichenfolgen in Python gibt. (Vergleichende Einführung), es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen.
Es gibt derzeit zwei Lager für die Formatierung von Zeichenfolgen in Python: % und Format Welches sollten wir wählen?
Seit Python 2.6 die Formatmethode zum Formatieren von Zeichenfolgen eingeführt hat, sind % oder Format meiner Meinung nach überhaupt kein Problem mehr. Wenn Sie mir nicht glauben, schauen Sie nach unten.
# 定义一个坐标值 c = (250, 250) # 使用%来格式化 s1 = "敌人坐标:%s" % c
Der obige Code löst offensichtlich den folgenden TypeError aus:
TypeError: not all arguments Converted while String Formatting
Für Formatierungsanforderungen wie diese müssen wir es in dem folgenden hässlichen Format schreiben:
# 定义一个坐标值 c = (250, 250) # 使用%丑陋的格式化... s1 = "敌人坐标:%s" % (c,)
Bei Verwendung des Formats tritt das oben genannte Problem nicht auf:
# 定义一个坐标值 c = (250, 250) # 使用format格式化 s2 = "敌人坐标:{}".format(c)
Offensichtlich reicht Ihnen der oben genannte Ein Grund aus um das Format in zukünftigen Projekten zu verwenden.
F-Strings in Python3.6 hinzugefügt:
In[1]: name = "djb" In[2]: age = 18 In[3]: f"My name is {name}.I'm {age}" Out[3]: "My name is djb.I'm 18"
In[1]: data = ["djb", 18] In[2]: "Name:{0}, Age:{1}".format(*data) Out[2]: 'Name:djb, Age:18'
In[1]: data = {"name": "djb", "age": 18} In[2]: "Name:{name}, Age:{age}".format(**data) Out[2]: 'Name:djb, Age:18'
In[1]: class Person(object): ...: def __init__(self, name, age): ...: self.name = name ...: self.age = age ...: def __str__(self): ...: return "This guy is {self.name}, {self.age} years old.".format(self=self) ...: In[2]: p = Person("djb", 18) In[3]: str(p) Out[3]: 'This guy is djb, 18 years old.'
^, 95ec6993dc754240360e28e0de8de30a werden zentriert, linksbündig bzw. rechtsbündig verwendet, gefolgt von der Breite
: Zeichen gefolgt von Auffüllung können nur ein Zeichen sein. Wenn nicht angegeben, wird es standardmäßig mit Leerzeichen gefüllt.
In[1]: "{0[0]} is {0[1]} years old.".format(data) Out[1]: 'djb is 18 years old.'
Fügen Sie eine zfill()-Methode hinzu, die mit einer Zeichenfolge geliefert wird:
Die Python-zfill()-Methode gibt eine Zeichenfolge mit der angegebenen Länge zurück. Die ursprüngliche Zeichenfolge ist rechtsbündig und mit Nullen gefüllt Front.
Syntax der zfill()-Methode: str.zfill(width)
Der Parameter width gibt die Länge der Zeichenfolge an. Die Originalzeichenfolge ist rechtsbündig ausgerichtet und mit Nullen am Anfang aufgefüllt.
Gibt eine Zeichenfolge mit der angegebenen Länge zurück.
In[1]: "{:>10}".format('18') Out[1]: ' 18'In[2]: "{:0>10}".format('18') Out[2]: '0000000018'In[3]: "{:A>10}".format('18') Out[3]: 'AAAAAAAA18
6. Präzision und Typ f
In[1]: "18".zfill(10) Out[1]: '0000000018'
wobei .2 die Genauigkeit der Länge 2 darstellt und f den Float-Typ darstellt.
7. Andere Basissysteme
In[1]: "{:.2f}".format(3.1415926) Out[1]: '3.14'
8. Tausendertrennzeichen
In[1]: "{:b}".format(18) Out[1]: '10010'In[2]: "{:d}".format(18) Out[2]: '18'In[3]: "{:o}".format(18) Out[3]: '22'In[4]: "{:x}".format(18) Out[4]: '12'
Das obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit, eine Zeichenfolge in Python zu formatieren? (Vergleichende Einführung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!