变量与字符串的连接

先当以如下三个变量:

name='wwb'

age='17'

job='study'

方法一:利用+号进行连接

>>>info1='''Welcome to '''+name+''''scode kingdom

... Name:'''+name+'''

... Age:'''+age+'''

... Job:'''+job

>>>print(info1)

Welcome to wwb's codekingdom

Name:wwb

Age:17

Job:study

配合三引号可以换行输出且连接变量与字符串

方法二:利用格式化字符串进行连接

>>>info2='''Welcome to %s's code kingdom

... Name:%s

... Age:%s

... Job:%s'''%(name,name,age,job)

>>>print(info2)

Welcometowwb'scode kingdom

Name:wwb

Age:17

Job:study

我们经常会输出类似 “亲爱的xxx你好!你xx月的话费是xx,余额是xx” 之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。

python中%就是用来格式化字符串的。在字符串内部,用%s表示字符串,%d表示整数,字符串里有几个占位符,后面就跟几个值或变量,顺序要一一对应。如果只有1个占位符则后面可以省略括号。

>>>'hello,%s'%'world'

'hello ,world'

>>>'hello%s,hello %s'%('world','tom')

'hello world,hello tom'

常用的占位符

%d              整数

%f              浮点数

%s              字符串

%x              十六进制

%d:

在%与d之间加非0的数字表示这个占位符最少的长度(长度数值)。若'值长度'小于'长度数值'则将值放在最后(  为空格)

>>>'%d-%2d'%(3,3)

'3- 3'

在%与长度数值之间加0,表示在'值长度'小于'长度数值'时自动补‘0’

>>>'%2d-%02d'%(3,3)

' 3-03'

%f:

%f默认保留6位小数,

>>>'%f'%1

'1.000000'

指定保留的小数位数在%与f之间加 '.n'(n为位数)

例如:保留3位小数和4位小数

>>>'%.3f-%.4f'%(1,2)

'1.000-2.0000'

若是想输出一个'%'字符串就需要转义,用%%表示一个'%'字符

>>>'他的成绩比去年提升了%.2f%%'%3.145926

'他的成绩比去年提升了3.15%'

方法三:format()方法

索引映射:

>>>info3='''Welcome to {} 's code kindom

... Name:{}

... Age:{}

... Job:{}'''.format(name,name,age,job)

>>>print(info4)

Welcometowwb's code kindom

Name:wwb

Age:17

Job:study

>>>info4='''Welcome to {0} 's code kindom

... Name:{0}

... Age:{1}

... Job:{2}'''.format(name,age,job)

>>>print(info4)

Welcometowwb's code kindom

Name:wwb

Age:17

Job:study

函数部分:

format('czlun',17,)

#str类型要添加用引号

#'czlun'的key为0

#17的key为1,依次增加。

字符部分:

'Name:{} Age:{}'

#format中以{}作为占位符

#占位符里为空,则第一个占位符对应第一个值(对应key为0的值),依次增加

#占位符里为空,则占位符的数量不能大于函数内的值的数量

'Name:{1} Age:{0} Name:{1}'

#若想让每个占位符分别指向函数内的值,只需可以在占位符里填入对应的key

#函数内的值可以被非空占位符多次调用,所以可以出现非空占位符数量大于函数内的值的数量的情况

#注意:空占位符与非空占位符不可混用

任何情况下,函数内的值的数量大于占位符的数量都不会报错

例子:

>>>'Name:{1}Age:{0}'.format(17,'czlun')

'Name:czlun Age:17'

>>>'Name:{}Age:{}'.format(17,'czlun')

'Name:17 Age:czlun'

#可以出现非空占位符数量大于函数内的值的数量的情况

>>>'Name:{}Age:{}'.format(17,'czlun','haha')

'Name:17 Age:czlun'

>>>'Name:{1}Age:{0}'.format(17,'czlun','haha')

'Name:czlun Age:17'

#函数内的值可以被非空占位符多次调用,所以可以出现非空占位符数量大于函数内的值的数量的情况

>>>'Name:{1}Age:{0} Other:{1}'.format(17,'czlun')

'Name:czlun Age:17 Other:czlun'

#占位符里为空,则占位符的数量不能大于函数内的值的数量

>>>'Name:{}Age:{} Other:{}'.format(17,'czlun')

