1. 程式人生 > >Python的學習心得

Python的學習心得

基本操作 運算表達式 全面 數量 方向 bool 個性 amp 邏輯

首先很慶幸自己選到了這門個性化選修課,可能是我個人比較認為這門課程所用的語言很特別很奇妙,老師也很有趣,能讓我們更好的了解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的學習心得