零基础入门Python I/O:从print函数开始
導讀:計算機程序用于執行任務,是滿足人類需求的工具。有信息的輸入,程序才能接收指令、理解需求;有信息的輸出,運行結果才能被反饋給用戶。在編程中,信息輸入操作稱為Input,輸出操作稱為Output,統稱為Input/Output,簡寫為I/O。
相比其他語言,Python中的I/O操作更加簡單方便,通過簡單的指令就可以實現基本的輸入輸出。此外,I/O并不僅僅指信息鍵入和打印信息,還包括文件的輸入輸出。
作者:李明江 張良均 周東平 張尚佳
來源:大數據DT(ID:hzdashuju)
01 input與print
1. input
input函數在用于交互式的信息鍵入時,相當于一個容器,用戶從鍵盤輸入的信息先存放在容器中,再被變量引用。
input函數可以接納多種數據類型,包括number、str等基礎類型,及list、tuple、dict、set等復合類型。使用input函數時,可以在括號內添加str以提示輸入。需要注意的是,Python 3.x中的input函數將所有接收的數據都默認為str,如下所示。
輸入不同數據類型
輸出結果:
請輸入一個數字:1 #?輸入一個str,由Python默認類型 str1?=?input('請輸入一個字符串:')輸出結果:
請輸入一個字符串:1 #?輸入一個數字,并將其轉換為int類型 number2?=?int(input('請輸入一個數字:'))輸出結果:
請輸入一個數字:123 #?查看以上輸入的輸出結果類型 print('number1、str1和number2的類型分別為:\n',type(number1),?type(str1),?type(number2))????輸出結果:
number1、str1和number2的類型分別為: <class?'str'>?<class?'str'>?<class?'int'>????從輸出結果可知,在str1變量中,盡管輸入的不是str,也被默認為str。要得到需要的數據類型,必須做類型轉換。
2. print
給一個變量賦值后,如需查詢變量的內容,只需要鍵入變量名并按回車鍵即可,稱為表達式語句的輸出。使用print函數是更受歡迎的輸出方式,可以實現多樣化的輸出操作。
使用print函數進行輸出操作時,可以在函數的括號中插入str以向屏幕上輸出指定的文字,比如打印“hello,world!”的程序;要輸出被賦值的變量,則在print函數的括號中插入變量名即可。
print函數也可以接收多個str,需要用逗號隔開,print函數會依次打印每個str,遇到逗號則輸出一個空格,因此輸出的str是拼起來的。print函數也可以自動計算結果,運行“print(number1+number2)”語句,解釋器會自動計算出相加的結果后輸出。print函數的應用代碼如下所示。
print函數應用
輸出結果:
輸出結果:
100+200?=?300格式化輸出是計算機輸出中的一個重要概念,主要針對str。其運行機制為:使用占位符在str中進行占位,再用數值或字符替換占位符,重組str后輸出。
這種輸出方法主要是為了方便修改語句,減少編寫代碼的工作量,并且包含自動取位、轉換進制等功能。Python中的格式化輸出方法有兩種,即“%+格式符”的方法和format函數方法。
“%+格式符”的方法是一種較早的格式化輸出方法,使用方式是在百分號(%)后加上相應的格式符以占位,再進行替換和輸出。Python中的格式符如下所示。
Python格式符
str
%s:字符串(采用str函數的顯示)
%r:字符串(采用repr函數的顯示)
%c:單個字符
整數
%b:二進制整數
%d:十進制整數
%i:十進制整數
%o:八進制整數
%x:十六進制整數
float
%e:指數(基底寫為e)
%E:指數(基底寫為E)
%f:浮點數
%F:浮點數
%g:指數(e)或浮點數(根據顯示長度)
由此可知,Python中的格式符可分別用于str、整數和float輸出。使用“%+格式符”的方法進行格式化輸出,如下所示。
“%+格式符”格式化輸出
輸出結果:
我的名字叫作Zara,已經20歲了! #?用%d格式化16,用%o將十進制整數16用八進制數表示 print("%d?的八進制是?%o"%(16,16))輸出結果:
16?的八進制是?20 #?用%.3f將整數轉化為保留小數點后3位的float print("23?轉化為保留3位小數的浮點數%.3f"%(23))輸出結果:
23轉化為保留3位小數的浮點數23.000format函數是更為強大的格式化輸出工具,format函數收集位置參數和關鍵字參數的任意集合,使用它們的值替換str中的占位符。該方法使用大括號({})作為特殊字符代替%,{}中可以不帶參數、帶數字編號或帶關鍵字編號進行占位和替換,前兩種屬于位置替換方法,后一種屬于關鍵字替換方法。
format函數也支持格式符,如下所示。
format函數格式符
'c':字符。打印前將整數轉換成對應的Unicode字符串
'b':二進制。將數字以2為基數進行輸出
'o':八進制。將數字以8為基數進行輸出
'd':十進制。將數字以10為基數進行輸出
'x':十六進制。將數字以16為基數進行輸出,9以上的位數用小寫字母表示
'e':冪符號。用科學計數法打印數字。用'e'表示冪
'g':一般格式。將數值以fixed-point格式輸出,數值特別大時用冪形式打印
'n':數字。值為整數則等效于'd',為float則等效于'g'。
'%':百分數。數值乘以100后以fixed-point('f')格式打印,值后有一個百分號
使用format函數進行格式化輸出的基本操作,如下所示。
format函數格式化輸出
輸出結果:
我的名字叫作Zara,已經20歲了! #?format函數帶數字編號并打亂順序 print("我的名字叫作{1},已經{0}歲了!".format(18,?'Zara'))輸出結果:
我的名字叫作Zara,已經20歲了! #?foemat函數帶關鍵字參數 print("我的名字叫作{name},已經{age}歲了!".format(age=18,name='Zara'))輸出結果:
我的名字叫作Zara,已經20歲了! #?format函數格式化數字為二進制數 print("我的名字叫作{},已經{:b}歲了!".format('Zara',?18))輸出結果:
我的名字叫作Zara,已經10010歲了!02 文件I/O
1. open
內置函數open的作用是打開一個文件,創建一個file對象以進行調用。在打開文件的基礎上,后續的文件讀寫操作才可以實現。open函數的基本語法格式如下:
open(filename, mode)
open函數常用的參數及其說明如下所示。
open函數常用的參數及其說明
filename:接收文件名,表示文件名稱。無默認值
mode:接收模式名,表示文件打開模式。默認為只讀
filename表示包含要訪問的文件名稱。mode決定打開文件的模式,這個參數是非強制的,默認的文件訪問模式為只讀(r),其可取值如下所示。
文件訪問模式及其說明
r:以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式
rb:以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式
r+:打開一個文件用于讀寫。文件指針將會放在文件的開頭
rb+:以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭
w:打開一個文件只用于寫入。如果該文件已存在則將其覆蓋;如果該文件不存在,則創建新文件
wb:以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋;如果該文件不存在,則創建新文件
w+:打開一個文件用于讀寫。如果該文件已存在則將其覆蓋;如果該文件不存在,則創建新文件
wb+:以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋;如果該文件不存在,則創建新文件
a:打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾,也就是說,新的內容將會被寫到已有內容之后;如果該文件不存在,則創建新文件進行寫入
ab:以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾,也就是說,新的內容將會被寫到已有內容之后;如果該文件不存在,則創建新文件進行寫入
a+:打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾,文件打開時會是追加模式;如果該文件不存在,則創建新文件用于讀寫
ab+:以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾;如果該文件不存在,則創建新文件用于讀寫
2. read
在Python中,讀取文件的內容需要以只讀的模式先打開一個文件,可以用open函數傳入文件名和模式標識符,再用read函數讀取文件中的內容。read函數可以從打開的文件中一次性讀取全部內容,內容被讀取到內存并用一個str對象表示。read函數的基本語法格式如下:
f?=?open(filename,?mode) f.read(size)read函數常用的參數及其說明如下所示。
read函數常用的參數及其說明
size:接收number,表示讀取的字符數。默認為文件中所有字符
size表示要從文件中讀取的字節數,該方法從文件的開頭開始讀入,每調用一次就讀取size個字節的內容。如果沒有傳入size,程序會嘗試盡可能多地讀取內容,一直到文件的末尾。
使用read函數讀取test.txt文件,并打印,如下所示。
read函數讀取test.txt文件
輸出結果:
該文本中的內容是:Hello World!3. write
在Python中,寫入文件和讀出文件的操作方式是相似的:先調用open函數并傳入標識符‘w’或‘wb’,再使用write函數進行寫入。write函數的基本語法格式如下:
f?=?open(filename,?mode) f.write(str)write函數常用的參數及其說明如下所示。
write函數常用的參數及其說明
str:接收任意str,表示寫入的文本內容。默認為空
write函數可將任何str寫入打開的文件。需要注意,Python中的str可以是二進制數據,而不限于文字。要寫入str以外的內容,要先將需寫入的內容轉換成str。
使用write函數寫入文件的操作如下所示。
write函數寫入文件
輸出結果:
該文本中的內容是:?('http://www.tipdm.org', 14)4. close
close函數可以刷新緩存里任何還沒寫入的信息并關閉文件,關閉之后的文件便不能再進行寫入。使用完文件后應該關閉,關閉文件的本質是使文件指針與文件脫離,關閉后不再能通過該指針對原來與其聯系的文件進行操作。
如果文件使用完后不關閉,文件對象會一直占用操作系統的資源,并且,操作系統同一時間能打開的文件數量是有限的。寫入文件時,數據會占用操作系統的內存,待計算機空閑時再慢慢寫入,不調用close函數的后果是數據可能只寫一部分到磁盤中,其他的信息則丟失了。
close函數的基本語法格式如下:
fileObject.close()close函數常用的參數及其說明如下所示。
close函數常用的參數及其說明
fileObject:接收文件名,表示正在使用的文件對象。無默認值
本文代碼中,都需要在末尾使用close函數關閉文件,以保證信息的完整。
關于作者:李明江,資深大數據專家,貴州省計算機學會常務理事,黔南州大數據專家委員會委員,黔南州計算機學會會長,黔南州教育信息化建設專家庫專家,黔南民族師范學院計算機與信息學院院長,全國高校大數據教育聯盟理事。
張良均,資深大數據挖掘與分析專家、模式識別專家、AI技術專家。有10余年大數據挖掘與分析經驗,擅長Python、R、Hadoop、Matlab等技術實現的數據挖掘與分析,對機器學習等AI技術驅動的數據分析也有深入研究。
本文摘編自《Python3智能數據分析快速入門》,經出版方授權發布。
延伸閱讀《Python3智能數據分析快速入門》
點擊上圖了解及購買
轉載請聯系微信:DoctorData
推薦語:本書假設你有一定的數據分析基礎,但是沒有Python和AI基礎,為了幫助你快速掌握智能數據分析需要的技術和方法,書中有針對性地講解了Python和AI中必須要掌握的知識點,內容由淺入深,循序漸進。從環境配置、基本語法、基礎函數到第三方庫的安裝與使用,對各個操作步驟、函數、工具、代碼示例等的講解非常詳盡,確保所有滿足條件的讀者都能快速入門。
有話要說????
Q:?你常用哪些I/O函數?
歡迎留言與大家分享
猜你想看????
婚戀交友網站比相親更靠譜!幸福婚姻算法了解一下
自動駕駛、人工智能將把你的未來生活變成什么樣?
被新基建點名的大數據,有哪些書最值得讀?
為什么中文分詞比英文分詞更難?有哪些常用算法?(附代碼)
更多精彩????
在公眾號對話框輸入以下關鍵詞
查看更多優質內容!
PPT?|?讀書?|?書單?|?硬核?|?干貨?
大數據?|?揭秘?|?Python?|?可視化
AI?|?人工智能?|?5G?|?中臺
機器學習?|?深度學習?|?神經網絡
合伙人?|?1024?|?大神?|?數學
據統計,99%的大咖都完成了這個神操作
????
總結
以上是生活随笔為你收集整理的零基础入门Python I/O:从print函数开始的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Google大佬手把手教你从数据中挖掘价
- 下一篇: 移动互联网时代,你的个人信息正通过这12