Python中的string模块的学习
学习资料:http://docs.python.org/library/string.html#string.Formatter 感觉学习任何东西,官方的东西总是最好的,呵呵。个人总结(代码为主,相信有python基础的都能看懂): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 >>> import string >>> string.ascii_letters 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> string.ascii_lowercase 'abcdefghijklmnopqrstuvwxyz' >>> string.ascii_uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> string.digits '0123456789' >>> string.hexdigits '0123456789abcdefABCDEF' >>> string.letters 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' >>> string.lowercase 'abcdefghijklmnopqrstuvwxyz' >>> string.uppercase 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' >>> string.octdigits '01234567' >>> string.punctuation '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~' >>> string.printable '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c' >>> string.whitespace '\t\n\x0b\x0c\r 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 >>> '{0}, {1}, {2}' . format ( 'a' , 'b' , 'c' ) 'a, b, c' >>> '{}, {}, {}' . format ( 'a' , 'b' , 'c' ) # 2.7+ only 'a, b, c' >>> '{2}, {1}, {0}' . format ( 'a' , 'b' , 'c' ) 'c, b, a' >>> '{2}, {1}, {0}' . format ( * 'abc' ) # unpacking argument sequence 'c, b, a' >>> '{0}{1}{0}' . format ( 'abra' , 'cad' ) # arguments' indices can be repeated 'abracadabra' >>> 'Coordinates: {latitude}, {longitude}' . format (latitude = '37.24N' , longitude = '-115.81W' ) 'Coordinates: 37.24N, -115.81W' >>> coord = { 'latitude' : '37.24N' , 'longitude' : '-115.81W' } >>> 'Coordinates: {latitude}, {longitude}' . format ( * * coord) 'Coordinates: 37.24N, -115.81W' >>> c = 3 - 5j >>> ( 'The complex number {0} is formed from the real part {0.real} ' ... 'and the imaginary part {0.imag}.' ). format (c) 'The complex number (3-5j) is formed from the real part 3.0 and the imaginary part -5.0.' >>> class Point( object ): ... def __init__( self , x, y): ... self .x, self .y = x, y ... def __str__( self ): ... return 'Point({self.x}, {self.y})' . format ( self = self ) ... >>> str (Point( 4 , 2 )) 'Point( 4 , 2 ) >>> coord = ( 3 , 5 ) >>> 'X: {0[0]}; Y: {0[1]}' . format (coord) 'X: 3; Y: 5' >>> "repr() shows quotes: {!r}; str() doesn't: {!s}" . format ('test1 ', ' test2') "repr() shows quotes: 'test1'; str() doesn't: test2" >>> '{:<30}' . format ( 'left aligned' ) 'left aligned ' >>> '{:>30}' . format ( 'right aligned' ) ' right aligned' >>> '{:^30}' . format ( 'centered' ) ' centered ' >>> '{:*^30}' . format ( 'centered' ) # use '*' as a fill char '***********centered***********' >>> '{:+f}; {:+f}' . format ( 3.14 , - 3.14 ) # show it always '+3.140000; -3.140000' >>> '{: f}; {: f}' . format ( 3.14 , - 3.14 ) # show a space for positive numbers ' 3.140000; -3.140000' >>> '{:-f}; {:-f}' . format ( 3.14 , - 3.14 ) # show only the minus -- same as '{:f}; {:f}' '3.140000; -3.140000' >>> # format also supports binary numbers >>> "int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}" . format ( 42 ) 'int: 42; hex: 2a; oct: 52; bin: 101010' >>> # with 0x, 0o, or 0b as prefix: >>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}" . format ( 42 ) 'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010' >>> '{:,}' . format ( 1234567890 ) '1,234,567,890' >>> points = 19.5 >>> total = 22 >>> 'Correct answers: {:.2%}.' . format (points / total) 'Correct answers: 88.64%' >>> import datetime >>> d = datetime.datetime( 2010 , 7 , 4 , 12 , 15 , 58 ) >>> '{:%Y-%m-%d %H:%M:%S}' . format (d) '2010-07-04 12:15:58' >>> for align, text in zip ( '<^>' , [ 'left' , 'center' , 'right' ]): ... '{0:{fill}{align}16}' . format (text, fill = align, align = align) ... 'left<<<<<<<<<<<<' '^^^^^center^^^^^' '>>>>>>>>>>>right' >>> >>> octets = [ 192 , 168 , 0 , 1 ] >>> '{:02X}{:02X}{:02X}{:02X}' . format ( * octets) 'C0A80001' >>> int (_, 16 ) 3232235521 >>> >>> width = 5 >>> for num in range ( 5 , 12 ): ... for base in 'dXob' : ... print '{0:{width}{base}}' . format (num, base = base, width = width), ... print ... 5 5 5 101 6 6 6 110 7 7 7 111 8 8 10 1000 9 9 11 1001 10 A 12 1010 11 B 13 1011 >>> from string import Template >>> s = Template( '$who likes $what' ) >>> s.substitute(who = 'tim' , what = 'kung pao' ) 'tim likes kung pao' >>> d = dict (who = 'tim' ) >>> Template( 'Give $who $100' ).substitute(d) Traceback (most recent call last): [...] ValueError: Invalid placeholder in string: line 1 , col 10 >>> Template( '$who likes $what' ).substitute(d) Traceback (most recent call last): [...] KeyError: 'what' >>> Template( '$who likes $what' ).safe_substitute(d) 'tim likes $what' 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 string.capitalize(word) 返回一个副本,首字母大写 >>> string.capitalize( "hello" ) 'Hello' >>> string.capitalize( "hello world" ) 'Hello world' >>> string.split( "asdadada asdada" ) [ 'asdadada' , 'asdada' ] >>> string.strip( " adsd " ) 'adsd' >>> string.rstrip( " adsd " ) ' adsd' >>> string.lstrip( " adsd " ) 'adsd ' string.swapcase(s) 小写变大写,大写变小写 >>> string.swapcase( "Helloo" ) 'hELLOO' >>> string.ljust( "ww" , 20 ) 'ww ' >>> string.rjust( 'ww' , 20 ) ' ww' >>> string.center( 'ww' , 20 ) ' ww ' string.zfill(s, width) Pad a numeric string on the left with zero digits until the given width is reached. Strings starting with a sign are handled correctly. >>> string.zfill( 'ww' , 20 ) '000000000000000000ww' ============================================================================== 本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2011/11/25/2263722.html,如需转载请自行联系原作者