@[toc](Python String format())

语法

format()方法的语法为:

template.format(p0, p1, ..., k0=v0, k1=v1, ...)

其中p0,p1,…是位置参数,而k0,k1…是关键参数,有着v0,v1…得值
而且,template是混合了格式代码和参数占位符的代码。

String format()参数

format()方法接受任意数量的参数。但是,又分为两类参数:

  • 位置参数-可以使用大括号{index}内的参数索引访问的参数列表
  • 关键字参数——key=value类型的参数列表,可以使用大括号{key}内的key of parameter访问

String format()如何工作


注意:参数列表从0开始。浮点数四舍五入。

使用format()进行基本格式化

例子1:

# default arguments
print("Hello {}, your balance is {}.".format("Adam", 230.2346))# positional arguments
print("Hello {0}, your balance is {1}.".format("Adam", 230.2346))# keyword arguments
print("Hello {name}, your balance is {blc}.".format(name="Adam", blc=230.2346))# mixed arguments
print("Hello {0}, your balance is {blc}.".format("Adam", blc=230.2346))

注意:在混合参数的情况下,关键字参数必须始终跟随位置参数

数字格式类型

  • d Decimal integer 十进制
  • c Corresponding Unicode character 对应Unicode自u发
  • b Binary format 二进制格式
  • o Octal format 八进制
  • x Hexadecimal format (lower case) 十六进制
  • X Hexadecimal format (upper case) 十六进制
  • n Same as ‘d’. Except it uses current locale setting for number separator
  • e Exponential notation. (lowercase e) 指数
  • E Exponential notation (uppercase E) 指数
  • f Displays fixed point number (Default: 6) 显示固定小数位数(默认6)
  • F Same as ‘f’. Except displays ‘inf’ as ‘INF’ and ‘nan’ as ‘NAN’
  • g General format. Rounds number to p significant digits. (Default precision: 6)
  • G Same as ‘g’. Except switches to ‘E’ if the number is large. 除了转化为E
  • % Percentage. Multiples by 100 and puts % at the end. 百分比

例子2:

# integer arguments
print("The number is:{:d}".format(123))
The number is: 123
# float arguments
print("The float number is:{:f}".format(123.4567898))
The number is:123.456790
# octal, binary and hexadecimal format
print("bin: {0:b}, oct: {0:o}, hex: {0:x}".format(12))
bin: 1100, oct: 14, hex: c

例子3:数字格式与填充的整数和浮点数

# integer numbers with minimum width
print("{:5d}".format(12))# width doesn't work for numbers longer than padding
print("{:2d}".format(1234))# padding for float numbers
print("{:8.3f}".format(12.2346))# integer numbers with minimum width filled with zeros
print("{:05d}".format(12))# padding for float numbers filled with zeros
print("{:08.3f}".format(12.2346))

例子4:带符号数字的数字格式

# show the + sign
print("{:+f} {:+f}".format(12.23, -12.23))# show the - sign only
print("{:-f} {:-f}".format(12.23, -12.23))# show space for + sign
print("{: f} {: f}".format(12.23, -12.23))
+12.230000 -12.230000
12.230000 -12.23000012.230000 -12.230000

带对齐的数字格式化
操作符<、^、>和=用于在为数字分配一定宽度时进行对齐。
< 左对齐
^ 居中对齐
> 右对齐

= 使符号打到最左端。

# integer numbers with right alignment
print("{:5d}".format(12))# float numbers with center alignment
print("{:^10.3f}".format(12.2346))# integer left alignment filled with zeros
print("{:<05d}".format(12))# float numbers with center alignment
print("{:=8.3f}".format(-12.2346))


例子6:带填充和对齐的字符串格式

# string padding with left alignment
print("{:5}".format("cat"))# string padding with right alignment
print("{:>5}".format("cat"))# string padding with center alignment
print("{:^5}".format("cat"))# string padding with center alignment
# and '*' padding character
print("{:*^5}".format("cat"))

例子7:使用format()截断字符串

# truncating strings to 3 letters
print("{:.3}".format("caterpillar"))# truncating strings to 3 letters
# and padding
print("{:5.3}".format("caterpillar"))# truncating strings to 3 letters,
# padding and center alignment
print("{:^5.3}".format("caterpillar"))


例子8:使用format()格式化类成员

# define Person class
class Person:age = 23name = "Adam"# format age
print("{p.name}'s age is: {p.age}".format(p=Person()))
Adam's age is: 23

例子9:使用format()格式化字典成员

# define Person dictionary
person = {'age': 23, 'name': 'Adam'}# format age
print("{p[name]}'s age is: {p[age]}".format(p=person))

另一方法:

# define Person dictionary
person = {'age': 23, 'name': 'Adam'}# format age
print("{name}'s age is: {age}".format(**person))

**是一个格式参数(最小字段宽度)。

示例10:使用format()动态格式化

# dynamic string format template
string = "{:{fill}{align}{width}}"# passing format codes as arguments
print(string.format('cat', fill='*', align='^', width=5))# dynamic float format template
num = "{:{align}{width}.{precision}f}"# passing format codes as arguments
print(num.format(123.236, align='<', width=8, precision=2))


使用format()的额外格式化选项