Traceback(mostrecentcalllast):

File"<stdin>",line1,in<module>

IndexError:tupleindexoutofrange

关键字映射:

>>>info5='''Welcome to {_name} 's code kindom

... Name:{_name}

... Age:{_age}

... Job:{_job}'''.format(_name=name,_age=age,_job=job)

>>>print(info3)

Welcometowwb's code kindom

Name:wwb

Age:17

Job:study

函数部分:

format(_name='czlun',_age=17,)

#与索引映射不同的是,用关键字替代了索引号,更容易理解对应的值

字符部分:

'Name:{_name} Age:{_age} Name:{_name}'

#若想让每个占位符分别指向函数内的值,只需可以在占位符里填入对应的关键字

格式限定符

格式限定符是用 表示

填充与对齐

填充:

格式限定符后面带填充的长度

格式:{: Num}

>>>'{:5}'.format('a') #'a'长度为1,小于5,执行填充操作

'a    '

>>>'{:5}'.format('abcdefg') #'abcdefh'长度为7,不小于5,不执行填充操作

'abcdefg'

#'{:5}'意义:用:表示填充的操作,5表示填充的长度,当值的长度小于5时,便会用空格在末尾将长度补到5(填充结果默认是左对齐)

对齐:

格式限定符后面带对齐符(^、<、>分别是居中、左对齐、右对齐),后面带宽度

格式:

{:^|<|>Num}

>>>'{:^5}'.format('a')

' a  '

>>>'{:<5}'.format('a')

'a    '

>>>'{:>5}'.format('a')

'    a'

用指定字符进行填充:

格式限定符与对齐符中间加一个字符,则使用该字符进行填充,不指定的话默认是用空格填充

>>>'{:*^5}'.format('a')

'**a**'

>>>'{:*<5}'.format('a')

'a****'

>>>'{:*>5}'.format('a')

'****a'

指向函数内的值:

是不是觉得用了这个格式限定符就无法输出函数内其他的值了?

若想让每个占位符分别指向函数内的值,只需可以在格式限定符前填入对应的key

>>>'{0:*^5}'.format('a','b','c')

'**a**'

>>>'{1:*<5}'.format('a','b','c')

'b****'

>>>'{2:*>5}'.format('a','b','c')

'****c'

数据类型

'f' - 浮点数。将数值以浮点数输出

'd' - 十进制。将数字以十进制进行输出。

'b' - 二进制。将数字以二进制数进行输出。

'o' - 八进制。将数字以八进制数进行输出。

'x' - 十六进制。将数字以十六进制数进行输出。

'c' - 字符。在打印之前将整数转换成对应的Unicode字符串。

'e' - 幂符号。用科学计数法打印数字。用'e'表示幂。

'%' - 百分数。将数字以百分数输出

',' - 金额千位分隔符。

#f  .2保留两位小数 .1保留1位小数 .0不保留小数

>>>'{:f}'.format(10/3)

'3.333333'

>>>'{:.2f}'.format(10/3)

'3.33'

>>>'{:.1f}'.format(10/3)

'3.3'

>>>'{:.0f}'.format(10/3)

'3'

#d、b o、x、c

>>>'{:d}'.format(10)

'10'

>>>'{:b}'.format(3)

'11'

>>>'{:o}'.format(10)

'12'

>>>'{:x}'.format(10)

'a'

>>>'{:c}'.format(65)

'A'

#e  .2保留两位小数 .1保留1位小数 .0不保留小数

>>>'{:e}'.format(1999)

'1.999000e+03'

>>>'{:.3e}'.format(1999)

'1.999e+03'

>>>'{:.2e}'.format(1999)

'2.00e+03'

>>>'{:.1e}'.format(1999)

'2.0e+03'

>>>'{:.0e}'.format(1999)

'2e+03'

#%  .2保留两位小数 .1保留1位小数 .0不保留小数

>>>'{:%}'.format(3/10)

'30.000000%'

>>>'{:.2%}'.format(3/10)

'30.00%'

>>>'{:.1%}'.format(3/10)

'30.0%'

>>>'{:.0%}'.format(3/10)

'30%'

#,

>>>'{:,}'.format(100861001010000)

'100,861,001,010,000'

