1. python禪文言文
褒禪山亦謂之華山,唐浮圖慧褒始舍於其址,而卒葬之;以故其後名之曰「褒禪」。今所謂慧空禪院者,褒之廬冢也。距其院東五里,所謂華陽洞者,以其乃華山之陽名之也。距洞百餘步,有碑仆道,其文漫滅,獨其為文猶可識曰「花山」。今言「華」如「華實」之「華」者,蓋音謬也。
<;褒禪山也稱為華山。唐代和尚慧褒當初在這里築室居住,死後又葬在那裡;因為這個緣故,後人就稱此山為褒禪山。現在人們所說的慧空禪院,就是慧褒和尚的墓舍。距離那禪院東邊五里,是人們所說的華陽洞,因為它在華山南面而這樣命名。距離山洞一百多步,有一座石碑倒在路旁,上面的文字已被剝蝕、損壞近乎磨滅,碑上只有那字還認得出來,即「花山」。現在將「花」讀為「華實」的「華」,大概是(因字同而產生的)讀音上的錯誤。 >
其下平曠,有泉側出,而記游者甚眾,——所謂前洞也。由山以上五六里,有穴窈然,入之甚寒,問其深,則其雖好游者不能窮也,——謂之後洞。余與四人擁火以入,入之愈深,其進愈難,而其見愈奇。有怠而欲出者,曰:「不出,火且盡」;遂與之俱出。蓋余所至,比好游者尚不能十一,然視其左右,來而記之者已信岩少。蓋其又深,則其至又加少矣。方是時,予之力尚足以入,火尚足以明也。既其出,則或咎其欲出者,而余亦悔其隨之,而不得極夫游之樂也。
<;由此向下的那個山洞平坦而空闊,有一股山泉從旁邊湧出,在這里游覽、題記的人很多,(這就)叫做「前洞」。經由山路向上五六里,有個洞穴,一派幽深的樣子,進去便(感到)寒氣逼人,打問它的深度,就是那些喜歡游險的人也未能走到盡頭——這是人們所說的「後洞」。我與四個人打著火把走進去,進去越深,前進越困難,而所見到的景象越奇妙。有個懶於前進而想退出的夥伴說:「再不出去,火把就要熄滅了。」於是,只好都跟他退出來。我們走進去的深度,比起那些喜歡游險的人來,大概還不足十分之一,然而看看左右的石壁,來此而題記的人已經很少了。洞內更深的地方,大概來到的遊人就更少了。當(決定從洞內退出)時,我的體力還足夠前進,火把還足夠用來照明。我們出洞以後,就有人埋怨那主張退出的人,而我也後悔自己跟他出來,未能盡情享受游山的樂趣。>
於是余有嘆焉:古人之觀於天地、山川、草木、蟲魚、鳥獸,往往有得,以其求思之深,而無不在也。夫夷以近,則游者眾;險以遠,則至者少。而世之奇偉、瑰怪、非常之觀,常在於險遠,而人之所罕至焉,故非有志者不能至也。有志矣,不隨以止也,然力不足者亦不能至也。有志與力,而又不隨以怠,至於幽暗昏惑而無物以相之,亦不能至也。然力足以至焉而不至,於人為可譏,而在己為有悔;盡吾志也,而不能至者,可以無悔矣,其孰能譏之乎?此余之所得也!
<;對於這件事我有所感慨。古人觀察天地、山川、草木、蟲魚、鳥獸,往往有所得益,是因為他們探究、思考深邃而且廣泛,沒有不探究、思考到的。那(路)平坦而又近的地方,前來游覽的人便多;(路)不平坦而又遠的地方,前來游覽的人便少。但是世上奇妙雄偉、珍貴奇特、非同尋常的景觀,常常在那險阻、僻遠,少有人至的地方,所以沒有意志的人是不能到達的。(雖然)有了意志,也不隨從別人而停止(不前),然而力量不足的,也不能到達。有了意志與力量,也不盲從別人而有所懈怠滑迅御,到了那幽深昏暗、令人迷亂的地方沒有外物來幫助他,也不能到達。但是力量足以達到目的(而未能達到),在別人(看來)是可以譏笑的,在自己來說也是有所悔恨的;盡了自己的努力而未能達到,便可以無所悔恨,難道誰還能譏笑他嗎?這就是我(這次游山)的收獲。 >
余與仆碑,又以悲夫古書之不存,後世之謬其傳而莫能名者,何可勝道也哉!此所以學者不可以不深思而慎取之也。
<;我對於那座倒地的石碑,又由此感嘆古代刻寫的文獻未能存留,後世訛傳而無人弄清其真相的情況昌賀,哪能說得完呢?這就是求學的人不可不深入思考而要謹慎採取的緣故。 >
四人者:廬陵蕭君圭君玉,長樂王回深父,余弟安國平父、安上純父。至和元年七月某日,臨川王某記。
<;同游的四個人是:廬陵人蕭君圭,字君玉;長樂人王回,字深父(fǔ);我的弟弟安國,字平父(fǔ);安上,字純父(fǔ)>
廬山黃石岩禪院記【劉軻】原文
古老有言曰:太極之氣,積而為山嶽,泄而為川瀆。然則匡阜之氣,其大矣乎!庚辰歲,山客劉軻,採拾怪異,自麓至頂,卻下半里餘,次於黃石岩。岩中有棲禪子,不知其幾許臘,而瑰行峻節,人事難能。仆高其人,而信宿忘返。賾其輕重,頗見其宅心之地,乃問其住年。但手指松桂雲:「初毫我植,今環人臂。烏飛兔走,吾復何齒。矧卯戌之昏旦,霜炎之凍炙,生落之榮悴,去留之沿泝,雖雲雲自彼,而於我蔑如也。」於戲!向非岩房峭絕,僧行孤峙,則人境兩失,固其宜也,復何言哉!觀夫煙雲生於履舄,嵐靄出於襟袖,群形浩擾,並入眸子,每至煙雨初霽,山光澄練,泠泠仙語,如在耳右。況又聳凌兢,上冥冥,焉知不能與洪崖接袂,浮邱連駕,盈縮造化,吐納顥氣,絕慚容於厚面,遠喧卑之腥穢乎!不得而然者,蓋鉤也,餌也。名為利鉤,利為名餌。吞鉤食餌,手足羈鎖。彼焉得跳躍於此乎?夫禪子脫去桎梏,四支宣展,動與雲無心,靜將石何機,物我一致,端邪徑塞。仆所謂非斯人不能住斯境也。禪師宜春人,俗姓劉,名常進。時人以師久住,遂以其姓易其岩名雲。
廬山黃石岩禪院記【劉軻】譯文:
故老相傳:「太極之氣,沉積下來就形成山嶽,流泄開來就形成河流。」這樣說來,那形成廬山的太初氣息,真是博大啊!貞元庚辰(公元800)年,游山客劉軻,尋訪探求奇特非凡的景緻,從山腳一直登上山頂,又退回山頂下半里多,住宿在黃石岩。黃石岩中住著一位禪師,不知道他的年紀,但他德行氣節遠超凡俗,人們行事都難以如此。我很贊嘆這個人,就連住兩晚,都不想走了。探求他心裡所看重、所輕視的(事物),很能體現他的心懷志趣;於是(我)問他在這里住了多久。他只是手指著松桂說:「早先我種下小樹,如今已長到要一人環抱了。鳥飛兔跑,我還要說什麼年紀呢。況且歷經那麼晨昏更替、寒暑交凌、生死枯榮、去留往來,即使(這一切)紛紛紜紜,此來彼往,卻又與我有什麼影響呢?」啊!若不是這岩房陡峭至極,僧人只能孤單苦守,那便是這禪師已經到了物我兩忘的境界,本來就該是如此啊,我還需要說什麼話!看那煙雲生於腳下,嵐靄出自袖間,群山連綿,齊入眼中;每到山間煙雨初晴,山光澄澈,山林之聲便如仙音悠悠,縈繞耳邊。
禪師脫去了世間束縛,身心舒展自由,所動所行和雲了無牽絆(卻一樣自然),所停所安又和磐石有什麼聯系呢。
樓主貼的那段代碼好像是我寫的那段吧,我來告訴你如何寫出來的吧
首先我不是高手,我也沒有人教,我的編程都是自學的,我只是一個業余愛好者.
寫出這樣的代碼很簡單,就是要多練,我只是把python的基本語法學會,然後就不停地練習,我沒有看過樓上的那些資料,我只是不停地碼代碼,或許有捷徑,但是我沒有發現.
我從07年開始寫python的腳本,我一開始的代碼風格也很差,特別是我先學c++,然後再轉python的,當寫的代碼越來越多,對python的了解就會加深,代碼風格也會自動改變的,不需要著急,其實這就是對一門語言的了解程度,你可以看看我回答的問題,我的回答就是我對python的理解,如果你能堅持下來,相信7年後你寫的代碼會比我寫得更好.
樓上的題目有點意思,我也寫一下,不知道對否
s='''
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than plex.
Complex is better than plicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
'''
import re ,collections
tail_map = { "'s" : ' is', "'re" : ' are', "n't": ' not' }
data = collections.Counter( re.findall( 'w+' ,re.sub( "('s|'re|n't)" ,lambda matchobj : tail_map[ matchobj.group( ) ] ,s.lower( ) ) ) )
max_len = max( data.values( ) )
print( 'Total word count : %d' ,sum( data.values( ) ) )
for word in sorted( data ):
print ( '%*s => %d' % ( max_len, word, data[ word ] ) )
(一)判斷句
①今所謂慧空禪院者,褒之廬冢也。(……者,……也:「者」錶停頓語氣,「也」表判斷語氣)
②所謂華山洞者,以其乃華山之陽名之也。(……者,……也)
③今言「華」如「華實」之「華」者,蓋音謬也。(……者,……也)
④此所以學者不可以不深思而慎取之也(因果判斷句,「此」是主語,「所以」相當於現代漢語的「……的原因」,「也」語氣助詞,表判斷)
⑤此余之所得也(此……也)
(二)倒裝句
1.狀語後置句
①古人之觀於天地、山川、蟲魚、鳥獸,往往有得。
②唐浮圖慧褒始舍於其址
2.定語後置
①有穴窈然。
(三)省略句
①有志矣,不隨(之)以止也(省賓語)
②有志與力,而又不隨(之)以怠。(省賓語)
③余於仆碑,又以(之)悲夫古書之不存。(省賓語)
④有碑仆(於)道(省介詞)
六、文言固定句式
1.其孰能譏之乎?(難道……嗎?)2.何可勝道也哉! (哪裡……呢!)
3.此所以學者不可以不深思而慎取之也。(這就是……的緣故。)
希望可以幫到你~~~~
望採納。
禪無字,道無言,家無礙,友無偽,來無執,去無悔;未老得閑,未富得樂,為求得應,為某得成 英文翻譯:Words fail to convey the meaning of Zen and the Way. Family is harmonious and friends are friends indeed. Be a man of non-attachment and non-regret. Be leisure before you are old, and be happy ignoring money. Get Whatever you ask for and achieve whatever you pursuit. 漢語翻譯: 禪與道都是無法言說的。
願你家庭和諧,朋友真誠,不執著不後悔,懂悠閑,惜福樂,所求皆得,所望皆成。
王安石的游記散文喜歡用酣暢的筆墨進行大量的議論,記游只是個引子,說理是全文的中心.這篇文章寫的是一次未能盡興的游覽,作者深感後悔和遺憾.一般說來,這樣的游覽並沒有多少值得可寫的東西,可是作者卻據此得出兩點深刻的啟示:一是神奇雄偉、美麗壯觀的景色常在艱險遙遠的地方,必須不避艱險,堅持不懈,「盡吾志」以赴之,才能於己無悔,不為人譏.這里雖然說的游山,實際是以游山作比喻,說明不論研求高深的學問,還是創建宏偉的事業,都必須用百折不撓的精神,去完成自己的意願.二是由於古代文獻的失散,後代以訛傳訛,求學的人們對於學問必須深刻思考,慎重取捨.這兩點啟示裡麵包含著進取的精神和科學的態度,在我們的學習、工作中,甚至在整個人生的各方面都值得提倡.這篇文章在寫法上最大的特點是記事和議論結合得非常自然、緊密,毫無牽強附會的痕跡.記游部分簡單概括,議論部分深沉凝重.前後呼應,結構十分嚴謹.第一段,作者從「仆碑」上辨明「華山」讀音錯誤,用獨到的眼光考察、追究事理的本源,為後文議論設下伏筆.到第四段,扣住「仆碑」,借物言志,闡示出做學問必須「深思而慎取」的道理.第二段,敘述游覽後洞的經過,先把讀者引入「後洞」的境界中,給以「入之愈深,其進愈難,而其見愈奇」的實地感受,末句以「余亦悔其隨之而不得極夫游之樂也」與第三段開頭一句「於是余有嘆焉」聯系,由實入虛引發道理,讓議論循著記游的軌跡層層推進,因事見理,使人逐步領悟出這樣的道理:無論幹事業還是求學問,都必須不畏「險遠」,矢志不渝,才能有所收獲.文章不只是段與段呼應,句子與句子也聯貫照應,像「夫夷以近,則游者甚眾」和「其下平曠……記游者甚眾」;「險以遠,則至者少」和「有穴窈然,入之甚寒,問其深,則好游者不能窮」等一類相互照應的句子,比比皆是.情理互見,議論敘事融為一體.此外,這篇600來字的短文中,用了20個其」字,讀起來節奏鮮明,踔厲風發,一點也沒有雜沓繁復之感,也是一個特點.這20個「其」字和歐陽修《醉翁亭記》中的20個「也」字,有異曲同工之妙.不過,作者在行文中也有疏忽之處,如「其文漫滅,獨其為文猶可識」,寫得頗為纏夾,既然「漫滅」,為什麼「其為文猶可識」呢?「其為文」三字也頗費解.這些都是小疵,我們無須過多的追究.。
2. 用python編寫程序5.新建一個文本文件zen.txt, 文件內容為「Python之禪」的部分內容,具體如下
strList=[]
line=0
f=open("zen.txt","r")
forvinf.readlines():
arr=v.split()
strList.extend(arr)
line+=1
f.close()
print('行數:',line)
print('單詞:',len(strList))
#行數:4
#單詞:20
3. 如下代碼中違反了哪項編碼規范
如下代喚察碼中違反了第四項編碼規范,代碼中是違反了第四項他的一個編碼規定的他的一個編碼規范的這一個第四項的話,他們內容是指的是不能夠在不開機的時候就對他稿薯的一個電腦進鍵鏈者行一個隨便的一個鍵盤的一個按鍵。
4. 為什麼python有兩個不同的版本,並且語法規
Python 2 和 Python 3,一直是一個話題。Brett Cannon 是 Python 的核心開發者,聽聽他關於 Python3 的看法。
本月我在 Puppy 上開展了一個問答活動(Puget Sound Python用戶組),讓我最終解釋了為什麼 Python 3 會出現以及整個的 string/bytes 處理機制。我因此受到贊揚這讓我很驚訝,因為原本我天真的認為大家都清楚為什麼 Python 3 會出現。回想起來我真是太傻,竟然認為大部分人(不管是剛接觸 Python 或者已經有一段時間)應該要麼已經被告知要麼有好奇心驅使去搜尋獲取一個解釋。所以這篇博文打算簡單的解釋一下為什麼 Python 3 會存在,特別是我們為什麼選擇打破整個向後兼容 unicode/str/bytes,因為這使得代碼移植到 Python 3 非常棘手。
在 Python 2 中文本和二進制數據是一個爛攤子
快,下面的文字代表什麼語義?
Python
1
'abcd'
如果你是 Python 3 的用戶,你會說它是一個按照 「a」、」b」、」c」、」d」順序包含四個字母的字元串。
如果你是 Python 2 的用戶,你也會說同樣的話。你同樣也可能會說它是代表 97、98、99、100 的數組。事實上在 Python 2中對於 str 代表的含義有兩種正確的回答,這改變了語言的初衷。所以在 Python 3 中答案是唯一的。
《Python之禪》里講「應該有一個「應該有一個––最好只有一個顯而易見的方式去實現」。文字既能代表文本數據又能代表二進制數據這很麻煩。一旦對象 脫離你的控制,你將無從知曉。比如,如果你從網路上讀到一些東西,你得小心判別這個 str 是代表二進制數據還是文本數據。或者你的代碼里有一個bug,它是用來將 str 變換成文本信息––或者完全別的東西––但你搞砸了,不小心跳過了這一步。由於 str 潛在的代表兩種類型,此類錯誤發生的時候,我們很難意識到。
也許你會說這些問題在 Python 2 中完全可以解決,只要你用 Unicode 而不是 str 去代表文本。雖然說的很對,但現實中人們不會那樣去做。人們要麼很懶,試著去避免解碼到 Unicode 帶來的額外工作,要麼對性能要求很高,不想因為解碼帶來額外的損失。無掘銀謹論哪種情況,它都假設你代碼足夠好而避免了那些麻煩,但我們都清判基楚人不是完美的都會犯錯。如果人們寄希望於在 Python 2 中寫出沒有 bug 的代碼能夠成真,我也不會總是聽到幾乎每個將他們的工程轉向 Python 3 的人講他們在代碼中間文本和二進制數據編解碼的潛在 bug。
避免 bug 是一件很重要的事情,但卻經常被人遺忘。搏如簡化語言以及移除 str 可能代表的模糊含義會減少代碼的出錯率。《Python 之禪》指出「顯勝於隱」的一個原因是: 歧義和隱性知識使得代碼不容易溝通,進而容易出錯,導致 bug。通過迫使開發者明確地分離出他們的二進制數據和文本數據,會使代碼減少某一類的 bug。
其他語言都已經完全支持 Unicode(出於好的初衷)
人們有時會忘記 Python 有多久的歷史了:Guido 在1989年12月開始編寫 Python,在1991年2月開源發布。這意味著它早於在1991年10月發布的第一版 Unicode 標准。在接下來幾年中,晚於 Unicode 標准出現的語言都選擇在支持 Unicode 編碼的基礎上實現自己的 str 類型。這讓 Python 2 處於尷尬的境地。直到2004年開始引發關注(那時 Python 3 開始醞釀),但它爭辯說對於Unicode文本的弱支持是基於unicode 完全可選 ,人們不會在所有的文本信息上使用它。
支持 Unicode 和來自任何語言的的文本是非常重要的。Python 是一門面向世界的語言,而不只是那些支持 ASCII 碼覆蓋的羅馬數字的語言。這就是為什麼 Python 3 在處理文本時選擇「要麼使用 Unicode,要麼就乾脆不支持」的原因。官方宣稱所有的 Python 3 代碼都將支持世界上的每一個人,無論寫代碼的開發者是否有著明確的意圖。在 Python 2 中,按照能夠正確支持 Unicode 類型文本信息將項目分為兩類;在 Python 3 中則不存在此類問題,並且它支持所有語言。
我們設想 Python 將更越來越受歡迎
在2004年我們開始編寫 PEP 3000 進而開始設計 Python 3 (註:PEP 最初編號為 3000,但我們把它重新編號為 3100,這樣我們就可以藉助 編號 3000 的 PEP 來開發 Python 3)。我們清楚 Python 的受歡迎程度在不斷上升,我們也希望能夠延續這種勢頭(謝天謝地,目前如此)。但這也同時意味著如果我們想及時修正所有的設計缺陷來保證它的受歡迎度,最好趁現在而不是以後。我們設想 Python 3 相較於 Python 2 會持續更長一段時間,而 Python 2.7 僅僅是用來維護以前遺留的項目,而不會用於新項目中,那用 Python 3 寫出的代碼一定會多於用 Python 2 的。所以我們決定來承受由 Python 2 向 3 轉型之痛。並且在這種設想下開發了 Python 3。想要知道 Python 3 的代碼量能否趕超 Python 2,很顯然需要數十年時間。
我們再也不會做這種打破向後兼容性的事情
我們團隊已經下定決心再也不會讓諸如 unicode/str/bytes 這樣重大的改變隨意發生。當我們決心開始 Python 3 的時候,我們設想同時希望社區能夠像 Python 做的那般並且發布支持 Python 2的最終版本,接著切換到 Python 3 的功能開發中,只對 Python 2 做bug修復版本。這顯然沒有發生,同時也給我們上了一課。加上我們也沒有發現在語言的基礎設計中間存在需要做出如此重大改變來滿足需要的缺陷。也希望 Python 4 不要發生比從標准庫中移除廢棄模塊更激烈的改變。
結論
這就是 Python 3 為什麼是這個樣子的原因。我們意識到很多 bug 都是由於在 Python 2 中對 str 類型超負荷的使用。所以我們在 Python 3 中通過將文本數據和二進制數據分離來修正它。它也促使所有的文本信息都支持 Unicode,從而使得工程更容易在多種語言下工作。我們做出了改變,因為我們明白這種改變越早越好。我們在轉型期曾經認為社區最終會摒棄 Python 2 和我們一道,但結局並非如此,相反我們花費了更多時間並且用一個 Python 2/3 的兼容子集來實現這種過渡。
5. Free與python之禪
一條命令"free"顯示內存的使用信息。 默認按照M的計數單位統計。
顯示各個參數說明 :
total表示 總計物理內存的大小。
used表示 已使用多少。
free表示 可用內存多少。
Shared表示 多個進程共享的內存總額。
Buffers/cached表示 磁碟緩存的大小。
第三行(-/+ buffers/cached)解釋
used:已使用多大。
free:可用有多少。
第四行是交換分區SWAP的,也就是我們通常所說的虛擬內存。
我們按照系統應用程序來說:系統可用內存= 系統free+buffers+cached。
"free -g",按照g的計數方式來顯示內存信息。
"free -m",按照M的計數方式來顯示內存信息。
"free -k",按照K的計數方式來顯示內存信息。
"free -t",按照總和的形式顯示內存的使用信息。
"free -s 2 -c 4"。表示為周期性展示統計內存信息。本篇實例為每隔2秒統計一次,統計4次。
"free -s 5",表示周期性展示內存使用情況,意思為每隔5秒統計展示,直到我們按下ctrl +c 鍵取消統計為止。
查看版本信息,我們執行命令"free -V",進行查看
x86是一個intel 通用計算機 系列的標准編號縮寫,也標識一套通用的 計算機指令 集合,X與處理器沒有任何關系,它是一個對所有*86系統的簡單的 通配符 定義,例如:i386, 586,奔騰(pentium)。
Intel從8086開始,286、386、486、586、P1、P2、P3、P4都用的同一種CPU架構,統稱 X86 。
如果修改了當前文件,則寫入當前文件並退出(與「:x」相同)。(注意:如果當前文件有多個窗口,如果文件被修改並且窗口被關閉,那麼文件將被寫入)。:另一方面,wq總是寫文件並退出Vim。
《Python的禪宗》,蒂姆·彼得斯著
美麗勝過醜陋。
顯性比隱性好。
簡單勝於復雜。
復雜比復雜好。
平的比嵌套的好。
稀疏比稠密好。
可讀性。
特殊情況並不足以打破規則。
盡管實用性比純潔。
錯誤不應該悄無聲息地過去。
除非顯式地沉默。
面對模稜兩可,拒絕猜測的誘惑。
應該有一種——最好只有一種——顯而易見的方法。
盡管這種方式在一開始可能並不明顯,除非你是荷蘭人。
現在總比沒有好。
雖然從來沒有比現在更好過。
如果這個實現很難解釋,那就是個壞主意。
如果實現很容易解釋,這可能是個好主意。
名稱空間是一個偉大的想法——讓我們做更多的命名空間!
6. python能做什麼
python的用途:
Python的優勢有必要作為第一步去了解,Python作為面向對象的腳本語言,優勢就是數據處理和挖掘,這也註定了它和AI、互聯網技術的緊密聯系。
網路爬蟲。顧名思義,從互聯網上爬取信息的腳本,主要由urllib、requests等庫編寫,實用性很強,小編就曾寫過爬取5w數據量的爬蟲。在大數據風靡的時代,爬蟲絕對是新秀。
人工智慧。AI使Python一戰成名,AI的實現可以通過tensorflow庫。神經網路的核心在於激活函數、損失函數和數據,數據可以通過爬蟲獲得。訓練時大量的數據運算又是Python的show time。
(6)python之禪詳解擴展閱讀:
Python開發人員盡量避開不成熟或者不重要的優化。一些針對非重要部位的加快運行速度的補丁通常不會被合並到Python內。在某些對運行速度要求很高的情況,Python設計師傾向於使用JIT技術,或者用使用C/C++語言改寫這部分程序。可用的JIT技術是PyPy。
Python是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多繼承,有益於增強源代碼的復用性。
Python支持重載運算符和動態類型。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標准庫(functools, itertools)提供了Haskell和Standard ML中久經考驗的函數式程序設計工具。
7. 獲取python之禪的語句
Python之禪,獲取python之禪的語句:
1、說明:計算機編程語言之氏伍攔禪指的是蒂姆彼得斯編寫的關於大蟒編程准則。
2、操作步驟:在大蟒的交互界面輸入導入殲胡這個,回車,會發現返回了一些代碼規范。
3、代碼:導入這個ZenofPython蟒宗之禪語,提姆彼得斯美麗比醜陋更重要.優美勝於醜陋。顯式比隱式更好。明白勝於晦暗
Simpleisbetterthancomplex.簡潔勝於繁復復雜的。繁復勝於艱深。Flatisbetterthannested.扁平勝於嵌套。稀疏比稠密。鬆散勝橘弊於聚集
8. python 編程之禪 怎麼顯示出來
import this
對是的import this這個類就好了
this這個類的內容是根據一定肆廳演算法將一些字元重新排列組胡雹姿合變成褲絕the zen of python(python之禪)並且在這個類的__(main)__里把python之禪print出來
9. 如何成為Python高手
如果你有一定的計算機編程知識基礎,那麼很容易學;再如果你對編程十分感興趣,那麼很容易學的。
1,找到合適的入門書籍,大致讀一次,循環啊判斷啊,常用類啊,搞懂(太難的跳過)
2,做些簡單習題,字元串比較,讀取日期之類 Python Cookbook不錯(太難太無趣的,再次跳過,保持興趣是最重要的,不會的以後可以再學)
3,加入Python討論群,態度友好笑眯眯(很重要,這樣高手才會耐心糾正你錯誤常識)。很多小問題,糾結許久,對方一句話點播思路,真的節約你很多時間。耐心指教我的好人,超級超級多謝。
4,解決自己電腦問題。比如下載美劇,零散下載了2,4,5,8集,而美劇共12集,怎樣找出漏下的那幾集?然後問題分解,1讀取全部下載文件名,2提取集的數字,3數字排序和(1--12)對比,找出漏下的。
對於python初學者來說,能找到一個好老師學習格外重要,這能決定你是不是可以做出好的項目,在python開發的路上越走越輕松,如果現在的你缺乏學習經驗,找不到老師指導你學習,可以加企 鵝扣-Q前面112再加上中間的983以及最後四位數4903,連在一起就可以了。
5,時刻記住目的,不是為了當程序員,是為了解決問題。比如,想偷懶抓網頁內容,用urllib不行,用request也不行,才發現抓取內容涉及那麼多方面(cookie,header,SSL,url,javascript等等),當然可以聽人家勸,回去好好讀書,從頭讀。 或者,不求效率,只求解決,用ie打開網頁再另存為行不行?ie已經渲染過全部結果了。 問題變成:1--打開指定的10個網頁(一行代碼就行)。更復雜的想保存呢?利用已經存在的包,比如PAM30(我的是Python3),直接打開ie,用函數outHTML另存為文本,再用搜索函數(str搜索也行,re正則也行)找到數據。簡單吧?而且代碼超級短。
6,保持興趣,用最簡單的方式解決問題,什麼底層驅動,各種交換,留給大牛去寫吧。我們利用已經有的包完成。
7,耐心讀文檔,並且練習快速讀文檔。拿到新包,找到自己所需要的函數,是需要快速讀一次的。這個不難,讀函數名,大概能猜到是幹嘛的,然後看看返回值,能判斷是不是自己需要的。
8,寫幫助文件和學習筆記,並發布共享。教別人的時候,其實你已經自己再次思考一次了。 我覺得學程序就像學英文,把高頻率的詞(循環,判斷,常用包,常用函數)搞懂,就能拼裝成自己想要的軟體。 一定要保持興趣,太復雜的跳過,就像小學數學,小學英語,都是由簡入深。 網路很平面,無數國際大牛著作好書,關於Python,演算法,電腦,網路,或者程序員思路,或者商業思維(浪潮之巔是本好書)等等,還有國際名校的網路公開課(中英文字幕翻譯完畢,觀看不是難事),講計算機,網路,安全,或者安卓系統,什麼都有,只要能持續保持興趣,一點點學習下去,不是難事。 所有天才程序員,都曾是兒童,回到兒童思維來理解和學習。覺得什麼有趣,先學,不懂的,先放著,遇到問題再來學,效果更好。 唯一建議是,不要太貪心,耐心學好一門優雅的語言,再學其它。雖然Javascript做特效很炫,或提某問題時,有大牛建議,用Ruby來寫更好之類,不要改方向。就像老笑話:「要學習遞歸,必須首先理解遞歸。」然後死循環一直下去。堅持學好一門語言,再研究其他。 即使一門語言,跟網路,資料庫等等相關的部分,若都能學好,再學其他語言,是很快的事情。 另外就是,用學英文的耐心來學計算機,英文遇到不懂的詞,抄下,查詢。 python里,看到Http,查查定義,看到outHtml,查查定義,跟初學英語時候一樣,不要直接猜意思,因為精確描述性定義,跟含糊自然語有區別的。而新人瞎猜,很容易錯誤理解,wiki,google很有用。
10. 如何提升Python編程能力
一、Python之禪(The Zen of Python)
The Zen of Python是Python語言的指導原則,遵循這些基本原則,你就可以像個Pythonista一樣編程。具體內容你可以在Python命令行輸入import this看到:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
# 優美勝於醜陋(Python以編寫優美的代碼為目標)
Explicit is better than implicit.
# 明了勝於晦澀(優美的代碼應當是明了的,命名規范,風格相似)
Simple is better than complex.
# 簡潔勝於復雜(優美的代碼應當是簡潔的,不要有復雜的內部實現)
Complex is better than complicated.
# 復雜勝於凌亂(如果復雜不可避免,那代碼間也不能有難懂的關系,要保持介面簡潔)
Flat is better than nested.
# 扁平勝於嵌套(優美的代碼應當是扁平的,不能有太多的嵌套)
Sparse is better than dense.
# 間隔勝於緊湊(優美的代碼有適當的間隔,不要奢望一行代碼解決問題)
Readability counts.
# 可讀性很重要(優美的代碼是可讀的)
Special cases aren't special enough to break the rules.
Although practicality beats purity.
# 即便假借特例的實用性之名,也不可違背這些規則(這些規則至高無上)
Errors should never pass silently.
Unless explicitly silenced.
# 不要包容所有錯誤,除非你確定需要這樣做(精準地捕獲異常,不寫except:pass風格的代碼)
In the face of ambiguity, refuse the temptation to guess.
# 當存在多種可能,不要嘗試去猜測
There should be one-- and preferably only one --obvious way to do it.
# 而是盡量找一種,最好是唯一一種明顯的解決方案(如果不確定,就用窮舉法)
Although that way may not be obvious at first unless you're Dutch.
# 雖然這並不容易,因為你不是 Python 之父(這里的Dutch是指Guido)
Now is better than never.
Although never is often better than *right* now.
# 做也許好過不做,但不假思索就動手還不如不做(動手之前要細思量)
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
# 如果你無法向人描述你的方案,那肯定不是一個好方案;反之亦然(方案測評標准)
Namespaces are one honking great idea -- let's do more of those!
# 命名空間是一種絕妙的理念,我們應當多加利用(倡導與號召)
這首特別的「詩」開始作為一個笑話,但它確實包含了很多關於Python背後的哲學真理。Python之禪已經正式成文PEP 20,具體內容見:PEP 20
二、PEP8: Python編碼規范(PEP8: Style Guide for Python Code)
Abelson & Sussman在《計算機程序的構造和解釋》一書中說道:程序是寫來給人讀的,只是順帶讓機器執行。所以,我們在編碼時應該盡量讓它更易讀懂。PEP8是Python的編碼規范,官方文檔見:PEP 8,PEP是Python Enhancement Proposal的縮寫。PEP8包括很多編碼的規范,下面主要介紹一下縮進和命名等內容。
空格和縮進(WhiteSpace and Indentation)
空格和縮進在Python語言中非常重要,它替代了其他語言中{}的作用,用來區分代碼塊和作用域。在這方面PEP8有以下的建議:
1、每次縮進使用4個空格
2、不要使用Tab,更不要Tab和空格混用
3、兩個方法之間使用一個空行,兩個Class之間使用兩個空行
4、添加一個空格在字典、列表、序列、參數列表中的「,「後,以及在字典中的」:「之後,而不是之前
5、在賦值和比較兩邊放置一個空格(參數列表中除外)
6、緊隨括弧後面或者參數列表前一個字元不要存在空格
Python命名
命名規范是編程語言的基礎,而且大部分的規范對於高級語言來說都是一樣的,Python的基本規范如下:
1、方法 & 屬性:joined_lower
2、常量:joined_lower or ALL_CAPS
3、類:StudlyCaps
4、類屬性:interface, _internal, __private
5、camelCase only to conform to pre-existing conventions
以上內容只是對PEP8做了非常簡單的介紹,由於今天的主題不在於此,所以就不在這里多講。想要更加深入的了解Python編碼規范,可以閱讀PEP8官方文檔和Google Python編碼規范等內容。
三、交換變數值(Swap Values)
在其他語言中,交換兩個變數值的時候,可以這樣寫:
temp = a
a = b
b = temp
在Python中,我們可以簡單的這樣寫:
b, a = a, b
可能你已經在其他地方見過這種寫法,但是你知道Python是如何實現這種語法的嗎?首先,逗號(,)是Python中tuple數據結構的語法;上面的語法會執行一下的操作:
1、Python會先將右邊的a, b生成一個tuple(元組),存放在內存中;
2、之後會執行賦值操作,這時候會將tuple拆開;
3、然後將tuple的第一個元素賦值給左邊的第一個變數,第二個元素賦值給左邊第二個變數。
再舉個tuple拆分的例子:
In [1]: people = ['David', 'Pythonista', '15145551234']
In [2]: name, title, phone = people
In [3]: name
Out[3]: 'David'
In [4]: title
Out[4]: 'Pythonista'
In [5]: phone
Out[5]: '15145551234'
這種語法在For循環中非常實用:
In [6]: people = [['David', 'Pythonista', '15145551234'], ['Wu', 'Student', '15101365547']]
In [7]: for name, title, phone in people:
...: print name, phone
...:
David 15145551234
Wu 15101365547
PS:在使用這種語法時,需要確保左邊的變數個數和右邊tuple的個數一致,否則,Python會拋出ValueError異常。
更多tuple的例子:
>>> 1,
(1,)
>>> (1,)
(1,)
>>> (1)
1
>>> value = 1,
>>> value
(1,)
我們知道:逗號(,)在Python中是創建tuple的構造器,所以我們可以按照上面的方式很方便的創建一個tuple;需要注意的是:如果聲明只有一個元素的tuple,末尾必須要帶上逗號,兩個以上的元素則不需要。聲明tuple的語法很簡單,但同時它也比較坑:如果你發現Python中的變數不可思議的變成了tuple,那很可能是因為你多寫了一個逗號。。
四、Python控制台的"_"(Interactive "_")
這是Python中比較有用的一個功能,不過有很多人不知道(我也是接觸Python很久之後才知道的)。。在Python的互動式控制台中,當你計算一個表達式或者調用一個方法的時候,運算的結果都會放在一個臨時的變數 _ 裡面。_(下劃線)用來存儲上一次的列印結果,比如:
>>> import math
>>> math.pi / 3
1.0471975511965976
>>> angle = _
>>> math.cos(angle)
0.50000000000000011
>>> _
0.50000000000000011
PS:當返回結果為None的時候,控制台不會列印,_ 裡面存儲的值也就不會改變。
五、合並字元串(Building Strings from Sub strings)
假如現在有一個list,裡面是一些字元串,你現在需要將它們合並成一個字元串,最簡單的方法,你可以按照下面的方式去處理:
colors = ['red', 'blue', 'green', 'yellow']
result = ''
for s in colors:
result += s
但是,很快你會發現:這種方法非常低效,尤其當list非常大的時候。Python中的字元串對象是不可改變的,因此對任何字元串的操作如拼接,修改等都將產生一個新的字元串對象,而不是基於原字元串。所以,上面的方法會消耗很大的內存:它需要計算,存儲,同時扔掉中間的計算結果。正確的方法是使用Python中的join方法:
result = ','.join(colors)
當合並元素比較少的時候,使用join方法看不出太大的效果;但是當元素多的時候,你會發現join的效率還是非常明顯的。不過,在使用的時候請注意:join只能用於元素是字元串的list,它不會進行任何的強制類型轉換。連接一個存在一個或多個非字元串元素的list時將拋出異常。