Python入門筆記(2):基礎(上)

來源:互聯網
上載者:User
一、欲練此功,必先自宮

從現在起,就開始真正地接觸她了,或許很多人像我一樣,不知道如何去快速掌握一門新的程式設計語言,今天貼出來一些建議,方便大家看看,這也是學習之前的十分重要的事情。雖然“欲練此功,必先自宮”太誇張,但是在學習之前,肯定要做好準備了。由於工作中使用Python,在工作前一個月就開始學習並投入到實際項目中,時隔一個月的學習,今天重溫一遍。我做的準備如下:

1.工具準備

這個在上一章學習筆記中已經做好了

2.資料準備

《Python 核心編程》
 Python官方文檔
部落格園、CSDN等社區

3.入門教程準備

大約在六月份之前完成Python入門筆記。

4.心理準備

關於如何學好一門新的程式設計語言,這裡推薦閱讀:http://www.cnblogs.com/chgaowei/archive/2011/05/29/2061902.html

5.知識架構拆分準備

通過對整個Python學習過程中的架構進行拆分,利用《Python核心編程》一書中,幾乎涵蓋了所有Python知識點,但是對於像我一樣的新手來說,我還是難以掌握她的整個學習架構、流程。如果我們大致看了這一本書,就能細分她的架構,分成模組來學,這樣才能做到心中有數。下面是我拆分的架構:(由於我們先從Python基礎學習,所以這裡不考慮進階部分)

[1]、Python基礎部分:

(1).文法基礎、(2)、資料類型、(3).Python對象、(4).字串、元祖和列表、(5).映射和集合、(6).函數

[2]、流程式控制制

條件和迴圈

[3]、檔案操作

[4]、模組

[5]、物件導向

[6]、異常處理

[7]、環境部署

 

好了,這些準備都到位了,現在就開始學習吧,沒事的時候建議看看Python哲學

二、Python文法

我不知道自己之前是如何寫第一個Python程式的,貌似是照著《Dive Into Python》這本令人在之前學起來蛋疼的教程中寫的。一如既往地,咱們從"helloworld"開始看吧,哈哈,我們學的很多語言都是從helloworld開始的。

>>> 1 + 1               2>>> print 'hello world' hello world>>> x = 1               >>> y = 2>>> x + y3

這裡例子並不能說明什麼文法,但是能讓我們熟悉一些,比如,Python 既是 動態類型定義語言 (因為它不使用顯示資料類型聲明) , 又是 強型別定義語言 (因為一旦一個變數具有一個資料類型, 它實際上就一直是這個類型了) 、一句程式結束後並不不以分號結尾、print 可以輸出字串等。那下面就細緻講解下python文法吧

1、注釋

和很多Unix指令碼類似,Python的備註陳述式從#字元開始,如:

# print "hello world"

注意Python的#字元注釋只能實現單行注釋,或許很多人和我一樣好奇,如果要注釋掉一百多行代碼,那麼是不是敲一百多次#呢??毋庸置疑,如果我們這樣做,只能說明還是打醬油的雇的幫打醬油的人。

我們可以有如下小技巧:

(1).程式控製法:

在不影響整個程式的情況下,我們可以把一大堆要注釋掉的程式碼片段,利用if條件句進行間接注釋,也就是if屏蔽了要注釋的代碼塊的執行、可以使用 if False:、if None:、if 0:進行屏蔽處理,如下:

1 在eclipse中:2 print 'BeginMan'    #輸出 3 if False:           #屏蔽,if 後還可以是 0、None等一切布爾值為假的條件4     print 'hello world'5     print 'good man'6     print 'sssss'7 print 'ok!'         #輸出

則if 下的代碼不會執行,也就沒輸出了。但是這個技巧呢,最好不要用,可能在很多代碼存在的情況下存在潛伏的異常。

(2).編輯器技巧

如果在eclipse下,選中多行,可以使用快速鍵ctrl+/注釋或取消注釋,這個強烈推薦,真是“工欲善其事,必先利其器”啊,對於編輯器,最好是掌握常用的快速鍵,才能提高開發效率。

(3).doc string (文檔字串)

1 def foo(params):2     """print a,b,c and return a """

三重引號(包含單引號又包含雙引號)表示一個多行字串。在開始與結束引號間的所有東西都被視為單個字串的一部分, 包括硬斷行符號和其它的引號字元。在三重引號中的任何東西都是這個函數的 doc string, 它們用來說明函數可以做什麼。 如果存在 doc string, 它必須是一個函數要定義的第一個內容( 也就是說, 在冒號後面的第一個內容 )。 在技術上不要求給出函數的 doc string, 但應該這樣做。 Python 帶來一些額外的動機: doc string 在運行時可作為函數的屬性。

