Python 學習筆記(3)

2022-05-08 18:42:08 字數 4624 閱讀 7564

python 檔案i/o

讀取鍵盤輸入:

python提供了兩個內建函式從標準輸入讀入一行文字,預設的標準輸入是鍵盤:

1. raw_input

#

函式從標準輸入讀取乙個行,並返回乙個字串(去掉結尾的換行符)

str = raw_input("

請輸入:")

print ("

你輸入的內容是:

", str)

#結果:

請輸入:hello python!

你輸入的內容是: hello python!

注:python3以後的版本就將該函式刪除了(可能是和input太像了,input完全可以替代它)

2.input

input([prompt])函式和raw_input([prompt])函式基本類似
str = input("

請輸入:")

print

"你輸入的內容是:

", str

#input 可以接收乙個python表示式作為輸入,並將運算結果返回

#結果:

請輸入:[x*5 for x in range(2,10,2)]

你輸入的內容是: [10, 20, 30, 40]

把資料輸入到檔案中

fp = open('text.txt', 'a+')

print("helloworld", file=fp)

fp.close()

注意:要寫成file=fp 如果只寫fp會建立新檔案,但不會再檔案內輸入內容

引數型別:

b: 二進位制模式

+:開啟乙個檔案進行更新(可讀可寫)

r:以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式

a:開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入

write()方法

write()方法不會在字串的結尾新增換行符('\n'):

#

開啟乙個檔案

fo = open("

foo.txt

", "w"

)fo.write(

"www.runoob.com!\nvery good site!\n")

#關閉開啟的檔案

fo.close()

$ cat foo.txt

www.runoob.com!

very good site!

read()方法

#

在這裡,被傳遞的引數是要從已開啟檔案中讀取的位元組計數。該方法從檔案的開頭開始讀入,

#如果沒有傳入count,它會嘗試盡可能多地讀取更多的內容,很可能是直到檔案的末尾。

fo = open("

foo.txt

", "r+"

)str = fo.read(10)

print

"讀取的字串是 :

", str

讀取的字串是 : www.runoob

檔案定位

seek(offset [,from]):

offset:要移動的位元組數

#

開啟乙個檔案

fo = open("

foo.txt

", "r+"

)str = fo.read(10)

print

"讀取的字串是 :

", str #

查詢當前位置

position =fo.tell()

print

"當前檔案位置 :

", position #

把指標再次重新定位到檔案開頭

position =fo.seek(0, 0)

str = fo.read(10)

print

"重新讀取字串 :

", str

#關閉開啟的檔案

fo.close()

讀取的字串是 : www.runoob

當前檔案位置 : 10重新讀取字串 : www.runoob

python 異常處理

語法:

try

:《語句》 #

執行別的**

except

《名字》:

《語句》 #

如果在try部份引發了'name'異常

except

《名字》,《資料》:

《語句》 #

如果引發了'name'異常,獲得附加的資料

else

:《語句》 #

如果沒有異常發生

try的工作原理是,當開始乙個try語句後,python就在當前程式的上下文中作標記,這樣當異常出現時就可以回到這裡,try子句先執行,接下來會發生什麼依賴於執行時是否出現異常。

例如:

try

: fh = open("

testfile

", "w"

) fh.write(

"這是乙個測試檔案,用於測試異常!!")

except

ioerror:

print

"error: 沒有找到檔案或讀取檔案失敗

"else

:

print

"內容寫入檔案成功

"fh.close()

使用exception不帶任何異常型別

此時try-except語句捕獲所有發生的異常。

但這不是乙個很好的方式,我們不能通過該程式識別出具體的異常資訊。

try-fnally語句

try-finally 語句無論是否發生異常都將執行最後的**

try

: fh = open("

testfile

", "w"

) fh.write(

"這是乙個測試檔案,用於測試異常!!")

finally

:

print

"error: 沒有找到檔案或讀取檔案失敗

"

異常的引數

乙個異常可以帶上引數,可作為輸出的異常資訊引數。

#

定義函式

deftemp_convert(var):

try:

return

int(var)

except

valueerror, argument:

print

"引數沒有包含數字\n

", argument

#呼叫函式

temp_convert("

xyz");

$ python test.py 

引數沒有包含數字invalid literal forint()withbase10:'xyz'

觸發異常

raise[exception[,args [,traceback]]]

語句中 exception 是異常的型別(例如,nameerror)引數標準異常中任一種,args 是自已提供的異常引數。

最後乙個引數是可選的(在實踐中很少使用),如果存在,是跟蹤異常物件

#

定義函式

defmye( level ):

if level < 1:

raise exception,"

invalid level!"#

觸發異常後,後面的**就不會再執行

try:

mye(0)

#觸發異常

except

exception,err:

print 1,err

else

:

print 2$ python test.py

1 invalid level!

自定義異常

異常應該是典型的繼承自exception類,通過直接或間接的方式。

class

networkerror(exception):

def__init__

(self, arg):

self.args =arg

try:

raise networkerror("

bad hostname")

except

networkerror as e : #e 是用於建立networkerror類的例項 注:3.9版本後都改用as,之前版本可以用逗號,

print(e.args)

python學習筆記3

1 字串的格式化操作 format variable format 是格式的樣式,variable 是要被格式化的變數 format 有如下幾種形式 o 將數值轉換為八進位制 x 將數值轉換為十六進製制 d 整數轉換符號 s 字串轉換符號 如下 o 100 144 o 100 加入乙個 號可輸出標準...

python 學習筆記3

2014 10 23 三種內建的資料結構 列表 元組和字典 list len list list.sort 修改列表本身,而不是返回乙個修改後的列表 列表時可變的,字串不可變 for item in list 遍歷 del list 0 刪除專案,自動補齊。print語句的結尾的逗號消除列印的換行符...

Python學習筆記3

條件和迴圈語句 生成隨機數的函式,此處說明一下,python是通過乙個方程來產生隨機數的,所以這些隨機數並不是真正隨機的,產生他們的方式叫做偽隨機。載入模組,本人理解模組類似c裡的庫,模組 module 含有可供其他程式使用的 的檔案,這些模組通常是按照一定的相關性進行組織的,載入模組使用 impo...