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