format()还支持特定于类型的格式化选项,比如datetime和复数格式。
format()在内部为datetime调用_format__(),而format()访问复数的属性。
您可以轻松地重写任何对象的_format__()方法来进行自定义格式化。

示例11:使用format()和覆盖_format__()方法实现特定于类型的格式化

import datetime
# datetime formatting
date = datetime.datetime.now()
print("It's now: {:%Y/%m/%d %H:%M:%S}".format(date))# complex number formatting
complexNumber = 1+2j
print("Real part: {0.real} and Imaginary part: {0.imag}".format(complexNumber))# custom __format__() method
class Person:def __format__(self, format):if(format == 'age'):return '23'return 'None'print("Adam's age is: {:age}".format(Person()))

覆盖__format__ ():
与datetime类似,您可以覆盖您自己的用于自定义格式的_format__()方法,该方法在以{:age}访问时返回年龄。

例子12:str()和 repr() 速记法,!r和!s用于format()

# __str__() and __repr__() shorthand !r and !s
print("Quotes: {0!r}, Without Quotes: {0!s}".format("cat"))# __str__() and __repr__() implementation for class
class Person:def __str__(self):return "STR"def __repr__(self):return "REPR"print("repr: {p!r}, str: {p!s}".format(p=Person()))
Quotes: 'cat', Without Quotes: cat
repr: REPR, str: STR

Python String format()相关推荐

  1. python string.format()_Python string.format()百分比,不取整

    In the example below I would like to format to 1 decimal place but python seems to like rounding up ...

  2. python string.format(),Python string.format()百分比,不取整

    In the example below I would like to format to 1 decimal place but python seems to like rounding up ...

  3. python string.format()_python string format

    截取自官方文档 体会一下各种format方式的强大! Accessing arguments by position: >>> '{0}, {1}, {2}'.format('a', ...

  4. Java String.format() : 字符串格式化

    2019独角兽企业重金招聘Python工程师标准>>> 1.常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象. 1.format(S ...

  5. String.format()方法使用说明

    2019独角兽企业重金招聘Python工程师标准>>> JDK1.5开始String类中提供了一个非常有用的方法String.format(String format, Object ...

  6. .f' '或者.F' '或者string.format(args)

    1,格式化字符串 {var} 作为占位符 Year = 2020f 'Today is {Year}'# f.'my py coding... {var}' F.'my py coding {var} ...

  7. python 字符串format使用

    python字符串的格式化输出 格式化字符串是程序设计语言中用于指定输出参数的格式化与相对位置的字符串参数.其中的转换说明用于把随后的对应一个或多个函数参数转换为相应的格式输出:格式化字符串中转换说明 ...

  8. python语言format用法_format()函数的定义和用法总结

    本文主要给大家详细介绍的是python编程中str.format()的基本语法和高级用法,非常的详细,并附有示例,希望大家能够喜欢1. str.format 的引入在 Python 中,我们可以使用 ...

  9. Python的format格式化用法详解

    Python的format格式化用法可以通过下面几种方式来实现: 1.使用{}作为占位符,通过索引来指定要替换的参数,如: # 替换第一个参数 "Hello {}, Welcome to P ...

最新文章

  1. YII 测试环境搭建
  2. 小蚂蚁学习C语言(25)——C语言结构体——使用结构体手动录入信息的小案例...
  3. SAP OData服务性能测量的四种办法
  4. Tcode SCU3查看table log的error message - 如何查找necessary PFCG role
  5. java进阶 2018_Java Web基础入门2018版
  6. dj电商-需求分析开始-静态资源-用户模块
  7. java 僵尸进程_Linux 僵尸进程
  8. java整型_java整型数值
  9. oCam(屏幕录制) 一款小巧方便的专业屏幕录制软件 彻底解决你的录屏问题
  10. QQ推广,无法发起临时会话
  11. java saxreader 字符串_解析XML文件(字符串)的方法-----SAXReader
  12. Win10下OMNeT 5.X 遇到Simulating tictoc-tictoc1-“ has encountereda problemFinished with Error问题
  13. 我市首个湿地公园大连湾前关湿地公园今秋纳客
  14. gif透明背景动画_用“万彩动画大师”点亮你的微课
  15. 如何编辑styleGAN生成的图像的属性
  16. 北大沙龙 | 技术大咖为大家讲解什么是UTXO
  17. #Paper Reading# Stochastic Optimization of Sorting Networks via Continuous Relaxations
  18. 数字电视业务PSI-SI学习系列
  19. Hadoop之使用LZO压缩并支持分片
  20. 深度学习中的depthwise convolution,pointwise convolution,SeparableConv2D深度可分离卷积

热门文章

  1. 基于 B-S 架构数据库管理系统的后端设计
  2. RxJava实现遍历List集合定时发射每条数据
  3. 去旅行 、我要去旅行
  4. mfc小工具开发之定时闹钟之---时间获取和音频播放
  5. 公司利润爆棚,为啥还要减少我的年终奖?
  6. Centos7 查看、增加、删除用户组与用户
  7. Web01_MySQL
  8. Excel怎么录入月份序列
  9. 频繁刷屏网安圈的微软安全,这次给我们什么启示?
  10. 前端大文件上传解决方案