#!/usr/bin/env python #-*- coding:UTF-8 -*- ##################################################### # Author: sunfx [email protected] # Last modified: 2014/11/11 # Filename: string.py # Q Q 羣: 236147801 ##################################################### import re import string str = 'I love python' #1.生成20個字符長度 print str.center(20) #2.字符左對齊 print str.ljust(20) #3.字符右對齊 print str.rjust(20) #4.str右對齊,左邊填充0 print str.zfill(20) #5.所有字符大寫 print str.upper() #6.所有字符轉小寫 print str.lower() #7.所有單詞的首字母大寫 s = 'Thi quick brown fox jumped over the lazy dog.' print s print string.capwords(s) #8.大小寫對換 print str.swapcase() #9.已分割符爲標記,首字符大寫,其餘小寫 print str.title() #10.模版轉換 字符替換 比replace更有效率 leet = string.maketrans('abegiloprstz','463611092572') s = 'Thi quick brown fox jumped over the lazy dog.' print s print s.translate(leet) str = '0123' #11.是否全部是字母和數字,並至少有一個字符 print str.isalnum() #12.是否全部是數字,並至少有一個字符 print str.isdigit() #13.判斷是否全是字母,並且至少一個字符 print str.isalpha() #14.判斷是否是小寫,當全是小寫和數字一起時候,也判斷爲True print str.islower() #15.判斷是否是空白字符,並且至少有一個字符 print str.isspace() #16.判斷字符是否以str開頭 print str.startswith('str') #17.判讀字符是否以str結尾 print str.endswith('str') str = 'string 1EAMD' #18.查找字符,沒有返回-1,有責返回查到第一個匹配的索引 print str.find('a') #19.查找字符,沒有返回-1,有責返回查到最後一次匹配的索引 print str.rfind('a') #20.查找字符,如果沒有報錯,有責返回查到第一個匹配的索引 print str.index('s') #21.查找字符,沒有報錯,有責返回查到最後一次匹配的索引 print str.rindex('s') #22.查找字符串在字符中出現的次數 print str.count('s') #23.替換匹配的字符 print str.replace('s','A') #24.刪除字符串首尾匹配的字符,通用用於刪除回車符 print str.strip('n') #25.刪除左邊匹配的字符 print str.lstrip('n') #26.刪除右邊匹配的字符 print str.rstrip('n') #27.把製表符轉爲空格 str = ' tab' print str.expandtabs() str = '我在學習' #28.解碼過程,將utf-8解碼爲unicode print str.decode('utf-8') #29.編碼過程,將unicode編碼爲gbk print str.decode('utf-8').encode('gbk') #30.講unicode編碼爲utf-8 print str.decode('utf-8').encode('utf-8') #31.字符分割 str = 'Learn string' print '-'.join(str) #32.以什麼爲分割 print str.split(' ') #33.模版Template values = {'var':'foo'} t = string.Template(""" Variale : $var Escape : $$ Variable in text: ${var}iable """) print 'TEMPLATE:',t.substitute(values) s = """ Variale : %(var)s Escape : %% Variable in text: %(var)siable """ print 'INTERPOLATION:', s % values #34.Template 異常處理 t = string.Template("$var is here but $missing is not provided") try: print 'substitute() :',t.substitute(values) except KeyError, err: print 'ERROR:',str(err) print 'safe_substitute():',t.safe_substitute(values) #36.高級模版 template_text = ''' Delimiter : %% Replaced : %with_underscore Ignored : %notundersocred ''' #37.可以自定義Templace 轉換規則 d = { 'with_underscore':'replaced', 'notundersocred':'not replaced' } class MyTemplate(string.Template): delimiter = '%' idpattern = '[a-z]+_[a-z]+' t = MyTemplate(template_text) print 'Modified ID pattern:' print t.safe_substitute(d) #38.自定義更復雜的規則 t = string.Template('$var') print t.pattern.pattern ''' \$(?: (?P<escaped>\$) | # Escape sequence of two delimiters #忽略的分隔符 (?P<named>[_a-z][_a-z0-9]*) | # delimiter and a Python identifier #python分隔符的標識(也就是變量) {(?P<braced>[_a-z][_a-z0-9]*)} | # delimiter and a braced identifier #分隔符和一個支撐的標識 (?P<invalid>) # Other ill-formed delimiter exprs #無效的 ) ''' class MyTemplate(string.Template): delimiter = '{{' #定義轉義符 pattern = r''' \{\{(?: (?P<escaped>\{\{) | (?P<named>[_a-z][_a-z0-9]*)\}\} | (?P<braced>[_a-z][_a-z0-9]*)\}\} | (?P<invalid>) ) ''' t = MyTemplate(''' {{{{ `var` ''') print t.template #查看template的值 print 'MATCHES:',t.pattern.findall(t.template) #查看正則匹配到的字符 print 'SUBSTIITUTED:',t.safe_substitute(var='replacement') #使用替換 print MyTemplate.delimiter #查看mytemplate轉義符 print string.Template.delimiter #查看string轉義符 #http://legacy.python.org/dev/peps/pep-0292/ #格式化段落 #39.填充段落 左對齊,第一行縮進,行中空格繼續保留 import textwrap sample_text = ''' The textwrap modulde can be used to format text for output in situations where pretty-parinting is desired. It offers programmatic functionality similar to the paragraph wrapping or filling features found in myany text editors. ''' print 'No dedent:\n' print textwrap.fill(sample_text,width=50) #40.去除現有縮進(去除行中所有的空格) dedemted_text = textwrap.dedent(sample_text) print dedemted_text #41.結合fill和dedent 指定輸出文字的寬度 dedemted_text = textwrap.dedent(sample_text).strip() print dedemted_text for width in [45,70]: print '%d Columns:\n' % width print textwrap.fill(dedemted_text,width=width) print #42.懸掛縮進 print textwrap.fill(dedemted_text, initial_indent='', #定義文本第一行縮進的長度 subsequent_indent=' ' * 4, #定義其他行的縮進 width=50 #定義文本長度,默認75 )
python string用法學習ing
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.