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. MyBatis 单表CURD操作(五)

    MyBatis的CURD操作 添加CURD接口方法 package mapper; import entity.UserEntity; import org.apache.ibatis.annotat ...

  2. C语言进阶日志二

    1.一个功能模块最好使用一个文件夹包含 2.基本就需要几个文件,比如定时器取反  LED: bsp_led.c 和 bsp_led.h : 包含你需要的led外设GPIO的初始化代码 led_it.c ...

  3. python 中 list 的append与extend区别

    append 添加的是一个对象 extend 添加的是序列与原序列合并

  4. Qt 搜索框

    一.前言 用户需要输入文本时,可使用QLineEdit控件进行编辑输入,缺点是样式相对单一. 在使用百度搜索输入框时,发觉比较人性化,故采用QLineEdt+QPushButton通过css样式实现自 ...

  5. MXNet 图优化与算子融合

    MXNet 图优化与算子融合Graph Optimization and Quantization based on subgraph and MKL-DNN Purpose MKL-DNN引入了两个 ...

  6. MindSpore基本原理

    MindSpore基本原理 MindSpore介绍 自动微分 自动并行 安装 pip方式安装 源码编译方式安装 Docker镜像 快速入门 文档 MindSpore介绍 MindSpore是一种适用于 ...

  7. NVIDIA FFmpeg 转码技术分析

    NVIDIA FFmpeg 转码技术分析 所有从 Kepler 一代开始的 NVIDIA GPUs 都支持完全加速的硬件视频编码,而从费米一代开始的所有 GPUs 都支持完全加速的硬件视频解码.截至 ...

  8. JavaScript 中精度问题以及解决方案

    JavaScript 中的数字按照 IEEE 754 的标准,使用 64 位双精度浮点型来表示.其中符号位 S,指数位 E,尾数位M分别占了 1,11,52 位,并且在 ES5 规范 中指出了指数位E ...

  9. linux环境下jmeter安装和运行

    linux环境部署: 在Linux服务器先安装jdk:2.以jdk-8u172-linux-x64.tar.gz为例:下载地址:http://www.oracle.com/technetwork/ja ...

  10. SpringBoot基础系列之自定义配置源使用姿势实例演示

    [SpringBoot基础系列]自定义配置源的使用姿势介绍 前面一篇博文介绍了一个@Value的一些知识点,其中提了一个点,@Value对应的配置,除了是配置文件中之外,可以从其他的数据源中获取么,如 ...