Python程序基本組成
Python和其他高級語言一樣,幾乎都是首先從某些地方接收一些數據(如鍵盤或文件或者賦值),接着對數據進行必要的處理,之後把處理的結果傳到某個地方去(輸出到文件、數據庫或者打印到屏幕上)。
Python程序基本架構如下:
程序初始化部分
程序數據的輸入部分
程序數據的處理部分
程序數據的輸出部分
程序結束部分
數據輸出
在Python語言裏可以通過print函數實現數據的輸出操作,print 函數的語法結構如下所示。
Python在執行print語句時,首先是計算一下print函數後邊的expressions 表達式的值,之後再將表達式的值打印輸出。
我們注意到print語法結構裏的<expressions>單詞後邊有s 的,複數,什麼意思?其含義是表達式可以是多個,多個<expression>間用逗號間隔。
>>>print 'hello' hello >>>print 'world' world >>>print 'hello'+'world' helloworld >>>print 'hello','world' hello world
語句1、3是分別打印’hello’和’world’兩個字符串,我們可以看到每條print語句輸出後都自動換了一行,第5行的語句用 連接了兩個字符串,打印輸出時字母’o’和’w’ 是,而第7 行語句是用逗號連接了兩個字符串,我們發現在輸出的時候字母’o’和’w’ 並沒有挨着而是中間有了,因此可以這樣去理解print函數裏的逗號,逗號在print語句裏可以不輸出回車鍵換行,使得下一次的print 數據和本次print 語句輸出在同一行。
這裏有了新的數據類型字符串,用引號將一些字符引起來,我們稱之爲這樣的數據爲字符串。在Python 裏字符串的數據的定義有三種形式:
用單引號引起來一些字符
用雙引號引起來的一些字符
三個雙引號引起來的字符都是字符串數據。
爲何出現三個雙引號字符串呢?這個是爲了可在字符串數據裏使用雙引號。
>>>print 'hello' hello >>>print "world" world >>>print """He said "hello" to God""" He said "hello" to God
請注意在said後邊的hello字符串前後的雙引號在輸出時被打印出來了。那如何實現字符串和數字型數據同時輸出呢?
我們可以採用逗號運算連接字符串和數字型數據,從而實現同時打印字符串和數字型數據,當然也可以用兩條print語句。
>>> x = 12 >>> print 'hello x = ', x hello x = 12
在字符串裏引用格式控制字%d可以實現打印整形數據,%f 則可以打印浮點型數據,而%s則是字符串數據。
>>> x = 12 >>> print 'hello x = ', x hello x = 12 >>> y = 12.45 >>> s = "world" >>> print "output %d %f %s"%(x, y ,s) output 12 12.450000 world >>>
這裏需要注意的是代碼的第6行,%前雙引號引起來的字符串稱之爲print函數的格式化控制字,%後圓括號括起來的是格式化控制字裏各個%所對應的值序列。
數據輸入
在Python裏可以通過raw_input函數從鍵盤獲得用戶的數據輸入,其語法結構如下所示。
raw_input函數的形參prompt是一個字符串用於提示用戶輸入,當用戶輸入數據以後raw_input函數會把輸入數據傳給等號左邊的變量來保存輸入數據,raw_input 函數的返回值是字符串型的。
>>>name = raw_input("plz input your name:") plz input your name:hello >>>print name hello
語句代碼第1行使用了raw_input函數用於接收用戶數據,從raw_input 函數返回值賦值給了name變量,第2行輸入了’hello’ 字符串,第3 行調用print打印name變量的值。 我們再看看下面的程序,任務是想從鍵盤輸入兩個整數給x和y,計算x+y之和並打印結果。
>>> x = raw_input("plz input x : ") plz input x : 12 >>> y = raw_input("plz input y : ") plz input y : 12 >>> z = x + y >>> print z'1213'
爲何如此?爲何不是結果25呢?我們再看一個程序好了。
>>> x = raw_input("plz input x : ") plz input x : 12 >>>print x'12' >>> x = 12 >>>print x12
第4行和第7行都是在執行’print x’以後打印的結果,兩次打印結果有不同的地方麼?第4 行的輸出在12 的前後有單引號(由此可知raw_input返回值是字符串型的),而第7 行輸出結果12前後無單引號,由此可知raw_input函數的返回值是字符串,那我們的任務該如何完成呢?這裏介紹一下類型轉換函數int 函數,int 函數可以將純數字字符組成的字符串轉換成整形數據,因此任務程序可以改成下面這個樣子。
>>> x = int(raw_input("plz input x : ")) plz input x : 12 >>> y = int(raw_input("plz input y : ")) plz input y : 13 >>> z = x + y >>> print z25
語句第1行和第3行通過raw_input函數從鍵盤輸入字符串數據,經int函數將數字字符串轉換成整形數據之後賦值給左邊的變量x 和y,此時x和y變量裏就存儲着整形數據12和13。
實際上,Python裏有另外一個函數叫input 也可以從鍵盤捕獲數據,它的返回值直接就是數值數據,但鍵盤輸入的必須是數(整形或者浮點型)才行。
>>> x = input("plz input x : ") plz input x : 12 >>> y = input("plz input y : ") plz input y : 13.5 >>> z = x + y >>> print z25.5
可以帶有負號輸入麼?這裏介紹float函數可以將帶有點的和全數字的字符串轉爲浮點型數據。
>>> z = raw_input('plz input a float: ') plz input a float: -12.45 >>> print z'-12.45' >>> w = float(z) >>> print w -12.45
我們在看看input函數的表現如何。
>>> x = input('plz input an int: ') plz input an int: 1234 >>> print x1234 >>> y = input('plz input a float: ') plz input a float: -9.8765 >>> print y -9.8765