2025-05-27 學習記錄--Python-模塊

合抱之木,生于毫末;九層之臺,起于累土;千里之行,始于足下。💪🏻

一、模塊 ??

(一)模塊的導入與使用 🍭

模塊的導入:🐝

  • 模塊 就好比是 工具包,要想使用這個工具包中的工具,就需要 導入 import 這個模塊;
  • 每一個以擴展名 py 結尾的 python 源代碼文件都是一個 模塊;
  • 在模塊中定義的 全局變量、函數 都是模塊能夠提供給外界直接使用的工具。
import my_first_module
result = my_first_module.sum_2_num(10, 20)
print("計算結果是 %d" % result)
print(my_first_module.name)

舉例: 🌰

my_module.py

author = 'mia'def add(a,b):return a+b'''
參數args:接收一個列表
return:args列表中每個元素的平方和
'''
def total(*args):result = 0for i in args:result = result + i**2return result# print(add(3,4))
# print(total(1,2,3,4))

demo1.py

# 全部導入
import my_moduleres1 = my_module.add(100,200)
print(res1)
res2 = my_module.total(1,2,3,4,5)
print(res2)
res3 = my_module.author
print(res3)

輸出結果: 👇🏻

300
55
mia

demo2.py

# 部分導入
from my_module import add, total, author
# from my_module import * # 全部導入res1 = add(100,200)
print(res1)
res2 = total(1,2,3,4,5)
print(res2)
res3 = author
print(res3)

輸出結果: 👇🏻

300
55
mia

(二)包的使用 🍭

:🌲

  • 包是Python模塊的一種組織形式,將多個模塊組合在一起,形成一個大的Python工具庫。包通常是一個擁有__init__.py文件的目錄,它定義了包的屬性和方法。
import pack1.module1
from pack1 import module1

(三)常見的標準庫 🍭

在這里插入圖片描述

舉例 —— random 🎈

例子1 🌰

import random
# 生成隨機小數
a = random.random()
print(a)
# 生成隨機整數
b = random.randint(1,100) # 隨機生成范圍1~100的整數
print(b)# 獲取列表中的隨機元素
list1 = ['mia','jack','angel','candy','frank']
# 方法1
print(list1[random.randint(0,len(list1)-1)])
# 方法2
print(random.choice(list1))
# print(random.choice('hello')) # 隨機生成:'h'/'e'/'l'/'l'/'o'# 生成一個隨機大寫字母組成的列表
a = []
n = 5
for i in range(20):s = ''for j in range(n):t = random.randint(65, 90) # 隨機生成范圍65~90的整數 (65,90)可換成(ord('A'),ord('Z'))s += chr(t) # chr(t):將t轉換成對應ASCII值的字母a.append(s)
print(a)

例子2 🌰

import random# 隨機生成20位 長度為5的大寫字母組成的字符串
a = []
n = 5
for i in range(20):s = ''for j in range(n):t = random.randint(65, 90) # 隨機生成范圍65~90的整數 (65,90)可換成(ord('A'),ord('Z'))s += chr(t) # chr(t):將t轉換成對應ASCII值的字母a.append(s)
print(a)# 隨機大小寫字母
def random_char(upper=True):if upper:t = random.randint(ord('A'),ord('Z'))return chr(t)else:t = random.randint(ord('a'),ord('z'))return chr(t)# 隨機字符串
def random_string(length):s = ''for i in range(length):s += random_char(random.choice([True,False]))return s# 驗證碼
def yan_zheng_ma(length):return random_string(length)def main():# 隨機生成20位 長度在3到6之間的大小寫字母組成的字符串a = []for i in range(20):a.append(random_string(random.randint(3,6)))print(a)# 生成8位驗證碼print(yan_zheng_ma(8))main()

例子3 🌰

import random# 石頭剪刀布游戲
def game1():player_score,computer_score = 0,0for i in range(3):player = input('請輸入石頭剪刀布:')computer = random.choice(['石頭','剪刀','布'])print('電腦出的是:',computer)if player == computer:player_score += 1computer_score += 1elif (player == '石頭' and computer == '剪刀') or (player == '剪刀' and computer == '布') or (player == '布' and computer == '石頭'):player_score += 1else:computer_score += 1print('玩家得分%d 電腦得分%d' % (player_score,computer_score))if player_score == computer_score:print('平局')elif player_score > computer_score:print('玩家勝利')else:print('電腦勝利')
game1()
import random# 猜數字游戲
def guess_number():number = random.randint(1, 100)while True:player = int(input('請輸入你猜的數字:'))if player == number:print('猜中了')breakelif player > number:print('猜大了')else:print('猜小了')guess_number()
舉例 —— re 🎈

