【python快速入门】—唐宇迪课程笔记
1.python數值計算
注意type()——查看變量類型
類型轉換
tang2 = int(tang) type(int(tang)) int tang_str = 'tang' type(tang_str)str tang_str = '123' type(tang_str)strfloat(tang_str)123.0只有字符串內容是數值時,才能轉換為float。
轉換為字符串使用str()。
計算先后順序
- ()
- [**]
- */
- ±
基本數值操作
已經定義好的函數:
abs()—取絕對值;round()—四舍五入取整;min()/max()—最小/大值(逗號分隔);科學計數法—e相當于10 的幾次冪(eg:1.3e5==130000.0)
;16進制—0xFF==255
布爾類型(bool)
可以連續比較
tang = 3 1<tang <5True2.python字符串
用+號—連接字符串(注意結果無空格)
用*號—重復(注意結果無空格)
用len()—得出字符串大小
字符串操作
假設tang = ‘1 2 3 4 5’
切分:tang.split()—[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
? tang = tang.split(‘,’)—[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]
合并:與tang_str = ’ '合并
? tang_str.join(tang)—‘1 2 3 4 5’
替換:tang = ‘hello python’
tang.replace(‘python’,‘world’)—‘hello world’
? 注意此時:tang—‘hello python’,如果要替換后結果可以定義新變量 tang2 = tang.replace(‘python’,‘world’)
大寫:tang2.upper()
小寫:tang2.lower()
去掉空格:tang.strip()
去掉左邊空格:tang.lstrip()
去掉右邊空格:tang.rstrip()
打印字符串,可以使用.format()傳參
‘{} {} {}’.format(‘t’,‘y’,‘i’)—‘t y i’
定義順序—‘{2} {1} {0}’.format(‘t’,‘y’,‘i’)—‘i y t’
指定參數—‘{t} {y} {i}’.format(t = 10, y =5, i = 1)—‘10 5 1’
使用%方式:
tang = 't y i:' b = 456.0 c = 789 result = '%s %f %d' % (tang,b,c) 't y i: 456.000000 789'3.python索引
索引—注意索引不能越界
- 從前面是0開始
- 從后面是-1開始
tang = ‘tang yu di’
tang[0]—‘t’;tang[-1]—‘i’;tang[-5]—‘y’
切片:(:表示從哪到哪 左閉右開的區間)
tang[0:4]—‘tang’(4是空格,開區間不取);tang[5:]—‘yu di’;tang[-3:]—’ di’
全部:tang[:]—‘tang yu di’
隔幾個:tang[::2]—‘tn ud’
4.python List結構
列表
- 通過[]來創建一個list結構
- 里面放任何類型都可以的,沒有一個長度限制
tang = [1,‘tangyudi’,3.5];tang = list([1,2,3])
list操作
假設a = [123,456] b = [‘tang’,‘yudi’]
+:a + b—[123, 456, ‘tang’, ‘yudi’]
*:a * 3—[123, 456, 123, 456, 123, 456]
更改:a[0] = 789 a—[789, 456];a[:] = [‘tang’,‘yudi’] a—[‘tang’, ‘yudi’]
求長度:len()
假設 a = [1,2,3,4,5,6,7,8,9]
刪除:del a[0] a—[2, 3, 4, 5, 6, 7, 8, 9];del a[3:] a—[2, 3, 4]
判斷列表是否存在某元素:8 in a—True
list中也可以添加list(任何類型):a = [1,2,[3,4]];a[2][1]—4
記數:.count()—判斷列表中某元素有多少個
求索引:.index()—得出某元素的索引
列表添加
添加:.append()依次添加
插入:.insert(索引,元素)
移除:.remove(某元素)若元素有多個重復,從索引低的開始移除
彈出:.pop(索引)
排序:.sort()改變原始list;不改變原始list:t2=sorted(t);
倒序:.reverse()
5.python 字典
字典結構
定義:tang = {};tang = dict()
字典結構操作 key-value 沒有先后順序
tang[key] = value;
查找:tang[key];用key值索引
字典里可以嵌套字典:
tang = {} d1 = {'tang':123,'yudi':456} d2 = {'tang2':456,'yudi2':789} tang['test1'] = d1 tang['test2'] = d2 tang{'test1': {'tang': 123, 'yudi': 456}, 'test2': {'tang2': 456, 'yudi2': 789}}tang = dict([(‘tang’,123),(‘yudi’,456)])—{‘tang’: 123, ‘yudi’: 456}
改變value值:tang[‘tang’] += 1—{‘tang’: 124, ‘yudi’: 456}
get方法:tang.get(‘fengzi’,‘meiyou’)—‘meiyou’
彈出:tang.pop(‘tang’)—124
刪除:del tang[‘yudi’] tang—{}
更新:舊字典.update(新字典)
判斷字典中是否存在某key—key in 字典—true/false
調用key集—tang.keys()
調用value集—tang.values()
調用全部—tang.items()
6.python 集合—唯一性
會保留下來唯一的那些元素
tang = set([123,123,123,456,456,456,789]) tang—{123, 456, 789}
集合操作
a,b調換順序無影響
并集:a.union(b) ;a|b
交集:a.intersection(b);a&b
a,b調換順序結果不一樣
差集:a.difference(b);a - b;b-a
包含:b.issubset(a)—a包含b?;b <= a;b > a
添加元素:a.add(4);
更改集合:a.update([4,5,6])—增添沒有的元素
刪除元素:a.remove(1)
彈出元素:a.pop()—按照順序(從頭開始)
7.賦值機制
t = 1000 y = t id(t) 2683811812688 id(y) 2683811812688 t is y True y = 123456 id(y) 2683811812976 t is y False并且,在python中,如果定義兩個較大的數(數值相同),分配兩個不同的單元,小數值則分配到同一單元。—提高內存運行效率。
8.python—判斷結構
t = 50 if t >200:print ('200') elif t < 100:print ('100') else:print ('100-200')100注意:縮進
tang = {'t':123,'y':456} if 't' in tang:print ('ok')ok9.python—循環
while循環
t = 0 while t < 10:print (t)t += 1 0 1 2 3 4 5 6 7 8 9 ts = set(['tang','yu','di']) while ts:t = ts.pop()print (t) yu tang difor循環
t = [123,435,1234,513245,11243,1234,1234,534,346] for i in range(len(t)):print (t[i]) 123 435 1234 513245 11243 1234 1234 534 346 tang = [10,11,12,13,14,15] for i in tang:if i%2 == 0:print (i)else:continueprint (i) 10 10 12 12 14 1410.python 函數
def add_ab(a,b):return (a+b) tang = add_ab(3,5) tang8 def add_number(a,*args):#接收不限個數的參數b = 0for i in args:a += ib += areturn a,b a,b = add_number(1,2,3) print (a,b)6 9 def add_number2(a,**kwargs):#參數只能是鍵值對(字典)for arg,value in kwargs.items():print (arg,value) add_number2(1,x=2,y=3)x 2 y 311.python 包
腳本文件的執行
%%writefile tang.pytang_v = 10def tang_add(tang_list):tang_sum = 0for i in range(len(tang_list)):tang_sum += tang_list[i]return tang_sum tang_list = [1,2,3,4,5] print (tang_add(tang_list))Writing tang.py%run tang.py15print (tang.tang_v)—10;
更改模塊內變量:tang.tang_v = 100
調用:tang_list = [10,11,12] tang.tang_add(tang_list)—33
導入:import tang as tg 可以使用變量以及函數(tg.tang_v;tg.tang_add(tang_list))
—導入部分:from tang import tang_v,tang_add (tang_v;tang_add(tang_list))
—導入全部:from tang import * (tang_v;tang_add(tang_list))
12.異常處理模塊
捕捉異常
try:
模塊
except 錯誤名:
print(錯誤原因)
import mathfor i in range(10):try:input_number = input('write a number')if input_number[0] == 'q':breakresult = 1/math.log(float(input_number))#log a>0print (result)except ValueError:print ('ValueError: input must > 0') write a number4 0.7213475204444817 write a number0 ValueError: input must > 0 write a numberq import mathfor i in range(10):try:input_number = input('write a number')if input_number == 'q':breakresult = 1/math.log(float(input_number))#分母不為0print (result)except ValueError:print ('ValueError: input must > 0')except ZeroDivisionError:print ('log(value) must != 0')except Exception:print ('ubknow error') write a number2 1.4426950408889634 write a number3 0.9102392266268373 write a number-1 ValueError: input must > 0 write a number1 log(value) must != 0 write a numberq自定義異常
class TangError(ValueError):passcur_list = ['tang','yu','di'] while True:cur_input = input()#輸入if cur_input not in cur_list:raise TangError('Invalid input: %s' %cur_input)#提出一個錯誤 tang up --------------------------------------------------------------------------- TangError Traceback (most recent call last) <ipython-input-3-5fb5bf1bf40e> in <module>()6 cur_input = input()#輸入7 if cur_input not in cur_list: ----> 8 raise TangError('Invalid input: %s' %cur_input)#提出一個錯誤TangError: Invalid input: up關鍵字finally
無論try的模塊中有無異常,最后都可以打印出finally命令行
try:1/0 except:print ('==0') finally:print ('finally')==0 finally使python程序遇到某些危險的情況時可以提前終止
13.文件操作
%%writefile tang.txt hello python打開:txt = open(‘./tang.txt’)
閱讀:txt_read = txt.read()
單行讀:lines = txt.readlines()
關閉:txt.close()
寫:txt = open(‘tang_write.txt’,‘w’) ;txt.write(‘jin tian tian qi bu cuo’);txt.close() 注意‘w’模式會覆蓋原文—‘a’是追加模式
注意:
寫完之后必須關閉,未關閉可能沒寫上。
with open('tang_write.txt','w') as f:f.write('jin tian tian qi bu cuo')with方法可以不加close()
14.類:面向對象
class people:'幫助信息:XXXXXX'#所有實力都會共享number = 100#構造函數,初始化的方法,當創建一個類的時候,首先會調用它def __init__(self,name,age):#初始化self.name = nameself.age = agedef display(self):print ('number = :',people.number)def display_name(self):print (self.name) people.__doc__ '幫助信息:XXXXXX'調用類
p1 = people('tdi',30)p2 = people('python','40')p2.name 'python'p1.display() number = : 100修改:p2.name = ‘hello’
刪除:del p2.name
查看某個對象是否有某個屬性:hasattr(p1,‘name’)—True
得到某個對象的某個屬性:getattr(p1,‘name’)
設置某個對象的某個屬性:setattr(p1,‘name’,‘yTang’)
刪除某個對象的某個屬性:delattr(p1,‘name’)
繼承
class Parent: #定義父類number = 100def __init__(self):print ('調用父類構造函數')def parentM(self):print ('調用父類方法')def setAttr(self,attr):Parent.parentAttr = attrdef getAttr(self):print ('父類屬性:',Parent.parentAttr)def newM(self):print ('父類要被重新的方法')class child(Parent): #定義子類def __init__(self):print ('調用子類構造函數')def childM(self):print ('調用子類方法')def newM(self):print ('子類給它改掉了') c = child() c.childM() c.parentM() c.setAttr(100) c.getAttr() c.newM()調用子類構造函數 調用子類方法 調用父類方法 父類屬性: 100 子類給它改掉了15.時間—import time
當前時間:print (time.time())—一般使用兩個時間的差異值
易觀察的當前時間:print (time.localtime(time.time()))
time.struct_time(tm_year=2022, tm_mon=4, tm_mday=13, tm_hour=21, tm_min=21, tm_sec=21, tm_wday=2, tm_yday=103, tm_isdst=0)格式化時間類型
print (time.asctime(time.localtime(time.time()))) Wed Apr 13 21:23:03 2022print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())) 2022-04-13 21:23:00日歷:
import calendar print (calendar.month(2022,4)) #print (help(calendar.month))April 2022 Mo Tu We Th Fr Sa Su1 2 34 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30總結
以上是生活随笔為你收集整理的【python快速入门】—唐宇迪课程笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云计算-openstack简介
- 下一篇: 微信小程序上传的视频显示封面 我是阿里云