1. 程式人生 > 其它 >模組簡介及基本使用

模組簡介及基本使用

內容概要

  • 面向過程程式設計(理論)
  • 模組介紹
  • import句式
  • from...import...句式
  • 迴圈匯入問題

內容詳細

面向過程程式設計(理論)

面向過程程式設計就好比在設局一條產品流水線

# 使用者註冊功能
1.獲取使用者名稱和密碼
2.組織成固定的格式
3.檔案操作寫入檔案

'''面向過程程式設計的缺陷在於:一旦要修改功能 那麼需要修改整體改造(牽一髮而動全身)'''
def get_info():
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    if len(username) == 0 or len(password) == 0:
        print('使用者名稱或密碼不能為空')
        return
    user_idf = {
        '1':'admin',
        '2':'user',
    }
    print(user_idf)
    choice = input('請輸入您的身份>>>:').strip()
    if choice in user_idf:
        id = user_idf.get(choice)
        return deal_data(username,password,id)
	else:
        print('您輸入的身份不存在')
        return
def deal_data(username,password,id):
	data = '%s|%s|%s\n'%(username,password,id)
    return save_data(data)
def save_data(data):
	with open (r'a.txt', 'a', encoding = 'utf8') as f:
        f.write(data)
		print('使用者註冊成功')

get_info()

模組介紹

python語言
	最早起源於linx運維、膠水語言、調包俠(褒義詞>>>貶義詞)

1.什麼是模組?
	模組:一系列功能的結合體
2.為什麼要用模組?
	為了提升開發效率(站在巨人肩膀上)
3.模組三種來源
	1.內建的(python直譯器自帶能夠直接帶入使用)
    2.第三方的(別人寫好釋出在網上的 需要先下載後使用)
    3.自定義的(自己寫的)
4.模組的四種表現形式
	1.使用python編寫的程式碼(.py檔案)
    2.已被便以為共享庫或DLL的C或C++擴充套件
    3.包好一組模組的包(資料夾)
    	# 包其實就是多個py檔案(模組)的集合
        	包裡面通常會含有一個__init__.py檔案
    4.使用C編寫並埒街道python直譯器的內建模組
    
    """
    學習完模組之後 以後在編寫大型專案的時候
    遇到一些比較複雜的功能可以先考慮是否有相應的模組可以呼叫
    """

import句式

# 在學習模組的時候 一定要區分誰是匯入檔案 誰是模組檔案
import md # 匯入oy檔案模組 檔案字尾一定不要加

"""
多次匯入相同模組 只會執行一次

首次匯入md模組發生的事情
	1.執行匯入檔案(import句式.py)產生改檔案的全域性名稱空間
	2.執行md.py檔案
	3.產生md.py全域性名稱空間 執行md檔案內程式碼 將產生的名字全部存檔於md.py名稱空間
	4.在匯入檔名稱空間產生一個md的名字執行md.py全域性名稱空間
	
import句式匯入模組之後
	通過模組名點的方式就可以使用到模組中所有的名字 並且肯定不會產生衝突(知名道姓)
""""

from...import...句式

from md import money,read1,change

"""
from...import...多次匯入也只會匯入一次
	1.先產生執行檔案的全域性名稱空間
	2.執行模組檔案 產生模組的全域性名稱空間
	3.將模組中執行執行之後產生的名字全部存檔於模組名稱空間中
	4.在執行檔案中有一個money執行模組名稱空間中money指向的值
	
from...import...知名道姓的匯入某個名字
	在使用的時候直接寫名字即可 但是噹噹前名稱空間有相同名字的時候
	就會產生衝突 視同的就變成了當前名稱空間
"""

匯入模組擴充套件用法

1.起別名
	既可以給模組名起別名也可以給模組中某個名字起別名
    import mdddddddddddddddddd as m
    from mdddddddddd import name as n
    
2.連續匯入
	import 模組名1,模組名2
    	# 可以連續匯入多個模組 但是隻有當多個模組功能相似或屬於統一系列
        # 如果功能不同並且不屬於一個系列 那麼推薦分行匯入
		import 模組名1
         import 模組名2
	from 模組名1 import 名字1,名字2,名字3

3.通用匯入
	from md import *  # 將模組中所有的名字全部匯入(* 表示所有)
    __all__ = ['money','read1']  # 在被匯入的二模組檔案中可以使用__all__指定可以被匯入使用的名字

判斷檔案型別

# 判斷py檔案是作為模組檔案還是執行檔案
__name__當檔案是執行檔案是會返回__main__
如果檔案是被當做模組匯入則返回檔名(模組名)

if __name__ =='__main__'
	read1()
"""在pycharm中可以直接敲 main按tab鍵即可自動補全if判斷"""

迴圈匯入

"""以後我們在匯入模組的時候如果出現了迴圈匯入的情況 說明我們程式設計的不太合理"""
#  記住在以後的程式設計生涯中不允許出現迴圈匯入的現象!!!

一錯再錯
	1.調換順序
    	將彼此匯入的句式放在程式碼的最後面
	2.函式形式
    	將匯入的句式放入函式體程式碼 等待所有的名字載入完成後在呼叫

模組匯入的順序

"""
1.先從記憶體中查詢
2.再去內建模組中查詢
3.最後去sys.path系統路徑中查詢(自定義模組)
如果都沒找到則報錯
"""

# 以後在給py檔案命名的時候儘量不要與內建模組名衝突

import sys
print(sys.path)  # 結果中第一個元素永遠是當前執行檔案所在的路徑

當某個自定義模組查詢不到的時候解決方案
	1.自己手動將該模組所在的路徑新增到sys.path中
    	import sys
        sys.path.append(r'檔案路徑')
	2.from...import...句式
    	from 資料夾名稱.資料夾名稱 import 模組名
        from 資料夾名稱.模組名稱 import 名字