python基础之字符串

1.基本字符串的操作

所有标准序列的操作(索引,分片,乘法,成员资格判断,求长度,取最小和最大值)同样适用,但是记住:字符串都是不可变的。


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

字符串的格式化可以使用字符串格式化操作符——百分号(%)来实现。

在%的左侧放置一个字符串(格式化字符串),而右侧放置希望被格式化的值。可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者后面将讨论的 字典,一般情况下使用元组:

>>> values=('sun','hou')
>>> format="Hello,%s and %s"
>>> print format % values
Hello,sun and hou

格式化字符串的%s称为转换说明符(conversion speciffer),它们标记了需要插入转换值 的位置。s表示值会被格式化为字符串——如果不是字符串,则会将其转换为字符串,这个方法对大多数值都有效。

注意:如果要加格式化字符串里包括百分号,则必须使用%%,这样python就不会将其误认为是转换说明符了。

如果要格式化实数(浮点数),可以使用f说明转换说明符的类型,同时需要提供精度:一个句点加上希望保存的小数位数。

>>> format="Pi is %.9f"
>>> from math import pi
>>> print format % pi
Pi is 3.141592654


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

如果右操作数是元组或映射类型(入字典),那么字符串格式化将会有所不同。我们还没有讲到映射(如字典),在这里先了解一下元组,在以后我们将会详细介绍映射的格式化。

如果右边操作数是元组的话,则其中的每一个元素都会被单独格式化,每一个值都需要对应一个转换说明符。

注意:如果需要转化的元组作为转换表达式的一部分存在,那么必须将它用圆括号括起来,以防出错:

>>> '%s plus %s equals %s' % (1,1,2)
'1 plus 1 equals 2'
>>> '%s plus %s equals %s' % 1,1,2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: not enough arguments for format string


(1)简单转换

简单的转换只需要写出转换类型,使用起来很简单:

>>> '%d' % 42
'42'
>>> '%x' % 42
'2a'
>>> '%.2f' % 42
'42.00'
>>> '%s' % 42L
'42'
>>> '%r' % 42L
'42L'

(2)字段宽度和精度

字段宽度是转换后所保存的最小字符个数,字段精度是转换后所保存的小数位。两个参数通过点号(.)分隔,前面的是字段宽度,后面的是字段精度。

>>> '%d' % 42
'42'
>>> '%x' % 42
'2a'
>>> '%.2f' % 42
'42.00'
>>> '%s' % 42L
'42'
>>> '%r' % 42L
'42L'
>>> '%10f' % 123
'123.000000'
>>> '%10.2f' % 123
'    123.00'

>>> '%.5s' % 'hello dasd'
'hello'
>>> '%10.5s' % 'hello dasd'
'     hello'
>>> '%10.10s' % 'hello dasd'
'hello dasd'

(3)符号、对齐和用0补齐

在字符宽度和字符精度之前还可以放置一个标志,该标志可以是0、+、-或空格。

零表示数字将会用0来填充:

>>> '%5.1f' % 0.1
'  0.1'
>>> '%05.1f' % 0.1
'000.1'

注意,这里的0开头,并不意味着字段宽度说明符为8进制。它只是个普通的Python数值。

减号(-)用来左对齐数值:

>>> '%10.0f' % 1
'         1'
>>> '%-10.0f' % 1
'1         '

空格(”  “)用来在正数时候加上空格,这时候需要对齐复数很有用:

>>> '% .0f' % 1
' 1'
>>> '% .0f' % -1
'-1'

加号(+)不管正数负数都标出符号


4.字符串方法

字符串的方法非常多,这里只介绍几个常用的字符串的方法:

(1)find

find方法在一个字符串中查找字串。它将返回所在位置最左端索引。如果没有找到返回-1

>>> 'hello word'.find('l')
2
>>> 'hello word'.find('ws')
-1

这个方法还接受提供起始点和结束点参数(所搜范围包含起始点,不包含结束点),在python中,这是个惯例。

>>> 'hello word'.find('o',4,9)
4
>>> 'hello word'.find('o',5,9)
7
>>> 'hello word'.find('o',5,7)
-1


(2)join

join方法是split方法的逆方法,用来连接序列中的字符串:
>>> a=['a','b','c','d']

>>> b='+'
>>> b.join(a)
'a+b+c+d'


(3)lower

lower方法返回字符串的小写

>>> 'AbCd'.lower()
'abcd'


(4)replace

replace方法返回某字符串的所有匹配项均被替换后得到的字符串:

>>> a='hello word'
>>> a.replace('l','2')
'he22o word'


(5)split

这是一个非常重要的方法,它是join的逆方法,用来把字符串分割成序列

>>> a='a+b+c'
>>> a.split('+')
['a', 'b', 'c']


(6)strip

strip用来除去字符串两侧(不包含内部)的空格

>>> a='  sad   '
>>> a.strip()
'sad'



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值