re:🦋

  • 正則表達式處理
  • 可以用于文本搜索、替換、分割等

在這里插入圖片描述
例子1 🌰

import re# \d:檢測字符串是否為純數字的字符串(其后的加號表示:檢測多個字符)
result = re.match(r'\d+','1234567')
print(result)# \w:檢測字符串是否為 字母、數字、下劃線 組成的字符串(其后的加號表示:檢測多個字符)
result = re.match(r'\w+','a8_')
print(result)# \s:空白字符  \S:非空字符(其后的加號表示:檢測多個字符)
result = re.match(r'\s+','  ')
print(result)# .:任意字符
result = re.match(r'^code\d-\d-.+$','code9-2-random')
print(result)# []區間,可選列表
result = re.match(r'^[abcd]+$','aabbbcd')
print(result)# |:或者
result = re.match(r'^a|b|c$','b')
print(result)

輸出結果: 👇🏻

<re.Match object; span=(0, 7), match='1234567'>
<re.Match object; span=(0, 3), match='a8_'>
<re.Match object; span=(0, 2), match='  '>
<re.Match object; span=(0, 14), match='code9-2-random'>
<re.Match object; span=(0, 7), match='aabbbcd'>
<re.Match object; span=(0, 1), match='b'>
舉例 —— time 🎈

獲取時間。

例子1 🌰

import time
t = time.time() # 時間戳:1970年起
print(t)
t = time.localtime() # 結構化時間
print(t)
s = time.strftime("%Y-%m-%d %H:%M:%S", t)
print(s)

輸出結果: 👇🏻

1748401659.383019
time.struct_time(tm_year=2025, tm_mon=5, tm_mday=28, tm_hour=11, tm_min=7, tm_sec=39, tm_wday=2, tm_yday=148, tm_isdst=0)
2025-05-28 11:07:39
舉例 —— turtle 🎈

例子1 🌰

# 導入turtle繪圖庫
import turtle# 創建一個turtle畫筆對象,命名為pen
pen = turtle.Turtle()# 設置畫筆移動速度為最快(0)
pen.speed(0)# 循環100次,i從0到99
for i in range(100):# 畫筆向前移動,距離為100+i(每次循環增加1)pen.forward(100 + i)  # 畫一條直線,距離為100+i# 畫筆向右旋轉61度pen.right(61)  # 右轉61度# 在畫布上寫入文字"快樂至上",使用Arial字體,大小40,正常樣式
pen.write('快樂至上', font=("Arial", 40, "normal"))# 等待用戶輸入,防止窗口立即關閉
input() 

輸出結果: 👇🏻

在這里插入圖片描述
例子2 🌰

# 導入 turtle 繪圖庫和 time 時間庫
import turtle, time# 創建一個 turtle 畫筆對象,命名為 pen
pen = turtle.Turtle()# 畫筆向后移動 100 像素(向左移動)
pen.backward(100)# 設置畫筆移動速度為最快(0)
pen.speed(0)# 無限循環,持續更新時間顯示
while True:# 暫停 1 秒(控制刷新頻率)time.sleep(1)# 獲取當前時間,并格式化為 "年-月-日 時:分:秒" 的字符串times = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())# 清空畫布上之前的內容pen.clear()# 在畫布上寫入當前時間,使用 Arial 字體,大小 40,正常樣式pen.write(times, font=('Arial', 40, 'normal'))

輸出結果: 👇🏻

在這里插入圖片描述

舉例 —— socket 🎈

例子1 🌰

server.py:👇🏻

# 服務器import socket
# 創建socket對象
sk = socket.socket()
# 綁定ip和端口號
sk.bind(('0.0.0.0',8995))
# 設置監聽
sk.listen(5)
# 等待客戶端連接
conn,addr = sk.accept()print(conn)
print(addr)while True:accept_data = conn.recv(1024)print('收到客戶端發送的消息:',accept_data.decode('utf-8'))send_data = '收到!'conn.send(send_data.encode('utf-8'))

client.py:👇🏻

# 客戶端import socket
# 創建socket對象
sk = socket.socket()
# 連接服務器
sk.connect(('127.0.0.1',8995))while True:send_data = input('請輸入你要發送的內容:')# 發送數據到服務器sk.send(send_data.encode('utf-8'))# 等待服務器的響應accept_data = sk.recv(1024)# 打印服務器的響應print('接收到服務器的響應:',accept_data.decode('utf-8'))

