格式化输出,主要有三种方式
使用 % 进行格式化
使用 format 函数进行格式化
使用 f-string 进行格式化
由于这三种格式化的内容都非常的多,这里仅为了你看本教程后面的内容,我只介绍最常用的几种
%s
表示这个位置接的是一个字符串变量
%d
表示这个位置接的是一个整型变量
前面有多少个 %,后面就要有多少个变量,一一对应,多个变量要括号括起来
>>> name = "Jack" >>> age = 18 >>> print("我的名字是: %s,今年 %d 岁" %(name, age)) 我的名字是: Jack,今年 18 岁
format 函数可以接受不限个参数,位置可以不按顺序。
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序 'hello world' >>> "{0} {1}".format("hello", "world") # 设置指定位置 'hello world' >>> "{1} {0} {1}".format("hello", "world") # 设置指定位置 'world hello world'
也可以设置参数:
#!/usr/bin/python # -*- coding: UTF-8 -*- print("网站名:{name}, 地址 {url}".format(name="小风教程", url="www.runoob.com")) # 通过字典设置参数 site = {"name": "小风教程", "url": "www.runoob.com"} print("网站名:{name}, 地址 {url}".format(**site)) # 通过列表索引设置参数 my_list = ['小风教程', 'www.runoob.com'] print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的
输出结果为:
网站名:小风教程, 地址 www.runoob.com 网站名:小风教程, 地址 www.runoob.com 网站名:小风教程, 地址 www.runoob.com
也可以向 str.format() 传入对象:
#!/usr/bin/python # -*- coding: UTF-8 -*- class AssignValue(object): def __init__(self, value): self.value = value my_value = AssignValue(6) print('value 为: {0.value}'.format(my_value)) # "0" 是可选的
输出结果为:
value 为: 6
这种方法是 Python 3.6 才支持的写法,只要你在字符串前面加一个 f
,开启 f-string ,就可以在字符中写入变量
>>> name = "Jack" >>> age = 18 >>> print(f"我的名字是:{name}, 今年 {age} 岁") 我的名字是:Jack, 今年 18 岁