2、換行(\n)

常見的分行符號,在學其他程式設計語言中經常看到。

 3、反斜線(\)繼續上一行

也就是對一行一個語句的隔行,針對一些過長的語句可使用反斜線\來分解成多行,如:

1 if a>0 and \2 b<0 :3     print 'ok!'

有兩種例外情況可以不用反斜線,一種是:小括弧()、中括弧[]、花括弧{};另外一種是三引號。針對可讀性,不建議使用反斜線。

4、代碼縮排

Python 函數沒有明顯的 begin 和 end, 沒有花括弧, 用於標函數的開始和結束。 唯一的分隔字元是一個冒號 (:), 接著代碼本身是縮排的。例子可以參考上面的。注意,碼縮排十分嚴格,如果不按規律辦事,不小心的話就會出現語法錯誤,比如unexpected indent之類的。甚至有時也會出現邏輯錯誤。

參考:http://www.cnblogs.com/tt-0411/archive/2011/11/11/2245693.html

5、使用分號(;)可以在同一行書寫多個語句

如;import os; a=123; print a

注意句子末尾不要帶;建議不要這樣寫,因為會大大降低代碼的可讀性。

6、模組

每個python指令碼看做一個模組,磁碟的形式存放,可多次拆分成多個模組。使用import 匯入。

三、Python的變數

注意,與C#、Java、C/C++等程式設計語言不一樣,Python的變數沒有類型,它的類型是在記憶體中根據對象所確定的。由於涉及到Python函數部分,在本節先不講,在後面的部分會有講解。這一節就首先學學變數賦值。

Python是弱類型,無需明確指定變數類型,賦值的同時會自動宣告類型。如:

1 >>> anInt=102 >>> astr="Car"3 >>> aFloat=-1.2+34 >>> aList=[1,2,3]5 >>> aTuple=('aa','ss')6 >>> print anInt,astr,aFloat,aList,aTuple7 10 Car 1.8 [1, 2, 3] ('aa', 'ss')

我們需要注意以下幾點:

1、在Python中是通過對象的引用而不是值來賦值給變數的。

2、賦值操作符主要是"=",同時也可使用增量賦值,如 x+=1。但是沒有自增、自減操作符。

3、在C語言中,指派陳述式可以當作運算式(可以傳回值),但是在Python中指派陳述式不會傳回值,如下面的就是非法的:

>>> x=1>>> y=(x=x+1)SyntaxError: invalid syntax

4、Python支援鏈式賦值、多重賦值、多元賦值

(1).鏈式賦值:

>>> y=x=x+1>>> x,y(2, 2)

(2).多重賦值

>>> x=y=z=1>>> x,y,z(1, 1, 1)

值為1的整型對象被建立,該對象的同一引用被賦值給了x,y,z

(3).多元賦值

為什麼叫做多元賦值,在Python核心編程書中說,是作者自己其的名稱,因為等號兩邊對象都是元祖。

>>> x,y,z=1,'ssss',True>>> x,y,z(1, 'ssss', True)
x,y,z=1,'as',3(x,y,z)=1,'as',3(x,y,z)=(1,'as',3) #推薦

其中,Python變數交換實在太優雅了,如果交換x和y的值,在其他語言,如C,我們或許用一個臨時變數來完成工作。但是在Python中,你只需這樣做就行了

>>> x,y=y,x>>> x,y('ssss', 1)
四、標識符

首先變數的命名規則跟其他主流語言如C一樣,其次,Python關鍵字、標識符在Python文檔中都有,必要時可翻閱。

 五、編碼風格
 1 #coding=utf-8                       #編碼格式 2 ''' 3 Created on 2013-3-11                4 @author: BeginMan 5 ''' 6 "this is a test module"             #模組文檔 7 import os                           #匯入模組 8 import sys 9 s=True                              #全域變數(globalvariable)10 class FooClass(object):             #類的定義11     "fooclass test"                 #類的文檔對象12     classAttribute=10               #類屬性 13     def myFunction(self):           #函數定義14         "function test"             #函數的文檔對象15         dataAttribute="BeginMan"    #資料屬性(執行個體屬性)16         pass                        17 18 if __name__=="__main__":            #主程式19     inst=FooClass()20     pass21     

 這裡我們重點是Python的主程式。那麼什麼是Python的主程式呢,就是說無論這個模組是被別的模組匯入還是作為指令碼直接執行,都會執行這部分代碼。通常這裡不會有太多功能性代碼,而是執行模式調用不同函數。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.