python 字符串

所有的序列操作(索引,分片,乘法,判断成员资格,求长度,取最大值与最小值)都对字符串同样适用.注意:字符串是不可变的.

1.字符串格式化.字符串格式化使用格式化操作符"%"实现.在%左侧放置一个字符串,而右侧旋转希望格式化的值.如果有多个值,一般使用元组.

>>> format = "Hello,%s.%s enough for ya?"
>>> values = ('world','Hot')
>>> print format % values
Hello,world.Hot enough for ya?
格式化字符串的%s部分称为转换说明符,它们标记了需要插入转换值的位置.S表示会被格式化为字符串(如果不是字符串,会用str奖其转换为字符串),如果要格式化实数(浮点数),可以用f说明类型,同时提供所需要的精度,一个句点加上希望保留的小数位数.
>>> format = "Pi with three decimals:%.3f"
>>> from math import pi
>>> print format % pi
Pi with three decimals:3.142
模板字符串 String模块提供另外一种格式化值的方法,模板字符串.它的工作类似于Unix Shell里的变量替换.

>>> from string import Template
>>> s = Template('$x. glorious $x!')
>>> s.substitute(x='slurm')
'slurm. glorious slurm!'
#如果要替换单词一部分,参数名必须要用括号括起来,从而准确指明结尾
>>> s = Template("It's ${x}tastic!")
>>> s.substitute(x='slurm')
"It's slurmtastic!"
#可以使用$$插入美元符号
>>> s = Template("Make $$ selling $x!")
>>> s.substitute(x='slurm')
'Make $ selling slurm!'
#除了关键参数之外,还可以使用字典变量提供值/名称对
>>> s = Template('A $thing must never $action.')
>>> d = {}
>>> d['thing'] = 'gentleman'
>>> d['action'] = 'show his socks'
>>> s.substitute(d)
'A gentleman must never show his socks.'
如果右操作数是元组的话,则其中的每一个元素都会被单独格式化,每个人值都需要一个对应的转换说明符.
>>> '%s plus %s equals %s' % (1,1,2)
'1 plus 1 equals 2'

  • $字符 标记转换说明符的开始
  • 转换标志  -表示左对齐;+表示在转换值前加上正负号;""(空白符)表示正数之前保留空格;0 表示转换值若位数不够则用0填充.
  • 最小字段宽度  转换后的字符串至少应该具有该值指定的宽度.如果是*,则宽度会从值元组中读出
  • 点(.)后跟精度值   如果转换的是实数,精度值表示出现在小数点后的位数,如果转换的是字符串,那么该数字就表示最大字段宽度.如果是*,那么精度将会从元组中读出.
find  find方法可以在一个较长的字符串中查找字字符串,返回子串所在位置的最左端索引,没有找到则返回-1

>>> title = "Monty Python's Flying Circus"
>>> title.find('Monty')
0
>>> title.find('monty')
-1
>>> subject = '$$$ Get rich now!!! $$$'
>>> subject.find('$$$')
0
>>> subject.find('$$$',1)#提供起始点
20
>>> subject.find('!!!')
16
>>> subject.find('!!!',0,16)#提供起始点与结束点
-1
join  join方法是非常重要的字符串方法,是split方法的逆方法
>>> seq = ['1','2','3','4','5']
>>> sep = '+'
>>> sep.join(seq)
'1+2+3+4+5'
>>> dirs = '','usr','bin','env'
>>> '/'.join(dirs)
'/usr/bin/env'
lower方法返回字符串的小写字母版
>>> name = 'Gumby'
>>> names = ['gumby','smith','jones']
>>> if name in names:print 'Found it!'
... 
>>> if name.lower() in names:print 'Found it!'
... 
Found it!
title方法会将字符串转换为标题,也就是所有首字母都是大写,其它字母小写.
>>> "that's all folks".title()
"That'S All Folks"
>>> "that's aLL folks".title()
"That'S All Folks"
>>> import string
>>> string.capwords("that's all,folks")
"That's All,folks"
strip方法去除两侧空格
>>> '               internal withspace is kept               '.strip()
'internal withspace is kept'
也可以指定去除需要的字符,然他们列为参数

>>> '*** SPAM * for * everyone!!! ***'.strip('*!')
' SPAM * for * everyone!!! '
>>> '*** SPAM * for * everyone!!!***'.strip('*!')
' SPAM * for * everyone'







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值