格式化输出(3种方式)
阅读目录:
python3.6后支持3种格式化输出方式,其中前两种为%-formatting及str.format ,第三种即为 f-string。
1.%-formatting
据传该格式化方法源于C..
>>>username = input("请输入用户名:")
>>>pwd = input("请输入密码:")
>>>print("用户名为:%s,密码为:%s" %(username, pwd))
用户名为:张三,密码为:123456
%后字符含义:
- %s:str,字符类型,用str()方法处理对象
- %d(i):decimal,十进制数
- %x: hex, 十六进制数
- %f: float,浮点数
- %r:类似于%s类型,用rper()方法处理对象,此外用%r打印时能够重现它所代表的对象 (拓展:Difference between __str__ and __repr__)
指定长度:
- %5d:右对齐,不足左边补空格
- %-5d:- 代表左对齐,不足右边默认补空格
- %05d:右对齐,不足左边补0
浮点数:
- %f: 默认是输出6位有效数据, 会进行四舍五入
- %.8f:指定小数点位数的输出,保留小数点后8位
- %4.8f:4代表整个浮点数的长度,包括小数,只有当字符串的长度大于4位才起作用
2.str.format
例:格式化输出
------------ info of XXX ------------
Name : XXX
Age : 25
job : XXXX
Hobby: XXXXX
------------------ end ----------------
2.1不带编号
name = "XXX"
age = 25
job = "XXXX"
hobby = "XXXXX"
print("""
------------ info of {} ------------
Name : {}
Age : {}
job : {}
Hobby: {}
------------------ end ------------------
""".format(name, name, age, job, hobby))
2.2带编号
name = "XXX"
age = 25
job = "XXXX"
hobby = "XXXXX"
print("""
------------ info of {0} ------------
Name : {0}
Age : {1}
job : {2}
Hobby: {3}
------------------ end ------------------
""".format(name, age, job, hobby))
2.3带关键字
print("""
------------ info of {name} ------------
Name : {name}
Age : {age}
job : {job}
Hobby: {hobby}
------------------ end ------------------
""".format(name="XXX", age=25, job="XXXX", hobby="XXXXX"))
*2.4传入列表(元组)
list = ["XXX", 25, "XXXX", "XXXXX"]
print("""
------------ info of {0} ------------
Name : {0}
Age : {1}
job : {2}
Hobby: {3}
------------------ end ------------------
""".format(*list))
*2.5传入字典
dic = {"name": "XXX",
"age": 25,
"job": "XXXX",
"hobby": "XXXXX"}
print("""
------------ info of {name} ------------
Name : {name}
Age : {age}
job : {job}
Hobby: {hobby}
------------------ end ------------------
""".format(**dic))
*2.6指定长度输出
格式{:*>n}
- >:右对齐
- <:左对齐
- ^:中间对齐
- n:指定的长度
print("左对齐是:{0:*<5},\n右对齐是:{1:*>5},\n居中的是:{2:*^5}".format("左", "右", "中"))
输出:
3.f-string(python解释器3.6版本后可用)
>>>name = "zhangsan"
>>>age = 25
>>>print(f"我的名字是{name},年龄是{age}")
我的名字是zhangsan,年龄是25