Python模塊之random、hashlib、json、time等內置模塊語法學習

Python內置模塊語法學習

random、hashlib、json、time、datetime、os等內置模塊語法學習

模塊


簡單理解為就是一個.py后綴的一個文件
分為三種:

  • 內置模塊:python自帶,可調用
  • 第三方模塊:別人設計的,可調用
  • 自定義模塊:自己編寫的,可調用

模塊之間苦于相互調用,是Python最高級別的組織單元,將程序代碼和數據封裝起來,可以重用。

導入方式:

  • import 直接將一個模塊導入進來
  • from xxx import xxx 從一個模塊中,導入具體的工具

理論上,python模塊中,任意一個地方都可以進行導入,但是規范上,我們開發潛規則上,將導入的部分放在python模塊文件最開始的位置編寫

代碼展示:

import random
from datetime import datetime

random模塊


  • random.randint() 隨機生成一個范圍內的整數
    (a,b),a到b的范圍內整數
  • random.uniform() 隨機生成一個范圍內的小數
    (a,b),a到b的范圍內整數
  • random.choice() 隨機抽取列表中的一個元素
  • random.sample() 隨機抽取列表中若干個元素
    (list1,a) list1中抽a個
  • random.shuffle() 隨機打亂列表中的元素

代碼展示:

import random
for i in range(2,5):s1 = random.randint(2,5)print(s1)
print('_'*50)
for i in range(2, 5):s2 = random.uniform(2,5)print(s2)
print('_'*50)
for i in range(2, 5):list1 = [2,3,4,5]s3 = random.choice(list1)print(s3)
print('_'*50)
for i in range(2, 5):list1 = [2,3,4,5]s4 = random.sample(list1,2)print(s4)
print('_'*50)
list1 = [2,3,4,5]
random.shuffle(list1)
print(list1)

運行結果:

在這里插入圖片描述

hashlib模塊


該模塊主要是進行數據加密的作用。
常見的加密方式:

  • sha256()【可逆】
  • md5()【不可逆】

若想要對一個明文進行MD5加密的話,一般都不是直接進行加密,而是先進行加鹽操作,之后才會進行md5加密。

代碼展示:

import hashlib
info = '這里是要加密的:12345678'
# 創建hashlib中的加密對象,md5()加密方法
md5_obj = hashlib.md5()
# 設置確定要編碼的明文和加密使用的編碼
md5_obj.update(info.encode('UTF-8'))
# 調用函數,開始加密
mi_wen = md5_obj.hexdigest()
print(f"明文:{info},通過md5加密后得到密文:{mi_wen}")
info = '這里是要加密的:12345678'
# 創建hashlib中的加密對象,md5()加密方法
sha256_obj = hashlib.sha256()
sha256_obj.update(info.encode('UTF-8'))
# 調用函數,開始加密
mi_wen = sha256_obj.hexdigest()
print(f"明文:{info},通過sha256加密后得到密文:{mi_wen}")
print('-'*50)
info = '這里是要加密的:12345678'
# 創建hashlib中的加密對象
md5_obj = hashlib.md5('---'.encode('UTF-8')) # 加鹽操作
# 設置編碼
md5_obj.update(info.encode('UTF-8'))
# 調用函數,開始加密
mi_wen = md5_obj.hexdigest()
print(f"明文:{info},通過md5加密后得到密文:{mi_wen}")

json模塊


本質上是一個特殊格式的字符串,但是相比較于字符串而言,json是可以通過鍵獲取值的

判斷一個字符串是否符合json的格式:

  • 看字符串是否是由雙引號括起來,若不是,那么該字符串轉不了json格式數據
  • 若值是由小括號括起來的多個元素,也是不能夠轉json格式數據的

序列化和反序列化:

  • 序列化:將代碼中的數據轉化成網絡中傳輸的數據流
    【python中的字典數據 --> json格式的字符串】
    json.dumps(dict,ensure_ascii=False)
  • 反序列化:將網絡中傳輸的數據流還原成代碼中的數據格式
    【json格式的字符串 --> python中的字典數據】
    json.loads(json)

