日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

Python 如何在字符串中插入變量

瀏覽:28日期:2022-07-15 15:19:00

問題

你想創(chuàng)建一個(gè)內(nèi)嵌變量的字符串,變量被它的值所表示的字符串替換掉。

解決方案

Python并沒有對在字符串中簡單替換變量值提供直接的支持。 但是通過使用字符串的 format() 方法來解決這個(gè)問題。比如:

>>> s = ’{name} has {n} messages.’>>> s.format(name=’Guido’, n=37)’Guido has 37 messages.’>>>

或者,如果要被替換的變量能在變量域中找到, 那么你可以結(jié)合使用 format_map() 和 vars() 。就像下面這樣:

>>> name = ’Guido’>>> n = 37>>> s.format_map(vars())’Guido has 37 messages.’>>>

vars() 還有一個(gè)有意思的特性就是它也適用于對象實(shí)例。比如:

>>> class Info:... def __init__(self, name, n):... self.name = name... self.n = n...>>> a = Info(’Guido’,37)>>> s.format_map(vars(a))’Guido has 37 messages.’>>>

format 和 format_map() 的一個(gè)缺陷就是它們并不能很好的處理變量缺失的情況,比如:

>>> s.format(name=’Guido’)Traceback (most recent call last): File '<stdin>', line 1, in <module>KeyError: ’n’>>>

一種避免這種錯(cuò)誤的方法是另外定義一個(gè)含有 __missing__() 方法的字典對象,就像下面這樣:

class safesub(dict):'''防止key找不到'''def __missing__(self, key): return ’{’ + key + ’}’

現(xiàn)在你可以利用這個(gè)類包裝輸入后傳遞給 format_map() :

>>> del n # Make sure n is undefined>>> s.format_map(safesub(vars()))’Guido has {n} messages.’>>>

如果你發(fā)現(xiàn)自己在代碼中頻繁的執(zhí)行這些步驟,你可以將變量替換步驟用一個(gè)工具函數(shù)封裝起來。就像下面這樣:

import sysdef sub(text): return text.format_map(safesub(sys._getframe(1).f_locals))

現(xiàn)在你可以像下面這樣寫了:

>>> name = ’Guido’>>> n = 37>>> print(sub(’Hello {name}’))Hello Guido>>> print(sub(’You have {n} messages.’))You have 37 messages.>>> print(sub(’Your favorite color is {color}’))Your favorite color is {color}>>>

討論

多年以來由于Python缺乏對變量替換的內(nèi)置支持而導(dǎo)致了各種不同的解決方案。 作為本節(jié)中展示的一個(gè)可能的解決方案,你可以有時(shí)候會(huì)看到像下面這樣的字符串格式化代碼:

>>> name = ’Guido’>>> n = 37>>> ’%(name) has %(n) messages.’ % vars()’Guido has 37 messages.’>>>

你可能還會(huì)看到字符串模板的使用:

>>> import string>>> s = string.Template(’$name has $n messages.’)>>> s.substitute(vars())’Guido has 37 messages.’>>>

然而, format() 和 format_map() 相比較上面這些方案而已更加先進(jìn),因此應(yīng)該被優(yōu)先選擇。 使用 format() 方法還有一個(gè)好處就是你可以獲得對字符串格式化的所有支持(對齊,填充,數(shù)字格式化等待), 而這些特性是使用像模板字符串之類的方案不可能獲得的。

本機(jī)還部分介紹了一些高級特性。映射或者字典類中鮮為人知的 __missing__() 方法可以讓你定義如何處理缺失的值。 在 SafeSub 類中,這個(gè)方法被定義為對缺失的值返回一個(gè)占位符。 你可以發(fā)現(xiàn)缺失的值會(huì)出現(xiàn)在結(jié)果字符串中(在調(diào)試的時(shí)候可能很有用),而不是產(chǎn)生一個(gè) KeyError 異常。

sub() 函數(shù)使用 sys._getframe(1) 返回調(diào)用者的棧幀。可以從中訪問屬性 f_locals 來獲得局部變量。 毫無疑問絕大部分情況下在代碼中去直接操作棧幀應(yīng)該是不推薦的。 但是,對于像字符串替換工具函數(shù)而言它是非常有用的。 另外,值得注意的是 f_locals 是一個(gè)復(fù)制調(diào)用函數(shù)的本地變量的字典。 盡管你可以改變 f_locals 的內(nèi)容,但是這個(gè)修改對于后面的變量訪問沒有任何影響。 所以,雖說訪問一個(gè)棧幀看上去很邪惡,但是對它的任何操作不會(huì)覆蓋和改變調(diào)用者本地變量的值。

