Python格式化输出总结
Python格式化输出总结
- 一、 %方法:
- 二、 str.format()方法:
- 1.优点
- 2.符号含义
- 3.indedx参数
- 4.字符串 s (默认左对齐)
- 5.数值型 d x o b (默认右对齐)
- 关于进制
- 5.浮点数 f
- 6.参数传递
- 7.千分位、金额
- 三、 f-string(Python3.6版本新方法):
一、 %方法:
%s是占位符或者格式化字符
python字符串格式化符号:
符号 | 描述 |
---|---|
%s | 格式化字符串 |
%d | 格式化整数 |
%f | 格式化浮点数字,可指定小数点后的精度 |
%c | 格式化字符及其ASCII码 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
在正数前面显示空格 | |
# | 在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’) |
0 | 显示的数字前面填充’0’而不是默认的空格 |
% | ‘%%‘输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
其撰写格式为:
%[-][+][0][m][.n]格式化字符 % 参数
代码示例:
# m占位宽度
tempate = "格式化的内容是 |%20s|"
print(tempate % 'hello')tempate = "格式化的内容是 |%-20s|"
print(tempate % 'hello')tempate = "格式化的内容是 |%.2s|"
print(tempate % 'hello')
# 定义字符串变量 name,输出 我的名字叫 小明,请多多关照!
name = "大小明"
print("我的名字叫 %s,请多多关照!" % name)# 定义整数变量 student_no,输出 我的学号是 000001
student_no = 100123456
print("我的学号是 %06d" % student_no)# 定义小数 price、weight、money,
# 输出 苹果单价 9.00 元/斤,购买了 5.00 斤,需要支付 45.00 元
price = 8.5
weight = 7.5
money = price * weight
print("苹果单价 %.2f 元/斤,购买了 %.3f 斤,需要支付 %.4f 元" % (price, weight, money))# 定义一个小数 scale,输出 数据比例是 10.00%
scale = 0.8
print("数据比例是 %.2f%%" % (scale * 100))
以下这样写也是对的
在达到默认长度时不用填充
关于十六进制:
#输出十六进制示例
a=15
b=0x15
c=15
print("a=%d"%a)
print("b=%x"%b)
print("c=%x"%c)
print("c=%#x"%c)
print("c=%X"%c)
换行问题
在 Python 中 print 默认是换行的:
>>>for i in range(0,3):
... print (i)
...
0
1
2
>>>
要想不换行你应该写成 print(i, end = ‘’ )
>>>for i in range(0,3):
... print(i, end = '' )
...
012
print 会自动在行末加上回车, 如果不需回车,只需在 print 语句的结尾添加一个逗号 , 并设置分隔符参数 end,就可以改变它的行为
>>>for i in range(0,6):
... print(i)
...
0
1
2
3
4
5
>>> for i in range(0,6):
... print(i, end=" ")
...
0 1 2 3 4 5
补充:金额千分位%方法实现要调用format(并不是下一节要说的str.format)
#金额千分位格式化 format
tempate = "千分位格式化 %s"
print(tempate%format(123456.678,','))
二、 str.format()方法:
大佬文章传送门:Python 中 str.format() 方法详解
1.优点
%方法有很多问题不能解决,而这个要更加灵活,比如方法1可以实现“13”前填充“0”,但是很难实现类似于"+++++++++ab+++++"这样的填充。
在比如在进行多进制输出时,会重复传入参数,如下图:
# 多个一样的参数
tempate = "这个数是:%d,十六进制是:%x,八进制是:%o"
print(tempate%(12,12,12))
12传了三次,而使用方法2就很好的解决这些问题
2.符号含义
str.format() 方法通过字符串中的花括号 {} 来识别替换字段,从而完成字符串的格式化。
替换字段 由字段名和转换字段 以及格式说明符 format specifier 组成,一般形式为:
{字段名!转换字段:格式说明符}。
符号 | 含义 |
---|---|
index | 参数的序号或者键 |
fill | 填充的字符(任意字符填充) |
align | 对齐方式 |
sign | 符号选项 |
# | 十六进制x 八进制 o二进制b 数前面加x o b |
m | 占位宽度 |
, | 千分位 |
.n | 小数位数 |
type | 格式化字符类型s d b x o f |
align | 对齐方式 (配合填充使用) |
---|---|
< | 左对齐 |
> | 右对齐 |
^ | 居中对齐 |
= | 右对齐符号在最左侧需要配合占位宽度使用 |
sign | 符号选项 |
---|---|
+ | 正数正号,负数负号 |
- | 正数不变,负数负号 |
空格 | 正数加空格负数负号 |
3.indedx参数
index参数有三种情况:
- 省略不写 {}
- 数字 {十进制非负整数}
- 变量名 {合法的Python标识符}
代码示例:
print("{} {} {}".format(1,2,3))
print("{0} {1} {0}".format(1,2))
a=12
print("这个数是:{0},十六进制是:{0:0x},八进制是:{0:0o}".format(a))
4.字符串 s (默认左对齐)
代码示例:
关于对齐:
# s
print("{:s}".format('hello'))
print("|{:20s}|".format('hello'))# 默认左对齐
print("|{:>20s}|".format('hello'))# 右对齐
print("|{:^20s}|".format('hello'))# 居中
print("|{:20.2s}|".format('hello'))# ".n"在字符串中表示截取,在浮点数中表示精度
关于填充:
注意:[:[fill]align]的形式表示,在进行填充之前一定要有对齐方式,即使是默认的左对齐也要加“<”,数值型是可以省略的
print("|{:+^20s}|".format('hello'))
print("|{:*<20s}|".format('hello'))
print("|{:2>20s}|".format('hello'))
5.数值型 d x o b (默认右对齐)
关于对齐:
print("|{:20d}|".format(13))# 默认右对齐
print("|{:020d}|".format(13))
print("|{:*<20d}|".format(13))
print("|{:-^20d}|".format(13))
关于进制
print("{0:d} {0:x} {0:o} {0:b}".format(13))
print("{0:#d} {0:#x} {0:#o} {0:#b}".format(13)) # ’#‘显示进制
print("|{0:-^12d}{0:-^12x}{0:-^12o}{0:-^12b}|".format(13))
print("|{0:-^#12d}{0:-^#12x}{0:-^#12o}{0:-^#12b}|".format(13))
关于正负:
#正负
print("| {:d} || {:d} |".format(13,-13))
print("| {:+d} || {:+d} |".format(13,-13)) #’+‘:正数正号,负数负号
print("| {:-d} || {:-d} |".format(13,-13)) #’-‘:正数不变,负数负号
print("| {: d} || {: d} |".format(13,-13)) #’‘: 正数加空格负数负号
5.浮点数 f
#浮点数 F
print("{:f}".format(12345.6789))
print("{:.2f}".format(12345.6789))
print("{:20.2f}".format(12345.6789))
6.参数传递
#参数传递
print("{} {} {}".format(1,2,3))#关键字传参
print("{name} {age} {sex}".format(name='Jhon',age=18,sex='man'))
print("{name} {age:-<10d} {sex}".format(name='Jhon',age=18,sex='man'))#使用元祖
par = (7,8,9)
print("{} {} {}".format(par[0],par[1],par[2]))
print("tuple:{0[0]} {0[1]} {0[2]}".format(par))#使用字典
par = {"x":1,"y":2,"z":3}
print("dict:{0[x]} {0[y]} {0[z]}".format(par))
7.千分位、金额
print("{:,.2f}元".format(12345.6789))
三、 f-string(Python3.6版本新方法):
format方法的变形,要更方便一点,就是在方法2的基础上改变了传参的新写法,语法基本一样
代码示例:
name = 'johny'
age = 18
salary = 19999.2135
print('我是{} 我的年龄是{},薪水{}元'.format(name,age,salary))
print(f'我是{name} 我的年龄是{age},薪水{salary}元')
print(f'我是{name} 我的年龄是{age},薪水{salary:.3f}元')#和format语法相同
print(f'我是{name:.2s} 我的年龄是{age:010d},薪水{salary:,.3f}元')
方法3比方法2更优的是,在{}块中是支持方法调用的,这是f-string最强大的地方,可以调用字符串固有的方法,也可以调用自己创建的类方法,就有更加灵活的使用
name = 'johny'
age = 18
salary = 19999.2135
print(f'我是{name.capitalize()}')#调用字符串首字母大写方法
Python格式化输出总结相关推荐
- Python格式化输出方法
Python格式化输出 本文转自:Python格式化输出 今天写程序又记不清格式化输出细节了--= =索性整理一下. python print格式化输出. 1. 打印字符串 print (" ...
- Python 格式化输出 —— %r 与 %s 的区别(__repr__ 与 __str__)
Python 格式化输出 在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别. %s ⇒ str(),比较智能: %r ⇒ repr(),处 ...
- python格式化输出
python格式化输出 格式化输出规范1(, + ): print( ) 打印输出函数是在开发中用得很多的函数,代表输出并换行. 1.print(字符常量 + 字符变量) 说明:+ 加号仅用于连接两个 ...
- python格式化输出(二)--字符串的格式化输出
** 字符串的格式化输出 ** 1.使用占位符 (1)三个常用占位符用法 ①d:将整数.浮点数转换成十进制表示.取整,不进行四舍五入. ②f:将整数.浮点数转换成浮点数表示,默认保留小数点后6位,四 ...
- Python格式化输出(%d、%f、占为符及百分号)
一.python格式化输出 使用占位符输出时,%s表示字符串输出,%d表示整数输出,%f表示浮点数输出 优点:填充方式灵活,单个参数可以多次输出,参数顺序可以不同 1.整型 %d 表示整型 >& ...
- Python格式化输出(format和%)
Python格式化输出(format和%) 平时在打印结果的时候,直接就使用print,但多次使用print会导致界面看起来很乱.python提供两种格式化输出的方法--format和%,本文会介绍两 ...
- Python 格式化输出保留两位小数
#方法1: print("%.2f" % 0.13333)#方法2 print("{:.2f}".format(0.13333))#方法3 round(0.13 ...
- python格式化输出print()
作⽤:程序输出内容给⽤户 1. 格式化输出 所谓的格式化输出即按照⼀定的格式输出内容. 1.1 格式化符号 技巧 %06d,表示输出的整数显示位数,不⾜以0补全,超出当前位数则 ...
- Python 格式化输出和while循环的两个小练习
练习1.模拟登陆判断(3次机会) r_name = 'xianyu' r_password = '123456'i = 3 # 用来控制循环次数while i > 0:name = input( ...
- python格式化输出区别_python格式化输出的区别
python对于数的输出包括%d和%f,下面来详细介绍python对数的输出. (1)输出整型 a=55 print("%d"%a) #直接输出整数a print("%4 ...
最新文章
- BERT却不懂Transformer?2021
- C语言八大排序算法,附动图和详细代码解释!
- 移动web开发(三)——字体使用
- mysql教程目录_MySql目录(二)
- [react] react中遍历时为什么不用索引作为唯一的key值?
- .Net WinForm 启用XP效果的问题
- MTK 驱动---(11) EMI定制
- 每一句都值得品味的话
- Linux系统安装sentaurus,Synopsys Sentaurus_vA_2008.09-SP1安装详解.pdf
- c 语言编程字谜,字谜游戏(a)C语言
- es文件无法找到局域网服务器,手机ES文件管理器局域网连接电脑WIN10,访问电脑文件...
- 那些著名的黑客事件 四
- rancher添加镜像库
- Java并没有失去它的魔力
- 【GTASA】Sanny Builder 不能编译 main.scm,报错 “Incorrect number of the conditions“
- Z-Stack 的应用层参数修改
- H5-input弹起键盘遮盖输入框(Android)、键盘弹起后不恢复(IOS)
- 【汇正财经】股权结构与企业治理有什么关系?
- 百度地图API根据经纬度绘制轨迹图(Vue附源码)
- python字典转换为列表_Python中将字典转换为列表的方法