Introducción a la programación Python (018): explicación detallada del uso de la función format()

Introducción a la programación Python (018): explicación detallada del uso de la función format()

1. Formato básico de la función format()

La función format() puede formatear datos y convertir valores en una representación [formateada] controlada por format_spec. La sintaxis de la función format() es la siguiente:

format(value, format_spec)

ilustrar:

(1) valor: los datos a convertir.

(2) format_spec: explicación del formato, depende del tipo de parámetro de valor;

(3) De forma predeterminada, format_spec es una cadena vacía, que generalmente tiene el mismo efecto que llamar a la función str (valor).

(4) El formato del parámetro format_spec incluye aplicaciones como valores de relleno, alineación de texto, configuración de banderas, formato, conversión de tipos y miles de caracteres. El formato es el siguiente:

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. No se proporciona el parámetro format_spec

Si no se proporciona el parámetro format_spec, otros datos de formato se convertirán al tipo de cadena de forma predeterminada, lo que tiene el mismo efecto que llamar a la función str(valor).

Por ejemplo:

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

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

3. Establecer la alineación de la cuerda (alinear)

Utilice las siguientes opciones para configurar la alineación de las cadenas:

símbolo significado
'<' Fuerza que los campos permanezcan alineados a la izquierda dentro de un espacio válido (este es el valor predeterminado para la mayoría de los objetos)
'>' Forzar que los campos permanezcan alineados a la derecha dentro del espacio válido (este es el valor predeterminado para la mayoría de los objetos)
'=' Fuerza que los caracteres del pad se coloquen después del símbolo (si lo hay) y antes del número, por ejemplo: +000000120. Esta opción de alineación solo es válida para tipos numéricos. Cuando [0] precede inmediatamente al ancho del carácter, se convierte en el valor predeterminado al rellenar números.
'^' Forzar que los campos permanezcan centrados dentro del espacio disponible

Por ejemplo:

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. Establecer opciones de señalización

La opción de signo solo es válida para tipos numéricos. El significado de la opción de signo es el siguiente:

símbolo significado
'+' Los símbolos se pueden utilizar para representar números positivos y negativos.
'-' El signo indicador sólo se utiliza para números negativos (este es el comportamiento predeterminado)
' ' Se deben utilizar espacios iniciales para números positivos y un signo menos para números negativos.

Por ejemplo:

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. Establecer # opciones

# Las opciones solo son válidas para tipos de números enteros, de coma flotante y negativos. El significado de las opciones # es el siguiente:

símbolo significado
# # Las opciones solo son válidas para tipos de números enteros, de punto flotante y negativos.
Para números enteros, cuando se utiliza salida binaria, octal o hexadecimal, esta opción agrega el prefijo apropiado al valor de salida: 0b, 0o, 0x o 0X.
Para números de punto flotante y negativos, la forma de reemplazo hace que el resultado de la conversión siempre contenga un carácter de punto decimal, incluso si no hay ningún dígito después.
Para la conversión de g y G a notación científica, los ceros finales no se eliminan del resultado.

Por ejemplo:

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. Establezca la opción grouping_option

El significado de la opción grouping_option es el siguiente:

símbolo significado
, Indica el uso de coma como separador de miles.
_ Utilice el guión bajo como separador de miles para tipos de punto flotante y enteros.
Para los números enteros b, o, x y x, inserte un guión bajo cada 4 bits.

Por ejemplo:

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. Establezca [0] y las opciones de ancho.

Las opciones [0] y ancho tienen los siguientes significados:

símbolo significado
[0]
ancho
ancho: define el ancho total del campo, incluidos los prefijos, separadores y otros caracteres de formato. Si no se especifica, el ancho del campo estará determinado por el contenido de salida.
Si no se especifica la alineación, se antepone un cero (0) al campo de ancho, lo que equivale al carácter de relleno 0 con el signo de tipo de alineación =.

Por ejemplo:

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. Establezca la opción [.precisión]

Las opciones [.precision] tienen los siguientes significados:

símbolo significado
[.precisión] Establece la precisión de los números de coma flotante, que es un entero decimal.
Indica cuántos dígitos se deben mostrar después del punto decimal del tipo de punto flotante f.
Indica cuántos dígitos se deben mostrar antes y después del punto decimal de notación científica tipo decimal g.

Por ejemplo:

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. Establezca la opción de tipo

La opción de tipo tiene el siguiente formato para diferentes tipos de datos:

1. tipo de cadena

Las opciones de tipo y sus significados son las siguientes:

símbolo significado
s Formato de cadena.
Ninguno Lo mismo que el s.

Por ejemplo:

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. tipo entero

Las opciones de tipo y sus significados son las siguientes:

símbolo significado
b formato binario
C Convierta caracteres a números enteros a los caracteres Unicode correspondientes antes de imprimir
d entero decimal
oh formato octal
X Formato hexadecimal, usando letras minúsculas para representar números superiores a 9
X Formato hexadecimal, usando letras mayúsculas para representar números superiores a 9
norte 与 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

Supongo que te gusta

Origin blog.csdn.net/weixin_44377973/article/details/132285211
Recomendado
Clasificación