淺讀Python開發(fā)語言形式問題
Python開發(fā)語言是一種動態(tài)語言,同一變量名可以在程序運行的不同階段代表不同形式比如整型,浮點,列表,元組...。Python開發(fā)語言與C語言不同的是,C語言中變量名代表的是用來存放結果的一個固定位置及長度的內存片段。
從例子Listing 1.1中的變量principal可以看出Python開發(fā)語言的動態(tài)特性.最初,它被賦值為一個整數(shù),但是稍后程序將它再次賦值: 這個語句計算表達式的值,然后將計算結果賦給 principal 變量做為它的新值。當賦值動作發(fā)生時,principal最初綁定的值1000被丟棄。
賦值結束,不但 principal 綁定的值發(fā)生了變化,它的類型也隨著賦值動作發(fā)生了相應的變化。在這個例子中,由于rate是一個浮點數(shù),所以在賦值完成后,principal也變成一個浮點數(shù)。 while 語句首先檢查在它后邊的循環(huán)條件,若條件表達式為真,它就執(zhí)行冒號后面的語句塊,然后再次測試循環(huán)條件,直至為假。
冒號后面的縮近語句塊為循環(huán)體。注意,Python開發(fā)語言使用縮進塊來表示程序邏輯(其它大多數(shù)語言使用大括號等)。在Listing 1.1中while語句后的三條語句為循環(huán)體,在每次循環(huán)中均執(zhí)行。Python開發(fā)語言并未指定縮進的空白(空格和制表符)數(shù)目。
唯一的要求是同一層次的語句必須有相同的縮進空白。(注意,要么都是空格,要是么都制表符,千萬別混用) 格式字符串包含普通文本及格式化字符序列(例如"%d", "%s", 和 "%f"),這些序列決定特定類型的數(shù)據(jù)(如整型,字符串,浮點數(shù))的輸出格式。
'%3d'將一個整數(shù)在寬度為3個字符的欄中右對齊,'%0.2f'將一個浮點數(shù)的小數(shù)點后部分轉換為2位。格式字符串的作用和C語言中的sprintf()函數(shù)基本相同。詳細內容請參閱第四章--操作符及表達式。
open()函數(shù)返回一個新文件對象(file object)。通過調用此對象的不同方法可以對文件進行不同的操作。readline()方法讀取文件的一行(包括換行符'\n')。如果讀到文件末尾,就返回一個空字符串。要將程序的輸出內容由屏幕重定向到文件中,可以使用'>>'運算符,如下例:
- 1 class Stack(object):
- 2 def __init__(self): # 初始化棧
- 3 self.stack = [ ]
- 4 def push(self,object):
- 5 self.stack.append(object)
- 6 def pop(self):
- 7 return self.stack.pop()
- 8 def length(self):
- 9 return len(self.stack)
表達式 [float(s) for s in svalues] 通過循環(huán)列表svalues中的所有字符串并對每個元素運行函數(shù)float()來建立一個新的列表。這種特殊的建立列表的方法叫做列表包含( licomprehension)。 在列表中所有的字符串都轉換為浮點數(shù)之后,內建函數(shù)min()和max()計算出列表中的***值及最小值。
盡管字符串是最常見的 關鍵字(key) 類型,你還是可以使用很多其它的 Python開發(fā)語言做為字典的關鍵字,比如 數(shù)字 和 tuple,只要是不可修改對象,都可以用來做字典的key。有些對象,例如列表和字典,不可以用來做字典的key,因為他們的內容是允許更改的。
在類定義中,方法用 def 語句定義。類中每個方法的***個參數(shù)總是引用類實例對象本身,大家習慣上使用 self 這個名字代表這個參數(shù)。不過這僅僅是個習慣而已,如果你愿意也可以用任意的別的名字。
不過為了別人容易看懂你的程序,***還是跟隨大家的習慣。類的方法中若需要調用實例對象的屬性則必須顯式使用self變量(如上所示)。方法名中若前后均有兩個下劃線,則表示這是一個特殊方法,比如init方法被用來初始化一個對象(實例)。
【編輯推薦】