p.p1 { margin: 0; font: 12px ".PingFang SC" }
p.p2 { margin: 0; font: 12px "Helvetica Neue" }
span.s1 { font: 12px "Helvetica Neue" }
span.s2 { font: 12px ".PingFang SC" }

python中格式化字符串的方式有两种,一种是使用"%s"的方式,一种是str.format()的方式,接下来就对这两种方式做个介绍

1.%s的方式

两种用法,第一种是在字符串中使用%s占位,在字符串后使用%替换值来替换,例如:

print("my name is %s and i am %d years old" %("xiaoming",18)
输出结果:my name is xiaoming and i am 18 years old
print("Hello,%s" % "Tom")
输出结果:Hello,Tom

该方式的优点是简单,缺点是影响可读性的,在数量多了以后,很难清楚哪一个占位符对应哪一个实参,排序很麻烦

另一种方式可以用字典的形式进行表示:

print ("Hello,%(name)s" % {"name":"Tom"})
# 参数比较多的情况下这样用
value = {"greet": "Hello world", "language": "Python"}
print("%(greet)s from %(language)s." % value)
print("%(greet)s from %(language)s." % {"greet": "Hello world", "language": "Python"}

常用字符格式有:

  • %% 百分号标记 #就是输出一个%
  • %c 字符及其ASCII码
  • %s 字符串
  • %d 有符号整数(十进制)
  • %u 无符号整数(十进制)
  • %o 无符号整数(八进制)
  • %x 无符号整数(十六进制)
  • %X 无符号整数(十六进制大写字符)
  • %e 浮点数字(科学计数法)
  • %E 浮点数字(科学计数法,用E代替e)
  • %f 浮点数字(用小数点符号)
  • %g 浮点数字(根据值的大小采用%e或%f)
  • %G 浮点数字(类似于%g)
  • %p 指针(用十六进制打印值的内存地址)
  • %n 存储输出字符的数量放进参数列表的下一个变量中

2.format()方式

在python2.6开始,Python中新增加了一个字符串格式化字符的函数str.format(),此函数可以快速的处理各种字符串,增强了字符串格式化的功能。

基本语法是使用{}来替代%。format函数的实参位置可以不按照顺序

1.使用位置参数

要点:位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表

"{} {}".format("hello","world")#设置指定位置,按默认顺序
输出为:'hello world'
"{1} {0}".format("world","hello") # 设置指定位置
输出为:'hello world'
"{1} {0} {1}".format("hello", "world") # 设置指定位置
输出为:'world hello world'
input=["hello", "world"] #传入位置参数列表可用*列表
"{} {}".format(*input)
输出为:'hello world'

2.使用关键字参数,类似于使用字典key值占位,将字典作为参数传入字符串

要点:字符串中的关键字参数要与传入的参数值对得上,可用字典当关键字参数传入值,字典前加**即可

hash = {'name':'Bingo','age':18}
'my name is {name},age is {age}'.format(name='Bingo',age=18)
输出:'my name is Bingo,age is 18'
'my name is {name},age is {age}'.format(**hash)#通过关键字,并用字典当关键字传入值时,在字典前加**即可
输出:'my name is Bingo,age is 18'

3、填充与格式化(:[填充字符][对齐方式 <^>][宽度])

^、<、>分别是居中、左对齐、右对齐,:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充对齐方式后面紧跟一个整数可以限定该字段的宽度。

'{0:*>10}'.format(9) ##右对齐
输出:'*********9'
'{0:*<10}'.format(9) ##左对齐
输出:'9*********'
'{0:*^10}'.format(9)##居中对齐
输出:'****9*****'

4、精度与进制

'{0:.2f}'.format(1/3)
输出:'0.33'
'{0:b}'.format(10) #二进制
输出:'1010'
'{0:o}'.format(10) #八进制
输出:'12'
'{0:x}'.format(10) #16进制
输出:'a'
'{:,}'.format(12369132698) #千分位格式化
输出:'12,369,132,698'

5、通过下标

my_list = ['xiaoming',18]
"name {0[0]}, age {0[1]}".format(my_list) #通过列表索引设置参数
'name xiaoming, age 18'

扩展:

如果字符串里面含有 "{"  或者  "}"时,需要把 "{" 和 "}" 字符以 "{{" 和 "}}" 代替。

例如:"{'name1':'{0}','name2':'{1}'}".format('qpy','wjx') 该字符串中包含额外的{},执行该命令后,会报错,解决方法是将{}用{{}}代替,即

p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }

"{{'name1':'{0}','name2':'{1}'}}".format('qpy','wjx')

参考:https://www.cnblogs.com/qiujichu/p/10663197.html

https://www.cnblogs.com/Detector/p/8516464.html

p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }
p.p1 { margin: 0; font: 16px Menlo; color: rgba(0, 0, 0, 1) }
span.s1 { font-variant-ligatures: no-common-ligatures }

