五 Python的函式 類 模組

2021-10-12 02:41:36 字數 4397 閱讀 3485

接下來會依次介紹函式、類、模組的知識和使用

函式:

函式有什麼用?

函式的定義形式?

def functionname(parameters):

""" 函式注釋

"""function_suite

return [expression]

def query_info(sid):

"""查詢學生資訊

"""s = select(sid)

return s

函式引數

函式返回

函式內變數的作用域lambda函式:

定義形式

使用場景

列表的排序

列表排序方法1:

list.sort(key=none, reverse=false)

列表排序方法2:

new_list = sorted(iterable, key=none, reverse=false)

其中的key引數,可以傳入乙個函式,指定排序的元素,對於這個函式,用lambda可以簡化**

舉例:對學生資料按成績排序

sgrades=[(1001,89),(1002,77),(1003,99)]

不可行的方法:sgrades.sort(),只會按照第一項排序

方法1:sgrades.sort(key=lambda x:x[1])

方法2:new_list = sorted(sgrades, key=lambda x:x[1], reverse=true)

什麼是類和例項(物件):

實際例子:怎樣定義類

class student:

""" 類注釋 """

# 類變數,所有例項共享

total_cnt = 0

def __init__(self, name, age):

""" 初始化方法 """

# 普通例項變數,每個例項獨有

self.name = name

self.age = age

student.total_cnt += 1

def set_grade(self, grade):

""" 普通方法 """

self.grade = grade

怎樣使用類
# 建立類的例項

# 會呼叫類的初始化函式__init__,不用傳self

s1 = student('xiaoming', 20)

s2 = student('xiaowang', 25)

# 訪問類的屬性

print(student.total_cnt)

# 訪問例項的屬性

print(s1.name, s1.age)

# 呼叫例項的方法

類1:學生成績表 sgradetable

屬性:學生成績表:list(sgrade)

方法:

類2:學生成績 sgrade

屬性:異常是什麼?

程式執行中會出現一些意外,這些意外python自身沒法處理,所以"舉手"丟擲異常,讓程式設計師自己處理,程式設計師如果不處理,程式就會停止繼續執行,這些意外就叫做異常。

異常舉例:

異常的捕獲和處理

try:

**邏輯

**邏輯

except [keyerror as e]:

print("keyerror的**", e)

except [exception as e]

# exception可以捕獲所有異常

print("keyerror的**", e)

finally:

# 一般用於資源的清理,比如檔案的關閉

print("一定執行的**")

自己丟擲異常

即丟擲乙個exception的物件

raise exception("異常資訊")
包package和模組module

引入模組:

模組的搜尋路徑

搜尋執行指令碼的當前目錄

搜尋pythonpath的路徑列表(使用sys.path可檢視)

怎樣新增乙個模組的搜尋路徑?

在.bash_profile或者執行shell中,增加export pythonpath=「**目錄」

__name__變數

使用場景python標準庫常見模組(已自帶不用額外安裝)

python直譯器相關:sys

作業系統:os

json載入生成:json

正規表示式:re

隨機數:random

多執行緒:multiprocessing

python常見開源模組(需要額外安裝)

網頁爬取:scrapy、requests、beautifulsoup

web服務:django、flask

資料庫:pymysql、redis

excel讀寫:xlrd、xlwt

大資料:pyspark

資料計算:numpy、scipy

圖表展示:matplotlib

機器學習:scikit-learn

方法1:使用pip

pip3 install requests

python3 -m pip install requests

方法2:在pycharm中視覺化安裝

方法3:使用anaconda包

該包已經預先包括了資料科學的幾乎所有開源包

**:sys模組

負責程式與python直譯器的互動,提供函式和變數用於操控python的執行時環境

sys.exit(n) 退出程式,n等於0代表正常退出,不等於0代表異常退出,在shell可以用$?獲得退出值

os模組

負責程式與作業系統互動,提供訪問作業系統底層的介面

例項:提供目錄名,實現目錄下檔案按字尾名整理

整理前;

雜亂目錄:

整理程式;

json是什麼?

json是一種非常流行的、輕量級的、資料交換格式:

使用場景:

使用方式:

import json

json_string = json.dumps(python_obj)

python_obj = json.loads(json_string)

生成json的物件對映

python

json

dict

object

list, tuple

array

strstring

int, float

number

true

true

false

false

none

null

解析json的物件對映

json

python

object

dict

array

list

string

strnumber(int)

intnumber(real)

float

true

true

false

false

null

none

python 之 函式,類,模組

一 函式 程式中重用 定義函式,def 函式名 函式 示例 usr bin python def myfunction name print this is my first function s name myfunction functionname this is my first funct...

Python 函式,類,模組,異常

def demo print shao f lambda a,b a bdef demo x print shao str x demo 嚶嚶嚶 def demo x 嚶嚶嚶 print shao str x demo demo 12138 def demo x print shao x demo ...

python(五)函式 模組 包

模組 包的概念?在python中,乙個.py檔案就稱之為乙個模組 module 我們在編寫程式的時候,也經常引用其他模組,包括python內建的模組和來自第三方的模組 你也許還想到,如果不同的人編寫的模組名相同怎麼辦?為了避免模組名衝突,python又引入了按目錄來組織模組的方法,稱為包 packa...