转载于:https://www.cnblogs.com/czlun/articles/6994271.html

变量与字符串的连接 - format、格式化字符串相关推荐

  1. java字符串 大括号_string.format格式化字符串中转义大括号“{}”

    今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法.以前只知"{0}"为索引占位符(即格式项),与参数列表 ...

  2. Python基础教程:format 格式化字符串用法

    1.format 格式化字符串 (1) 顺序传参 (2) 索引传参 (3) 关键字传参 (4) 容器类型传参 {} 代表的是占位符 2.顺序传参 strvar = "{}向{}开了一枪&qu ...

  3. 字符串原样输出程序python_Python格式化字符串(格式化输出)

    Python 提供了"%"对各种类型的数据进行格式化输出,例如如下代码: price = 108 print ("the book's price is %s" ...

  4. 字符串类型及format格式化

    文章目录 字符串 字符串的索引与切片 字符串的format方法 format方法的格式控制 填充 对齐 宽度 精度 类型 字符串操作符 字符串处理函数 字符串处理方法 str.lower() and ...

  5. Python用format格式化字符串

    format是是python2.6新增的一个格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能替代字符串类型 2.单个参数可以多次输出,参数顺 ...

  6. java 补齐字符串_使用String.format()格式化字符串,java自动补全自增长字符串

    JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...

  7. string.Format 格式化字符串

    http://www.cnblogs.com/linyechengwei/archive/2009/11/17/1604509.html 今天在做项目时,碰到一个很奇怪的问题,我使用string.Fo ...

  8. python 大括号转义_string.format格式化字符串中转义大括号“{}”

    今天,用C#写程序操作Excel,读取单元格内容根据所需格式生成字符串,使用String.Format(string format,object arg0)方法.以前只知"{0}" ...

  9. php中sql格式化字符串,sqli注入-sprintf格式化字符串带来的注入隐患

    PHP中 sprintf()格式化输出详解 sprintf()函数把格式化的字符串写入变量中. arg1.arg2.++参数将被插入到主字符串中的百分号(%)符号处.该函数是逐步执行的.在第一个%符号 ...

最新文章

  1. html5之通讯API
  2. Tomcat 安装与使用
  3. 深度学习——RNN原理与TensorFlow2下的IMDB简单实践
  4. Java多线程中run和start的区别
  5. hdu 2686 Matrix 最大费用最大流
  6. aix系统下oracle之ora-00471,Oracle RAC 9.2.0.7 (AIX53,HA52)三台主机实例全down的问题
  7. 900万注释图像数据集升级了!谷歌开放Open Images V6,首增语音、文本、鼠标轨迹同步注释...
  8. MySQL不支持top n的语法
  9. Unity3D游戏开发之开发游戏带来的问题
  10. 马化腾回应《腾讯没有梦想》:我的理想不是赚多少钱
  11. 【科普】AHCI模式是什么,与IDE模式有什么区别?
  12. 【数据结构】【范浩强treap】
  13. 1024程序员节Bilibili电脑8位密码谜底
  14. 为什么企业微信只能群发一次?如何增加群发次数?
  15. 你真的知道如何选择内存条吗?
  16. ActiveMq createSession DUPS_OK_ACKNOWLEDGE
  17. ddt数据驱动 python接口 xls_013 python接口 数据驱动ddt
  18. Python 棋子移动游戏
  19. 外链应该这样发,网站排名速度提升十陪 1
  20. Verification和Validation

热门文章

  1. Eclipse插件安装方式及使用说明
  2. 如何利用【百度地图API】,制作房产酒店地图?(下)——结合自己的数据库...
  3. 32位汇编编程模板--使用masm6.15环境
  4. ANDROID_NDK的path,如何在Android Studio中设置NDK_PROJECT_PATH
  5. android 父控件的背景_android控件拖动,移动、解决父布局重绘时控件回到原点
  6. iphone全部机型_iPhone12卖爆 产业链喜迎5G时代 股价天花板打开?|iphone|iphone12|运营商|智能机...
  7. 分享Kali Linux 2017年第29周镜像文件
  8. Beaglebone Black教程使用SSH通过USB和因特网连接Beaglebone Black
  9. Xamarin iOS开发实战1.1.3Xamarin版本
  10. pythondocx模板_python操作docx文档(转)