1 格式化輸出
Python 輸出值的方式有兩種:表達式語句和 print 函數(檔案對象的輸出使用 write 方法,标準檔案輸出可以參考 sys.stdout ,詳細文檔)。
如果我們想要将輸出的值轉成字元串,可以使用 repr() 或 str() 函數來實作,其中 repr() 函數産生一個解釋器易讀的表達形式,str() 函數傳回一個使用者易讀的表達形式。
如果我們不隻是想列印使用空格分隔的值,而是想對輸出進行格式化控制,可以采用兩種方式:一種是自己處理整個字元串,另一種是采用 str.format() 方式,下面介紹下 str.format() 的使用。
1)基本使用
>>> print('{}: "{}!"'.format('Python', '人生苦短,我用python'))
Python: "人生苦短,我用python!"
括号及其裡面的字元 (稱作格式化字段) 将會被 format() 中的參數替換
2)在括号中的數字用于指向傳入對象在 format() 中的位置
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
>>> print('{0} 和 {1}'.format('Hello', 'Python'))
Hello 和 Python
>>> print('{0} {1}'.format('Hello', 'Python'))
Hello Python
>>> print('{1} {0}'.format('Hello', 'Python'))
Python Hello
3)如果在 format() 中使用了關鍵字參數,那麼它們的值會指向使用該名字的參數
>>> print('{name}: {site}'.format(name='Python', site='人生苦短,我用python'))
Python: 人生苦短,我用python
4)位置及關鍵字參數可以任意的結合
>>> print('電商網站 {0}, {1}, {other}。'.format('淘寶', '京東', other='拼多多'))
電商網站 淘寶, 京東, 拼多多。
5)用 ** 标志将字典以關鍵字參數的方式傳入
>>> "repr() shows quotes: {!a}; str() doesn't: {!s}".format('test1', 'test2')
"repr() shows quotes: 'test1'; str() doesn't: test2"
6)字段名後允許可選的 : 和格式指令
# 将 PI 轉為三位精度
>>> import math
>>> print('The value of PI is approximately {0:.3f}.'.format(math.pi))
The value of PI is approximately 3.142.
7)在字段後的 : 後面加一個整數會限定該字段的最小寬度
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
>>> table = {'Sjoerd': 123, 'Jack': 456, 'Dcab': 789}
>>> for name, phone in table.items():print('{0:10} ==> {1:10d}'.format(name, phone))
Jack ==> 456
Dcab ==> 789
Sjoerd ==> 123
8)如果有個很長的格式化字元串,不想分割它可以傳入一個字典,用中括号( [] )通路它的鍵;
>>> table = {'Sjoerd': 123, 'Jack': 456, 'Dcab': 789789789789}
>>> print('Jack: {0[Jack]:d}; Sjoerd: {0[Sjoerd]:d}; ' 'Dcab: {0[Dcab]:d}'.format(table))
Jack: 456; Sjoerd: 123; Dcab: 789789789789
還可以用 ** 标志将這個字典以關鍵字參數的方式傳入。
>>> table = {'Sjoerd': 123, 'Jack': 456, 'Dcab': 789789789789}
>>> print('Jack: {Jack:d}; Sjoerd: {Sjoerd:d}; Dcab: {Dcab:d}'.format(**table))
Jack: 456; Sjoerd: 123; Dcab: 789789789789
2 讀取鍵盤輸入
Python 提供了 input() 内置函數從标準輸入讀入一行文本,預設的标準輸入是鍵盤,input() 可以接收一個 Python 表達式作為輸入,并将運算結果傳回。示例如下:
>>> str = input("請輸入:");
>>> print ("輸入的内容是: ", str)
請輸入:Hello Python
你輸入的内容是: Hello Python
3 檔案讀寫
函數 open() 傳回檔案對象,通常的用法需要兩個參數:open(filename, mode)。
第一個參數 filename 是要通路的檔案名,第二個參數 mode 是描述如何使用該檔案(可取值主要包括:‘r’ 讀取檔案;‘w’ 隻是寫入檔案,已經存在的同名檔案将被删掉;‘a’ 打開檔案進行追加,自動添加到末尾;‘r+’ 打開檔案進行讀取和寫入;‘rb+’ 以二進制格式打開一個檔案用于讀寫…),mode 參數是可選的,預設為 ‘r’。
3.1 檔案對象方法
read()
要讀取檔案内容,調用 read(size) ,size為可選參數。
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
>>> f = open('tmp.txt', 'r')
>>> str = f.read(5)
>>> print(str)
>>> f.close()
Hello
readline()
讀取一行,換行符為 \n 。
>>> f = open('tmp.txt', 'r')
>>> str = f.readline()
>>> print(str)
>>> f.close()
readlines()
讀取檔案中包含的所有行,可設定可選參數 size 。
>>> f = open('tmp.txt', 'r')
>>> str = f.readlines(1)
>>> print(str)
>>> f.close()
['Hello Python']
write()
write(string) 将 string 的内容寫入檔案。
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
>>> f = open('tmp.txt', 'w')
>>> num = f.write('Hello Python')
>>> print(num)
>>> f.close()
12
seek()
seek(offset, from_what) 改變檔案目前的位置。offset 移動距離;from_what 起始位置,0 表示開頭,1 表示目前位置,2 表示結尾,預設值為 0 ,即開頭。
>>> f = open('tmp.txt', 'rb+')
>>> f.write(b'0123456789abcdef')
# 移動到檔案的第 6 個位元組
>>> f.seek(5)
>>> print(f.read())
b'56789abcdef'
tell()
tell() 傳回檔案對象目前所處的位置,它是從檔案開頭開始算起的位元組數。
>>> f = open('tmp.txt', 'r')
>>> f.seek(5)
>>> print(f.tell())
5
close()
當你處理完一個檔案後,調用 close() 來關閉檔案并釋放系統的資源。也可以使用 with 關鍵字處理檔案對象,實作檔案用完後自動關閉。
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
>>> with open('tmp.txt', 'r') as f:
... read_data = f.read()
>>> print(f.closed)
True
3.2 操作 json 格式資料
- json.dumps(obj) 序列化,obj 轉換為 json 格式的字元串;
- json.dump(obj, fp) 序列化,将 obj 轉換為 json 格式的字元串,将字元串寫入檔案;
>>> import json
>>> data = {'id':'1', 'name':'jhon', 'age':12}
>>> with open('t.json', 'w') as f:
... json.dump(data, f)
>>> with open("t.json", 'r') as f:
... d = json.load( f)
>>> print(d)
{'id': '1', 'name': 'jhon', 'age': 12}