使用百分号拼接字符串:

例如:

msg='i am %s my hobby is...' %'abc'
print(msg)

如果需要用2个%s呢?就使用括号
例如:

msg='I am %s my hobby is %s' %('abc','DDD')  
print(msg)
返回结果:
i am abc my hobby is DDD

%s是万能的,可以接收数字、字符串、列表
缺点是可读性差

msg='I am %s my hobby is %s' %('abc',123)
print(msg)
msg='I am %s my hobby is %s' %('abc',[2,3,4])
print(msg)

%.<数字>s对字符串的截取宽度设置
例如:

msg='I am %.4s' %'abcdefg'
print(msg)
返回结果:
I am abcd

%d只接收数字
如果给字符串、列表等会报错

msg='I am %s my age is %d' %('abc',19)
print(msg)

%f接收浮点数

msg='Percent %f' %99.97654321234566
print(msg)
返回结果:
Percent 99.976543

%f保留小数点后2位

msg='Percent %.2f' %99.97654321888
print(msg)
返回结果:
Percent 99.98

%%显示百分比符号,使用2个%符号

例如:

msg="Percent %.2f%%" %99.97654321111
print(msg)

使用变量的格式化显示字符串
例如:

msg="I am %(name)s age %(age)d" %{"name":"alex","age":19}
print(msg)
返回结果:
I am alex age 19

%s的左右对齐,保留宽度
例如:
  %-<数字>s 表示左对齐
  %+<数字>s 表示右对齐

msg='I am %(name)-20s hobby is ...' %{"name":"abc"}
print(msg)
返回结果:
I am abc hobby is ... msg='I am %(name)+20s hobby is ...' %{"name":"abc"}
print(msg)
返回结果:
I am abc hobby is ...

********format格式化字符串********

#元组的形式为字符串一一提供

tpl="i am {}, age {},{}".format("seven",18,'alex')
print(tpl)

#字典的形式为字符串提供

tpl="I am {name},age {age}, really {name}".format(name="seven",age=18)
print(tpl) #个人最喜欢这种方式,简单、直接、清晰明了

#另一种写法:以字典的方式书写,但注意一定要使用**

tpl="i am {name}, age {age}, really {name}".format(**{"name":"seven","age":18})
print(tpl)  #**{"name":"seven","age":18}作用就是把键值对取出来转换成name="seven"的方式
tpl="i am {0[0]}, age{0[1]}, really {0[2]}".format([1,2,3],[11,22,33])
print(tpl)

说明:format除提供了字典的key-value形式之外,其余都以元组的形式提供,
  所以展开后得到元组:([1,2,3],[11,22,33])
  所以{0[0]}到元组([1,2,3],[11,22,33])取值就是[1,2,3]中的1;
  所以{0[1]}到元组([1,2,3],[11,22,33])取值就是[1,2,3]中的2;
  所以{0[2]}到元组([1,2,3],[11,22,33])取值就是[1,2,3]中的3

tpl="i am {:s}, age {:d}, money {:f}".format("seven",18,9999.1)
说明:
  {:s}代表字符串
  {:d}代表数字
  {:f}代表浮点数

#如果要传入列表,则要使用1个*
例如:

tpl="i am {:s}, age {:d}".format(*["serven",18])    
li=["seven",19]
tpl="i am {:s}, age {:d}".format(li)

说明:如果这样写,本身format会把li加入到元组或列表中,但是li本身就是个列表
这样就造成列表/元组中的列表,会产生奇怪的问题,所以此时要使用星号:

tpl="i am {:s}, age {:d}".format(*li)
使用*把列表中的值取出来,再放到format构造的列表或元组中

tpl="number: {:b},{:o},{:d},{:x},{:X},{:%}".format(15,15,15,15,15,15.87623,2)
print(tpl)
返回结果:
number: 1111,17,15,f,F,1587.623000% :b 表示二进制
:o 表示八进制
:d 整形数字
:x 小写十六进制
:X 大写十六进制
:% 表示百分号

