語言 | Python基礎知識總結

Python發展的未來方向

  1. 數據分析
  2. 自然語言處理
  3. 社交網絡分析
  4. 人工智能
  5. 深度學習
  6. 計算機視覺
  7. 網絡爬蟲
  8. 量化交易

Python語言特點

  1. 語法簡潔,實現相同功能,代碼量相當於其他語言的1/10~1/5
  2. 跨平臺,可用於大部分操作系統,集羣,服務器,甚至小設備(樹莓派)上
  3. 可擴展,可與其他編程語言集成,如C,C++,Java等
  4. 開放源碼,Python和大部分支持庫及工具都是開源的
  5. 多用途,可用於快速,交互式代碼開發,也可用於構建大型應用程序,如科學計算,數據處理,人工智能等
  6. 類庫豐富,除了自身提供的幾百個內置庫,開源社區還貢獻了十幾萬個第三方庫,擁有良好的編程生態…

1.配置

軟件安裝完成配置了sublime的插件,運行了第一個hello world程序,可以在終端和IDE運行。

2.變量

字符串 方法 . upper()、.lower()、.title()首字母大寫

去除空白 .lstrip() .strip() .rstrip()

整數和浮點型

str() 轉化爲字符串

註釋 #…

import this 常看隱藏

3.列表

array[-1] 返回最後一個數組元素,以此類推。下標從0開始

.append() 在最後面追加新的列表元素

.insert(index,data)在列表的指定索引位置插入新的元素

del 語句 刪除 del array[index]

.pop(index) 刪除指定索引位置的值,默認刪除最後一個元素

.remove(value)刪除列表中指定值的元素

.sort()排序 按字母 反向可設置 sort(reverse=True )永久性排序,會改變原數組

sorted() 臨時排序,不改變原數組

.reverse(列表) 倒着排序

len() 獲取列表長度 不是方法,沒有.len()

4.操作列表

range(start,end , 步長 ) 生成系列數字

list( ) 可以將range()的結果轉換爲列表

統計運算 min() max() sum()

列表解析 array=[x2 for x in range(1,10)]

*切片 使用列表的一部分 print(array[start:end])

元組 不可修改的列表 使用括號包閉 array=(200,400)可以重新賦值但不能修改元素

設置代碼格式 縮進 (四個空格) 行長 空行 Python改進方案 PEP8

5.if語句

== 比較

and 連接多個條件

or 同上,一個成立即可

…in…

…not in…

if …if if 多個if獨立語句

if-else

if-elif-else 只執行一個代碼塊

輸出1-9序列:

num_arrays = [1,2,3,4,5,6,7,8,9]
for num_array in num_arrays: 
	if num_array == 1:    
	print('1st')  
	elif num_array == 2:    
	print("2nd")  
	elif num_array == 3:    
	print("3rd")  
	else:    
	print(str(num_array)+"th")
print("all over")

6.字典

鍵值對,用{ }包含,逗號隔開

for key, value in dictionary.items(): 其中key,value名稱可以任意

Python不關心鍵值對的添加順序,只關心鍵值對的關聯關係。

.items() 遍歷字典鍵值對列表

.keys() 遍歷字典的鍵,返回列表

.values() 遍歷字典的值,返回列表
1.在字典中存儲列表

2.在列表中存儲字典

3.在字典中存儲字典

item = []
for item_nums in range(30):  
    item_array = {'cyk':'xxxx'}  	        	
    item.append(item_array)
for item_new in item[:5]:  
    print(item_new)

7.用戶輸入和while循環

input() 輸入並用變量保存

int() 轉化爲數值

% 求模運算符

raw_input() Python 2.7中輸入

while

flag = True 使用標誌,用於會有多個條件發生變化時break 不繼續執行,退出整個循環

continue 不繼續執行,回到循環開頭,根據條件判斷是否繼續循環

使用while循環處理列表和字典

8.函數 def

實參和形參

文檔字符串 ‘’’’’’ ‘’’’’’ 描述函數內容

位置實參 實參與形參位置一一對應

關鍵字實參 在調用時採用鍵值對,不考慮順序 (形參=實參)

返回值 return

切片表示法 [ : ] 創建列表副本,不會影響原列表(會花時間和內存創建副本,一般不用)

*arrays 傳遞任意數量的實參 ,顯示爲元組
**info 傳遞任意數量的實參,存儲到字典中

引用模塊 import module_name 調用 module_name.function_name()

引用模塊方法 from module_name import function_name1,2,3 調用 function_name()

