零基礎學python 從格式化表示式到方法

2021-06-28 01:19:12 字數 3742 閱讀 8672

上一講,主要介紹了用%表達的一種輸出格式化表示式。在那一講最後又拓展了一點東西,拓展的那點,名曰:格式化方法。因為它知識上是使用了str的format方法。

現在我們就格式化方法做乙個詳細一點的交代。

所謂格式化方法,就是可以先建立乙個輸出字串的模板,然後用format來填充模板的內容。

>>> #先做乙個字串模板

>>> template = "my name is . my website is . i am writing ."

>>> #用format依次對應模板中的序號內容

>>> template.format("qiwsir","qiwsir.github.io","python")

'my name is qiwsir. my website is qiwsir.github.io. i am writing python.'

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

>>> "my name is . my website is . i am writing .".format("qiwsir","qiwsir.github.io","python")

'my name is qiwsir. my website is qiwsir.github.io. i am writing python.'

這些,跟用%寫的表示式沒有什麼太大的區別。不過看官別著急,一般小孩子都區別不到,長大了才有區別的。慢慢看,慢慢實驗。

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

>>> template = "my name is . my website is "

>>> template.format(site='qiwsir.github.io', name='qiwsir')

'my name is qiwsir. my website is qiwsir.github.io'

>>> " is in .  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.'

是不是開始感覺有點意思了?看輸出結果,就知道,經過format方法得到是乙個新的str。

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

這個問題並不難。實現方法也不少,這裡主要是要展示一下偏移量在format中的應用。

>>> template = "first=, third="

>>> template.format(word)

'first=p, third=t'

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

>>> word_lst = list(word)

>>> word_lst

['p', 'y', 't', 'h', 'o', 'n']

>>> template

'first=, third='

>>> template.format(word_lst)

'first=p, third=t'

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

>>> template = "the word is , its first is . another word is , its second is ."

>>> template.format("python","learn")

'the word is python, its first is p. another word is learn, its second is e.'

"qiwsir's first is q"

值得注意的是,偏移量在序列型別的資料中,因為可以是負數,即能夠從右邊開始計數。

>>> word

'python'

>>> word[-1]

'n'>>> word[-2]

'o'

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

>>> "first=, end=".format(word) #報錯

traceback (most recent call last):

file "", line 1, in typeerror: string indices must be integers, not str

>>> "first=, end=".format(word) #把-1改為5就可以了。

'first=p, end=n'

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

>>> "first=, end=".format(word[0],word[-1])

'first=p, end=n'

直接上實驗,先觀察,再得結論

>>> myinfo

>>> template = "i am "

>>> template.format(myinfo)

'i am qiwsir'

>>> template = "i am . my qq is "

>>> template.format(myinfo,qq="26066913")

'i am qiwsir. my qq is 26066913'

>>> myinfo

'my website is qiwsir.github.io, and i like python'

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

>>> import math

>>> "pi is ".format(pi=math)

'pi is 3.14159265359'

>>> import sys,math

>>> 'pi is . my lptop runs '.format(math,sys)

'pi is 3.14159265359. my lptop runs linux2'

看官理解了吧。

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

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

>>> ", , ".format(255,255,255)

'ff, 377, 11111111'

順便補充,對於數的格式化方法輸出和格式化表示式一樣,就不贅述了。

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

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

零基礎學Python

零基礎學python 1 1 python是一門指令碼語言 2 python的優勢 1 語法和結構比較簡單,易入門 2 能夠跨平台使用 3 應用範圍廣,設計到作業系統 3d動畫 web 雲計算,企業應用等多方面。3 idle 是乙個python shell,類似於windows的cmd視窗 4 pr...

怎樣從零基礎學黑客

可以說想學黑客技術,要求你首先是乙個 t 字型人才,也就是說電腦的所有領域你都能做的來,而且有一項是精通的。因此作為乙個零基礎的黑客愛好者來說,沒有良好的基礎是絕對不行的,下面我就針對想真正學習黑客的零基礎朋友製作乙個學習方案,注意!我是指 真正想學黑客技術 的朋友,如果你只是想玩玩,花一上午時間學...

零基礎學python 一

每次學習語言總是要了解其背景python也不例外。首先python的創始人為 guido van rossum 1989年聖誕節期間,在 阿姆斯特丹 guido為了打發聖誕節的無趣,決心開發乙個新的指令碼 解釋程式 做為abc 語言的一種繼承。看看人家外鬼子程式設計師 哎不得不佩服。他在業餘時間開發...