python之字符串拼接:%和format的更多相关文章

  1. python中字符串格式化%与.format

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  2. Python中字符串拼接的N种方法

    python拼接字符串一般有以下几种方法: ①直接通过(+)操作符拼接 s = 'Hello'+' '+'World'+'!'print(s) 输出结果:Hello World! 使用这种方式进行字符 ...

  3. Python 基础 字符串拼接 + if while for循环

    注释单行注释 #多行注释 ''' 三个单引号或者三个双引号 """ ''' 用三引号引住可以多行赋值 用户交互 input 字符串拼接 +  ""%( ...

  4. Python中字符串拼接的三种方式

    在Python中,我们经常会遇到字符串的拼接问题,在这里我总结了三种字符串的拼接方式:     1.使用加号(+)号进行拼接 加号(+)号拼接是我第一次学习Python常用的方法,我们只需要把我们要加 ...

  5. python格式化字符串Type Error: Format Requires Mapping 的问题

    最近几天 频繁看到有这种写法 BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" 第一次看到的pythoner看到可能会有点懵逼 ...

  6. Python格式化字符串(f,F,format,%)

    # 格式化字符串: 在字符串前加上 f 或者 F 使用 {变量名} 的形式来使用变量名的值 year = 2020 event = 'Referendum' value = f'Results of ...

  7. py-day2-5 python 百分号字符串拼接

    #### 字符串格式化. # %s 代替任何的元素 (数字,字符串,列表··) print('I live %s crty' %'my') print('I live %s crty' %'[6,8, ...

  8. day14 Python百分号字符串拼接

    拼接 # -*- coding:utf8 -*- #%s字符串,%d数字msg = '%s am %s my %s is %s'% (2,"charon","pluto& ...

  9. Python 百分号字符串拼接

    # %s可以接收一切 %d只能接收数字 msg = 'i am %s my hobby is %s' %('lhf','alex') print msg msg2 = 'i am %s my hobb ...

随机推荐

  1. Asynchronous programming in javascript

    Javascript是单线程的,因此异步编程对其尤为重要. ES 6以前: * 回调函数* 事件监听(事件发布/订阅)* Promise对象 ES 6: * Generator函数(协程corouti ...

  2. 20175236 2018-2019-2 《Java程序设计》第七周学习总结

    教材学习内容总结 String类 String类在java.lang包中的类被默认引入,因此程序可以直接使用String类 Java把String类定义为final类,因此用户不能扩展String类, ...

  3. SketchUp 建模练习(一)从图像建模运货木板 Pallet

    软件环境 SketchUp Pro 2017 GIMP 2.10.6 参考书籍 Google SketchUp for Game Design 作者:Robin de Jongh 运货木板效果图 制作 ...

  4. Hbase的集群安装

    hadoop集群的搭建 搭建真正的zookeeper集群 Hbase需要安装在成功部署的Hadoop平台,并且要求Hadoop已经正常启动. 同时,HBase需要集群部署,我们分别把HBase 部署到 ...

  5. kmeans

    K均值(K-means)算法 ).setSeed(1L) val model=kmeans.fit(dataset) //Make predictions val predictions=model. ...

  6. Scala编程 摘录

    有件你会注意到的事情是,几乎所有的 Scala 的控制结构都会产生某个值.这是函数式语言所采用的方式,程序被看成是计算值的活动,因此程序的控件也应当这么做.你也可以把这种方式看做早已存在于指令式语言中 ...

  7. Oracle中文排序问题

    默认感觉中文是按拼音排序,如果没实现效果,请加上其它排序,例如日期 表名为 dept ,其中name字段是中文,下面分别实现按照单位名称的笔划.部首和拼音排序.1: //按照笔划排序2: select ...

  8. VGG19模型训练+读取

    目录 VGG-19模型简单介绍 VGG-19模型文件介绍 分析模型文件 mean值查看 Weight和Bias查看 读取代码 读取模型 训练代码 参考资料 VGG-19的介绍和训练这里不做说明,网上资 ...

  9. 在eclipse下,用Maven创建Spring MVC工程

    参考链接:https://www.cnblogs.com/yangyxd/p/5955630.html 1.打开Eclipse,Ctrl + N  创建Maven

  10. java.lang.StackOverflowError

    在开发中经常会遇到内存溢出的情况,大部分原因是因为:代码中有死循环.过度递归等情况 解决办法:看报错 找到是因为死循环还是过度递归,改掉即可 我的报错原因是使用了 new Gson.().toJson ...