Python基礎語法


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,

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM