最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

跟老齊學Python之從格式化表達式到方法

 更新時間:2014年09月28日 16:14:26   投稿:hebedich  
上一講,主要介紹了用%表達的一種輸出格式化表達式。在那一講最后又拓展了一點東西,拓展的那點,名曰:格式化方法。因為它知識上是使用了str的format方法。

現(xiàn)在我們就格式化方法做一個詳細一點的交代。

基本的操作

所謂格式化方法,就是可以先建立一個輸出字符串的模板,然后用format來填充模板的內(nèi)容。

復制代碼 代碼如下:

>>> #先做一個字符串模板
>>> template = "My name is {0}. My website is {1}. I am writing {2}."

>>> #用format依次對應(yīng)模板中的序號內(nèi)容
>>> template.format("qiwsir","qiwsir.github.io","python")
'My name is qiwsir. My website is qiwsir.github.io. I am writing python.'

當然,上面的操作如果你要這樣做,也是可以的:

復制代碼 代碼如下:

>>> "My name is {0}. My website is {1}. I am writing {2}.".format("qiwsir","qiwsir.github.io","python")
'My name is qiwsir. My website is qiwsir.github.io. I am writing python.'

這些,跟用%寫的表達式?jīng)]有什么太大的區(qū)別。不過看官別著急,一般小孩子都區(qū)別不到,長大了才有區(qū)別的。慢慢看,慢慢實驗。

除了可以按照對應(yīng)順序(類似占位符了)填充模板中的位置之外,還能這樣,用關(guān)鍵字來指明所應(yīng)該田中的內(nèi)容。

復制代碼 代碼如下:

>>> template = "My name is {name}. My website is {site}"
>>> template.format(site='qiwsir.github.io', name='qiwsir')
'My name is qiwsir. My website is qiwsir.github.io'

關(guān)鍵詞所指定的內(nèi)容,也不一定非是str,其它的數(shù)據(jù)類型也可以。此外,關(guān)鍵詞和前面的位置編號,還可以混用。比如:

復制代碼 代碼如下:

>>> "{number} is in {all}. {0} are my number.".format("seven",number=7,all=[1,2,3,4,5,6,7,8,9,0])
'7 is in [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]. seven are my number.'

是不是開始感覺有點意思了?看輸出結(jié)果,就知道,經(jīng)過format方法得到是一個新的str。

序列對象的偏移量

有這樣一個要求:在輸出中,顯示出一個單詞的第一個字母和第三個個字母。比如單詞python,要告訴看官,第一字母是p,第三個字母是t。

這個問題并不難。實現(xiàn)方法也不少,這里主要是要展示一下偏移量在format中的應(yīng)用。

復制代碼 代碼如下:

>>> template = "First={0[0]}, Third={0[2]}"
>>> template.format(word)
'First=p, Third=t'

list也是序列類型的,其偏移量也可。

復制代碼 代碼如下:

>>> word_lst = list(word)
>>> word_lst
['p', 'y', 't', 'h', 'o', 'n']
>>> template
'First={0[0]}, Third={0[2]}'
>>> template.format(word_lst)
'First=p, Third=t'

對上面的綜合一下,稍微啰嗦一點的實驗:

復制代碼 代碼如下:

>>> template = "The word is {0}, Its first is {0[0]}. Another word is {1}, Its second is {1[1]}."
>>> template.format("python","learn")
'The word is python, Its first is p. Another word is learn, Its second is e.'

>>> "{name}\'s first is {name[0]}".format(name="qiwsir")    #指定關(guān)鍵詞的值的偏移量
"qiwsir's first is q"

值得注意的是,偏移量在序列類型的數(shù)據(jù)中,因為可以是負數(shù),即能夠從右邊開始計數(shù)。

復制代碼 代碼如下:

>>> word
'python'
>>> word[-1]
'n'
>>> word[-2]
'o'

但是,在模板中,無法使用負數(shù)的偏移量。

復制代碼 代碼如下:

>>> "First={0[0]}, End={0[-1]}".format(word) #報錯
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: string indices must be integers, not str

>>> "First={0[0]}, End={0[5]}".format(word)  #把-1改為5就可以了。
'First=p, End=n'

當然,放到模板外面是完全可行的。這樣就好了:

復制代碼 代碼如下:

>>> "First={0}, End={1}".format(word[0],word[-1])
'First=p, End=n'

dictionary的鍵

直接上實驗,先觀察,再得結(jié)論

復制代碼 代碼如下:

>>> myinfo
{'website': 'qiwsir.github.io', 'name': 'qiwsir', 'room': 703}
>>> template = "I am {0[name]}"
>>> template.format(myinfo)
'I am qiwsir'
>>> template = "I am {0[name]}. My QQ is {qq}"
>>> template.format(myinfo,qq="26066913")
'I am qiwsir. My QQ is 26066913'

位置后面跟鍵,就能得到format的參數(shù)中字典的鍵對應(yīng)的值。太羅嗦了吧,看例子就明白了。出了根據(jù)位置得到,還能夠根據(jù)關(guān)鍵詞得到:

復制代碼 代碼如下:

>>> myinfo
{'website': 'qiwsir.github.io', 'name': 'qiwsir', 'room': 703}
>>> "my website is {info[website]}, and I like {0}".format("python",info=myinfo)    #關(guān)鍵詞info引用的是一個字典
'my website is qiwsir.github.io, and I like python'

模板中添加屬性

看標題不懂在說什么。那就看實驗吧。

復制代碼 代碼如下:

>>> import math
>>> "PI is {PI.pi}".format(PI=math)
'PI is 3.14159265359'

這是用關(guān)鍵詞,下面換個稍微復雜點,用位置的。

復制代碼 代碼如下:

>>> import sys,math
>>> 'PI is {0.pi}. My lptop runs {1.platform}'.format(math,sys)
'PI is 3.14159265359. My lptop runs linux2'

看官理解了吧。

其它進制

在這個世界上的數(shù)學領(lǐng)域,除了有我們常常用到的十進制、十二進制(幾點了,這是你我常用到的,鐘表面就是12進制)、六十進制(這個你也熟悉的)外,還有別的進制,比如二進制、八進制、十六進制等等。此處不談進制問題,有興趣詳細了解,請各自google。不過,進制的確在計算機上很重要的。因為機器在最底層是用二進制的。

這里只是說明一下輸出時候的進制問題。

>>> "{0:X}, {1:o}, {2:b}".format(255,255,255)
'FF, 377, 11111111'
X:十六進制,Hex
o:八進制,octal
b:二進制,binary
順便補充,對于數(shù)的格式化方法輸出和格式化表達式一樣,就不贅述了。

在格式化方法中,還能夠指定字符寬度,左右對齊等簡單排版格式,不過,在我的經(jīng)驗中,這些似乎用的不怎么多。如果看官需要,可以google或者到官方文檔看看即可。

關(guān)于格式化表達式和格式化方法,有的人進行了不少比較,有的人說用這個,有的人傾向用那個。我的建議是,你用哪個順手就用哪個。切忌門派之見呀。不過,有人傳說格式化表達式可能在將來某個版本中廢除。那是將來的事情,將來再說好了。現(xiàn)在,你就撿著順手的用吧。

相關(guān)文章

  • python讀取ini配置文件過程示范

    python讀取ini配置文件過程示范

    這篇文章主要介紹了python讀取ini配置文件過程示范,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • python實現(xiàn)手機通訊錄搜索功能

    python實現(xiàn)手機通訊錄搜索功能

    這篇文章主要介紹了python模仿手機通訊錄搜索功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python實現(xiàn)對比不同字體中的同一字符的顯示效果

    Python實現(xiàn)對比不同字體中的同一字符的顯示效果

    這篇文章主要介紹了Python實現(xiàn)對比不同字體中的同一字符的顯示效果,也就是對比不同字體中某個字的顯示效果,這在做設(shè)計時非常有用,需要的朋友可以參考下
    2015-04-04
  • 詳解Python OpenCV圖像分割算法的實現(xiàn)

    詳解Python OpenCV圖像分割算法的實現(xiàn)

    圖像分割是指根據(jù)灰度、色彩、空間紋理、幾何形狀等特征把圖像劃分成若干個互不相交的區(qū)域。本文就來和大家聊聊OpenCV的圖像分割算法及基于輪廓的字符分離,感興趣的可以了解一下
    2022-08-08
  • 圖像檢索之基于vlfeat實現(xiàn)SIFT特征

    圖像檢索之基于vlfeat實現(xiàn)SIFT特征

    SIFT特征的講解已經(jīng)很多了,本文就借助vlfeat對SIFT特征的提取過程做一個總結(jié)。接下來通過本文給大家介紹圖像檢索之基于vlfeat實現(xiàn)SIFT,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • Python自動化辦公之合并多個Excel

    Python自動化辦公之合并多個Excel

    在日常的辦公自動化工作中,尤其是處理大量數(shù)據(jù)時,合并多個?Excel?表格是一個常見且繁瑣的任務(wù),下面小編就來為大家介紹一下如何使用Python輕松實現(xiàn)合并多個Excel吧
    2025-02-02
  • Linux下python3.6.1環(huán)境配置教程

    Linux下python3.6.1環(huán)境配置教程

    這篇文章主要為大家詳細介紹了Linux下python3.6.1環(huán)境配置教程 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • pandas.DataFrame 根據(jù)條件新建列并賦值的方法

    pandas.DataFrame 根據(jù)條件新建列并賦值的方法

    下面小編就為大家分享一篇pandas.DataFrame 根據(jù)條件新建列并賦值的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python超簡單容易上手的畫圖工具庫(適合新手)

    Python超簡單容易上手的畫圖工具庫(適合新手)

    這篇文章主要給大家介紹了關(guān)于Python超簡單容易上手的畫圖工具庫的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Python使用random和tertools模塊解一些經(jīng)典概率問題

    Python使用random和tertools模塊解一些經(jīng)典概率問題

    這篇文章主要介紹了Python使用random和tertools模塊解一些經(jīng)典概率問題,本文講解了使用random和tertools模塊解羊車門問題、撲克牌問題、生日悖論等經(jīng)典概率問題,需要的朋友可以參考下
    2015-01-01

最新評論

桦南县| 襄垣县| 贡觉县| 邯郸县| 武乡县| 富平县| 景泰县| 会理县| 安岳县| 无为县| 新昌县| 稷山县| 连江县| 黔东| 原阳县| 峨山| 淮滨县| 左贡县| 上高县| 望谟县| 荃湾区| 陈巴尔虎旗| 多伦县| 慈溪市| 福安市| 松阳县| 鄂托克旗| 方正县| 肇源县| 托克逊县| 德清县| 兴业县| 东莞市| 东港市| 林周县| 永吉县| 通道| 木兰县| 搜索| 滕州市| 贵港市|