Einführung in die Python-Programmierung (018) – Detaillierte Erläuterung der Verwendung der Funktion format()

Einführung in die Python-Programmierung (018) – Detaillierte Erläuterung der Verwendung der Funktion format()

1. Grundformat der Funktion format()

Die Funktion format() kann Daten formatieren und Werte in eine von format_spec gesteuerte [formatierte] Darstellung konvertieren. Die Syntax der Funktion format() lautet wie folgt:

format(value, format_spec)

veranschaulichen:

(1) Wert: die zu konvertierenden Daten.

(2) format_spec: Formaterklärung, abhängig von der Art des Wertparameters;

(3) Standardmäßig ist format_spec eine leere Zeichenfolge, die normalerweise den gleichen Effekt hat wie der Aufruf der Funktion str(value).

(4) Das Format des Parameters format_spec umfasst Anwendungen wie Füllwerte, Textausrichtung, Flag-Einstellungen, Formatierung, Typkonvertierung und Tausende von Zeichen. Das Format ist wie folgt:

format_spec ::=[fill[align]] [sign] [z] [#] [0] [width] [grouping_option] [.precision] [type]
其中:
fill ::= <any character>
align ::= "<" | ">" | "=" | "^"
sign ::= "+" | "-" | " "
width ::= digit+
grouping_option ::= "_" | ","
precision ::= digit+
type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X"

2. Der Parameter format_spec wird nicht bereitgestellt

Wenn der Parameter format_spec nicht angegeben wird, werden andere Formatdaten standardmäßig in den String-Typ konvertiert, was den gleichen Effekt hat wie der Aufruf der Funktion str(value).

Zum Beispiel:

print("圆周率:" + format(3.14))  # 将浮点数转换为字符串
print("圆周率:" + str(3.14))

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
圆周率:3.14
圆周率:3.14

3. Ausrichtung der Saite festlegen (align)

Verwenden Sie die folgenden Optionen, um die Ausrichtung von Zeichenfolgen festzulegen:

Symbol Bedeutung
'<' Erzwingt, dass Felder innerhalb des gültigen Bereichs linksbündig bleiben (dies ist die Standardeinstellung für die meisten Objekte).
'>' Erzwingen Sie, dass Felder innerhalb des gültigen Bereichs rechtsbündig bleiben (dies ist die Standardeinstellung für die meisten Objekte).
'=' Erzwingt die Platzierung von Auffüllzeichen nach dem Symbol (falls vorhanden) und vor der Zahl, zum Beispiel: +000000120. Diese Ausrichtungsoption ist nur für numerische Typen gültig. Wenn [0] unmittelbar vor der Zeichenbreite steht, wird sie zum Standardwert beim Auffüllen von Zahlen.
'^' Erzwingen Sie, dass Felder innerhalb des verfügbaren Raums zentriert bleiben

Zum Beispiel:

print("圆周率:" + format(3.14,"10.2f") + "|end") # 默认为右对齐
print("圆周率:" + format(3.14,">10.2f") + "|end") # 设置为右对齐
print("圆周率:" + format(3.14,"<10.2f") + "|end") # 设置为左对齐
print("圆周率:" + format(3.14,"^10.2f") + "|end") # 设置为居中对齐
print("圆周率:" + format(3.14,"A>10.2f") + "|end") # 设置为右对齐,前面填充A
print("圆周率:" + format(-3.14,"A>10.2f") + "|end") # 设置为右对齐,前面填充A(A位于-符号之前)
print("圆周率:" + format(-3.14,"A=10.2f") + "|end") # 数字前面填充A(A位于-符号之后)

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
圆周率:      3.14|end
圆周率:      3.14|end
圆周率:3.14      |end
圆周率:   3.14   |end
圆周率:AAAAAA3.14|end
圆周率:AAAAA-3.14|end
圆周率:-AAAAA3.14|end

4. Legen Sie die Zeichenoptionen fest

Die Vorzeichenoption ist nur für numerische Typen gültig. Die Vorzeichenoption hat folgende Bedeutung:

Symbol Bedeutung
'+' Symbole können zur Darstellung positiver und negativer Zahlen verwendet werden
'-' Das Indikatorzeichen wird nur für negative Zahlen verwendet (dies ist das Standardverhalten).
' ' Für positive Zahlen sollten führende Leerzeichen und für negative Zahlen ein Minuszeichen verwendet werden.

Zum Beispiel:

print("圆周率:" + format(3.14,"+") + "|end")  # 正数前面加+号
print("圆周率:" + format(-3.14,"+") + "|end") # 负数前面加-号
print("圆周率:" + format(3.14,"-") + "|end")  # 正数前面不加+号
print("圆周率:" + format(-3.14,"-") + "|end") # 负数前面加+号
print("圆周率:" + format(3.14," ") + "|end")  # 正数前面加空格
print("圆周率:" + format(-3.14," ") + "|end") # 负数前面加-号

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
圆周率:+3.14|end
圆周率:-3.14|end
圆周率:3.14|end
圆周率:-3.14|end
圆周率: 3.14|end
圆周率:-3.14|end

4. Legen Sie # Optionen fest

# Optionen sind nur für Ganzzahl-, Gleitkomma- und negative Zahlentypen gültig. Die Bedeutung der #-Optionen ist wie folgt:

Symbol Bedeutung
# # Optionen sind nur für Ganzzahl-, Gleitkomma- und negative Zahlentypen gültig.
Bei Ganzzahlen fügt diese Option bei Verwendung der binären, oktalen oder hexadezimalen Ausgabe das entsprechende Präfix zum Ausgabewert hinzu: 0b, 0o, 0x oder 0X.
Bei Gleitkommazahlen und negativen Zahlen führt die Ersetzungsform dazu, dass das Konvertierungsergebnis immer ein Dezimalpunktzeichen enthält, auch wenn danach keine Ziffer steht.
Bei der Konvertierung von g und G in die wissenschaftliche Schreibweise werden nachgestellte Nullen nicht aus dem Ergebnis entfernt.

Zum Beispiel:

print("以下为整型数据的输出:")
print(format(11) + "|end")      # 输出结果为十进制
print(format(11,"#") + "|end")  # 输出结果为十进制
print(format(11,"b") + "|end")  # 输出结果为二进制
print(format(11,"#b") + "|end") # 输出结果为二进制(输入0b)
print(format(11,"o") + "|end")  # 输出结果为八进制
print(format(11,"#o") + "|end") # 输出结果为八进制(输入0o)
print(format(11,"x") + "|end")  # 输出结果为十六进制
print(format(11,"#x") + "|end") # 输出结果为十六进制(输入0x)
print(format(11,"X") + "|end")  # 输出结果为十六进制
print(format(11,"#X") + "|end") # 输出结果为十六进制(输入0X)
print("以下为浮点型数据的输出:")
print(format(11.8,"10.0f") + "|end")   # 无小数点
print(format(11.8,"#10.0f") + "|end")  # 有小数点
print(format(-11.8,"#10.0F") + "|end") 

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
以下为整型数据的输出:
11|end
11|end
1011|end
0b1011|end
13|end
0o13|end
b|end
0xb|end
B|end
0XB|end
以下为浮点型数据的输出:
        12|end
       12.|end
      -12.|end

5. Legen Sie die Option „grouping_option“ fest

Die Option grouping_option hat folgende Bedeutung:

Symbol Bedeutung
, Gibt an, dass Komma als Tausendertrennzeichen verwendet wird.
_ Verwenden Sie den Unterstrich als Tausendertrennzeichen für Gleitkomma- und Ganzzahltypen.
Fügen Sie für ganze Zahlen b, o, x und x alle 4 Bits einen Unterstrich ein.

Zum Beispiel:

print(format(12345678) + "|end")      # 不使用千位分隔符
print(format(12345678,",") + "|end")  # 使用逗号作为千位分隔符
print(format(12345678.2541,",") + "|end") # 使用逗号作为千位分隔符
print(format(12345678.2541,"_") + "|end") # 使用下划线作为千位分隔符
print(format(12345678,"_b") + "|end")  # 使用逗号作为千位分隔符

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
12345678|end
12,345,678|end
12,345,678.2541|end
12_345_678.2541|end
1011_1100_0110_0001_0100_1110|end

6. Legen Sie die Optionen [0] und Breite fest

Die Optionen [0] und width haben folgende Bedeutung:

Symbol Bedeutung
[0]
Breite
Breite: Definiert die Gesamtbreite des Feldes, einschließlich aller Präfixe, Trennzeichen und anderer Formatierungszeichen. Wenn nicht angegeben, wird die Feldbreite durch den Ausgabeinhalt bestimmt.
Wenn die Ausrichtung nicht angegeben ist, wird dem Breitenfeld eine Null (0) vorangestellt, was dem Füllzeichen 0 mit dem Ausrichtungstyp sign = entspricht.

Zum Beispiel:

print(format(3.14) + "|end")        # 不指定宽度
print(format(3.14,"10") + "|end")   # 指定宽度为10,默认右对齐
print(format(3.14,"<10") + "|end")  # 指定宽度为10,设置左对齐
print(format(3.14,"010") + "|end")  # 指定宽度为10,左边用0填充

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
3.14|end
      3.14|end
3.14      |end
0000003.14|end

7. Legen Sie die Option [.precision] fest

Die [.precision]-Optionen haben folgende Bedeutung:

Symbol Bedeutung
[.Präzision] Legt die Genauigkeit von Gleitkommazahlen fest, bei denen es sich um eine dezimale Ganzzahl handelt.
Gibt an, wie viele Stellen nach dem Dezimalpunkt des Gleitkommatyps f angezeigt werden sollen.
Gibt an, wie viele Stellen vor und nach dem Dezimalpunkt der wissenschaftlichen Notation Dezimaltyp g angezeigt werden sollen.

Zum Beispiel:

print(format(3.1415926) + "|end")        # 不指定宽度
print(format(3.1415926,"10.1f") + "|end") # 指定宽度为10,小数位数1
print(format(3.1415926,"10.2f") + "|end") # 指定宽度为10,小数位数2
print(format(3.1415926,".1f") + "|end")   # 不指定宽度,小数位数1
print(format(3.1415926,".2f") + "|end")   # 不指定宽度,小数位数2

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
3.1415926|end
       3.1|end
      3.14|end
3.1|end
3.14|end

8. Legen Sie die Typoption fest

Die Typoption hat für verschiedene Datentypen das folgende Format:

1. String-Typ

Die Typoptionen und ihre Bedeutung sind wie folgt:

Symbol Bedeutung
S String-Format.
Keiner Gleich wie s.

Zum Beispiel:

print(format("Chinese","0<10") + "|end")  # 左对齐,右侧用0填充
print(format("Chinese","0>10") + "|end")  # 右对齐,左侧用0填充
print(format("Chinese","0^10") + "|end")  # 居中对齐,左右两侧用0填充
print(format("Chinese","<10.3") + "|end") # 左对齐,截取左端3个字符
print(format("Chinese",">10.3") + "|end") # 右对齐,截取左端3个字符
print(format("Chinese","^10.3") + "|end") # 居中对齐,截取左端3个字符

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
Chinese000|end
000Chinese|end
0Chinese00|end
Chi       |end
       Chi|end
   Chi    |end

2. Integer-Typ

Die Typoptionen und ihre Bedeutung sind wie folgt:

Symbol Bedeutung
B Binärformat
C Konvertieren Sie Zeichen vor dem Drucken in Ganzzahlen in entsprechende Unicode-Zeichen
D dezimale Ganzzahl
Ö Oktalformat
X Hexadezimales Format, bei dem Kleinbuchstaben zur Darstellung von Zahlen über 9 verwendet werden
X Hexadezimales Format, bei dem Großbuchstaben zur Darstellung von Zahlen über 9 verwendet werden
N 与 d 相似,不同之处在于它会使用当前区域设置来插入适当的数字分隔字符

例如:

print(format(1234567,"b") + "|end")  # 二进制
print(format(1234567,"o") + "|end")  # 八进制
print(format(1234567,"d") + "|end")  # 十进制
print(format(1234567,"n") + "|end")  # 十进制
print(format(1234567,"x") + "|end")  # 十六进制
print(format(1234567,"X") + "|end")  # 十六进制
print(format(4567,"c") + "|end")     # 打印Unicode字符

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
100101101011010000111|end
4553207|end
1234567|end
1234567|end
12d687|end
12D687|end
ᇗ|end

3、浮点型

type 选项及含义如下:

符号 含义
e 科学计数法。
对于一个给定的精度 p,将数字格式化为以字母 e 分隔系数和指数的科学计数法形式。
系数在小数点之前有一位,之后有 p 位,总计 p + 1 个有效数位。
如未指定精度,则会对 float 采用小数点之后 6 位精度,而对 Decimal 则显示所有系数位。
如果小数点之后没有数位,则小数点也会被略去,除非使用了 # 选项。
E 科学计数法。 与 e 相似,不同之处在于它使用大写字母 E 作为分隔字符。
f 定点表示法。
对于一个给定的精度 p,将数字格式化为在小数点之后恰好有 p 位的小数形式。
如未指定精度,则会对 float 采用小数点之后 6 位精度,而对 Decimal 则使用大到足够显示所有系数位的精度。
如果小数点之后没有数位,则小数点也会被略去,除非使用了# 选项。
g (1)常规格式。 对于给定精度 p >= 1,这会将数值舍入到 p 个有效数位,再将结果以定点表示法或科学计数法进行格式化,具体取决于其值的大小。 精度 0 会被视为等价于精度1。
(2)如未指定精度,会对 float 采用 6 个有效数位的精度。 对于 Decimal,结果的系数会沿用原值的系数数位;对于绝对值小于 1e-6 的值以及最小有效数位的位值大于 1 的数值将会使用科学计数法,在其他情况下则会使用定点表示法即科学计数法。
% 百分比。 将数字乘以 100 并显示为定点(f)格式,后面带一个百分号。

例如:

print("以下为科学计数法表示:")
print(format(1234567.123,"e") + "|end")     # 6位小数
print(format(1234567.123,"15.10e") + "|end")# 10位小数
print(format(1234567.123,"15.10E") + "|end")# 10位小数,字母E大写
print(format(1234567.123,"15.0e") + "|end") # 0位小数
print(format(1234567.123,"#15.0e") + "|end")# 0位小数
print("以下为定点数表示:")
print(format(1234567.123,"#15.10f") + "|end")# 10位小数
print(format(1234567.123,"15.0f") + "|end")  # 0位小数
print(format(1234567.123,"#15.0f") + "|end") # 0位小数
print(format(0.123,".2%") + "|end")          # 百分比

运算结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
以下为科学计数法表示:
1.234567e+06|end
1.2345671230e+06|end
1.2345671230E+06|end
          1e+06|end
         1.e+06|end
以下为定点数表示:
1234567.1229999999|end
        1234567|end
       1234567.|end
12.30%|end

Ich denke du magst

Origin blog.csdn.net/weixin_44377973/article/details/132285211
Empfohlen
Rangfolge