python 字符串操作一
一、创建字符串
>>> s1 = '12345'
>>> s1
'12345'
>>> s2 = str(12345)
>>> s2
'12345'
>>> s3 = str([1, 2, 3, 4, 5])
>>> s3
'[1, 2, 3, 4, 5]'
>>> s4 = str({'one': 1, "two": 2, "three": 3})
>>> s4
"{'one': 1, 'two': 2, 'three': 3}"
二、格式化字符串
第一种方式:
>>> s1 = 'wang'
>>> s2 = 10
>>> s3 = 'hello'
>>> s4 = s1 + s2 + s3
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: must be str, not int
>>> s4 = s1 + str(s2) + s3
>>> s4
'wang10hello'
第二种方式:
>>> s5 = '%s%d%s' % (s1, s2, s3)
>>> s5
'wang10hello'
Python中字符串格式化符号:

格式化操作辅助符号:

>>> num = 100
>>> '%x' % num
'64'
>>> '%X' % num
'64'
>>> '%#x' % num
'0x64'
>>> '%#X' % num
'0X64'
>>> pi = 3.1415926
>>> '%.4f' % pi
'3.1416'
>>> '%5.2f' % pi
' 3.14'
>>> pi = 3.141592
>>> '%*s' % (10, pi)
' 3.141592'
>>> d = {'one': 1}
>>> "%(one)s" % d
'1'
第三种方式:
>>>"{0} is {1} years old".format("Wilber", 28) # 位置参数
'Wilber is 28 years old'
>>> "{name} is {age} years old".format(name = "Wilber", age = 28) # 关键字参数
'Wilber is 28 years old'
>>> li = ["Wilber", 28]
>>> "{0[0]} is {0[1]} years old".format(li) # 下标参数
'Wilber is 28 years old'
format格式化字符串的一般形式如下:
"... {field_name!conversion:format_spec} ..."
从上面的代码可以看到,格式化字符串可分为 field_name、conversion、format_spec 三部分,分别对应替换字段名称(索引)、转换标志、格式描述。其中,字段名称是必选的,而后两者是可选的。转换标志紧跟在英文感叹号后面,而格式描述紧跟在英文冒号后面。
前面已经提到过,字段名称既可是位置索引,也可是关键字索引。字段名称后面可以通过点来访问属性,或通过方括号来访问元素。
在这里,我们重点看一下格式描述(format_spec)这一项。
格式描述中含有6个选项,分别是 fill、align、sign、width、precision、type。 它们的位置关系如下:
[[fill]align][sign][#][0][width][,][.precision][type]
fill
可以是任意字符,默认为空格。
align
仅当指定最小宽度时有效。
< 左对齐(默认选项)
> 右对齐
= 仅对数字有效;将填充字符放到符号与数字间,例如 +0001234
^ 居中对齐
sign
仅对数字有效
+ 所有数字均带有符号
- 仅负数带有符号(默认选项)
即空格;正数前面带空格,负数前面带符号
'#'
只对整数有效
自动在二进制、八进制、十六进制数值前添加对应的 0b、0o、 0x。
','
自动在每三个数字之间添加 , 分隔符。
width
十进制数字,定义最小宽度。如果未指定,则由内容的宽度来决定。
如果没有指定对齐方式(align),那么可以在 width 前面添加一个0来实现自动填充0,等价于 fill 设为 0 并且 align 设为 =。
precision
用于确定浮点数的精度,或字符串的最大长度。不可用于整型数值。
type
确定参数类型,默认为 s ,即字符串。
整数输出类型:
b:以二进制格式输出
c:将整数转换成对应的 unicode 字符
d:以十进制输出(默认选项)
o:以八进制输出
x:以十六进制小写输出
X:以十六进制大写输出
n:与 d 相同,但使用当前环境的分隔符来分隔每3位数字
十进制浮点数输出类型:
e:指数标记;使用科学计数法输出,用e来表示指数部分,默认 precision 为6
E:与 e 相同,但使用大写 E 来表示指数部分
f:以定点形式输出数值,默认 precision 为6
F:与 f 相同
g:通用格式;对于给定的 precision p >= 1,取数值的p位有效数字,并以定点或科学计数法输出(默认选项)
G:通用格式;与 g 相同,当数值过大时使用 E 来表示指数部分
n:与 g 相同,但使用当前环境的分隔符来分隔每3位数字
%:百分比标记;使用百分比的形式输出数值,同时设定 f 标记
>>> '{:>8}'.format('3.14')
' 3.14'
>>> '{:<8}'.format('3.14')
'3.14 '
>>> '{:^8}'.format('3.14')
' 3.14 '
>>> '{:0>8}'.format('3.14')
'00003.14'
>>> '{:a>8}'.format('3.14')
'aaaa3.14'
>>> '{:.4f}'.format(3.1415926)
'3.1416'
>>> '{:0>10.4f}'.format(3.1415926)
'00003.1416'
>>> '{:b}'.format(11)
'1011'
>>> '{:d}'.format(11)
'11'
>>> '{:o}'.format(11)
'13'
>>> '{:x}'.format(11)
'b'
>>> '{:#x}'.format(11)
'0xb'
>>> '{:#X}'.format(11)
'0XB'
>>> '{:,}'.format(15700000000)
'15,700,000,000'
三、字符串模板
from string import Template
s = Template("Hi, $name! $name is learning $language")
print(s.substitute(name="Wilber", language="Python"))
d = {"name": "Will", "language": "C#"}
print(s.substitute(d))
# 用$$表示$符号
s = Template("This book ($bname) is 17$$")
print(s.substitute(bname="TCP/IP"))
Hi, Wilber! Wilber is learning Python
Hi, Will! Will is learning C#
This book (TCP/IP) is 17$
python 字符串操作一的更多相关文章
- Python 字符串操作
Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...
- python字符串操作实方法大合集
python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下: #1.去空格及特殊符号 s.st ...
- 转 Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
转自: http://www.cnblogs.com/huangcong/archive/2011/08/29/2158268.html 黄聪:Python 字符串操作(string替换.删除.截取. ...
- Python 字符串操作及string模块使用
python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...
- python字符串操作总结
python中有各种字符串操作,一开始python有个专门的string模块,要使用需先import string.后来从python2.0开始,string方法改用str.method()形式调用, ...
- 『无为则无心』Python序列 — 17、Python字符串操作常用API
目录 1.字符串的查找 @1.find()方法 @2.index()方法 @3.rfind()和rindex()方法 @4.count()方法 2.字符串的修改 @1.replace()方法 @2.s ...
- python 字符串操作。。
#字符串操作 以0开始,有负下标的使用0第一个元素,-1最后一个元素,-len第一个元 素,len-1最后一个元素 name= "qwe , erw, qwe "print(nam ...
- Python 字符串操作,截取,长度
1.字符串操作: 字符串长度: s = "; slen = len(s); 字符串截取: print s[:-:-] #截取,逆序隔1个取一个字符 print s[:-:-] #截取,逆序隔 ...
- python字符串操作、文件操作,英文词频统计预处理
1.字符串操作: 解析身份证号:生日.性别.出生地等. 凯撒密码编码与解码 网址观察与批量生成 解析身份证号:生日.性别.出生地等 def function3(): print('请输入身份证号') ...
- python字符串操作2
在python有各种各样的string操作函数.在历史上string类在python中经历了一段轮回的历史.在最开始的时候,python有一个专 门的string的module,要使用string的方 ...
随机推荐
- HTML--比较实用的小例子
常用的前端实例: 1略 2.在网页商城中的图片当我们把鼠标放上去之后,图片会显示一个有颜色的外边框,图片某一部分的字体的颜色并发生改变 鼠标放上去之前 鼠标放上去之后: 实现的代码: <!DOC ...
- HDU 3820 Golden Eggs( 最小割 奇特建图)经典
Golden Eggs Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- HDU 3305 Ice-sugar Gourd
Ice-sugar Gourd Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- JavaScript中label语句的使用
之前在读<javascript高级程序设计>的时候,看到过lable语句,当时看完感觉好像很少用到,但是今天,刚好在项目终于到了合适的场景,合理使用label可以大幅度优化性能. 首先来简 ...
- JAVA的WebService规范JAX-WS
JAX-WS的服务端.客户端双方传输数据使用的SOAP消息格式封装数据. 一.下载apache-cxf-3.1.4.zip. 二.编写服务端 1.编写一个Web Service用来传输参数的类 pac ...
- Python2.7安装教程
作者:zhanhailiang 日期:2014-11-16 [root@~/software]# yum install bzip* [root@~/software]# wget http://ww ...
- C# XML序列化与反序列化与XML格式详解
1.https://www.cnblogs.com/sandyliu1999/p/4844664.html XML是有层次结构的,序列化实际就是内存化,用连续的结构化的内存来存储表示一个对象,那么这两 ...
- bzoj3727: PA2014 Final Zadanie
我真是SB之神呢这么SB的题都不会 肯定是先无脑正向思考,罗列下关系式: b[1]=∑a[i]*dep[i]=∑tot[i] (i!=1) b[i]=b[fa]-tot[i]+(tot[1]-tot[ ...
- maven配置本地仓库和国内镜像仓库,解决国内访问国外中央仓库速度过慢问题
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 1.配置本地仓库 打开conf文件夹下面的setting.xml文件 红色方框为配置本地仓 ...
- Silverlight中使用MVVM(4)
Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)—提高 Silverlight中使用MVVM(3)—进阶 Silverlight中使用MVVM(4)—演练 ...