文章程式碼顯示

2017年8月17日 星期四

一起學 Python - 08 :print()函數深入解析以及使用open()函數讀取、輸出數據

還記得我們在前幾章都用使用到 print() 函數,在此章我們想多學習有關此函數的用法

最基本的列印字串
print( 'Hello world !' )

以及利用強制轉型的方式讓我們可以利用字符串併的方式 print 出數值
old = 20
print( " I'm " + str(old) + " years old.")











利用 Python 的 help 指令來針對 print函數進行更深一層的了解


















由此我們可以知道
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

原來 print()函數可以輸入的參數不只有一個,彼此以逗號隔開,也就是說賣蔥抓餅的阿姨還有隱藏指令(一起學 Python - 00 :Python安裝 實現簡單猜數字遊戲)。

第一個參數 value 為要 print 的值;後續的參數如 sep, end, file, flush 都是 print 函數預設的設定,也就是說若我們沒有特別的去更改(或沒有輸入),就會遵照預設的設定輸出。

依 help 內的解釋
sep=' '  代表在每個輸出值之間插入一個空格
end='\n' 代表 print 後預設換行
file=sys.stdout 代表預設為系統輸出(就是打印文字在交談式視窗 Python 3.3.2 Shell 的意思)
flush=False 代表著非即時更新(不常用,暫時略過)

在此我們利用一個簡單的範例來解釋四個値代表的意思

print(1,2,3,4)
print(1,2,3,4,sep='')

其結果如下












我們可以看出,當我們更改 sep 的預設值為'',也就是兩個單引號之中沒有空格的時候,四個數字就會相連在一起。而預設的 sep = ' ' 則會將四個數字之中插入空格。

接下來我們把程式碼換成
print(1,2,3,4)
print(1,2,3,4,end='\n\n')
print(1,2,3,4,end=' 句尾')














由此我們就可以理解,end 就是在每次print後在句尾的地方插入的字串

接著我們要介紹第三個參數,但在介紹這之前我們必須先理解另一個函數 open() 。對 open 函數進行 help 查詢。






































open() 函數用來將數據從檔案讀取,或是輸出成檔案使用。
首先我們試著讀取一個記事本內的內容。
路徑為 C:\Python33\open_read.txt 內容如圖所示



















接著我們試著讓 Python 讀取記事本內的數據資料
temp = open('C:\Python33\open_read.txt')
read = temp.read()
print(read)






















學會了將數據從檔案輸入到 Python後,我們學習如何將 Python 內的資料輸出成.txt檔
X = [ 10, 20, 30, 40 ]
print(X, file = open('C:\write_test.txt', 'w') )





由此篇的第一個程式碼 I'm 20 years old. 可以看的出來,當文字之間如果需要插入數值,除了需要將其轉為 str 字串外,還需將其分段。這造成使用上的麻煩,print() 函數的格式化輸出其作用使得我們在列印文字時更為彈性

number_int = 5
number_float = 3.141592
text = '格式化輸出範例'
print( "整數%d 浮點數%.2f %s " % (number_int, number_float, text) )

輸出結果為


重點在於第四行程式碼,我們可以將其分解成兩個部分並且以下圖加以解釋。

print( "  文字%d   文字%.2f    %s " % (變數1,變數2, ...., 變數n) )








如此一來就很清楚的知道,%d 對應到的是一個整數數據型態;%.2f 對應到的是一個浮點數數據型態,且數字2代表取值到小數點後第二位;%s對應到的是一個字串,中間的%是用來區隔開左右兩邊使用。

更進階簡潔的用法可以用大括弧配合 .format 來使用,如下
print('{}以及{},{}以及{}'.format(1,2,'3',4.01))











透過一連串的 print 學習,就能夠將數據的可讀性大大提升,而不會總是一堆數字了

↓↓↓ 連結到部落格方針與索引 ↓↓↓

Blog 使用方針與索引