輸出結果: 👇🏻

在這里插入圖片描述
在這里插入圖片描述

(四)第三方庫 🍭

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

leetcode 131. Palindrome Partitioning

目錄 一、題目描述 二、方法1、回溯法每次暴力判斷回文子串 三、方法2、動態規劃回溯法 一、題目描述 分割回文子串 131. Palindrome Partitioning 二、方法1、回溯法每次暴力判斷回文子串 class Solution {vector<vector<string>> res;vector<string>…

重構開發范式!飛算JavaAI革新Spring Cloud分布式系統開發

分布式系統憑借高可用性、可擴展性等核心優勢&#xff0c;成為大型軟件項目的標配架構。Spring Cloud作為Java生態最主流的分布式開發框架&#xff0c;雖被廣泛應用于微服務架構搭建&#xff0c;但其傳統開發模式卻面臨效率瓶頸——從服務注冊中心配置到網關路由規則編寫&#…

python 生成復雜表格,自動分頁等功能

py&#xff54;&#xff48;&#xff4f;&#xff4e; 生成復雜表格&#xff0c;自動分頁等功能 解決將Python中的樹形目錄數據轉換為Word表格&#xff0c;并生成帶有合并單元格的檢測報告的問題。首先&#xff0c;要解決“tree目錄數據”和“Word表格互換”&#xff0c;指將樹…

根據Cortex-M3(包括STM32F1)權威指南講解MCU內存架構與如何查看編譯器生成的地址具體位置

首先我們先查看官方對于Cortex-M3預定義的存儲器映射 1.存儲器映射 1.1 Cortex-M3架構的存儲器結構 內部私有外設總線&#xff1a;即AHB總線&#xff0c;包括NVIC中斷&#xff0c;ITM硬件調試&#xff0c;FPB, DWT。 外部私有外設總線&#xff1a;即APB總線&#xff0c;用于…

Linux中硬件信息查詢利器——lshw命令詳解!

lshw&#xff08;List Hardware&#xff09;是 Linux 系統下的一款命令行工具&#xff0c;用于全面檢測并顯示詳細的硬件信息。它能夠報告 CPU、內存、主板、存儲設備、顯卡、網絡設備等幾乎所有硬件組件的詳細信息&#xff0c;適用于系統管理、故障排查和硬件兼容性檢查等場景…

用llama3微調了一個WiFiGPT 用于室內定位

一段話總結 本文提出WiFiGPT,一種基于Decoder-Only Transformer(如LLaMA 3)的室內定位系統,通過將WiFi遙測數據(如CSI、FTM、RSSI)轉換為文本序列進行端到端訓練,無需手工特征工程即可實現高精度定位。實驗表明,WiFiGPT在LOS環境中實現亞米級精度(MAE低至0.90米),在…

大模型系列22-MCP

大模型系列22-MCP 玩轉 MCP 協議&#xff1a;用 Cline DeepSeek 接入天氣服務什么是 MCP&#xff1f;環境準備&#xff1a;VScode Cline DeepSeek**配置 DeepSeek 模型&#xff1a;****配置 MCP 工具****uvx是什么&#xff1f;****安裝 uv&#xff08;會自動有 uvx 命令&…

Go語言Map的底層原理

概念 map 又稱字典&#xff0c;是一種常用的數據結構&#xff0c;核心特征包含下述三點&#xff1a; &#xff08;1&#xff09;存儲基于 key-value 對映射的模式&#xff1b; &#xff08;2&#xff09;基于 key 維度實現存儲數據的去重&#xff1b; &#xff08;3&#x…

循環神經網絡(RNN):原理、架構與實戰

循環神經網絡&#xff08;Recurrent Neural Network, RNN&#xff09;是一類專門處理序列數據的神經網絡&#xff0c;如時間序列、自然語言、音頻等。與前饋神經網絡不同&#xff0c;RNN 引入了循環結構&#xff0c;能夠捕捉序列中的時序信息&#xff0c;使模型在不同時間步之間…

java 項目登錄請求業務解耦模塊全面

登錄是統一的閘機&#xff1b; 密碼存在數據庫中&#xff0c;用的是密文&#xff0c;后端加密&#xff0c;和數據庫中做對比 1、UserController public class UserController{Autowiredprivate IuserService userservicepublic JsonResult login(Validated RequestBody UserLo…

【手寫數據庫核心揭秘系列】第9節 可重入的SQL解析器,不斷解析Structure Query Language,語言翻譯好幫手

可重入的SQL解析器 文章目錄 可重入的SQL解析器一、概述 二、可重入解析器 2.1 可重入設置 2.2 記錄狀態的數據結構 2.3 節點數據類型定義 2.4 頭文件引用 三、調整后的程序結構 四、總結 一、概述 現在就來修改之前sqlscanner.l和sqlgram.y程序,可以不斷輸入SQL語句,循環執…

微軟開源bitnet b1.58大模型,應用效果測評(問答、知識、數學、邏輯、分析)

微軟開源bitnet b1.58大模型,應用效果測評(問答、知識、數學、邏輯、分析) 目 錄 1. 前言... 2 2. 應用部署... 2 3. 應用效果... 3 1.1 問答方面... 3 1.2 知識方面... 4 1.3 數字運算... 6 1.4 邏輯方面... …

用HTML5+JavaScript實現漢字轉拼音工具

用HTML5JavaScript實現漢字轉拼音工具 前一篇博文&#xff08;https://blog.csdn.net/cnds123/article/details/148067680&#xff09;提到&#xff0c;當需要將拼音添加到漢字上面時&#xff0c;用python實現比HTML5JavaScript實現繁瑣。在這篇博文中用HTML5JavaScript實現漢…

鴻蒙OSUniApp 開發的動態背景動畫組件#三方框架 #Uniapp

使用 UniApp 開發的動態背景動畫組件 前言 在移動應用開發中&#xff0c;動態背景動畫不僅能提升界面美感&#xff0c;還能增強用戶的沉浸感和品牌辨識度。無論是登錄頁、首頁還是活動頁&#xff0c;恰到好處的動態背景都能讓產品脫穎而出。隨著鴻蒙&#xff08;HarmonyOS&am…

云原生技術架構技術探索

文章目錄 前言一、什么是云原生技術架構二、云原生技術架構的優勢三、云原生技術架構的應用場景結語 前言 在當今的技術領域&#xff0c;云原生技術架構正以一種勢不可擋的姿態席卷而來&#xff0c;成為了眾多開發者、企業和技術愛好者關注的焦點。那么&#xff0c;究竟什么是…

AWS之AI服務

目錄 一、AWS AI布局 ??1. 底層基礎設施與芯片?? ??2. AI訓練框架與平臺?? ??3. 大模型與應用層?? ??4. 超級計算與網絡?? ??與競品對比?? AI服務 ??1. 機器學習平臺?? ??2. 預訓練AI服務?? ??3. 邊緣與物聯網AI?? ??4. 數據與AI…

lwip_bind、lwip_listen 是阻塞函數嗎

在 lwIP 協議棧中&#xff0c;lwip_bind 和 lwip_listen 函數本質上是非阻塞的。 通常&#xff0c;bind和listen在大多數實現中都是非阻塞的&#xff0c;因為它們只是設置套接字的屬性&#xff0c;不需要等待外部事件。阻塞通常發生在接受連接&#xff08;accept&#xff09;、…

【后端高階面經:消息隊列篇】28、從零設計高可用消息隊列

一、消息隊列架構設計的核心目標與挑戰 設計高性能、高可靠的消息隊列需平衡功能性與非功能性需求,解決分布式系統中的典型問題。 1.1 核心設計目標 吞吐量:支持百萬級消息/秒處理,通過分區并行化實現橫向擴展。延遲:端到端延遲控制在毫秒級,適用于實時業務場景。可靠性…

【運維實戰】Linux 內存調優之進程內存深度監控

寫在前面 內容涉及 Linux 進程內存監控 監控方式包括傳統工具 ps/top/pmap ,以及 cgroup 內存子系統&#xff0c;proc 內存偽文件系統 監控內容包括進程內存使用情況&#xff0c; 內存全局數據統計&#xff0c;內存事件指標&#xff0c;以及進程內存段數據監控 監控進程的內…

決策樹 GBDT XGBoost LightGBM

一、決策樹 1. 決策樹有一個很強的假設&#xff1a; 信息是可分的&#xff0c;否則無法進行特征分支 2. 決策樹的種類&#xff1a; 2. ID3決策樹&#xff1a; ID3決策樹的數劃分標準是信息增益&#xff1a; 信息增益衡量的是通過某個特征進行數據劃分前后熵的變化量。但是&…