Python——字符串

来源:互联网 发布:手机的危害数据 英文 编辑:程序博客网 时间:2024/06/06 00:28

一、基本字符串操作

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

二、字符串格式化:精简版

        字符串格式化使用字符串格式化操作符即百分号%来实现。在%的左侧放置一个字符串(格式化字符串),而右侧则放置希望格式化的值。可以使用一个值,如一个字符串或者数字,也可以使用多个值的元组或者字典。

>>> format = "Hello. %s. %s enough for ya?">>> values = ('world', 'Hot')>>> print(format % values)Hello. world. Hot enough for ya?
        注意:如果使用类表或者其他序列代替元组,那么序列就会被解释为一个值。只有元组和字典可以格式化一个以上的值。

        格式化字符串的 %s 部分称为转换说明符(conversion specifier),它们标记了需要插入转换值的位置。

三、字符串格式化:完整版

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

        2. 基本的转换说明符包括以下部分。

            (1)%字符:标记转换说明符的开始。

            (2)转换标志(可选):- 表示左对齐;+ 表示在转换值之前要加上正负号;“ ”(空白字符)表示正数之前保留空格;0表示转换值若位数不够则用 0 填充。

            (3)最小字段宽度(可选):转换后的字符串至少应该具有该值指定的宽度。如果是 *,则宽度会从值元组中读出。

            (4)点(.)后跟精度值(可选):如果转换的是实数,精度值表示出现在小数点后的位数。如果转换的是字符串,那么该数字就表示最大字段宽度。如果是*,那么精度就会从元组中读出。

            (5)转换类型

         3.1 简单转换

         简单的转换只需要写出转换类型。

>>> print(format % values)Hello. world. Hot enough for ya?>>> 'Price of eggs: $%d' % 42'Price of eggs: $42'>>> 'Hexadecimal price of eggs: %x' % 42'Hexadecimal price of eggs: 2a'
         3.2 字段宽度和精度

         字段宽度是转换后的值所保留的最小字符个数,精度(对于数字转换来说)则是结果中应该包含的小数位数,或者(对于字符串转换来说)是转换后的值所能包含的最大字符个数。

         这两个参数都是整数(首先是字段宽度,然后是精度),通过点号(.)分隔。虽然两个都是可选的参数,但如果只给出精度,就必须包含点号。

>>> from math import pi>>> '%10f' % pi'  3.141593'>>> '%10.2f' % pi'      3.14'>>> '%.2f' % pi'3.14'>>> '%.*s' % (5, 'Guido van Rossum')'Guido'
          3.3 符号、对齐和 0 填充

          在字段宽度和精度值之前还可以放置一个“标表”,该标表可以是零、加号、减号或空格。零表示数字将会用 0 进行填充。

>>> '%010.2f' % pi'0000003.14'
          减号(-)用来做对齐数值:

>>> '%-10.2f' % pi'3.14      '

          空白(“ ”)意味着在正数前加上空格。

>>> print(('% 5d' % 10) + '\n' + ('% 5d' % -10))   10  -10

          加号(+),它表示不管是正数还是负数都标示出符号。

>>> print(('%+5d' % 10) + '\n' + ('%+5d' % -10))  +10  -10
四、字符串方法

        字符串的方法丰富得多,这是因为字符串从 string 模块中“继承”了很多方法。尽管字符串方法完全来源于 string 模块,但是这个模块还包括一些不能作为字符串方法使用的常量和函数。下面是一些有用的字符串常量。

        (1) string.digits:包换数字 0 - 9 的字符串

        (2) string.letters:包含所有字母(大写和小写)的字符串

        (3) string.lowercase:包含所有小写字母的字符串

        (4) string.printable:包含所有可打印字符的字符串

        (5) string.punctuation:包含所有标点的字符串

        (6) string.uppercase:包含所有大写字母的字符串

        

        1. find

         find 方法可以在一个较长的字符串中查找子字符串。它返回子串所在位置的最左端索引。如果没有找到则返回 -1。

