1、繼續(\)
Python語句,一般使用換行分割,也就是說一行一個語句。一行過長的語句可以使用反斜杠(\)分解成幾行,如下例:
>>> weather_is_hot = 1 >>> shark_warnings = 0 >>> if(weather_is_hot==1) and \ ... (shark_warnings==0): ... print '\\ is a go on mark!' ... \ is a go on mark!
有另外兩種例外情況一個語句不是用反斜杠也可以跨行。在使用閉合操作符時,單一語句可以跨多行,例如:在含有小括號、中括號、花括號時可以多行書寫。另外就是三引號包括下的字符串也可以跨行書寫,如下例:
#顯示一個三引號字符串 print ''' hi there, this is a long message for you that goes over multiple lines.... you will find out soon that triple quotes in Python allows this kind of fun! it is like a day on the beach!''' #給一些變量賦值 go_surf, get_a_tan_while, boat_size, toll_money = (1, 'windsurfing', 40.0, -2.00)
2、分號(;)允許你將多個語句寫在同一行上,語句之間用分號隔開,而這些語句也不能在這一行開始一個新的代碼塊。例子如下:
import sys; x = 'fool'; sys.stdout.write(x+'n')
必須指出一點,同一行書寫多個語句大大降低代碼的可讀性,Python雖然允許,但不提倡這么做。
3、賦值操作符
在C中,你會知道復制語句其實被當成一個表達式(可以返回值),不過在Python中,並不適合,Python的賦值語句不會返回值。類似下面的語句在Python中是非法的。
>>> x = 1 >>> y = (x = x + 1) #賦值語句不是合法的表達式 File "<stdin>", line 1 y = (x = x + 1) #賦值語句不是合法的表達式 ^ SyntaxError: invalid syntax >>>
鏈式復制沒問題,比如:
>>> y = x = x +1 >>> x,y (2, 2) >>>
3、增量賦值
Python的增量賦值不支持x++或--x這樣的前置/后置自增/自減運算。通常用下面的完成增量賦值,示例如下:
>>> m=12 >>> m%=7 >>> m 5 >>> m**=2 >>> m 25 >>> aList=[123,'xyz'] >>> aList+=[4.56e10] >>> aList [123, 'xyz', 45600000000.0] >>>
4、“多元”賦值
另一種將多個變量同時賦值的方法,采用這種方式的時候,左邊對象是元組,右邊對象也是元組:示例如下:
>>> x,y,z=1,2,'www.58lxqy' >>> x 1 >>> y 2 >>> z 'www.58lxqy'
括號擴起來也是可以的,通常建議這么做,使你的代碼可讀性更高:
>>> (x,y,z)=(1,2,'www.58lxqy') >>> x 1 >>> y 2 >>> z 'www.58lxqy'
多元賦值在變量交換中的妙用:
/*C語言中兩個變量的交換*/ tmp=x; x=y; y=tmp;
而Python的多元賦值方式可以實現無需中間變量交換兩個變量的值。
>>>#Python中兩個變量交換 >>> (x,y)=(1,2) >>> x 1 >>> y 2 >>> x,y=y,x >>> x 2 >>> y 1
5、Python專用下划線標識符
Python用下划線作為變量前綴和后綴制定的特殊變量。稍后我們會發現,對於程序來說,其中的有些變量是非常有用的,而其他的則是未知或者無用的。對Python中的下划線總結如下:
- _xxx 不能用‘from module import’ 導入
- _xxx_ 系統定義名字
- _xxx 類中的私有變量
6、模塊結構和布局
用模塊來合理組織你的Python代碼是簡單又自然的方法。你應該建立一種統一且容易閱讀的結構,並將它應用到每一個文件中。下面就是一種非常合理的布局:
# (1)起始行(Unix)
# (2)模塊文檔
# (3)模塊導入
# (4)變量定義
# (5)類定義
# (6)函數定義
# (7)主程序
7、__name__指示模塊應如何被加載
Python是否有一種方法,能在運行時檢測該模塊是被導入還是被直接執行呢?答案就是…(掌聲雷動)…沒錯!__name__系統變量就是正確答案
- 如果模塊是被導入,__name__的值為模塊名字
- 如果模塊是被直接執行,__name__的值為‘__main__’
#!/usr/bin/python #起始行 "This is a test module" #模塊文檔 import sys #模塊導入 import os debug=True #(全局)變量定義 class FooClass (object): #類定義(若有) "Foo class" pass def test(): #函數定義(若有) "test function" foo=FooClass() if debug: print 'ran test(),execute as a script!' if __name__=='__main__': #主程序 test()
8、相關模塊和基礎語法
《Python風格指南》(Python Stytle Guide, PEP8)、《Python快速參考指南》(Python Quick Reference Guide)和《Python常見問答》(Python FAQ)都是開發者很重要的工具。另外,還有一些模塊會幫助你成為一個優秀的程序員。
調試器:pdb
記錄器:logging
性能測試器:profile、hotshot、cProfile(最新的,C語言編寫,常用來測試函數的執行時間及每次腳本執行的總時間)
9、Python中的print方法
print方法本身會生成NEWLINE的意思,當使用print來輸出文本的內容時,通過循環可以輸出每行時,就會在每行的結尾多一個換行。為解決這一問題,我們可以使用在print結尾出加上‘,’來解決這一問題,‘,’字符能夠抑制print語句生成的NEWLINE,另外也可易使用字符串的strip()方法刪除每行末尾的空白就可以了。
具體代碼如下:
# print eachLine.strip() print eachLine,