代碼展示:

import json
#【python中的字典數據 --> json格式的字符串】
d1 = {"數值1":"1","數值2":"2","數值3":"3","數值4":"4"}
print(d1,type(d1))
d1 = {"數值1":"1","數值2":"2","數值3":"3","數值4":"4"}
d1 = json.dumps(d1,ensure_ascii=False)
print(d1,type(d1))
print("_"*50)
#若不是雙引號括起來,那么該字符串轉不了json格式數據
d2 = {'數值1': '1', '數值2': '2', '數值3': '3', '數值4': '4'}
d2 = json.dumps(d2,ensure_ascii=False)
print(d1,type(d2))
print("_"*50)
# 【json格式的字符串 --> python中的字典數據】
j ='''{"數值1":"1","數值2":"2","數值3":"3","數值4":"4"}'''
print(j,type(j))
j = json.loads(j)
print(j,type(j))

運行結果:
在這里插入圖片描述

time 和 datetime模塊


  • time.time()
    生成時間戳格式對象,時間戳存儲時占用的字節相比較于格式化后的字符串而言,是少很多的。

代碼展示:

import time
from datetime import datetimet1 = time.time()
print(t1,type(t1))

運行結果:
在這里插入圖片描述

  • 時間戳 ->datetime ->格式化日期轉換

代碼展示:

import time
from datetime import datetimet1 = time.time()
print(t1,type(t1))
# 時間戳 -> datetime
t1 = datetime.fromtimestamp(t1)
print(t1,type(t1))
#datetime-> 年日月時分秒
t1 = datetime.strftime(t1,'%Y-%m-%d-%H:%M:%S')
print(t1,type(t1))

運行結果:
在這里插入圖片描述

  • 字符串 -> datetime-> 時間戳

代碼展示:

t1 = '2024-12-06-20:03:13'
print(t1,type(t1))
# 字符串 -> datetime
t1 = datetime.strptime(t1,'%Y-%m-%d-%H:%M:%S')
print(t1,type(t1))
# datetime-> 時間戳
t1 = t1.timestamp()
print(t1,type(t1))

運行結果:
在這里插入圖片描述

  • 使用datetime對象中的屬性可以時間獲取年月日時分秒

代碼展示:

import time
from datetime import datetime
t1 = 1733486593.9999
t1 = datetime.fromtimestamp(t1)
print(f"{t1.year}年{t1.month}月{t1.day},{t1.hour}時{t1.minute}分{t1.second}秒")

運行結果:
在這里插入圖片描述

os模塊


使用os模塊中的功能操作文件或者文件夾

  • os.path.exists()判斷目標是否存在

并且如果有\b或者\t,\n等特殊含義的命名,需要\來表現

  • os.path.join()路徑拼接
  • os.path.abspath(file)獲取當前文件所在的路徑
  • os.path.dirname()獲取某一個文件所處的父級目錄路徑
  • os.path.isfile()判斷一個路徑是否是文件
  • os.mkdir()創建一個文件夾
  • 刪除路徑
    • os.remove()若目標路徑是一個文件
    • os.rmdir()若目標文件是一個文件夾

代碼展示:

import os
# os.path.join()路徑拼接
ml = os.path.join('day09','data','test1')
print(ml)
print(os.path.exists(ml))
print('_'*50)
#獲取當前文件所在的路徑
ml1 = os.path.abspath(__file__)
print(ml1)
print(os.path.exists(ml1))
print('_'*50)
#獲取某一個文件所處的父級目錄路徑
ml2 = os.path.dirname(ml1)
print(ml2)
print('_'*50)
#判斷一個路徑是否是文件
print(os.path.isfile(ml1))
print(os.path.isfile(ml2))
print('_'*50)
#判斷一個路徑是否是文件夾
print(os.path.isdir(ml1))
print(os.path.isdir(ml2))
#創建一個文件夾
ml3 = os.path.join('data','ml3')
os.mkdir(ml3)
#刪除路徑,若目標路徑是一個文件
ml4 = 'E:\projects\pythonprojects\\base\day09\data\\test1'
os.remove(ml4)
#若目標文件是一個文件夾
os.rmdir(ml3)

