电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

詳解Python中string模塊除去Str還剩下什么

瀏覽:36日期:2022-07-03 16:59:27

string模塊可以追溯到早期版本的Python。以前在本模塊中實(shí)現(xiàn)的許多功能已經(jīng)轉(zhuǎn)移到str物品。這個string模塊保留了幾個有用的常量和類來處理str物品。

字符串-文本常量和模板

目的:包含用于處理文本的常量和類。

功能

功能capwords()將字符串中的所有單詞大寫。字符串capwords.py

import strings = ’The quick brown fox jumped over the lazy dog.’print(s)print(string.capwords(s))

結(jié)果與調(diào)用split(),將結(jié)果列表中的單詞大寫,然后調(diào)用join()把結(jié)果結(jié)合起來。

$ python3 string_capwords.pyThe quick brown fox jumped over the lazy dog.The Quick Brown Fox Jumped Over The Lazy Dog.

模板

字符串模板作為PEP 292作為內(nèi)建內(nèi)插語法的替代。帶著string.Template內(nèi)插,變量通過在名稱前加上(例如,(例如,(例如,var)。或者,如果需要的話,也可以用花括號(例如,${var}).此示例使用%運(yùn)算符和新的格式字符串語法。str.format().

#字符串模板import stringvalues = {’var’: ’foo’}t = string.Template('''Variable : $varEscape : $$Variable in text: ${var}iable''')print(’TEMPLATE:’, t.substitute(values))s = '''Variable : %(var)sEscape : %%Variable in text: %(var)siable'''print(’INTERPOLATION:’, s % values)s = '''Variable : {var}Escape : {{}}Variable in text: {var}iable'''print(’FORMAT:’, s.format(**values))

在前兩種情況下,觸發(fā)器字符($或%)是通過重復(fù)兩次來逃脫的。對于格式語法,兩者都是{和}需要通過重復(fù)它們來逃脫。

$ python3 string_template.pyTEMPLATE:Variable : fooEscape : $Variable in text: fooiableINTERPOLATION:Variable : fooEscape : %Variable in text: fooiableFORMAT:Variable : fooEscape : {}Variable in text: fooiable

模板與字符串內(nèi)插或格式化之間的一個關(guān)鍵區(qū)別是,參數(shù)的類型沒有被考慮在內(nèi)。將值轉(zhuǎn)換為字符串,并將字符串插入到結(jié)果中。沒有可用的格式設(shè)置選項(xiàng)。例如,無法控制用于表示浮點(diǎn)值的數(shù)字?jǐn)?shù)。

不過,有一個好處是,使用safe_substitute()方法可以避免異常,如果不是以參數(shù)形式提供模板所需的所有值。

#字符串模板丟失.pyimport stringvalues = {’var’: ’foo’}t = string.Template('$var is here but $missing is not provided')try: print(’substitute() :’, t.substitute(values))except KeyError as err: print(’ERROR:’, str(err))print(’safe_substitute():’, t.safe_substitute(values))

因?yàn)闆]有價(jià)值missing在值字典中,KeyError是由substitute()。

而不是提高錯誤,safe_substitute()捕獲它并將變量表達(dá)式單獨(dú)保留在文本中。

$ python3 string_template_missing.pyERROR: ’missing’safe_substitute(): foo is here but $missing is not provided

高級模板

string.Template可以通過調(diào)整用于在模板正文中查找變量名稱的正則表達(dá)式模式來更改。一個簡單的方法是更改delimiter和idpattern類屬性。

#字符串模板import stringclass MyTemplate(string.Template): delimiter = ’%’ idpattern = ’[a-z]+_[a-z]+’template_text = ’’’ Delimiter : %% Replaced : %with_underscore Ignored : %notunderscored’’’d = { ’with_underscore’: ’replaced’, ’notunderscored’: ’not replaced’,}t = MyTemplate(template_text)print(’Modified ID pattern:’)print(t.safe_substitute(d))

在本例中,替換規(guī)則被更改,因此分隔符是%而不是$變量名必須包括中間的下劃線。

模式%notunderscored不會被任何東西替換,因?yàn)樗话聞澗€字符。

$ python3 string_template_advanced.pyModified ID pattern: Delimiter : % Replaced : replaced Ignored : %notunderscored

對于更復(fù)雜的更改,可以重寫pattern屬性并定義一個全新的正則表達(dá)式。

