Python的學習心得
首先很慶幸自己選到了這門個性化選修課,可能是我個人比較認為這門課程所用的語言很特別很奇妙,老師也很有趣,能讓我們更好的了解Python這門課程真正的用途。在學習Python這門課程的這段時間以來,並且自己也能認識並且學習到很多知識,以下就是對這門課程所做的總結:
Python是一種高級動態,完全面向對象的語言,方便快捷。運行程序時,打個比方,計算圓周率類的高級算術題 只要import math math.sqrt()就可以輕松的計算出圓周率,Python就類似於一個超級計算機。
學習的知識點如下:
1、 整型int與浮點型float:可以進行基本的運算 如5*7=35 、7/2=3.5、7%3=1等 一些相關的數學函數類似於sin之類都在math模塊中
a = [1,True,‘ab‘] a + ["Hello"] a + [False] a + [False] print(len(a)) print(a[1:3]) print(a[0:3:2]) print(a[::-1]) a+a
2、復數計算與邏輯值:復數的與或非()相關的都可以很快捷的運算出結果 邏輯值如1>2為false、 bool(999)為true
3、 字符串的相關操作:+連接、 *復制、len長度、[start:end:step]用來提取一部分和以及一些相關高級操作 如下圖(含例):
#字符串操作 a,b = ‘abc‘,‘xyz‘ print(‘a‘ in a) print(ord(a[0])) print(chr(65)) print(r‘南工院‘) print(‘\u4e2d\u6587‘)
4、.列表與元組:列表可以增加、刪除、替換和重排的作用和一些切片拆分的操作 如下圖:
#List列表 a=[1,2,3,4] b = a b[1] = True print(a) #列表元組的基本操作 # + * len() [] in a=[1,2,3] a+[4] a*2 len(a) 2 in a #列表元素的高級操作 mylist=[1,2,3,4,5] mylist[1:4] mylist[2:5] mylist[-3::-1] mylist[::2] #切片 s=‘abcdefg12345‘ print(s[3:9]) print(s[5:]) print(s[-1:-6:-1]) print(s[:10:2]) #拆分 t=‘Mike and Tom‘ print(t.split(‘ ‘))
5、range函數:是連續序列生成器
#range函數 list(range(10)) list(range(5,10)) range(0,10) tuple(range(10))
6、集合set:集合是不重復元素的無序組合、用set可以創建空集也可用set從其他序列轉換生成集合 如下圖
#set集合 #不重復元素的無序組合 a=[1,2,3,4,3,2,1] b=set(a) print(a) print(b) #upper/lower/swapcase修改大小寫 print(t.upper()) print(t.lower()) print(t.swapcase())
7、字典dict:是通過key值來索引values元素 如下圖
mydict={1:‘Mon‘,‘linel‘:3332} mydict[‘Mon‘]=3 ‘linel‘ in mydict mydict.keys() mydict.values() mydict.items()
8、運算表達式,函數調用如 import math /n math.sqrt 和賦值 如a=3 是講3賦值給a這個邏輯
9、if條件語句:包含elif或多條elif語句和一條else語句組成 while語句是條件循環語句 其中break語句是直接跳出循環 如下圖
#條件if #elif<邏輯條件>:可以多個elif a=12 if a>10: print("Great!") elif a>6: print("Middle!") else: print("Low!") #while循環 numbers=[12,37,5,42,8,3] even = [] odd = [] while len(numbers) > 0: number = numbers.pop() if(number % 2 == 0): even.append(number) else: odd.append(number) print(‘even:‘,even) print(‘odd:‘,odd)
10、函數function :定義函數為def語句 調用函數為<函數名>(<參數>) 相關例子如下圖:
def sum_list(alist): #定義一個帶參數的函數 sum_temp = 0 for i in alist: sum_temp += i return sum_temp #函數返回值 print(sum_list) #查看函數對象sum_List my_list = [23,45,67,89,100] #調用函數,講返回值賦值給my_sum my_sum = sum_list(my_list) print("sum of my List;%d" % (my_sum,))
def func(n): total = 1 for i in range(1, n+1): total = total+1 return total
def sum(n): total = 0 for i in range(1,n + 1): total += func(i) print(sum) sum(3)
def func_test(key1,key2,key3=23): print("k1=%s,k2=%s,k3=%s" % (key1,key2,key3)) print("====fun_test") func_test(‘v1‘,‘v2‘) func_test(‘ab‘,‘cd‘,768) func_test(key2=‘kk‘,key1=‘k‘)
11、參數 及位置參數
#參數的默認值 def thank_you(name=‘everyone‘): print(‘You are doing good work ,%s!‘ %name) thank_you() thank_you(‘張三‘)
#位置參數 def desc_person(first_name,last_name,age): print("First name: %s" % first_name.title()) print("Last name: %s" % last_name.title()) print("Age: %d" % age) desc_person(‘brain‘,‘kernighan‘,30) desc_person(age=20,first_name=‘zhang‘,last_name=‘hai‘)
#混合位置和關鍵字參數 def desc_person(first_name,last_name,age=None,favorite_language=None): print("First name: %s" % first_name.title()) print("Last name: %s" % last_name.title()) if age: print("Age :%d" % age) if favorite_language: print("Favorite language : %s" % favorite_language) desc_person(‘brian‘,‘kernighan‘,favorite_language=‘C‘) desc_person(‘ken‘,‘thompson‘,age=22)
#接受任意數量的參數 def example_function(num_1,num_2,*nums): sum = num_1+num_2 #Then add any other numbers that were sent. for num in nums: sum = sum + num # Print the results. print("The sum of your numbers is %d." % sum) example_function(1,2) example_function(1,2,3) example_function(1,2,3,4) example_function(1,2,3,4,5)
12、.map函數:需要對列表中每個元素做一個相同的處理,得到新列表
#map def add(a,b): return a + b lst = [1,2,3,4,5] print(map (add,lst,lst)) print(list(map(add,lst,lst))) #filter def is_even(x): return x % 2 == 0 lst = [1,2,3,4,5] print(list(filter(is_even,lst))) #reduce函數對參數進行累積 from functools import reduce def myadd(x , y): return x + y lst = [1,2,3,4,5] sum = reduce(myadd,lst) print(sum)
13、 匿名函數lambda:可以返回一個匿名函數 表達式為:lambda<參數表>:<表達式>
#lambda函數(匿名函數) answer = lambda x:x**2 print(answer(5)) #map(),filter() reduce()結合lambda表達式 print(list(map( lambda x: x+x, [y for y in range(10)]))) print(list(map( lambda a, b: a+b,[x for x in range(10)],[y for y in range(10)]))) print(list(filter( lambda a: a & 1 ==0 , [x for x in range(10)]))) print(reduce(lambda x,y : x*y , [a for a in range(1,10)]))
14、time()函數
#獲取當前的時間戳 time.time() localtime = time.localtime(time.time()) print("本地時間為:",localtime) #格式化時間 localtime = time.asctime(time.localtime(time.time())) print("本地時間為:",localtime) print(time.s)
15、面向對象
#力 class Force: def __init__(self, x, y): #x,y方向分量 self.fx, self.fy =x,y def show(self): #打印出力的值 print("Force<%s,%s>" % (self.fx, self.fy)) def add(self,force2): #與另一個力合成 x = self.fx + force2.fx y = self.fy + force2.fy return Force(x,y) #類定義中的特殊方法 def __str__(self): return ‘Force<%r, %r>‘ % (self.x, self.y) def __mul__(sel,n): x, y = self.x * n, self.y *n return Force(x,y) def __add__(self, other): x ,y = self.x + other.x, self.y + other.y return Force(x, y) def __eq__(self, other): return(self.x == other.x) and (self.y == other.y) def __repr__(self): return ‘Force({0.x!r},{0.y!r})‘.format(self) #生成一個力對象 f1 = Force(0,1) f1.show() #生成另一個力對象 f2 = Force(3,4) #合成為新的力 f3 = f1.add(f2) f3.show()
class Student: def __init__(self, name, grade): self.name, self.grade = name, grade #內置sort函數只引用<比較符來判斷前後 def __lt__(self, other): #成績比other高的,排在他前面 return self.grade > other.grade #Student的易讀字符串表示 def __str__(self): return "(%s,%d)" % (self.name, self.grade) #Student的正式字符串表示,我們讓它跟易讀表示相同 __repr__=__str__ #構造一個Python list對象 s = list() #添加到student對象到list中 s.append(Student("Jack",80)) s.append(Student("Jane",75)) s.append(Student("Smith",82)) s.append(Student("Cook",90)) s.append(Student("Tom",70)) print("Original:", s) #對list進行排序,註意這是內置sort方法 s.sort() #查看結果,已經按照成績排好序 print("Sorted:",s)
class Car: def __init__(self, name): self.name = name; self.remain_mile = 0 def fill_fule(self, miles): self.remain_mile = miles def run(self, miles): print (self.name,end=‘:‘) if self.remain_mile >= miles: self.remain_mile -= miles print("run %d miles!" % (miles,)) else: print("fuel out!") class GasCar(Car): def fill_fuel(self,gas): #加汽油gas升 self.remain_mile = gas * 6.0 #每升跑6英裏 class ElecCar(Car): def fill_fuel(self, power): #充電power度 self.remain_mile = power * 3.0 #每度電3英裏 gcar=GasCar("BMW") gcar.fill_fuel(50.0) gcar.run(200.0) ecar=ElecCar("Tesla") ecar.fill_fuel(60.0) ecar.run(200.0)
try: print(‘try...‘) r = 10 / ‘xyz‘ print(‘result:‘,r) except TypeError as e: print(‘TypeError:‘,e) except ZeroDivisionError as e: print(‘no error!‘) else: print(‘no error!‘) finally: print(‘finally...‘) print(‘END‘)
以上就是我對Python這門課知識點的總結和理解,以後也會學習更多這方面的相關的來豐富自己。
Python的學習心得