《Python編程:從入門到實踐》語法知識點總結 這一篇就夠了

《Python編程:從入門到實踐》語法知識點總結

友情提醒:本文中函數方法表格初學者不必全部記下來,只需要保存圖片或者收藏本文,使用時自己方便查詢即可。
本文同樣有關於Python語法的細節問題,可以用來查漏補缺。
本文更加適合大一剛學習完C語言,想要學習Python的同學。

第二章:變量和簡單的數據類型

  1. python可以直接使用變量而不用聲明

    message="hello!"
    print(message)
  2. 使用方法修改字符串的大小寫

    name="hello python"
    print(name.title())		#title()以首字母大寫的方式顯示每個單詞
    name="Hello Python"
    print(name.upper())		#upper()將字符串改爲全部大寫
    print(name.lower())		#lower()將字符串改爲全部小寫
    Hello Python
    HELLO PYTHON
    hello python
  3. 合併(拼接)字符串

    first_name="hello"
    second_name="python"
    full_name=first_name+" "+second_name
    print(full_name)
    print(first_name+" "+second_name)
    hello python
    hello python
  4. 刪除空白

    name="python "
    print(name.rstrip())	#rstrip()只是暫時刪除字符串末尾的空白
    print(name)				#輸出字符串末尾仍有空格
    name=name.rstrip()		#將刪除操作結果存回到變量中可永久刪除空白
    print(name)				#輸出字符串末尾無空格
    name=" python "
    print(name.lstrip())	#刪除字符串開頭的空白
    print(name.strip())		#刪除字符串兩端的空白
  5. **爲乘方運算

  6. 使用函數str()避免類型錯誤:將非字符串值表示爲字符串

    age=23					#錯誤代碼
    message="happy "+age+"rd birthday"
    print(message)
    age=23					#正確代碼
    message="happy "+str(age)+"rd birthday"
    print(message)

第三章:列表簡介

  1. 列表由一系列按特定順序排列的元素組成。其中的元素之間可以沒有任何關係。在python中用[ ]來表示列表,並用逗號分隔其中的元素

    cars=["car1","car2","car3"]
    print(cars)
    print(cars[0])
    cars[0]="yeah"
    print(cars[0])
    cars.append("car4")			#在列表末尾添加元素
    print(cars)
    ["car1","car2","car3"]		#輸出列表,包括方括號
    car1						#只返回元素
    yeah
    ["yeah","car2","car3","car4"]

    方法append()可以輕鬆地創建動態列表。例如先創建一個空列表,再使用append()添加元素。

  2. 使用方法insert()可在列表的任何位置添加新元素。爲此需要指定新元素的索引和值。

    cars=["car1","car2","car3"]
    cars.insert(0,car0)
    print(cars)
    ["car0","car1","car2","car3"]		#將列表中既有的每個元素向右移一位
  3. 使用del語句刪除元素

    cars=["car1","car2","car3"]
    print(cars)
    del cars[0]
    print(cars)
    ["car1","car2","car3"]
    ["car2","car3"]
  4. 使用方法pop()刪除元素,並能夠接着使用它

    cars=["car1","car2","car3","car4"]
    car=cars.pop()		#刪除末尾元素
    car=cars.pop(0)		#指定要刪除元素的索引刪除元素
    car="car3"
    cars.remove(ca0r)	#只知道要刪除元素的值,而不知道其位置

    方法remove()只刪除第一個指定的值。如果要刪除的值再列表中出現多次,就需要循環判斷是否刪除了所有這樣的值。

  5. 使用sort()對列表進行永久性排序

    sort()					#按照字母順序永久排序
    sort(reverse=True)		#按照與字母順序相反的順序永久排序
  6. 使用sorted()對列表進行臨時排序

    sorted()					#按照字母順序臨時排序
    sorted(reverse=True)		#按照與字母順序相反的順序臨時排序
  7. 使用方法reverse()永久性反轉列表元素的排列順序

    cars=["car1","car2","car3","car4"]
    print(cars)
    cars.reverse()
    print(cars)
    ["car1","car2","car3","car4"]
    ["car4","car3","car2","car1"]
  8. 使用len()確定列表長度

  9. 列表索引

    cars=["car1","car2","car3","car4"]
    print(cars[-1])
    car4
  10. 列表函數方法在這裏插入圖片描述