以上就是Python 如何在字符串中插入變量的詳細(xì)內(nèi)容,更多關(guān)于Python 字符串中插入變量的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91亚洲精品在看在线观看高清| 98精品视频| 在线日韩成人| 婷婷亚洲综合| 影音先锋国产精品| 亚洲欧美日韩国产综合精品二区| 国产精品视区| 亚洲九九精品| 日本精品久久| 捆绑调教美女网站视频一区| 精品一区二区三区中文字幕在线| 电影91久久久| 成人日韩在线观看| 伊人久久亚洲影院| 亚洲aa在线| 国产精品1区在线| 成人影视亚洲图片在线| 久久影视一区| 先锋亚洲精品| 久久国产乱子精品免费女| 老鸭窝一区二区久久精品| 国产白浆在线免费观看| 欧美影院三区| 亚洲制服一区| 欧美国产极品| 久久裸体视频| 蜜臀精品久久久久久蜜臀 | 国产精品毛片久久久| 精品中国亚洲| 成人羞羞在线观看网站| 国产综合亚洲精品一区二| 麻豆亚洲精品| 国产精品色婷婷在线观看| 蜜桃av在线播放| 免播放器亚洲一区| 精品三级在线| 日韩视频在线一区二区三区| 久久精品99久久久| 婷婷激情一区| 日韩精品免费观看视频| 国产精品久久久久久久久妇女| 免费久久精品| 国产欧美三级| 亚洲一级高清| 久久国产欧美日韩精品| 日韩精品麻豆| 欧美在线91| 亚洲不卡系列| 91欧美极品| 1024精品一区二区三区| 91福利精品在线观看| 丝袜av一区| 日本少妇一区二区| 欧美成人基地 | 亚洲色图国产| 久久久久久网| 婷婷成人av| 日本高清不卡一区二区三区视频| 免费久久精品视频| 久久毛片亚洲| 欧美欧美黄在线二区| 午夜日韩av| 精品国产午夜肉伦伦影院 | 91久久久精品国产| 你懂的国产精品永久在线| 日韩亚洲国产欧美| 韩国女主播一区二区三区| 亚洲激情五月| 国产一区二区三区四区五区 | 黄色av一区| 麻豆视频久久| 日韩影院免费视频| 色欧美自拍视频| 欧美一级网址| 激情91久久| 97人人精品| 欧美日韩中文| 蜜臀va亚洲va欧美va天堂| 国产麻豆久久| 精品午夜视频| 日本国产欧美| 久久精品国产99久久| 欧美国产中文高清| 综合色一区二区| 99精品在线| 国产一区二区三区久久久久久久久| 日韩有吗在线观看| 欧美天堂亚洲电影院在线观看| 精品日韩一区| 国产精品永久| 日韩高清欧美激情| 午夜在线播放视频欧美| 久久国产成人午夜av影院宅| 国产一区福利| 国产精品久久久久77777丨| 亚洲精品少妇| 另类亚洲自拍| 欧美精选一区二区三区| 精精国产xxxx视频在线野外| 国产精品精品| 日本一区二区高清不卡| 国产精品地址| 欧美日韩一区二区国产 | 久久精品99国产精品日本| 久久亚洲图片| 午夜视频精品| 欧美日韩视频| 亚洲激情偷拍| 在线 亚洲欧美在线综合一区| 91综合视频| 福利一区二区免费视频| 老司机精品在线| 国产精品igao视频网网址不卡日韩| 日本特黄久久久高潮| 亚洲a级精品| 亚洲人成高清| 一区二区三区网站| 免费人成黄页网站在线一区二区 | 91成人小视频| 91成人在线| 国产日韩欧美一区| 久久国产精品免费精品3p| 综合干狼人综合首页| 最新国产精品| 日韩国产在线一| 欧美欧美黄在线二区| 国产精品乱战久久久| 久久久久亚洲精品中文字幕| 欧美激情三区| 精品久久久久中文字幕小说| 精品一区二区男人吃奶| 国产aa精品| 日韩啪啪电影网| 亚洲不卡av不卡一区二区| 麻豆成全视频免费观看在线看| 天堂中文av在线资源库| 成人羞羞视频播放网站| 亚洲性色av| 99精品99| 日韩精品五月天| 欧美精品aa| 日本а中文在线天堂| 久久中文字幕二区| 亚洲一区二区动漫| 日韩中文字幕在线一区| 国产精品午夜av| 国产盗摄——sm在线视频| 日本韩国欧美超级黄在线观看| 国产伊人精品| 午夜在线精品偷拍| 日本一区二区三区中文字幕| 国产日韩欧美高清免费| 国产高清亚洲| 91精品韩国| 视频一区欧美日韩| 欧美日一区二区三区在线观看国产免| 久久尤物视频| 99久久亚洲精品蜜臀| 美女日韩在线中文字幕| 青草国产精品久久久久久| 精品国产午夜| 亚洲无线一线二线三线区别av| 国产亚洲精品v| 欧美中文高清| 国产成人免费视频网站视频社区| 不卡在线一区二区| 欧美一区不卡| 日韩欧美精品| 中文字幕乱码亚洲无线精品一区| 久久精品免视看国产成人| 亚洲国产专区| 国产另类在线| 91精品精品| 日韩专区视频网站| 成人国产精品久久| 巨乳诱惑日韩免费av| 欧美精品91| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品一区二区三区四区在线观看 | 在线观看免费一区二区| 奇米777国产一区国产二区| 亚洲va中文在线播放免费| 在线精品观看| 福利片在线一区二区| 日韩专区欧美专区| 国产精品中文字幕制服诱惑| 激情久久久久久| 国产精品久久久久9999高清| 五月天久久久| 国产精品一区亚洲| 夜夜嗨一区二区| 久久久精品国产**网站| 中文日韩欧美| 国模大尺度视频一区二区| 天使萌一区二区三区免费观看| 美女在线视频一区| 日韩专区一卡二卡| 久久久久欧美精品| 青青草国产成人99久久| 香蕉人人精品|