鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 编程语言开发 > ruby > >

python学习笔记(三)

来源:互联网 作者:佚名 时间:2013-04-06 15:31
字符串操作 字符串在任何一门语言都是一个重点,灵活运用可实现各种强大的功能,在python中,字符串也是如此,标准的序列操作对字符串也使用,但是分片赋值不行,因为字符串是不可变的。 字符串的格式化: 字符串格式化使用字符串格式化操作符%来实现,在%左

                                                      字符串操作

   字符串在任何一门语言都是一个重点,灵活运用可实现各种强大的功能,在python中,字符串也是如此,标准的序列操作对字符串也使用,但是分片赋值不行,因为字符串是不可变的。

  字符串的格式化:

  字符串格式化使用字符串格式化操作符%来实现,在%左侧放置一个字符串,右侧放置希望格式化的值。看下面这个简单的例子:

>>> format=>>> values=(,) >>> print format % values Hello,world,I'm studying Python!

  注意:如果使用列表或者其他列表代替元组,那么序列就会被解释为一个值,只有元组和字典和格式化一个以上的值。

      %s标记了需要插入转换值的位置,s表示会被转化为字符串,如果不是字符串,则会用str将其转换为字符串。另外,如果需要在格式化字符串里包括百分号,则必须使用%%。

  如果需要格式化实数,用f说明符类型,同时提供精度;一个据点再加上希望保存的小数位数。因为格式化说明符总是以表示类型的字符结束,所以精度应该放在类型字符前面:

>>> format=>>> from math import pi >>> print format % pi PI with three decimals :3.142

  格式化操作符的右操作数可以是任何东西,如果是元组或者映射类型(字典),则字符串的格式化略有不同。例如,如果右操作数是元组,美国服务器,则其中每一个I元素都会被单独格式化,每个值都需要一个对应的转换说明符。(注意:如果需要转换的元组作为转换表示的一部分存在,那么必须将它用圆括号括起来)

>>> %(1,1,2)

  当然,字符串格式化还有很多,比如填充和字宽和精度等,这些带用到时再去查也不迟,下面是一个关于字符串格式化一个较综合的例子,包括字宽和对齐等:

width=input('Please input width:') price_width=10 item_width=width-price_width header_format='%-*s%*s' format ='%-*s%*.2f' print '=' * width print header_format % (item_width,'Item',price_width ,'Price') print '-' * width print format % (item_width ,'Apples',price_width ,0.4) print format % (item_width ,'Pears',price_width ,0.5) print format % (item_width ,'Cantaloupes',price_width ,1.92) print format % (item_width ,'Dried Apricots(16 oz.)',price_width ,8) print format % (item_width ,'Prunes(4 lbs.)',price_width ,12) print '=' * width raw_input("enter any key to exit~~")

  运行结果如下:

   字符串方法:

  几乎任何一种语言关于字符串的方法都很多,不过都大同小异,python中字符串方法的思想和数据结构的思想非常相似。

   find——在一个较长的字符串查找子字符串,返回所在位置的最左端索引,下面是常用的用法:

>>> "hello,python,I like python".find('python') #返回的是第一个‘python’的索引 6 >>> title="hahha,hekko,hello" >>> title.find ('find') #找不到时返回-1 -1 >>> subject='$$$ Get rich now !!!$$$' >>> subject.find ('$$$') #默认返回最左边所在的位置 0 >>> subject.find ('$$$',1) #指定起始搜索位置 20 >>> subject.find('$$$',0,10) #指定搜索的上下限,注意包含上线不包含下线 0

   join——用来在队列中添加元素(必须是字符串),是split方法的逆方法,很常用,下面几例是常见用法:

>>> digitals=[1,2,3,4,5] >>> seperaor='+' >>> seperaor.join(digitals) #连接数字列表出现错误 Traceback (most recent call last): File "<pyshell#9>", line 1, in <module> seperaor.join(digitals) TypeError: sequence item 0: expected string, int found >>> digitals=['1','2','3','4','5'] #改为字符串 >>> seperaor='+' >>> seperaor.join(digitals) #连接字符串列表是正确的 '1+2+3+4+5' >>> dir='','usr','bin','env' >>> '/'.join(dir) #Linux下目录的格式 '/usr/bin/env' >>> print 'C:'+'\\'.join(dir) #windows下目录格式,注意反斜杠需要转义 C:\usr\bin\env

  lower——返回字符串的小写字母。为了程序的友好有时候需要“忽略”用户输入的大小写,香港服务器,在程序中应使用统一的格式来识别,下面举出常见用法:(upper是类似的用法)

>>> 'Trouble Is a Friend!'.lower() 'trouble is a friend!' >>> if 'Jzhou' in ['jason','james','jzhou']: #未转换时没有匹配 print 'Found it!' >>> >>> names=['jason','james','jzhou'] >>> if name.lower() in names: #将转换为小写进行匹配 print 'Found it!' Found it! >>>

   title方法和string模块的capwords函数可以将一句话的首字母大写,符合标题习惯(对冠词的处理不太合理)

>>> 'i like python'.title () 'I Like Python' >>> import string >>> string.capwords ("i like python!") 'I Like Python!' >>>

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

>>> 'this is a test'.replace('test','work') 'this is a work' #查找并替换

   split——将字符串分割成序列,是join的逆方法,很常用

上一篇:ROR学习笔记一
下一篇:Object使用心得
网友评论
<