3 第乙個python程式

2022-07-05 09:06:09 字數 2747 閱讀 6289

學習任何一門語言的第一步,首先要寫個'hello world',這算是程式設計師的乙個傳統。但在寫之前,還有注意幾個問題。

首先,python是一門指令碼語言,而指令碼語言的特點就是:我們寫的**會先由直譯器進行編譯以後,再去執行。但是當我們的程式執行在作業系統之上時,系統並沒有那麼智慧型,能夠自動識別出我們要用哪個直譯器去解釋我們的**(windows則通過字尾名關聯執行程式,所以不用宣告也可以,但是我們的**更多在linux上執行,所以直譯器的宣告算是必須的),所以,我們必須要宣告我們的直譯器是什麼。

#

! /usr/bin/python

在檔案的第一行寫上這段**,當檔案被執行的時候,系統會去 /usr/bin/python 中找到直譯器,然後用它來解釋我們的**。但是,正如我在第一篇介紹python安裝中提到的,系統自帶的python和我們原始碼安裝的python的路徑是不同的,而我們並不能保證我們程式執行的系統中,python就裝在這裡。

所以,用下面這種方法相容性更好:

#

! /usr/bin/env python

如果有linux基礎的同學會知道 env 是linux中呼叫環境變數的,這段**的意思是去系統的環境變數中尋找python,找到了就用它來解釋**。這樣做能獲得更高的相容性,無論是什麼方法安裝的,只有在系統環境變數中,就都能找到。

這時,有些人就有疑問了,不是說#後面的都是注釋嗎,注釋是不被執行的,為什麼這句**有效果?

其實直譯器的宣告也算是注釋的一種,只不過它比較特殊,記住能這樣用就好,也不用太去深究,下面的字符集宣告也是一樣的,反正特殊的就這兩個,也沒什麼記不住的。

有了以上基礎,就可以開始寫'hello world'了,但作為一名中國的程式設計師,我還想寫『你好,世界』怎麼辦?

如果是在3.x中,那就可以直接開始了。但如果是2.x的話,那還需要進行字符集的宣告。

1.python2.x預設使用的是acsii碼,這個編碼是不支援中文的

2.為了支援世界上的所有文字,而誕生了unicode,而為了壓縮unicode在顯示英文時占用的空間,又誕生了utf-8,這也是我們常用的字符集。

這裡的意思並不是說其他字符集都是從unicode發展而來的,關於字符集的發展歷史是個很複雜的東西,個人也不是很清楚。

這個圖這樣畫是為了表達unicode的橋梁作用。因為當我們要將編碼從gbk轉到utf-8時,首先要將gbk轉換成unicode,然後再從unicode轉到utf-8,否則是不能直接轉換的。

其實使用utf-8就已經總夠了,我這裡單獨列出gbk是因為很多人在windows的cmd裡面使用中文時,就算宣告了字符集,但還是顯示亂碼。

此時,要注意乙個問題,雖然你是用了utf-8,但cmd的互動視窗卻不是以utf-8去顯示,詳情看圖:

其使用的是gbk,而你輸出的字元卻用的是utf-8,用gbk去解讀utf-8當然會出現亂碼。所以很多時候要注意一下顯示終端用的是什麼編碼。

講完為何要宣告字符集,接下來講如何宣告,其實和宣告直譯器類似,可以在檔案的第二行寫:

#

-*- coding: utf-8 -*-

下面這種寫法也行:

#

coding: utf-8

小寫的utf也行,還有一些其他寫法,例如把:換成=號的,個人習慣用第一種寫法。

講完了直譯器宣告和字符集宣告以後,我們得出了python的同樣起手式:

#

! /usr/bin/env pyhton

#-*- coding:utf-8 -*-

好,學會了起手式後,就可以開始寫『hello world』了。

#

! /usr/bin/env pyhton

#-*- coding:utf-8 -*-

print

"hello world

"print "你好,世界"

解釋:print是python的乙個關鍵字,其作用是將其後面的東西顯示到終端,專業術語稱為「列印」,可以列印各種資料型別,例如字串,數字,元祖,字典等,具體這些是什麼以後會講。

而我們在第一篇中的3.x新特性中提到,print這個關鍵字,被print()方法取代了,所以3.x中要這樣寫:

#

! /usr/bin/env pyhton

#-*- coding:utf-8 -*-

print ("

hello world

")print ("你好,世界")

而在2.7中,上面兩種方法都是支援的,這也是2.7被稱為過度版本的原因之一。

好了,第乙個python程式就寫完了,就是這麼簡單!嗯……好吧,還算簡單吧。

補充:既然unicode被稱為萬國碼,那麼是否可以直接將乙個字串用unicode編碼呢?

答案是可以,**如下:

print u"

hello world

"print (u"

hello world

")

直接在字串前加個 u 就可以了,不過一般情況下使用中文不一定非要這樣,但如果某個方法一定要傳unicode物件的時候,那就要這樣寫了。

3 第乙個Python程式

無論讀者使用的是哪種作業系統,相信都已經安裝好了 python 環境,可以通過命令列視窗或者 python 自帶的 idle 成功啟動互動式直譯器 如圖 1 所示 圖 1 啟動 python 互動式直譯器 本節將帶領讀者正式編寫第乙個 python 輸出 hello world 在圖 1 中的提示符...

第乙個python 程式

有人在論壇 上問 將日誌格式化的方法,剛好學python,就拿這個練手了 09 55 54 error1 tmp error log.3 50 times mon jun 28 00 00 53 2009 09 55 54 error1 tmp error log.3 50 times 09 56 ...

第乙個python程式

在之前學習了基本的python知識以後,我決定編寫自己的第乙個python程式。可汗學院公開課 全部 根據以上兩個內容為基礎,編寫乙個爬取 源 的python程式,中間一步步來,終極目標是實現 rss 那樣的新聞聚合功能。這個想法我已經想了快半個月了,可是一直遲遲沒有實現,正好趁這個機會。準備開始像...