第四章:操作列表

  1. 遍歷整個列表

    cars=["car1","car2","car3","car4"]
    for car in cars:
    	print(car)
    car1
    car2
    car3
    car4
  2. 創建數值列表

    1. 使用函數range()

      for value in range(1,5)
      	print(value)
      1
      2
      3
      4
    2. 要創建數字列表,可使用函數list()將range()的結果直接轉換爲列表

      numbers=list(range(1,6))
      print(number)
      [1,2,3,4,5]
    3. 使用函數range()時還可以指定步長

      even_numbers=list(range(2,11,2))	#打印1~10內的偶數
      print(even_numbers)
  3. 對數字列表執行簡單的統計計算

    numbers=[1,2,3,4,5,6,7,8,9]
    print(min(numbers))
    print(max(numbers))
    print(sum(numbers))
  4. 列表解析

    numbers=[value**2 for value in range(1,11)]		#注意for循環無冒號
    [1,4,9,16,25,36,49,64,81,100]
  5. 切片
    在這裏插入圖片描述

    cars=["car1","car2","car3","car4","car5","car6"]
    print(cars[0:3])
    print(cars[:3])		#如果沒有指定第一個索引,從列表開頭開始
    print(cars[3:])		#如果沒有指定第二個索引,到列表末尾終止
    print(cars[-3:])
    my_cars=cars[:]		#複製列表
    my_cars=cars		#這樣複製列表錯誤!!!
    ["car1","car2","car3"]
    ["car1","car2","car3"]
    ["car4","car5","car6"]
    ["car4","car5","car6"]
  6. 元素值不可變的列表稱爲元組:使用圓括號標識
    在這裏插入圖片描述

  7. 雖然不能修改元組的元素,但可以給存儲元組的變量賦值

第五章:if語句

  1. age=20
    if age==20 :
    	print("yeah")
  2. 使用and(相當於C++中的 && )和or(相當於C++中的 || )檢查多個條件
    在這裏插入圖片描述

  3. 要判斷特定的值是否已包含在列表中,可使用關鍵字in

  4. 要判斷特定的值是否不包含在列表中,可使用關鍵字not in
    在這裏插入圖片描述

  5. 布爾表達式的值要麼爲True,要麼爲False

    hello=Ture
    hello=False
  6. if - elif- else結構

  7. 判斷語句中列表爲空時返回False

第六章:字典

  1. 字典用放在花括號{}中的一系列鍵值對錶示

  2. cars={"car1":"green"}
    print(cars[car1])
    cars["car2"]="red"
    print(cars)
    cars["car2"]="black"
    print(cars[car2])
    del cars["car2"]
    print(cars)
    green
    {"car1":"green","car2":"red"}
    black
    {"car1":"green"}
  3. cars={"car1":"green","car2":"red"}
    for key,value in cars.items():			#遍歷所有的鍵值對
    	print(key+' '+value)
    for key in cars.keys():					#提取鍵到key中
    	print(key)
    for key in cars:						#等價於for key in cars.keys():	
    	print(key)
    for value in cars.values():
    	print(value)

    方法items()返回一個鍵值對列表

    方法keys()並非只能用於遍歷,實際上,它返回一個列表,其中包含字典中的所有鍵

    方法value()返回一個值列表

  4. 要以特定的順序返回元素,一種辦法是在for循環中對返回的鍵進行排序。爲此,可使用函數sorted()來獲得按特定順序排序的鍵列表的副本

  5. 集合(set)類似於列表,但每一個元素都是獨一無二的

    cars={"car1":"green","car2":"red""car3":"red"}
    for car in set(cars.values())
    	print(car)
    green
    red
  6. 字典中可以嵌套列表,列表中也可以嵌套字典,字典中也可以嵌套字典在這裏插入圖片描述

  7. 字典函數方法在這裏插入圖片描述

