1. 程式人生 > 其它 >python常用的內建函式

python常用的內建函式

技術標籤:pythonpython

python有許多的內建模組,出來python自帶的,還有許多的第三方模組,下面我們就來看看python常用的模組吧。

os(系統進行交換的模組)與sys
os模組:

import os
#print(os.getcwd())#獲取當前目錄路徑,或指令碼路徑
#print(os.listdir())#獲取當前和所有的檔案
#os.remove("檔名")#刪除檔案
#os.remove(r"c:\目錄名")刪除目錄

#os.system("ipconfig")#執行shell命令,檢視網絡卡
#os.
remove("lx.py","haha.py")#修改檔名稱 #os.mkdirs("c/d/e/f/g")#建立多個目錄 print(os.stat("lx.py"))#獲取檔案屬性

os.path(os中的一個單獨的子模組)

#os.path.isfile("檔名")#判斷是否為一個檔案
#os.path.isdir("目錄名稱")#判斷是否為目錄
#os.path.exists('路徑名稱')#判斷路徑是否存在
#print(os.path.abspath("lx.py"
))#獲取絕對路徑 #print(os.path.basename("lx.py"))#只獲取檔名稱 |-- join(路徑,*路徑) #連線兩個(或多個)路徑。 |-- split(路徑) #返回元組(頭,尾),尾是最後一個斜槓之後的所有內容。

sys模組:

import sys
print(sys.path)#獲取系統環境變數
print(sys.argv)#獲取指令碼引數

	|-- sys.api_version		# 獲取python核心程式碼版本號
	|-- exit()			# 退出系統
	|-- getdefaultencoding()  #返回Unicode所使用的當前預設字串編碼

實現。
	|
-- getfilesystemencoding() #返回用於轉換Unicode檔名的編碼 作業系統檔名。 |-- getrecursionlimit() #返回遞迴限制的當前值,即最大深度 Python直譯器堆疊的。這個極限阻止了無窮大遞迴避免導致C棧溢位和Python崩潰。 |-- getrefcount() # 獲取引用計數的個數 |-- setrecursionlimit() #將Python直譯器堆疊的最大深度設定為n limit防止無限遞迴導致C溢位堆疊和崩潰的Python。最高可能的限制是平臺- 相關的。 |-- stdin # 標準輸入流(standard input) |-- stdout # 標準輸出流(standard output)

random模組


import random
random.randrange(1,10)#返回隨機數,不包括10
random.randint(1,10)#返回隨機數,包括10
print(random.randrange(1,100,2))#隨機選取1——10的偶數
random.random()#隨機返回一個浮點數
random.choice("absdcenercrn")#返回給定區間內的隨機字元
print(random.sample("sxmssnxneinx",3))#從多箇中選取特定數量的字元

#洗牌
a=[1,2,3,4,5,6,7,8,9]
random.shuffle(a)#隨機打亂列表
print(a)
'''
現象:[4, 1, 3, 7, 5, 2, 8, 9, 6]
'''

math模組(數學模組)

 三角函式相關的:
	acos(返回x的反餘弦(以弧度為單位))
	acosh   (返回x的反雙曲餘弦。)
	asin ( 返回x的反正弦(以弧度為單位))。
	asinh  (返回x的反雙曲正弦。)
	atan  (返回x的反正切(以弧度為單位)。

	cos  (返回x的餘弦值(以弧度為單位))
	sin   (返回x的正弦值(以弧度為單位))
	tan  (返回x的正切(以弧度為單位))

|-- ceil			# 向上取整
|-- floor			# 向下取整
|-- fabs			#返回浮點數x的絕對值。
|-- pow				# 冪次方
|-- sqrt			# 開平方根

time

|-- asctime([tuple])			# 把當前時間以字串格式展示
|-- ctime([seconds])			# 把當前時間以字串格式展示
|-- gmtime()				# 構建一個時間物件(元組物件)(year, mon, day, hours, min, secs),以格林威治時間(UTC)
|-- localtime()				# 構建一個時間物件(元組物件)(year, mon, day, hours, min, secs),以本地時區
|-- mktime()				# 將時間物件轉換為ctime
|-- sleep()				# 讓當前執行緒,休眠
|-- strftime()				# 將時間物件格式化為需要的任意格式字串
|-- strptime()				# 將字串轉換為時間物件
|-- time.time()				# 時間戳

datetime(可以看成time模組的補充)

time與datetime
datatime模組:
import datetime
#日期表達
	|-- date		# 構建日期
	|-- time		# 構建時間
	|-- timezone		# 構建時區
	|-- datetime		# 構建日期+時間
print(datetime.datetime.now())#輸出當前時間,小時分鐘秒

#時間運算
time=datetime.datetime.now()
print(time+datetime.timedelta(2))#增加時間2print(time+datetime.timedelta(-2))#減少2print(time+datetime.timedelta(-2,hours=6))#減少2天,加5小時

#時間替換
print(time.replace(year=2021,month=11,day=20))#時間替換為20211120

calendar(日曆)

import  calendar

print(calendar.calendar(2021))	# 列印2021的日曆

uid
1、什麼是uuid?
UUID 是 通用唯一識別碼(Universally Unique Identifier)的縮寫,是一種軟體建構的標準(特點:不可重複)
2、python如何獲取uuid

import uuid
id = str(uuid.uuid4())  # 獲取uuid
print(id)	

在這裡插入圖片描述

加密模組(安全性)

加密演算法:
 不可逆加密(雜湊加密、hash演算法)
		整個加密是單向的,不可逆的,結果是唯一的
	
		主要作用:密碼加密
			  資料校驗		
可逆加密
		對稱加密
			加密和解密的祕鑰是同一個!!
			DES

	    非對稱加密
			加密和解密使用一對祕鑰
			數字簽名:私鑰和公鑰一起使用;私鑰用來解密和簽名,公鑰用來加密和驗證。(證書標準為X.509)

hashlib

import hashlib
#MD5加密不可逆向解析
#破解方法:先儲存下來(彩虹表),根據加密後的密文進行反向查詢。(md5的碰撞)(可在網站md5上檢視)
#加鹽混淆加密演算法(不斷加密):增加難度
mds="sadjsajc"#加密的明文
md5=hashlib.md5()#建立物件
md5.update(mds.encode("utf-8"))#更新加密明文
print(md5.hexdigest())#顯示加密後內容


#加鹽混淆加密演算法
md5=hashlib.md5("123456".encode("utf-8"))
md5.update("789".encode("utf-8"))#加鹽混淆

在這裡插入圖片描述

hmac

import hmac
#使用雜湊演算法同時,進行對稱加密

hmac.new("123456".encode("utf-8"),"sadcndsak".encode("utf-8"),"MD5")
h=hmac.new("123445".encode("utf-8"),digestmod="MD5")#加鹽混淆
print(h.hexdigest())

IO流
1、什麼叫做IO流

IO Stream(input output stream):
	狹義上:記憶體和永久儲存裝置之間資料流動
	廣義上:記憶體和(其他電腦|其他儲存裝置)間資料的互動