Python兩種輸出值的方式,表達式語句和print()函數。
第三種方式是使用文件對象的write()方法,標准輸出文件可以用sys.stdout的引用。
如果你希望輸出的形式更加多樣,可以使用str.fomat()函數來格式化輸出值。
如果你希望將輸出的值轉化成字符串,可以使用repr()和str()函數來實現。
str():函數返回一個用戶易讀的表達式
repr():產生一個解釋器易讀的表達形式。
這里有兩種方式輸出一個平方和立方的表:
注意:在第一個例子種,每個列間的空格由print添加。
這個例子展示了字符串對象的rjust()方法,它可以將字符串靠右,並在左邊填充空格。
還有類似的方法,如ljust()和center()。這些方法並不會寫任何東西,他們僅僅返回新的字符串。
還有一個zfill(),它會在數字的左邊填充0,如下所示:
str.format()的基本用法如下:
print(’{}網址: “{}!“’.format(‘菜鳥教程’,‘www.runoob.com’))
菜鳥教程網址:”www.runoob.com”
括號及其里面的字符(俗稱格式化字符)將會被format()中的參數替換。
在括號中的數字用於指向傳入對象在format()中的位置
如果format()中使用了關鍵字參數,那么他們的值會指向使用該名字的參數。
位置和關鍵字參數可以任意結合:
!a(使用ascii()),!s(使用str())和!r(使用repr())可以用於格式化某個值之前對其進行轉化:
可選項: 和格式標識符可以跟着字段名。這允許對值進行更好的格式化。
在 : 后傳入一個整數,可以保證該域至少有這么多寬度。用於美化表格時很有用:
舊式字符串格式化:
%操作符也可以實現字符串格式化它將左邊參數作為類是sprintf()式的格式化字符串,而將右邊的代入,然后返回格式化后的字符串。
因為str.format()比較新的緣故,大多數python仍然使用%操作符,但是因為這種舊時的格式化最總會從該語言中移除,應該更多的使用str.format()
讀取鍵盤輸入
python提供了input()內置函數從標准輸入讀入一行文本,默認的標准輸入是鍵盤。
input可以接受一個Python表達式作為輸入,然后從運算結果返回。
讀和寫文件
open()將會返回一個file文件,基本語法格式如下:
open(filename,mode)
filename:包含了你要訪問的文件名的字符串值。
mode:決定了打開文件的模式:只讀,寫入,追加等。
不同模式打開文件的文件完全列表:
模式 |
描述 |
r |
以只讀方式打開文件。文件的指針將會放在文件的開頭,這是默認模式 |
rb |
以二進制格式打開一個文件用於只讀,文件指針將會放在文件的開頭 |
r+ |
打開一個文件用於讀寫。文件指針將會放在文件的開頭 |
rb+ |
以二進制格式打開一個文件用於讀寫,文件指針將會放在文件的開頭 |
w |
打開一個文件只用於寫入如果該文件 |
wb |
以二進制格式打開一個文件用於讀寫,如果該文件已存在則打開文件,並且從頭開始編輯,即原有內容會被刪除,如果該文件不存在則創建新文件。 |
a |
打開一個文件用於追加,如果該文件已存在,文件指針將會放在文件的結尾。也就是說新的內容會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。 |
ab |
以二進制格式打開一個文件用於追加如果該文件已存在,文件指針將會放在文件的結尾。也就是說新的內容將會被寫入到已有內容之后如果該文件不存在,創建新文件進行讀寫。 |
a+ |
打開一個文件用於讀寫如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式,如果該文件不存在,創建新文件用於讀寫。 |
ab+ |
以為禁止格式打開一個文件用於追加,如果該文件已存在。如果文件已存在,文件指針會放在文件結尾,如果該文件不存在,創建新文件用於讀寫。 |
模式 |
r |
r+ |
w |
w+ |
a |
a+ |
讀 |
+ |
+ |
|
+ |
|
+ |
寫 |
|
+ |
+ |
+ |
+ |
+ |
創建 |
|
|
+ |
+ |
+ |
+ |
覆蓋 |
|
|
+ |
+ |
|
|
指針在開始 |
+ |
|
+ |
+ |
|
|
指針在結尾 |
|
+ |
|
|
+ |
+ |
以下實例將字符串傳入到foo.txt
文件對象的方法
f.read()
為了讀取一個文件的內容,調用f.read(size),這將讀取一定數目的數據,然后作為字符串或者字節對象返回。
size是一個可選的數字類型的參數。當size被忽略了或為負時,那么該文件的所有內容都將被讀取並且返回。
f.readline()
該函數會從一個文件中讀取單獨的一行換行符為’\n’。f.readline()如果返回一個空字符串,說明已經讀取到最后一行。
f.readlines():
該函數會返回文件所包含的所有行。
如果參數可選參數sizehint,則讀取指定長度的字節,並且將這些字節按行分隔。
另一種方式迭代一個文件對象然后讀取每行。
這個方法雖然很簡單,但是沒有提供一個很好的控制,因為兩者的處理機制不同
f.write()
f.write(string)將string寫入到文件中,然后返回寫入的字符數。
如果要寫入的東西不是字符串的話,那么需要先將其轉換成字符串。
f.tell()
該函數返回文件對象當前所處的位置,它是從文件開頭開始算起的字節數
f.seek()
如果要該改變文件當前的位置,可以使用f.seek(offset,from_what)函數。
from_what的值,如果是0表示開頭,如果是1表示當前位置,2表示文件的結尾。
seek(x,0):從起始位置即文件首行首字符開始移動x個字符。
seek(x,1):表示從當前位置往后移動x個字符。
seek(-x,2):表示從文件的結尾往前移動x個字符。
from_what值為默認為0,即文件開頭
f.close()
在文本文件中(那些打開文件的模式下沒有b的),只會想相對於文件起始位置進行定位。
當你處理完一個文件后,調用f.close()來關閉文件並釋放系統資源,如果嘗試再調用該文件,則會拋出異常。
當處理一個文件對象時,使用with關鍵字也是非常好的方法。在結束時他會幫助你正確的關閉文件,並且寫起來也要比try-finally語句塊要簡短。
格式化輸出:
1.整數的輸出
分別輸出八進制十進制和十六進制。
2.浮點數輸出
%f保留小數點后面六位有效數字float
%e保留小數點后六位有效數字
%g在保證六位有效數字前提下,使用小數方法,否則就使用科學記數法
1)默認保留6位小數
2)娶一位小數1.1
3)默認六位小數,用科學記數法
4)去三位小數,用科學記數法
5)默認六位有效數字
6)取七位有效數字
7)取2位有效數字
3.字符串輸出
%s字符串輸出string
%10s 占位符10位
%-10s 左對齊占位符10位
%.2s 截取2位字符串
%10.2s 10位占位符,截取兩位字符串
1) 字符串輸出hello world
2) 右對齊,取20位,不夠則補位
3) 左對齊,取20位,不夠則部位
4) 取兩位he
5) 右對齊取兩位
6) 左對齊取兩位