第七章:用戶輸入和while循環

  1. input()函數:將用戶輸入解讀爲字符串

    message=input("Tell me something:")		
    #先打印Tell me something:,然後將輸入存儲在變量message中
    enquiry=Tell me something
    message=input(enquiry)
  2. 函數int()將數字的字符串轉換爲數值表示

  3. 讓用戶選擇何時退出

    message=""					#將變量message初始值設置爲空字符串
    while message!="quit":
    	message=input()
    	print(message)
  4. 使用標誌

    active=True
    while active:
    	message=input()
    	if message == "quit":
    		active=False
    	else:
    		print(message)
  5. 使用break退出循環,在循環中使用continue

  6. Ctrl+C退出無限循環

  7. 在for循環中不應修改列表,否則將導致難以跟蹤其中元素
    enumerate()函數講解在這裏插入圖片描述

  8. 要在遍歷列表的同時對其進行修改,可使用while循環

第八章:函數

  1. 定義函數

    def greet_user():
    	print("Hello")
  2. 關鍵字實參

    def describe_pet(animal_type,pet_name):
    	print(animal_type+pet_name)
    describe_pet(animal_type="dog",pet_name="wct")	#與下面一行函數調用等效
    describe_pet(pet_name="wct",animal_type="dog")
  3. 編寫函數時,可給每個形參指定默認值

    def describe_pet(animal_type,pet_name="wct"):
    	print(animal_type+pet_name)
    describe_pet(animal_type="dog")					#與下面一行函數調用等效
    describe_pet("dog")

    使用默認值時,在形參列表中必須先列出沒有默認值的形參,在列出有默認值的實參

  4. 返回使用return。函數可以返回任何類型的值,包括列表和字典等

    def name(first_name,last_name):
    	person={"first":full_name,"last":last_name}
    	return person
  5. 讓實參變成可選的

    def name(first_name,middle_name,last_name):
    	full_name=first_name+" "+middle_name+" "last_name
    	return full_name

    爲了讓name()在沒有提供中間名時仍然可行,可給實參middle_name指定一個默認值——空字符串,並將其移動到形參列表的末尾:

    def name(first_name,last_name,middle_name=""):
    	full_name=first_name+" "+middle_name+" "last_name
    	return full_name
  6. 禁止函數修改列表

    function_name(list_name[:])

    切片表示法[:]創建列表的副本

  7. 傳遞任意數量的實參

    def make_pizza(*toppings):
    	print(toppings)
    make_pizza("a","b","c")
    ("a","b","c")

    形參名*toppings中的星號讓Python創建一個名爲toppings的空元組,並將收到的所有值都封裝到這個元組中。

  8. 結合使用位置實參和任意數量形參

    如果要讓函數接受不同類型的實參,必須在函數定義中將接納任意數量實參的形參放在最後。

    Python先匹配位置實參和關鍵字實參,再將剩下的實參都收集到最後一個形參中。

    def make_pizza(size,*toppings)
  9. 使用任意數量的關鍵字實參

    def build_profile(first,last,**user_info):
    	profile={}
    	profile["first_name"]=first
    	profile["last_name"]=last
    	for key,value in user_info.items():
    		profile[key]=value
    	return profile
    user_profile=build_profile("albert","einstein",
    							location="princeton"
    							field="physics")
    print(user_profile)

    形參**user_info中的兩個星號讓Python創建一個名爲user_info的空字典,並將收到的所有名稱值對都封裝到這個字典中。

  10. import語句允許在當前運行的程序文件中使用模塊中的代碼。模塊是拓展名爲.py的文件。

    import moudle_name					#導入整個模塊
    moudle_name.function_name()
    
    from moudle_name import function_name			#導入模塊中的特定函數
    from moudle_name import function_0,function_1	#導入模塊中任意數量的函數
    function_name()						#若使用這種語法,調用函數時就無需使用句點
  11. 使用as給函數指定別名

    fron moudle_name import function_name as fn
  12. 使用as給模塊指定別名

    import mouble_name as mn
  13. 導入模塊中所有函數

    from moudle_name import *

    這樣導入無需使用句點表示法,但使用並非自己編寫的大型模塊時,最好不要採用這種導入方法

    要麼只導入自己需要的函數,要麼導入整個模塊並使用句點表示法

  14. 給形參指定默認值時等號兩邊不要有空格

    對於函數調用中的關鍵字實參,也應遵循這種約定

  15. 如果形參很多,導致函數定義的長度超過了79字符,可在函數定義中輸入左括號後按回車鍵,並在下一行按兩次Tab鍵,從而將形參列表和只縮進一層的函數體區分開來。

    def function_name(
    		parameter_0,parameter_1,parameter_2,
    		parameter_3,parameter_4,parameter_5):
    	function body...
  16. 所有的import語句都應放在文件開頭

