網站首頁 編程語言 正文
文章目錄
- 一、絕對導入與相對導入
- 二、包的概念
- 三、編程思想的轉變
- 四、軟件開目錄規(guī)范
- 五、常見內置模塊
一、絕對導入與相對導入
我們都知道絕對路徑與相對路徑 現在我們想要了解的是絕對導入與相對導入
其概念其實跟路徑一個道理 絕對是指定到某一個文件 相對是指定到某一個文件夾
補充知識:
只要涉及到用到模塊的導入 那么系統(tǒng)路徑sys.path永遠以執(zhí)行文件為準.在路徑中意思是當前路徑
..在路徑中意思是上一層路徑
../..在路徑中意思是上上一層路徑
絕對導入
絕對路徑就是我們說到的指定到特指的文件
from Desktop import Join 來自桌面的Join文件
from Desktop.Game.Login import exe 來自桌面文件夾Game子文件夾Login里面的exe文件
其實就是以執(zhí)行文件所在的sys.path為起始路徑 往下一層層查找
如果有文件不在同一級別的文件夾路徑,想使用直接把絕對路徑添加到執(zhí)行文件sys.path里面即可
相對導入
相對導入就是給到路徑文件夾了 但是不知道它哪個文件夾里面
from Desktop import new 只給到文件夾Desktop不知道new在那個字文件里面
但是相對導入只能在模塊文件中使用 不能在執(zhí)行文件中使用
相對導入在項目比較復雜的情況下 可能會出錯所以推薦使用絕對導入 少用相對導入
二、包的概念
注意這個包跟我們平常理解的肉包子菜包子lv包包不是一個包哈 所以現在帶大家了解一下python的包
如何理解包
從我們專業(yè)的角度來看 創(chuàng)建一個文件夾里面含有__init__.py的文件夾叫包
從我們小白的覺度來看 就是一個文件夾 啥也不是
包的作用
它的作用很容易理解 就相當于我們電腦 C盤主要放系統(tǒng)文件 D盤主要放500G的學習資料
內部可以存放多個py文件(模塊文件) 僅僅是為了更加方便的管理模塊文件
具體使用
import 包名
注意導入包名主要看__init__.py文件 就相當于這個文件夾的父文件夾
這個文件里面有什么文件你才能用什么文件 導入包里面其他py 文件會直接報錯的
其實也可以跨過__init__.py直接導入包里面的模塊文件 那就是直接指名道姓 導入包里面的模塊
三、編程思想的轉變
經過我們這一個月的學習也從小白算是剛剛進入入門了 也對編程有一個轉變了 現在說說這個過程 總共分為三個階段
小白階段
剛開始學我們只會按照需求從上往下堆代碼跟拉面條似的 單文件
函數階段
將代碼按照不同的功能封裝成不同的函數 單文件
模塊階段
根據不同的功能拆分不同的模塊文件 多文件
小白階段相當于我們將所有娛樂學習文件放在C盤里面并且還不分類不堪入目
函數階段相當于將所有的文件在C盤里面分類好了 游戲是游戲 學習是學習
模塊階段相當于將所有的文件按照類型分類到其他DEFG盤
這就是我們一個思想的轉變 目的就是為了更加方便快捷的管理資源
四、軟件開目錄規(guī)范
針對上述的第三個階段 分模塊文件多了之后還需要有文件夾
我們所使用的所有的程序目錄都有一定的規(guī)范(有多個文件夾)
1.bin文件夾
用于存儲程序的啟動文件 start.py
2.conf文件夾
用于存儲程序的配置文件 settings.py
3.core文件夾
用于存儲程序的核心邏輯 src.py
4.lib文件夾
用于存儲程序的公共功能 common.py
5.db文件夾
用于存儲程序的數據文件 userinfo.txt
6.log文件夾
用于存儲程序的日志文件 log.log
7.interface文件夾
用于存儲程序的接口文件 user.py order.py goods.py
8.readme文件(文本文件)
用于編寫程序的說明、介紹、廣告 類似于產品說明書
9.requirements.txt文件
用于存儲程序所需的第三方模塊名稱和版本
注意我們在創(chuàng)建文件的時候命名可以不完全遵循上面的命名
database文件夾我們后面講到項目就會被數據庫軟件代替掉
log文件我們后降到項目也會被專門的日志服務代替掉
五、常見內置模塊
1.collections模塊
1>.namedtuple
from collections import namedtuple 導入模塊namedtuple
Point = namedtuple('LebronJames', ['號碼1', '號碼2']) 按照位置輸入K
res = Point(6, 23) 按照位置順序輸入V
print(res)
'''中括號內可以輸入多個值以逗號隔開即可 也可以多次賦值 撲克牌原理來至于此'''
from collections import namedtuple
p = namedtuple('撲克牌', ['花色', '點數'])
res1 = p('?', '6')
res2 = p('?', '6')
res3 = p('??', '6')
res4 = p('??', '6')
print(res1)
print(res2)
print(res3)
print(res4)
2>.deque 雙端隊列
from collections import deque
A = deque()
A.append(111) 向空集合中追加111
A.append(222) 向空集合中追加222
A.append(333) 向空集合中追加333
A.appendleft(444) 向空集合中左邊追加444
print(A)
print(A[3]) 索引取值第三個數據值
3>.orderedict 有序字典
from collections import OrderedDict
d = dict([('a', 1), ('b', 2), ('c', 3)]) 我們正常的無需字典
print(d)
od = OrderedDict([('a', 1), ('b', 2), ('c', 3)]) 模塊里面的有序字典
print(od) 驗證辦法就是從cmdpython2.7中驗證
4>.counter
我們已知一個字符串我們想知道里面各個字符出現了多少次!
res = 'abcdeabcdabcaba'
普通方法:
res = 'abcdeabcdabcaba'
new_dict = {} 新建一個空列表
for i in res: 循環(huán)字符串
if i not in new_dict: 如果不在空列表里面
new_dict[i] = 1 列表新一個
else:
new_dict[i] += 1 如果在+1
print(new_dict)
counter:
from collections import Counter 導入模塊
res = 'abcdeabcdabcaba'
res1 = Counter(res) 使用counter統(tǒng)計詞頻
print(res1)
2.time模塊
1>.time.time() 時間戳
import time
print(time.time())
2>.time.gmtime() 結構化時間
import time
print(time.gmtime())
3>.time.strftime() 格式化時間
import time
print(time.strftime('%Y-%m-%r %H-%M-%S'))
print(time.strftime('%Y-%m-%r %X')) %X偷懶縮寫時分秒
'''注意前面首字母大寫年 后面月日小寫 時分秒大寫 都是因為單詞縮寫首字母開頭'''
本文僅講了
導入路徑、包、開發(fā)規(guī)范、常見內置模塊
的個人理解,技術小白記錄學習過程,有錯誤或不解的地方請指出,如果這篇文章對你有所幫助請點贊收藏+關注
謝謝支持!
原文鏈接:https://blog.csdn.net/MeiJin_/article/details/125784386
相關推薦
- 2022-05-06 C語言枚舉的使用以及作用_C 語言
- 2022-07-09 Android開發(fā)中Flutter組件實用技巧_Android
- 2023-01-28 ajax、axios和fetch之間優(yōu)缺點重點對比總結_AJAX相關
- 2022-02-16 IDEA 無法彈出模態(tài)框 HTTP 錯誤: 狀態(tài)代碼 404,net::ERR_HTTP_RESPO
- 2022-08-18 .Net中的弱引用字典WeakDictionary和ConditionalWeakTable介紹_實
- 2022-07-22 用C語言根據天數輸出對應的年、月、日
- 2023-11-16 python 插值 —— 如何實現插值,以及錯誤ValueError: A value in x_n
- 2023-11-25 優(yōu)化計算屬性mapState、mapGetters和methods的mapActions、mapMu
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支