iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
自我挑戰組

呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !系列 第 12

Day 12 Python Module 模組的載入與使用

  • 分享至 

  • xImage
  •  

模組

獨立的程式檔案
程式碼太長太多
可將程式寫在不同的檔案中
此檔案可以重複載入使用


載入>使用
先載入模組,再使用模組中的函式或變數


基本語法

import 模組名稱

import 模組名稱 as 模組別名



模組名稱或別名.函式名稱(參數資料)

模組名稱或別名.變數名稱


內建模組

*sys模組
存放有關於系統的重要資訊

程式範例:

#載入sys模組
import sys

#使用sys模組
print(sys.platfrom)    #印出作業系統
print(sys.maxsize)     #印出整數型態的最大值
print(sys.path)        #印出搜尋模組的路徑

使用別名:

#載入sys模組
import sys as s

#使用sys模組
print(s.platfrom)    #印出作業系統
print(s.maxsize)     #印出整數型態的最大值
print(s.path)        #印出搜尋模組的路徑

*自訂模組

非內建模組需要自己需求建立的


範例:

建立幾何運算模組
建立檔案geometry.py
定義平面幾何運算用的函式

載入與使用
載入geometry模組,並使用模組中定義的功能


步驟一:建立一個主程式

*建立module.py


步驟二:建立模組

*建立geometry.py
(一定是 拍森 .py檔)

*定義:在geometry檔案中定義幾何運算功能

新增兩個功能

*計算兩個點之間的距離:

def distace(x1,y1,x2,y2)
    returm ((x1-y1)**2+(X2-y2)**2)**0.5

*計算線段的斜率:

def slope(x1,y1,x2,y2)
    return (y2-y1)/(x2-x1)

*載入使用

在主程式 module檔案中
載入geometry模組

計算:兩個點之間的距離

import geometry
result=geometry.distance(1,1,5,5)
#備註:模組名稱或別名.函式名稱(參數資料)

print(result)

#5.6568....

計算:線段的斜率

import  geometry
result= geometry.slope(1,2,5,6)
print(result)

#1.0

調整搜尋模組的路徑

主程式輸入:

import sys
print(sys.path) #印出模組的搜尋路徑

#會印出超長一大串中括號[]的路徑列表,
記錄著很多資料夾,
python會按照順序去這些路徑搜尋,
也就是模組必須放在這些路徑中才會被找到

https://ithelp.ithome.com.tw/upload/images/20240917/20143456ecgW97LXcV.png


資料結構規劃:
一個專案資料夾同時存放各種主檔案與各種模組,非常雜亂!
所以要規劃更清楚的資料結構(看的順眼)

在專案資料夾建立新模組資料夾以方便管理
(在專案資料夾新增:modules)


回到主程式:
重新載入模組 import geometry
噴錯:ModuleNotFoundError:no module named 'geometry'

因為剛有更動模組的位置,
模組路徑並沒有包含剛剛創建的新資料夾,
所以拍森現在找不到路徑了,故噴錯

解決方法:

操作系統模組的路徑:
請拍森新增一個模組的搜尋路徑
(此範例為"相對"專案資料夾的路徑

import sys
sys.path.append("modules")  

#在模組的搜尋路徑列表中「新增路徑:"modules"」

print(sys.path)  #印出模組的搜尋路徑列表

#補充:
絕對路徑也可稱完整路徑:是指向檔案系統中某個固定位置的路徑,不會因當前的工作目錄而產生變化。 為做到這點,它必須包括根目錄。 
相對路徑:以指定的工作目錄作為基點,避開提供完整的絕對路徑。


https://ithelp.ithome.com.tw/upload/images/20240917/20143456cM9wx34iyH.png

紀錄:
觀看教學影片學習是沒問題,
但要實際"輸出"要讓別人聽得懂
花了不少時間琢磨文字上的表達
OS:到底要怎樣表達呢??

OK 感謝看到這,希望我的解釋,可以幫助看得懂的人XD


上一篇
Day 11 函式參數詳解:參數預設值、名稱對應、任意長度
下一篇
Day 13 Python Package 封包的設計與使用
系列文
呼蛇容易遣蛇難,要就當大蟒蛇!一起來Python吧 !30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言