第九章:類

  1. 使用類和實例

    class Dog():		#首字母大寫的名稱指的是類
    	def__init__(self,name,age):
    		self.name = name
    		self.age = age
    		self.color = "black"	#給屬性指定默認值
            
    	def sit(self):
    		print(self.name.title() + " is now sitting.")
    		
    	def roll_over(self)
    		print(self.name.title() + " rolled over!")
            
        def change_age(self,changed_age)
        	self.age=changed_age
    
    my_dog = Dog("wct",20)
    print(my_dog.name+" "+str(my_dog.age))
    my_dog.sit()
    my_dog.roll_over()
    my_dog.age = 21			#直接修改屬性的值
    my_dog.change_age(21)	#通過方法修改屬性的值

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-tMFJboBd-1585293066548)(C:\Users\86139\Desktop__init__.png)]

	def__init__(self,name,age):
		self.name = name
		self.age = age

以self爲前綴的變量都可供類中的所有方法使用 。可通過實例訪問的變量成爲屬性。

  1. 繼承

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GugIrW3c-1585293066549)(C:\Users\86139\Desktop\未標題-1.jpg)]

  2. 重寫父類
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BNrTR50A-1585293066550)(C:\Users\86139\Desktop\重寫父類24.png)]

  3. 將實例用作屬性

    class Car():
    
    class Battery():
    	def __init__(self,battery_size=70):
    		self.battery_size = battery_size
    	def describe_battery(self):
    		print(str(self.battery_size))
    
    class ElectricCar(Car):
    	def __init__(self,make,model,year):
    		super().__init__(make,model,year)
    		self.battery = Battery()
    
    my_car = ElectricCar("tesla","model s",2016)
    my_car.battery.describe_battery()
  4. 可以創建一個 .py 文件儲存類

    fron module_name class_name1,class_name2		#car.py
    import module_namer				#導入整個模塊,再使用句點表示法訪問需要的類
    from module_name import * 		#導入模塊中的所有類
  5. 類編碼風格

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Ojh4hvLi-1585293066551)(C:\Users\86139\Desktop\類編碼風格.png)]

