《转》python学习--基础上
學習的python本來想自己總結,但是發現了一篇不錯的大牛的博客,拿來主義,,又被我實踐了
關于前兩篇如果總結的不詳細,因此把他人的轉載過來 http://www.cnblogs.com/BeginMan/archive/2013/04/12/3016323.html
一、欲練此功,必先自宮
從現在起,就開始真正地接觸她了,或許很多人像我一樣,不知道如何去快速掌握一門新的編程語言,今天貼出來一些建議,方便大家看看,這也是學習之前的十分重要的事情。雖然“欲練此功,必先自宮”太夸張,但是在學習之前,肯定要做好準備了。由于工作中使用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 + y 3這里例子并不能說明什么語法,但是能讓我們熟悉一些,比如,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=10 2 >>> astr="Car" 3 >>> aFloat=-1.2+3 4 >>> aList=[1,2,3] 5 >>> aTuple=('aa','ss') 6 >>> print anInt,astr,aFloat,aList,aTuple 7 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 syntax4、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: BeginMan5 '''6 "this is a test module" #模塊文檔7 import os #導入模塊8 import sys9 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 pass 21?這里我們重點是Python的主程序。那么什么是Python的主程序呢,就是說無論這個模塊是被別的模塊導入還是作為腳本直接執行,都會執行這部分代碼。通常這里不會有太多功能性代碼,而是執行模式調用不同函數。
?
時刻記住一個事實,所有模塊都有能力來執行代碼,最高級別的Python語句,即沒有縮進的代碼,在模塊被導入時就會執行。
?
其他:
如:垃圾回收機制,使我們更加專注于代碼。
?
總結
以上是生活随笔為你收集整理的《转》python学习--基础上的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: textContent、innerHTM
- 下一篇: (转)python中的*args和**k