Python学习笔记【三】——《python基础教程》:: 使用字符串

第3章 使用字符串

3.1. 基本字符串操作

★ 字符串不可变

3.2. 字符串格式化:精简版

  1. 使用格式化操作符:字符串格式%值

    >>> format = "Hello, %s, I have %.5f dollars now."
    >>> values = ('world', 200)
    >>> format % values
    'Hello, world, I have 200.00000 dollars now.'

    类似c语言格式化

  2. 使用模板字符串,Template()函数指定格式,substitute()方法用参数x替换$x

    
    #当替换字段是其他字符串一部分,需要用${x}格式
    
    
    #$$用于插入$符号
    	>>> s = Template("$x, glorious $x! It's ${y}tastic! Make $$ sellilng $x!")
    
    >>> s.substitute(x='slurm', y='slurm1')
    "slurm, glorious slurm! It's slurm1tastic! Make $ sellilng slurm!"
    
    
    #使用字典变量提供值/名称对
    
    >>> s = Template("$x, glorious $x! It's ${y}tastic! Make $$ sellilng $x!")
    >>> d={}
    >>> d['x']='slurm2'
    >>> d['y']='slurm3'
    >>> s.substitute(d)
    "slurm2, glorious slurm2! It's slurm3tastic! Make $ sellilng slurm2!"
    

3.3. 字符串格式化:完整版

  1. 基本转换说明符
转换说明符说明
%字符标记转换说明符的开始
转换标志(optional)-,表示左对齐
+,表示转换至之前添加正负号
”“,表示证书之前保留空格
0,表示转换值若位数不够则用0填充
最小字段宽度(optional)转换后字符串至少有该值指定的宽度
*,宽度从元组中读出
点(.)后跟精度值(optional)转换实数,精度值表示小数点后的位数
转换字符串,数字表示最大字段宽度
*,精度从元组中读出

2. 字符串格式化转换类型

转换类型含义
d,i有符号十进制整数
o无符号八进制
u无符号十进制
x无符号十六进制(小写)
X无符号十六进制(大写)
e科学记数法表示的浮点数(小写)
E科学记数法表示的浮点数(大写)
f,F十进制浮点数
g指数大于-4或者小于精度值,与e相同
其他,与f相同
G指数大于-4或者小于精度值,与E相同
其他,与F相同
C单字符(接收整数或单字符字符串)
r字符串(使用repr转换任意Python对象)
s字符串(使用str转换任意Python对象)

字符串格式化操作类似C语言,基础部分不在赘述。

3.3. 符号、对齐和0填充

使用*从元组中读取转换说明符

#字符串宽度和浮点数宽度使用*标识,使用时从元组中都去实际的宽度值
>>> format = '|%-*s|%*.2f|'
>>> format % (20, 'format_test', 15, 0.4)
'|format_test         |           0.40|'

3.4. 字符串方法

字符串方法来源于string模块,该模块中还有一些常用的字符串常量。

常量说明
string.digits包含数字0~9的字符串
string.letters包含所有字母(大写或小写)的字符串,与Python设置的语言有关
string.lowercase包含所有小写字母的字符串
string.printable包含所有可打印字符的字符串
string.punctuation包含所有标点的字符串
string.uppercase包含所有大写字母的字符串

3.4.1. find

  1. 在字符串中查找子字符串。找到,返回子串位置最左端的索引;否则,返回-1。
  2. 该方法支持指定查找的起始和结束位置。
>>> subject = '$$$ Get rich now!!! $$$'
>>> subject.find('$$$')
0
#起始位置为可搜索的第一个字符位置,结束位置为不可搜索的第一个字符位置
>>> subject.find('$$$', 3)
20
>>> subject.find('!!!')
16
>>> subject.find('!!!', 0, 16)
-1
>>> 

3.4.2. join

在队列中添加元素(分隔符)。

>>> dirs = '', 'usr', 'bin', 'env'
>>> print '/'.join(dirs)
/usr/bin/env

3.4.3. lower

  1. 返回字符串的小写字母版。

    >>> 'Test Lower Method.'.lower()
    'test lower method.'

    常用于需要“不区分大小写”的场合。

  2. 类似方法, title()/capwords(),用于将字符串转换为标题格式(所有单词首字母大写),而这使用的单次划分方法不同,得到不同结果,请自行验证吧。

3.4.4. replace

返回某字符串的所有匹配项均被替换之后得到的字符串(即:查找并替换)。

>>> 'Test replace Method'.replace('replace', 'REPLACE')
'Test REPLACE Method'

3.4.5. split

字符串分割成序列。

>>> '/usr/bin/env'.split('/')
['', 'usr', 'bin', 'env']
#split若未指定分隔符,则默认空格(空格、制表、换行)为分隔符
>>> 'Test Split Method.'.split()
['Test', 'Split', 'Method.']

3.4.6. strip

返回去除字符串首尾的字符

#strip默认去掉空格
>>> '      test strip method              '.strip()
'test strip method'
#strip可指定要去掉的字符(多个)
>>> '******test strip method!!!!!#####*******'.strip('*!#')
'test strip method'

3.4.7. translate

  1. 替换字符串中的某部分,只处理单字符
  2. 可以同时进行多个替换。
  3. 使用translate前,要先生成转换表。可使用maketrans函数,生成包含替换ASCII字符集中256个字符的替换字母的字符串。

    >>> maketrans('ab', 'cd')[97:123]
    'cdcdefghijklmnopqrstuvwxyz'
  4. 使用转换表替换字符串

    >>> table = maketrans('ab', 'cd')
    >>> 'Test: abababab aaaabbbb'.translate(table)
    'Test: cdcdcdcd ccccdddd'
  5. translate第2个参数指定需要删除的字符

    >>> 'Test: abababab aaaabbbb'.translate(table," ")
    'Test:cdcdcdcdccccdddd'
    >>> 'Test: abababab aaaabbbb'.translate(table,"a ")
    'Test:dddddddd'
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值