>>> 'With no moo-moo here, and a moo-moo there'.find('moo')8>>> title = "Monty Python's Flying Circus">>> title.find('Monty')0>>> title.find('Python')6>>> title.find('Zirquss')-1
         find 方法还可以接受可选的起始点和结束点参数:

>>> subject = '$$$ Get rich now!!! $$$'>>> subject.find('$$$')0>>> subject.find('$$$', 1)20>>> subject.find('!!!')16>>> subject.find('!!!', 0, 16)-1
         由起始和终止值指定的范围(第二和第三个参数)包含第一个索引,但不包含第二个索引。

         2. join

         join 方法用来在队列中添加元素。需要添加的队列元素都必须是字符串。

>>> seq = ['1', '2', '3', '4', '5']>>> sep = '+'>>> sep.join(seq)'1+2+3+4+5'>>> dirs = '', 'usr', 'bin', 'env'>>> '/'.join(dirs)'/usr/bin/env'

         3. lower

         lower 方法返回字符串的小写字母版。

>>> 'Trondhe Hammer Dance'.lower()'trondhe hammer dance'
         和 lower 方法相关的是 title 方法,它会将字符串转换为标题——也就是所有单词的首字母大写,而其他字母小写。

>>> "that's all folks".title()"That'S All Folks"

         4. replace

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

>>> 'This is a test'.replace('is', 'eez')'Theez eez a test'

         5. split

         split 方法将字符串分割成序列。

>>> '1+2+3+4+5'.split('+')['1', '2', '3', '4', '5']>>> '/usr/bin/env'.split('/')['', 'usr', 'bin', 'env']>>> 'Using the default'.split()['Using', 'the', 'default']
         如果不提供任何分隔符,程序会把所有空格作为分隔符(空格、制表、换行等)。

         6. strip

         strip 方法返回去除两侧(不包括内部)空格的字符串。

>>> '         internal whitespace is kept        '.strip()'internal whitespace is kept'
          也可以指定需要去除的字符,将它们列为参数即可。

>>> '*** SPAM * for * everyone!!! ***'.strip(' *!')'SPAM * for * everyone'
          这个方法只会去除两侧的字符,所以字符串中的星号没有被去掉。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝退货退款快递单号写错了怎么办 淘宝上已经退款的店家还发货怎么办 千牛买家下单付款了卖家怎么办 京东货到付款支付宝支付退款怎么办 美萍餐饮管理系统下单错误怎么办 淘宝店上传宝贝显示空间不足怎么办 淘宝店品牌被投诉未授权怎么办 淘宝天猫退货单号填错了怎么办 淘宝退货我把快递单号弄丢了怎么办 唯品会退货快递单号填错了怎么办 天猫换货写错运单号怎么办 训练衣舍的店铺名连接怎么办 兼职模特被骗去微整还贷了款怎么办 卖家已经发货了我要退款怎么办 卖家显示发货单号信息查不到怎么办 淘宝申请退款卖家发货了怎么办 咸鱼卖家不发货好会自动退款怎么办 淘宝卖家涨价后不发货怎么办 淘宝卖家发货选错在线下单怎么办 申请退款后卖家又虚假发货了怎么办 公司用淘宝没发票做账怎么办 淘宝网买了假货确认了怎么办? 吃了安眠药睡了一天还没有醒怎么办 淘宝买的东西退货快递弄丢了怎么办 在淘宝上已付钱店家说没货了怎么办 从淘宝物流寄东西到国外被扣怎么办 不是天猫的淘宝卖家不发货怎么办 微店违规说卖假冒商品怎么办 云集微店的商品没货了怎么办 淘宝买家被检测有虚拟交易怎么办 媒体声音突然没有声音了该怎么办 华为微信运动步数为零怎么办 淘宝店铺没货了客户拍了怎么办 房子涨价了卖家反悔不卖了怎么办 买的东西很贵质量不好怎么办 在淘宝开的店账号忘了怎么办 建了个淘宝优惠券群没人购物怎么办 刚开的淘宝店没有生意怎么办 房产代理公司不给渠道结佣金怎么办 天猫超过72小时不发货怎么办 流量魔盒苹果下载怎么打不开怎么办