Python的字符串学习(三)
学习Python语言,不得不学习在Python中,对字符串的处理,事实上,在Str类中提供了很多的方法来对字符串的处理,
比如我们经常见的字符串的大小小写的处理,字符串的分割合并等,那么我们是怎么知道这些方法了?比如我定义了一个字符
串,我怎么知道字符串的操作方法有哪些?
我们只需要知道,在Python中,所有对象所具备的功能都保存在相应的类中,而查看对象的类有二种方式,分别是:
1、使用dir(str)
2、help(type(str))
那么我们分别print这二种方式,查看输出的是什么,查看的是否见如下的代码:
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 str='无涯' 5 6 7 #第一种查看对象所具备类的方法 8 print dir(str) 9 10 print '\n' 11 12 #第二种方式的查看 13 print help(type(str))
见实际的输出内容:
C:\Python27\python.exe D: / git / Python / FullStack / Study / index.py
[ '__add__' , '__class__' , '__contains__' , '__delattr__' , '__doc__' , '__eq__' , '__format__' , '__ge__' , '__getattribute__' , '__getitem__' , '__getnewargs__' , '__getslice__' , '__gt__' , '__hash__' , '__init__' , '__le__' , '__len__' , '__lt__' , '__mod__' , '__mul__' , '__ne__' , '__new__' , '__reduce__' , '__reduce_ex__' , '__repr__' , '__rmod__' , '__rmul__' , '__setattr__' , '__sizeof__' , '__str__' , '__subclasshook__' , '_formatter_field_name_split' , '_formatter_parser' , 'capitalize' , 'center' , 'count' , 'decode' , 'encode' , 'endswith' , 'expandtabs' , 'find' , 'format' , 'index' , 'isalnum' , 'isalpha' , 'isdigit' , 'islower' , 'isspace' , 'istitle' , 'isupper' , 'join' , 'ljust' , 'lower' , 'lstrip' , 'partition' , 'replace' , 'rfind' , 'rindex' , 'rjust' , 'rpartition' , 'rsplit' , 'rstrip' , 'split' , 'splitlines' , 'startswith' , 'strip' , 'swapcase' , 'title' , 'translate' , 'upper' , 'zfill' ]
Help on class str in module __builtin__:
class str ( basestring )
| str ( object = '') - > string
|
| Return a nice string representation of the object .
| If the argument is a string, the return value is the same object .
|
| Method resolution order:
| str
| basestring
| object
|
| Methods defined here:
|
| __add__(...)
| x.__add__(y) < = = > x + y
|
| __contains__(...)
| x.__contains__(y) < = = > y in x
|
| __eq__(...)
| x.__eq__(y) < = = > x = = y
|
| __format__(...)
| S.__format__(format_spec) - > string
|
| Return a formatted version of S as described by format_spec.
|
| __ge__(...)
| x.__ge__(y) < = = > x> = y
|
| __getattribute__(...)
| x.__getattribute__( 'name' ) < = = > x.name
|
| __getitem__(...)
| x.__getitem__(y) < = = > x[y]
|
| __getnewargs__(...)
|
| __getslice__(...)
| x.__getslice__(i, j) < = = > x[i:j]
|
| Use of negative indices is not supported.
|
| __gt__(...)
| x.__gt__(y) < = = > x>y
|
| __hash__(...)
| x.__hash__() < = = > hash (x)
|
| __le__(...)
| x.__le__(y) < = = > x< = y
|
| __len__(...)
| x.__len__() < = = > len (x)
|
| __lt__(...)
| x.__lt__(y) < = = > x<y
|
| __mod__(...)
| x.__mod__(y) < = = > x % y
|
| __mul__(...)
| x.__mul__(n) < = = > x * n
|
| __ne__(...)
| x.__ne__(y) < = = > x! = y
|
| __repr__(...)
| x.__repr__() < = = > repr (x)
|
| __rmod__(...)
| x.__rmod__(y) < = = > y % x
|
| __rmul__(...)
| x.__rmul__(n) < = = > n * x
|
| __sizeof__(...)
| S.__sizeof__() - > size of S in memory, in bytes
|
| __str__(...)
| x.__str__() < = = > str (x)
|
| capitalize(...)
| S.capitalize() - > string
|
| Return a copy of the string S with only its first character
| capitalized.
|
| center(...)
| S.center(width[, fillchar]) - > string
|
| Return S centered in a string of length width. Padding is
| done using the specified fill character (default is a space)
|
| count(...)
| S.count(sub[, start[, end]]) - > int
|
| Return the number of non - overlapping occurrences of substring sub in
| string S[start:end]. Optional arguments start and end are interpreted
| as in slice notation.
|
| decode(...)
| S.decode([encoding[,errors]]) - > object
|
| Decodes S using the codec registered for encoding. encoding defaults
| to the default encoding. errors may be given to set a different error
| handling scheme. Default is 'strict' meaning that encoding errors raise
| a UnicodeDecodeError. Other possible values are 'ignore' and 'replace'
| as well as any other name registered with codecs.register_error that is
| able to handle UnicodeDecodeErrors.
|
| encode(...)
| S.encode([encoding[,errors]]) - > object
|
| Encodes S using the codec registered for encoding. encoding defaults
| to the default encoding. errors may be given to set a different error
| handling scheme. Default is 'strict' meaning that encoding errors raise
| a UnicodeEncodeError. Other possible values are 'ignore' , 'replace' and
| 'xmlcharrefreplace' as well as any other name registered with
| codecs.register_error that is able to handle UnicodeEncodeErrors.
|
| endswith(...)
| S.endswith(suffix[, start[, end]]) - > bool
|
| Return True if S ends with the specified suffix, False otherwise.
| With optional start, test S beginning at that position.
| With optional end, stop comparing S at that position.
| suffix can also be a tuple of strings to try .
|
| expandtabs(...)
| S.expandtabs([tabsize]) - > string
|
| Return a copy of S where all tab characters are expanded using spaces.
| If tabsize is not given, a tab size of 8 characters is assumed.
|
| find(...)
| S.find(sub [,start [,end]]) - > int
|
| Return the lowest index in S where substring sub is found,
| such that sub is contained within S[start:end]. Optional
| arguments start and end are interpreted as in slice notation.
|
| Return - 1 on failure.
|
| format (...)
| S. format ( * args, * * kwargs) - > string
|
| Return a formatted version of S, using substitutions from args and kwargs.
| The substitutions are identified by braces ( '{' and '}' ).
|
| index(...)
| S.index(sub [,start [,end]]) - > int
|
| Like S.find() but raise ValueError when the substring is not found.
|
| isalnum(...)
| S.isalnum() - > bool
|
| Return True if all characters in S are alphanumeric
| and there is at least one character in S, False otherwise.
|
| isalpha(...)
| S.isalpha() - > bool
|
| Return True if all characters in S are alphabetic
| and there is at least one character in S, False otherwise.
|
| isdigit(...)
| S.isdigit() - > bool
|
| Return True if all characters in S are digits
| and there is at least one character in S, False otherwise.
|
| islower(...)
| S.islower() - > bool
|
| Return True if all cased characters in S are lowercase and there is
| at least one cased character in S, False otherwise.
|
| isspace(...)
| S.isspace() - > bool
|
| Return True if all characters in S are whitespace
| and there is at least one character in S, False otherwise.
|
| istitle(...)
| S.istitle() - > bool
|
| Return True if S is a titlecased string and there is at least one
| character in S, i.e. uppercase characters may only follow uncased
| characters and lowercase characters only cased ones. Return False
| otherwise.
|
| isupper(...)
| S.isupper() - > bool
|
| Return True if all cased characters in S are uppercase and there is
| at least one cased character in S, False otherwise.
|
| join(...)
| S.join(iterable) - > string
|
| Return a string which is the concatenation of the strings in the
| iterable. The separator between elements is S.
|
| ljust(...)
| S.ljust(width[, fillchar]) - > string
|
| Return S left - justified in a string of length width. Padding is
| done using the specified fill character (default is a space).
|
| lower(...)
| S.lower() - > string
|
| Return a copy of the string S converted to lowercase.
|
| lstrip(...)
| S.lstrip([chars]) - > string or unicode
|
| Return a copy of the string S with leading whitespace removed.
| If chars is given and not None , remove characters in chars instead.
| If chars is unicode , S will be converted to unicode before stripping
|
| partition(...)
| S.partition(sep) - > (head, sep, tail)
|
| Search for the separator sep in S, and return the part before it,
| the separator itself, and the part after it. If the separator is not
| found, return S and two empty strings.
|
| replace(...)
| S.replace(old, new[, count]) - > string
|
| Return a copy of string S with all occurrences of substring
| old replaced by new. If the optional argument count is
| given, only the first count occurrences are replaced.
|
| rfind(...)
| S.rfind(sub [,start [,end]]) - > int
|
| Return the highest index in S where substring sub is found,
| such that sub is contained within S[start:end]. Optional
| arguments start and end are interpreted as in slice notation.
|
| Return - 1 on failure.
|
| rindex(...)
| S.rindex(sub [,start [,end]]) - > int
|
| Like S.rfind() but raise ValueError when the substring is not found.
|
| rjust(...)
| S.rjust(width[, fillchar]) - > string
|
| Return S right - justified in a string of length width. Padding is
| done using the specified fill character (default is a space)
|
| rpartition(...)
| S.rpartition(sep) - > (head, sep, tail)
|
| Search for the separator sep in S, starting at the end of S, and return
| the part before it, the separator itself, and the part after it. If the
| separator is not found, return two empty strings and S.
|
| rsplit(...)
| S.rsplit([sep [,maxsplit]]) - > list of strings
|
| Return a list of the words in the string S, using sep as the
| delimiter string, starting at the end of the string and working
| to the front. If maxsplit is given, at most maxsplit splits are
| done. If sep is not specified or is None , any whitespace string
| is a separator.
|
| rstrip(...)
| S.rstrip([chars]) - > string or unicode
|
| Return a copy of the string S with trailing whitespace removed.
| If chars is given and not None , remove characters in chars instead.
| If chars is unicode , S will be converted to unicode before stripping
|
| split(...)
| S.split([sep [,maxsplit]]) - > list of strings
|
| Return a list of the words in the string S, using sep as the
| delimiter string. If maxsplit is given, at most maxsplit
| splits are done. If sep is not specified or is None , any
| whitespace string is a separator and empty strings are removed
| from the result.
|
| splitlines(...)
| S.splitlines(keepends = False ) - > list of strings
|
| Return a list of the lines in S, breaking at line boundaries.
| Line breaks are not included in the resulting list unless keepends
| is given and true.
|
| startswith(...)
| S.startswith(prefix[, start[, end]]) - > bool
|
| Return True if S starts with the specified prefix, False otherwise.
| With optional start, test S beginning at that position.
| With optional end, stop comparing S at that position.
| prefix can also be a tuple of strings to try .
|
| strip(...)
| S.strip([chars]) - > string or unicode
|
| Return a copy of the string S with leading and trailing
| whitespace removed.
| If chars is given and not None , remove characters in chars instead.
| If chars is unicode , S will be converted to unicode before stripping
|
| swapcase(...)
| S.swapcase() - > string
|
| Return a copy of the string S with uppercase characters
| converted to lowercase and vice versa.
|
| title(...)
| S.title() - > string
|
| Return a titlecased version of S, i.e. words start with uppercase
| characters, all remaining cased characters have lowercase.
|
| translate(...)
| S.translate(table [,deletechars]) - > string
|
| Return a copy of the string S, where all characters occurring
| in the optional argument deletechars are removed, and the
| remaining characters have been mapped through the given
| translation table, which must be a string of length 256 or None .
| If the table argument is None , no translation is applied and
| the operation simply removes the characters in deletechars.
|
| upper(...)
| S.upper() - > string
|
| Return a copy of the string S converted to uppercase.
|
| zfill(...)
| S.zfill(width) - > string
|
| Pad a numeric string S with zeros on the left, to fill a field
| of the specified width. The string S is never truncated.
|
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| Data and other attributes defined here:
|
| __new__ = <built - in method __new__ of type object >
| T.__new__(S, ...) - > a new object with type S, a subtype of T
None Process finished with exit code 0
|
二种输出方式的不同,但是达到了我们想要的效果,我们可以看到,所有对字符串的操作的方法,都是来自str类,在Pycharm的
IDE中,我们可以更加直观的看str类中的方法,见截图:
到这里,我们可以看到在str类中,提供了很多对字符串的操作的方法,我们现在需要做的,就是把经常使用到
的方法在这里进行下总结和学习。具体见如下的代码:
1 #!/usr/bin/env python 2 #coding:utf-8 3 4 str='Hello' 5 #首字母变大写 6 print str.capitalize() 7 #内容居中 8 print str.center(30,'=') 9 #子序列的个数(字母在字符串中出现了几次) 10 print str.count('l') 11 #是否已什么结尾 12 print str.endswith('o') 13 #是否已什么开始 14 print str.startswith('H') 15 #处理tab键 16 str2='Hello\t999' 17 print str2.expandtabs() 18 #寻找子序列位置,没有找到返回-1,返回了是1 19 print str.find('a') 20 #寻找子序列的位置,没有找到就报错 21 print str.index('e') 22 #字符串的格式化输出,也就是占位符 23 age=20 24 name='wuya' 25 print 'name is {0},and age is {1}'.format(name,age) 26 #判断是否是字母和数字 27 print str.isalnum() 28 #判断是否是字母 29 print str.isalpha() 30 #判断是否是数字 31 print str.isdigit() 32 #判断是否小写 33 print str.islower() 34 #判断是否有空格 35 print str.isspace() 36 #判断是否是大写 37 print str.isupper() 38 #判断是否是标题-->首字母大写,可以理解为大写 39 print str.istitle() 40 #.join连接字符串 41 s1=['appium','selenium','android','ios'] 42 print '***'.join(s1) 43 #使用.join()把列表转为字符串 44 print ','.join(s1) 45 #字符串转为列表 46 a='a b c' 47 print a.split(' ') 48 #移除空白 49 s3=' hello' 50 print s3.strip() 51 #移除左側空格 52 s4=' hello' 53 print s4.lstrip() 54 #移除右边空格 55 s5='world ' 56 print s5.rstrip() 57 #字符串变小写 58 print str.lower() 59 #分割字符串,分割后就是元组 60 s='wuya is python' 61 print s.partition('is') 62 #替换字符串 63 print s.replace('wuya','selenium') 64 #rfind()从右向左找 65 print s.rfind('wuya') 66 #bytes可以把字符串转成字节 67 str5='无涯' 68 print bytes(str5)
见如上的代码,字符串使用到的方法都总结在这里了。