Python字符串格式方式 %s format()的更多相关文章

  1. Python字符串格式化方式之format

    format方式是在Python3引入了一个新的字符串格式化的方法,并且随后支持了Python2.7.这个新的字符串格式化方法摆脱了%操作符并且使得字符串格式化的语法更规范了.现在时候通过调用字符串对 ...

  2. Python字符串类型格式化之format方法

    python字符串格式化一般使用 format() 方法,用法如下: <模板字符串>.format(<逗号分割的参数>) 其中模板字符串中可以由一个或多个 {} 组成的 槽 , ...

  3. python字符串连接方式(转)

    在python中有很多字符串连接方式,今天就在这里具体总结一下: ①.最原始的字符串连接方式:str1 + str2②.python 新字符串连接语法:str1, str2③.奇怪的字符串方式:str ...

  4. Python字符串连接方式

    python中有很多字符串连接方式,总结一下: 1 最原始的字符串连接方式:str1 + str22 python 新字符串连接语法:str1, str23 奇怪的字符串方式:str1 str24 % ...

  5. python字符串格式和编码与解码问题

    %c 转换成字符(ASCII码值,长度为一的字符串) %r 有线使用repr()函数进行字符串转换 %s 有线使用str()函数进行字符串转换 %d or %i 转换成有符号十进制数 %u 转换成无符 ...

  6. Python字符串格式转换

    转换类型 转换类型 说明 d, i 带符号十进制 b 无符号二进制 o 无符号八进制 u 无符号十进制 x 无符号十六进制(小写) X 无符号十六进制(大写) e 科学计数法表示的浮点数(小写) E ...

  7. python字符串格式化输出 %和format举例

    #!/usr/bin/env python # -*- coding: UTF-8 -*- #pyversion:python3.5 #owner:fuzj s1 = "i am %s, i ...

  8. Python字符串格式符号含义

    ====== #字符串格式化符号含义 #%C 格式化字符串及其ASCLL码 >>> '%c' %97 'a' >>> '%c' % 97 'a' >>& ...

  9. Python 3的f-Strings:增强的字符串格式语法(指南)

    最近也在一个视频网站的爬虫,项目已经完成,中间有不少需要总结的经验. 从Python 3.6开始,f-Strings是格式化字符串的一种很棒的新方法.与其他格式化方式相比,它们不仅更具可读性,更简洁且 ...

随机推荐

  1. KEIL-C下数组指针与指针数组实验

    http://blog.csdn.net/men_wen/article/details/52694069 第一个: 数组指针的小实验 用指针传递参数 结果:  第二个: 数组指针实验 定义一个指针 ...

  2. 10.20 host:域名查询工具

    host命令 是用于查询DNS的工具,它可以将指定主机名称转换为IP地址. host命令的参数选项及说明 -a 显示详细的DNS信息-t 指定查询的域名信息类型,可以是"A".&q ...

  3. 将 maven repo 部署到 Gitlab

    为什么要将 maven repo 部署到 Gitlab 将 Maven artifacts 放在对应的项目仓库下,而不是专门再去建一个 Maven 仓库.这么做使用起来更方便,更易于管理. 借助 Gi ...

  4. 能够划分局域网的VLAN

    VLAN与三层交换机 1. VLAN的概述与优势 1.1 分割广播域 1.2 VLAN的优势 2. VLAN的种类 2.1 静态VLAN 2.2 动态VLAN 3. VLAN的ID 4.三层交换机转发 ...

  5. python异步编程之asyncio

    python异步编程之asyncio   前言:python由于GIL(全局锁)的存在,不能发挥多核的优势,其性能一直饱受诟病.然而在IO密集型的网络编程里,异步处理比同步处理能提升成百上千倍的效率, ...

  6. node.js学习(5)读写文件(同步异步)

    1 导入文件系统库 # 同步的 读文件 写文件 # 异步 需要用异步处理耗时

  7. Auto ML自动特征工程

    Auto ML自动特征工程 特征工程是在做机器学习训练的过程中必不可少的环节,特征工程就是找出对模型结果有益的特征交叉关系,通常特征工程需要耗费算法工程师大量的精力去尝试.针对这样的场景,PAI推出智 ...

  8. TensorFlow编程结构

    TensorFlow编程结构 TensorFlow 与其他编程语言非常不同. 首先通过将程序分为两个独立的部分,构建任何拟创建神经网络的蓝图,包括计算图的定义及其执行.起初这对于传统程序员来说看起来很 ...

  9. TensorRT深度学习训练和部署图示

    TensorRT深度学习训练和部署 NVIDIA TensorRT是用于生产环境的高性能深度学习推理库.功率效率和响应速度是部署的深度学习应用程序的两个关键指标,因为它们直接影响用户体验和所提供服务的 ...

  10. 什么是GStreamer?

    什么是GStreamer? GStreamer是用于创建流媒体应用程序的框架.基本设计来自俄勒冈大学研究生院的视频管道以及DirectShow的一些想法. GStreamer的开发框架使编写任何类型的 ...