第十章:文件和異常

  1. 讀取整個文件

    with open('pi.txt') as file_object:		#pi.txt在源碼所在目錄中
    	contents = file_object.read()
    	print(contents)

    函數open()接受一個參數:文件的名稱

    關鍵字with在不需要訪問文件後將其關閉

    方法read()讀取文件的全部內容

  2. 文件路徑

    with open('text_files\filename.txt') as file_object:	#相對路徑
    
    file_path = 'C:\User\ehmatthes\other_files\text_files\filename.txt'
    with open(file_path) as file_object:
    #絕對路徑通常比相對路徑更長,因此將其存儲在一個變量中,再將該變量傳遞給open()
  3. 逐行讀取

    filename = 'pi.txt'
    
    with open(filename) as file_object:
    	for line in file_object:
    		print(line.rstrip)				#如果沒有rstrip每一行後會有一條空白行
  4. 創建一個包含文件各行內容的列表

    使用關鍵字with時,open()返回的文件對象只能在with代碼塊內使用

    如果要在with代碼塊外訪問文件的內容,可在with代碼塊內將文件的各行存儲在一個列表中

    filename = 'pi.txt'
    
    with open(filename) as file_object:
    	lines = file_object.readlines()	#方法readlines()從文件中讀取每一行並將其存儲在一個列表中
    
    pi_string = ''
    for line in lines:
    	pi_string += line.strip()
  5. 寫入空文件

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yRcocqrr-1585293066552)(C:\Users\86139\Desktop\寫入空文件21.png)]

  6. 寫入多行

    函數write()不會在寫入的文本末尾添加換行符

  7. 附加到文件

    with open(filename,'a') as file_object:
  8. 異常是使用try-except代碼塊處理的。使用try-except代碼塊,即便出現異常,程序也將繼續運行

    first_number = input()
    second_number = input()
    try:
    	ans = int(first_number) / int(second_number)
    except ZeroError:
    	print("error!")
    else
    	print(ans)
  9. 分析文本

    title = "a b c"
    title.split()		#方法split()以空格爲分隔符講字符串拆成多個部分,並儲存在一個列表中
    ['a','b','c']
  10. pass語句:可在代碼塊中使用它讓Python什麼也不做

    first_number = input()
    second_number = input()
    try:
    	ans = int(first_number) / int(second_number)
    except ZeroError:
    	pass
    else
    	print(ans)

    pass語句還充當了佔位符,它提醒你在程序的某個地方什麼也沒做,並且以後也需要在這裏做些什麼。例如,我們可能決定講找不到的文件的名稱寫入到文件messing.txt中。用戶看不見這個文件,但我們可以讀取這個文件,進而處理所有文件找不到的問題。

  11. 存儲數據:模塊json讓你能夠講簡單的Python數據結構儲存到文件中,並在程序再次運行時加載該文件中的數據。

  12. 使用json.dump()和json.load()

    函數json.dump()接受兩個實參:要存儲的數據一級可用於存儲數據的文件對象

    import json
    
    numbers = [2,3,5,7,11,13]
    
    filename = 'numbers.json'				#文件拓展名.json
    with open(filename,'w') as f_boj:		
    	json.dump(numbers,f_obj)
    import json
    
    filename = 'numbers.json'				#讀取文件
    with open(filename) as f_boj:	
    	numbers = json.load(f_obj)
    import json
    filename = 'username.json'
    try:
    	with open(filename) as f_obj:
    		username = json.load(f_obj)
    except FilenameFoundError:
    	username = input(what is your name?)
    	with open(filename,'w') as f_obj:
    		json.dump(username,f_obj)
    		print("we will remember you when you come back!")
    else
    	print("welcome back")
  13. 重構:代碼可以正確運行,但可以做進一步的改進——將代碼劃分爲一系列完成具體工作的函數,這樣的過程被稱爲重構。

第十一章:測試代碼

  1. Python標準庫中的模塊unittest提供了代碼測試工具

  2. 編寫測試用例,可先導入模塊unittest以及要測試的函數,再創建一個繼承unittest.TestCase的類,並編寫一系列方法對函數行爲的不同方面進行測試。

    import unittest
    from nume_function import get_formatted_name
    
    class NamesTestCase(unittest.TestCase):		#必須繼承unittest.TestCase類
    	def test_name(self):	#運行此文件時,所有以test_打頭的方法都將自動運行
    	formatted_name = get_formatted_name('a','b')
    	self.assertEqual(formatted_name,'a b')
    
    unittest.main()

    方法名必須以test_打頭,這樣它纔可以自動運行

  3. 各種斷言方法
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8XHkmQTQ-1585293066552)(C:\Users\86139\Desktop\各種斷言方法3.png)]

  4. 方法setUp()
    unittest.TestCase類中包含了方法setUp(),Python將先運行它,再運行各個以TEST_打頭的方法。
    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-hMxrlBpe-1585293066552)(C:\Users\86139\Desktop\未標題-2.jpg)]

  5. 在項目早期,不要試圖去編寫全覆蓋的測試用例,除非有充分的理由這樣做。

另附:

在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
注意,光看理論還是不行的,實戰纔是核心。最後送大家一套2020最新企業Python項目實戰視頻教程,點進這裏進來獲取,跟着練習下,希望大家一起進步哦!

總結《Python編程:從入門到實踐》且碼字製圖確實不易.16369字,沒有一個字是複製粘貼的。如果本文對你有幫助,請點贊支持。
您的每一次瀏覽、點贊、收藏和關注對於作者都很重要!感謝!
歡迎添加作者公衆號:追豬青年(目前正在建設中)回覆:Python學習資源包 獲取全部資源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章