運行結果:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62131.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62131.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62131.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

從ctfwiki開始的pwn之旅 5.ret2csu

ret2csu 原理 在 64 位程序中,函數的前 6 個參數是通過寄存器傳遞的,但是大多數時候,我們很難找到每一個寄存器對應的 gadgets。 這時候,我們可以利用 x64 下的 __libc_csu_init 中的 gadgets。這個函數是用來對 libc 進行初始…

Ceph對象存儲

Ceph對象存儲1.概念對象存儲(Object Storage)是一種用于存儲大量非結構化數據的架構模型它使用簡單的HTTP或HTTPS協議進行文件訪問,而不是傳統的文件系統API與傳統的文件系統存儲方式不同,對象存儲不是將數據存儲在目錄或文件夾中…

嵌入式藍橋杯學習拓展 LCD翻轉顯示

通過配置SS和GS兩個標志位,實現掃描方向的切換。 將lcd.c的REG_932X_Init函數進行部分修改。 將LCD_WriteReg(R1, 0x0000);修改為LCD_WriteReg(R1,0x0100); 將LCD_WriteReg(R96, 0x2700); 修改為LCD_WriteReg(R96, 0xA700); void REG_932X_Init1(void) {LCD_Wr…

小程序 —— Day1

組件 — view和scroll-view view 類似于HTML中的div,是一個塊級元素 案例:通過view組件實現頁面的基礎布局 scroll-view 可滾動的視圖區域,用來實現滾動列表效果 案例:實現縱向滾動效果 scroll-x屬性:允許橫向滾動…

git pull error: cannot lock ref

Git: cannot lock ref ‘refs/remotes/origin/feature/xxx’: refs/remotes/origin/feature/xxx/car’ exists; cannot create refs/remotes/origin/feature/xxx git remote prune origin重新整理服務端和本地的關聯關系即可

pubmed關鍵詞搜索技能1:待更新

1,白話變為領域內學術詞: 例如,我想要做蛋白質糖基化修飾以功能,這個領域課題,則 第一性原理,首先是拆分詞匯:糖基化(一般比蛋白質、修飾、功能要在title中更常見,或者是…

iPhone手機清理軟件:相冊清理大師推薦

隨著智能手機成為我們日常生活的必需品,手機中的數據日益膨脹,尤其是照片和視頻這類容易積累的文件。對于iPhone用戶來說,管理這些文件,特別是清理相冊變得尤為重要。本文將介紹一款備受推崇的iPhone手機清理軟件——CleanMyPhone…

SpringBoot 開源停車場管理收費系統

一、下載項目文件 下載源碼項目文件口令: 【前端小程序地址】(3.0):伏脂火器白澤知洞座/~6f8d356LNL~:/【后臺管理地址】(3.0):伏脂火器仇恨篆洞座/~0f4a356Ks2~:/【崗亭端地址】(3.0):動作火器智匯堂多好/~dd69356K6r~:/復制口令…

網絡原理之 TCP 協議

目錄 1. TCP 協議格式 2. TCP 原理 (1) 確認應答 (2) 超時重傳 (3) 連接管理 a) 三次握手 b) 四次揮手 (4) 滑動窗口 (5) 流量控制 (6) 擁塞控制 (7) 延時應答 (8) 捎帶應答 3. TCP 特性 4. 異常情況的處理 1) 進程崩潰 2) 主機關機 (正常流程) 3) 主機掉電 (…

STM32使用RCC(Reset Clock Contorl,復位時鐘控制器)配置時鐘以及時鐘樹

RCC主要作用 設置系統時鐘SYSCLK(System Clock)頻率;設置AHB、APB2、APB1以及各個外設分頻因子,從而設置HCLK、PCLK2、PCLK1以及各個外設的時鐘頻率;控制AHB、APB2、APB1這三條總線時鐘以及每個外設的時鐘開啟&#xf…

安防視頻監控平臺Liveweb視頻匯聚管理系統管理方案

智慧安防監控Liveweb視頻管理平臺能在復雜的網絡環境中,將前端設備統一集中接入與匯聚管理。國標GB28181協議視頻監控/視頻匯聚Liveweb平臺可以提供實時遠程視頻監控、視頻錄像、錄像回放與存儲、告警、語音對講、云臺控制、平臺級聯、磁盤陣列存儲、視頻集中存儲、…

PostGIS的歷史發展

自從 GIS 軟件開發以來,ShapeFile等格式被廣泛用于存儲空間數據,但這些文件格式文件需要特殊的軟件才能讀取和寫入,并發用戶可能會導致數據損壞和速度變慢,并且復雜的問題需要復雜的軟件來處理。 因此,對多用戶的支持、…

【目標跟蹤】AntiUAV600數據集詳細介紹

AntiUAV600數據集的提出是為了適應真實場景,即無人機可能會隨時隨地出現和消失。目前提出的Anti-UAV任務都只是將其看做與跟蹤其他目標一樣的任務,沒有結合現實情況考慮。 論文鏈接:https://arxiv.org/pdf/2306.15767https://arxiv.org/pdf/…

“原批教育家”原批之星魯健的杰作——原批俱樂部

偉大的原批教育家——原批之星,名為魯健,是一位在南京郵電大學智能科學與技術專業中嶄露頭角的杰出人物。他不僅以其卓越的黑客技術和對網絡正義的執著而聞名,更是“遠古四神”之一,以其對原批之力的深刻理解和不同見解&#xff0…

IS-IS三

目錄 點到點鄰接關系建立 ISIS修改鏈路類型 isis ppp-negotiation 3-way only 僅才用三次握手建立鄰居 不向下兼容兩次握手 兩次握手 自身發送的(Hello報文)IIH 不攜帶 p2p adj TLV 不處理點到點鄰接狀態TLV 三次握手 …

Hadoop生態圈框架部署 偽集群版(四)- Zookeeper單機部署

文章目錄 前言一、Zookeeper單機部署(手動部署)1. 下載Zookeeper安裝包到Linux2. 解壓zookeeper安裝包3. 配置zookeeper配置文件4. 配置Zookeeper系統環境變量5. 啟動Zookeeper6. 停止Zookeeper在這里插入圖片描述 注意 前言 本文將詳細介紹Zookeeper的…

Spring的三層架構實現原理

Spring三層架構實現 三層架構 controller: 控制層,接受前端發送的請求,對請求進行處理并相應數據;service: 業務邏輯層,處理具體的業務邏輯;dao: 數據訪問層(Data Access Object) 持久層,負責數據訪問操作,包括數據的增、刪、改、查。controller 層: @RestContro…

《Java核心技術I》volatile字段

volatile字段 有多處理器的計算機能夠暫時在寄存器或本地內存緩存中保存內存值,其結果是,運行在不同處理器上的線程可能看到同一個內存位置上有不同的值。編譯器可以改變指令執行的順序以使吞吐量更大化,編譯器不會選擇可能改變代碼語義的順…

基于springboot+vue的車輛違章信息管理系統(全套)

一、系統架構 前端:vue | element-ui | html 后端:springboot | mybatis-plus 環境:jdk1.8 | mysql | maven | nodejs 二、代碼及數據庫 三、功能介紹 01. web端-首頁 02. web端-注冊 03. web端-登錄 04. web端-公告 05. web端-留言…

利用斷開的域管理員RDP會話提權

前言 當域內管理員登錄過攻擊者可控的域內普通機器運維或者排查結束后,退出3389時沒有退出賬號而是直接關掉了遠程桌面,那么會產生哪些風險呢?有些讀者第一個想到的肯定就是抓密碼,但是如果抓不到明文密碼又或者無法pth呢&#x…