日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

絕對(duì)、相對(duì)導(dǎo)入以及包和常見內(nèi)置模塊

作者:MeiJin_ 更新時(shí)間: 2022-07-17 編程語言

文章目錄

  • 一、絕對(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

欄目分類
最近更新