目錄異常處理
異常的種類
異常處理
丟擲異常(基本沒用)
斷言(除錯用,現在基本上沒用)
檔案處理
先說一下可變和不可變資料型別,在原值的基礎上修改,id不變值改變了的就是可變資料型別;而值改變了id也變了,即重新申請乙個空間來放新值,這就是不可變資料型別。
普通的拷貝就等於賦值,就是把乙個變數值賦給另乙個變數名
l1=[1,2,3,[4,5,6]]
l2=l1
print(l1)
print(l2)
[1, 2, 3, [4, 5, 6], 7]
[1, 2, 3, [4, 5, 6], 7]
淺拷貝需要匯入乙個copy的模組,這種拷貝是新開了乙個列表的記憶體,但列表裡的元素指向的位址都還是一樣的,如果列表裡還有可變的資料型別的話,這個資料裡的不可變型別修改的話,新列表也會修改。
和淺拷貝一樣也需要匯入乙個copy模組,深拷貝的話是新列表存在乙個單獨的記憶體空間,其中元素指向的變數值位址也不相同,所以無論原列表怎麼變,新列表都不會變。
異常就是程式執行時發生錯誤的訊號,然後丟擲異常
# 語法錯誤示範一
if# 語法錯誤示範二
def test:
pass
# 語法錯誤示範三
class foo
pass
# 語法錯誤示範四
print(haha
# typeerror:int型別不可迭代
for i in 3:
pass
# valueerror
num=input(">>: ") #輸入hello
int(num)
# nameerror
aaa# indexerror
l=['egon','aa']
l[3]
# keyerror
dic=
dic['age']
# attributeerror
class foo:pass
foo.x
# zerodivisionerror:無法完成計算
res1=1/0
res2=1+'str'
age = 10
while true:
age = input('>>: ').strip()
if age.isdigit(): # 只有在age為字串形式的整數時,下列**才不會出錯,該條件是可預知的
age = int(age)
if age == age:
print('you got it')
break
>>: nick
>>: sdkf
>>: 2
>>: 10
you got it
如果錯誤無法預計則用到try..except
# 舉例
try:
f = [
'a',
'a',
'a',
'a',
'a',
'a',
'a',
]g = (line.strip() for line in f)
print(next(g))
print(next(g))
print(next(g))
print(next(g))
print(next(g))
except stopiteration:
f.close()
aaa
aa
用指定方法來處理異常s1 = 'hello'
try:
int(s1)
except indexerror as e:
print(e)
except keyerror as e:
print(e)
except valueerror as e:
print(e)
invalid literal for int() with base 10: 'hello'
萬能異常方法s1 = 'hello'
raise typeerror('丟擲異常,型別錯誤')
except exception as e:
print(e)
try:
assert 1 == 2
except exception as e:
print(e)
這裡只稍微扯一下,明後天會具體介紹。
用open來開啟檔案,這個方法裡有3個引數,第乙個是path路徑,第二個是mode操作方式,第三個encoding是編碼方式。
比如:
f=open('compare.py','w',encoding='utf-8')
f.write('s')
f.close()
這就是乙個檔案的寫入操作,注意寫入會覆蓋檔案之前的內容!!!
Python day9函式部分
函式的學習 函式對於一門程式語言來說挺重要的,尤其是c語言,是完全使用函式來編寫的 1.函式的定義 邏輯結構化和過程化的一種程式設計方法 def squre x 求乙個數的平方 return the square of x the function definitions函式的定義時加的注釋寫在這邊...
python day9 批量管理工具
python day9 批量管理工具 目錄檔案 python3 程式 root izwz9i5qxdafjn4npsy1a3z home tree python day9 python day9 bin aa cc init py main.py 主程式入口 conf accounts.cfg in...
python day40 正式學習
目錄執行緒定時器 程序池和執行緒池 import queue q queue.queue q.put 123 q.put 456 q.put 789 print q.get print q.get print q.get q.task done q.task done q.task done q.j...