欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python格式化输出(format)

程序员文章站 2022-07-14 23:36:34
...

格式化输出(format)

1.基本用法

"hello {}".format("python") # 引用一个参数       传字符串
# 输出:hello python

"hello {}".format(1024)                        # 传数字
# 输出:hello 1024

"hello {}".format([1, 2, 3, 4])                # 传列表
# 输出:hello [1, 2, 3, 4]

"hello {}".format((1, 2, 3, 4))                # 传元组
# 输出:hello (1, 2, 3, 4)

"hello {}".format({"name": "chenkia", "age": 18})    # 传字典
# 输出:hello {'name': 'chenkia', 'age': 18}

"hello {}".format({"name", "chenkai", "name", "akai"})    # 传集合
# 输出:hello {'chenkai', 'akai', 'name'}

Python3.6版本之后的新写法

str = python

print(f"hello {str}" )  # 引用一个变量 

输出:hello python

其它参数选项

字符串的参数使用{NUM}进行表示,0, 表示第一个参数,1, 表示第二个参数, 以后顺次递加;

使用”:”, 指定代表元素需要的操作, 如”:.3”小数点三位, “:8”占8个字符空间等;

还可以添加特定的字母, 如:

‘b’ - 二进制. 将数字以2为基数进行输出.

‘c’ - 字符. 在打印之前将整数转换成对应的Unicode字符串.

‘d’ - 十进制整数. 将数字以10为基数进行输出.

‘o’ - 八进制. 将数字以8为基数进行输出.

‘x’ - 十六进制. 将数字以16为基数进行输出, 9以上的位数用小写字母.

‘e’ - 幂符号. 用科学计数法打印数字, 用’e’表示幂.

‘g’ - 一般格式. 将数值以fixed-point格式输出. 当数值特别大的时候, 用幂形式打印.

‘n’ - 数字. 当值为整数时和’d’相同, 值为浮点数时和’g’相同. 不同的是它会根据区域设置插入数字分隔符.

‘%’ - 百分数. 将数值乘以100然后以fixed-point(‘f’)格式打印, 值后面会有一个百分号.

2.传入多个参数

"My name is {name}, I am {age} years old".format(name="chenkai", age=18) # 别名替换

"My name is {0}, I am {1} years old".format("chenkai", 18)

"My name is {name}, I am {age} years old".format_map({"name": "chenkai", "age": 18})

# 输出:"My name is chenkai, I am 18 years old"

3.进制转换

"{0} in HEX is {0:#x}".format(16)

# 输出:"16 in HEX is 0x10"
"{0} is OCT is {0:#o}".format(16)

# 输出:"16 is OCT is 0o20"

4.对齐字符串

"{:>5}".format(1)        # 设置宽度为5,右对齐(.rjust()方法)

"{:>5}".format(10)      

"{:>5}".format(100)

"{:>5}".format(1000)

# 输出下面的结果

"    1"

"   10"

"  100"

" 1000"
'{:_<10}'.format('test') # 左对齐(.ljust()方法),并且指定"_"填充空白部分

# 输出 'test______'
'{:_^10}'.format('test') # 居中对齐(.center()方法),并且指定"_"填充两侧

# 输出 '___test___'

# 用%格式化字符串不支持居中对齐

5.截断字符串

"{:.5}".format("Hello Python") # 截取前5个字符

# 输出:"Hello"

6.访问对象属性

class Pig(object):

    def __init__(self, name, age, weight):

        self.name = name

        self.age = age 

        self.weight =weight

    def __repr__(self):

        return "Pig name={0}, age={1}".format(self.name, self.age)

pig = Pig("warrior", 26, 100)

print("{0} is {1} years old, {2} kilograms".format(pig.name, pig.age, pig.weight))

# 输出:"warrior is 26 years old, 100 kilograms"

7.时间格式化

from datetime import datetime

'{:%Y-%m-%d %H:%M}'.format(datetime(2018, 5, 19, 21, 00))

# 输出 '2018-05-19 21:00'

8.传入指定参数

"{:{char}{align}{width}}".format("test", char="_", align="^", width="10")

# 输出 "___test___"
from datetime import datetime

dt = datetime(2018, 5, 24, 21, 0)

"{:{dfmt} {tfmt}}".format(dt, dfmt="%Y-%m-%d", tfmt="%H:%M")

# 输出 "2018-05-24 21:00"
相关标签: Python格式化输出