提供的模式必須包含四個命名組,用于捕獲轉(zhuǎn)義分隔符、命名變量、變量名的大括號版本和無效分隔符模式。

#字符串模板_defaultpattern.pyimport stringt = string.Template(’$var’)print(t.pattern.pattern)

價(jià)值t.pattern是已編譯的正則表達(dá)式,但原始字符串可通過其pattern屬性。

$(?: (?P<escaped>$) |# two delimiters (?P<named>[_a-z][_a-z0-9]*) | # identifier {(?P<braced>[_a-z][_a-z0-9]*)} | # braced identifier (?P<invalid>) # ill-formed delimiter exprs)

此示例定義一個新模式以創(chuàng)建一種新類型的模板,使用{{var}}作為變量語法。

#字符串模板_newsyntax.pyimport reimport stringclass 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(’MATCHES:’, t.pattern.findall(t.template))print(’SUBSTITUTED:’, t.safe_substitute(var=’replacement’))

named和braced模式都必須單獨(dú)提供,即使它們是相同的。運(yùn)行示例程序?qū)⑸梢韵螺敵觯?/p>

$ python3 string_template_newsyntax.pyMATCHES: [(’{{’, ’’, ’’, ’’), (’’, ’var’, ’’, ’’)]SUBSTITUTED:{{replacement

格式化程序

這個Formatter類實(shí)現(xiàn)與format()方法str。它的功能包括類型強(qiáng)制、對齊、屬性和字段引用、命名和位置模板參數(shù)以及特定于類型的格式選項(xiàng)。大多數(shù)時(shí)候format()方法是這些特性的更方便的接口,但是Formatter作為構(gòu)建子類的一種方法,用于需要變體的情況下。

常數(shù)

這個string模塊包括一些與ASCII和數(shù)字字符集相關(guān)的常量。

#字符串常數(shù).pyimport inspectimport stringdef is_str(value): return isinstance(value, str)for name, value in inspect.getmembers(string, is_str): if name.startswith(’_’): continue print(’%s=%rn’ % (name, value))

這些常量在處理ASCII數(shù)據(jù)時(shí)很有用,但是由于在某種形式的Unicode中遇到非ASCII文本越來越常見,因此它們的應(yīng)用受到限制。

$ python3 string_constants.pyascii_letters=’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’ascii_lowercase=’abcdefghijklmnopqrstuvwxyz’ascii_uppercase=’ABCDEFGHIJKLMNOPQRSTUVWXYZ’digits=’0123456789’hexdigits=’0123456789abcdefABCDEF’octdigits=’01234567’printable=’0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!'#$%&’()*+,-./:;<=>?@[]^_`{|}~ tnrx0bx0c’punctuation=’!'#$%&’()*+,-./:;<=>?@[]^_`{|}~’whitespace=’ tnrx0bx0c’

到此這篇關(guān)于詳解Python中string模塊除去Str還剩下什么的文章就介紹到這了,更多相關(guān)Python string模塊內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 找培训机构_找学习课程_励普教育 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 焦作网 WWW.JZRB.COM| 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 德州万泰装饰 - 万泰装饰装修设计软装家居馆 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 乐考网-银行从业_基金从业资格考试_初级/中级会计报名时间_中级经济师 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库-首页-东莞市傲马网络科技有限公司 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 金属回收_废铜废铁回收_边角料回收_废不锈钢回收_废旧电缆线回收-广东益夫金属回收公司 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 碳纤维布-植筋胶-灌缝胶-固特嘉加固材料公司 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 体坛网_体坛+_体坛周报新闻客户端 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | OpenI 启智 新一代人工智能开源开放平台 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 称重传感器,测力传感器,拉压力传感器,压力变送器,扭矩传感器,南京凯基特电气有限公司 | 耐酸泵,耐酸泵厂家-淄博华舜耐腐蚀真空泵 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 桁架楼承板-钢筋桁架楼承板-江苏众力达钢筋楼承板厂 | 超声骨密度仪-动脉硬化检测仪器-人体成分分析仪厂家/品牌/价格_南京科力悦 | 七维官网-水性工业漆_轨道交通涂料_钢结构漆 | 电地暖-电采暖-发热膜-石墨烯电热膜品牌加盟-暖季地暖厂家 | 对辊式破碎机-对辊制砂机-双辊-双齿辊破碎机-巩义市裕顺机械制造有限公司 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 青州开防盗门锁-配汽车芯片钥匙-保险箱钥匙-吉祥修锁店 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 |