創建別名 from module_name import function_name as fn 調用 fn()

給模塊指定別名 import module_name as mn

導入所有函數 from module_name import * 調用:直接調用函數 實踐中一般不用,採用具體導入和句點表示法

函數編寫指南

函數名: 全部小寫和下劃線,描述性文字

文檔字符串’’’’’’ ‘’’’’’’ 描述函數功能

給形參指定默認值,以及函數調用中的關鍵字實參,不要加空格

def fun_name(parameter_0,parameter_1='temp')

fun_name(para_0,para_1='temp1')

9.類、面向對象編程

class Dog() 類名首字母大寫

Python 2.7 中創建類 class Dog(object)

init(self) self 表示指示實例本身的引用,不需要傳參 init() 特殊的方法

以self爲前綴的變量可以供類中所有方法使用

class Dog():  
	def __init__(self, name, age):    				
        self.name = name    
		self.age = age
  	def dog_run(self):    
  		print(self.name +" run")
  	def dog_jump(self):    
  		print(self.name +" jump")
  		
dog = Dog('ss', 13)
dog.dog_jump()

繼承

class Son(Father):   
	def __init__(self,A,B,C):     			 		
        super().__init__(A,B,C)

python 2.7 需要兩個實參:子類名和對象

class Son(Father):   
	def __init__(self,A,B,C):     					
        super(Son,self).__init__(A,B,C)

模塊和類的相互引用 引用語句中不加括號 import module_name 調用: module_name.class_name

from module_name import ClassName

from module_name import * 不推薦使用

類編碼風格

類名:駝峯法命名法 ClassName, 不使用下劃線

類和模塊都需要文檔字符串描述功能 ‘’’’’‘說明’’’’’’

類使用一行空行分隔方法,模塊使用兩行空行分隔類。

10.文件和異常

異常:Python創建的特殊對象

with open('file.txt') as new_name:   
    temp = new_name.read()
print(temp)

with 在不再需要訪問文件時將其關閉,比close() 要好,python會自動在合適的時機關閉

文件路徑: 相對路徑 絕對路徑

window中使用\來劃分,Linux和OS X中使用/劃分

file_path='home\files\file_name.txt'
with open(file_path) as new_name:

.readlines() 逐行讀取

.replace(old, new)

.split() 將字符串按空格劃分成列表

open(‘地址’,‘w’) 寫入文件

讀取模式:‘r’(默認)

寫入模式:‘w’ 會清空原文件內容,不存在則新建

附加模式:‘a’ 以追加方式寫入文件,不存在則新建

讀寫模式:‘r+’.write() 寫入文件 不會自動換行,要加\n

錯誤處理:

將可能引發錯誤的代碼放入 try-except結構中,依賴於try成功執行的代碼放入else中

try:  
	.....
except 錯誤類型:  
	....
else:  
	.....

ZeroDivisionError FileNotFoundError
使用pass跳過錯誤,不執行任何操作except

ZeroDivisionError:  
	pass

.count(字符串) 計算字符串在原字符串中出現了多少次,區分大小寫
使用JSON結構存儲數據

json.dump(參數1,參數2) 1:要存儲的對象 2:被存儲的地方

json.load(文件名) 讀取json數據

import json 導入json

重構:將代碼劃分成一系列完成具體工作的函數,這樣的過程叫做重構。重構讓代碼更清晰,更易於理解和維護。
return None 不返回任意值

11.測試代碼

Python模塊 unittest

單元測試: 用於測試函數的某個方面沒有問題

測試用例:一組單元測試,用於測試函數在各種測試下都符合要求

全覆蓋測試:包含一整套單元測試,用於測試函數在各種情況下都沒問題,一般難以實現,用於後期。
點擊下載

測試方法名必須以test開頭

import unittest 導入測試模塊

繼承 unittest.TestCase類

self.assertEqual(first, second) 斷言方法 覈實得到的結果與期望的結果是否一致
結果如下:

句點表示一個測試通過了

OK表示所有的單元測試都通過了

測試沒有通過:
點擊下載

unittest.TestCase中的斷言方法點擊下載

setUp()方法 用於設置一系列實例及屬性,並在測試方法中直接使用這些實例相當於創建全局變量和實例。

def setUp(self):

點擊下載
運行測試用例,每完成一個單元測試,都打印一個字符。. 表示通過

E 測試引發錯誤

F 斷言失敗

因此在運行測試用例時,在輸出的第一行看到的句點和字符串各不相同。


The End

以上,希望對你梳理python知識點有用。

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