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格式化输出总结相关推荐

  1. Python格式化输出方法

    Python格式化输出 本文转自:Python格式化输出 今天写程序又记不清格式化输出细节了--= =索性整理一下. python print格式化输出. 1. 打印字符串 print (" ...

  2. Python 格式化输出 —— %r 与 %s 的区别(__repr__ 与 __str__)

    Python 格式化输出 在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别. %s ⇒ str(),比较智能: %r ⇒ repr(),处 ...

  3. python格式化输出

    python格式化输出 格式化输出规范1(, + ): print( ) 打印输出函数是在开发中用得很多的函数,代表输出并换行. 1.print(字符常量 + 字符变量) 说明:+ 加号仅用于连接两个 ...

  4. python格式化输出(二)--字符串的格式化输出

    ** ​字符串的格式化输出 ** 1.使用占位符 (1)三个常用占位符用法 ①d:将整数.浮点数转换成十进制表示.取整,不进行四舍五入. ②f:将整数.浮点数转换成浮点数表示,默认保留小数点后6位,四 ...

  5. Python格式化输出(%d、%f、占为符及百分号)

    一.python格式化输出 使用占位符输出时,%s表示字符串输出,%d表示整数输出,%f表示浮点数输出 优点:填充方式灵活,单个参数可以多次输出,参数顺序可以不同 1.整型 %d 表示整型 >& ...

  6. Python格式化输出(format和%)

    Python格式化输出(format和%) 平时在打印结果的时候,直接就使用print,但多次使用print会导致界面看起来很乱.python提供两种格式化输出的方法--format和%,本文会介绍两 ...

  7. Python 格式化输出保留两位小数

    #方法1: print("%.2f" % 0.13333)#方法2 print("{:.2f}".format(0.13333))#方法3 round(0.13 ...

  8. python格式化输出print()

    作⽤:程序输出内容给⽤户 1. 格式化输出         所谓的格式化输出即按照⼀定的格式输出内容. 1.1 格式化符号 技巧     %06d,表示输出的整数显示位数,不⾜以0补全,超出当前位数则 ...

  9. Python 格式化输出和while循环的两个小练习

    练习1.模拟登陆判断(3次机会) r_name = 'xianyu' r_password = '123456'i = 3 # 用来控制循环次数while i > 0:name = input( ...

  10. python格式化输出区别_python格式化输出的区别

    python对于数的输出包括%d和%f,下面来详细介绍python对数的输出. (1)输出整型 a=55 print("%d"%a) #直接输出整数a print("%4 ...

最新文章

  1. BERT却不懂Transformer?2021
  2. C语言八大排序算法,附动图和详细代码解释!
  3. 移动web开发(三)——字体使用
  4. mysql教程目录_MySql目录(二)
  5. [react] react中遍历时为什么不用索引作为唯一的key值?
  6. .Net WinForm 启用XP效果的问题
  7. MTK 驱动---(11) EMI定制
  8. 每一句都值得品味的话
  9. Linux系统安装sentaurus,Synopsys Sentaurus_vA_2008.09-SP1安装详解.pdf
  10. c 语言编程字谜,字谜游戏(a)C语言
  11. es文件无法找到局域网服务器,手机ES文件管理器局域网连接电脑WIN10,访问电脑文件...
  12. 那些著名的黑客事件 四
  13. rancher添加镜像库
  14. Java并没有失去它的魔力
  15. 【GTASA】Sanny Builder 不能编译 main.scm,报错 “Incorrect number of the conditions“
  16. Z-Stack 的应用层参数修改
  17. H5-input弹起键盘遮盖输入框(Android)、键盘弹起后不恢复(IOS)
  18. 【汇正财经】股权结构与企业治理有什么关系?
  19. 百度地图API根据经纬度绘制轨迹图(Vue附源码)
  20. python字典转换为列表_Python中将字典转换为列表的方法

热门文章

  1. 教你怎么解决64位Windows版Redis狂占C盘的问题.
  2. linux 查看日志以及查看
  3. discuz tools.php,Discuz!论坛Tools工具箱功能详解
  4. 最新多功能工具箱小程序源码+功能超级多
  5. js 计算时间差 函数
  6. PICKIT3与ICD2比较。正在等待PICKIT3到货。
  7. 计算机专业监理员工作,监理员是干什么的
  8. 手机滚动截屏软件推荐
  9. Mac上使用Chrome浏览器截取长图
  10. Android语音识别-阿里语音识别