Python基礎數據類型與運算符全面解析

Python作為一門動態類型語言,擁有豐富的內置數據類型和運算符系統,構成了編程的基礎。本文將深入介紹Python核心數據類型的基本概念、特點及使用方法,并系統梳理運算符的分類、優先級和實際應用示例,幫助開發者全面掌握Python的基礎知識。

一、基礎數據類型

1. 整數類型(int)

整數類型在Python中表示沒有小數部分的數字,可為正數、負數或零。Python的int類型具有無限精度,不受固定位數限制,這使得它在處理大整數時非常便捷。

創建整數的多種方式:

a = 10          # 十進制整數
b = 0b1010      # 二進制整數
c = 0o12         # 八進制整數
d = 0x1a         # 十六進制整數

整數類型支持各種進制間的轉換,可通過內置函數實現:

num = 255
print(bin(num))   # 0b11111111
print(oct(num))   # 0o377
print(hex(num))   # 0xff
2. 浮點數類型(float)

浮點數類型用于表示帶有小數部分的數值,Python使用IEEE 754雙精度浮點數標準來實現浮點數運算。由于二進制表示小數的局限性,浮點數運算可能存在精度誤差。

創建浮點數的基本方法:

a = 3.14        # 直接賦值
b = 10.0         # 整數也可用浮點表示
c = 10 / 3       # 結果為3.333333333333333
d = 4.5e3        # 科學計數法表示4500.0

浮點數運算的精度問題示例:

print(0.1 + 0.2)    # 輸出0.30000000000000004
print(0.1 + 0.2 == 0.3) # 輸出False
3. 布爾類型(bool)

布爾類型是表示邏輯值的特殊類型,僅有True和False兩個值。在Python中,布爾類型本質上是整數的子類型,True對應整數1,False對應整數0。

布爾類型的使用示例:

a = True
b = Falseprint(a + 5)   # 輸出6
print(b * 10)  # 輸出0if a and b:print("條件滿足")
else:print("條件不滿足")  # 輸出條件不滿足
4. 字符串類型(str)

字符串類型用于表示文本數據,是不可變的有序字符序列。字符串支持多種操作,包括拼接、分割、格式化等,是Python中最常用的數據類型之一。

創建字符串的多種方式:

a = "Hello, World!"   # 雙引號
b = 'Python'              # 單引號
c = """這是多行字符串
可以跨越多行"""
d = 'a' * 5               # 字符重復5次,結果為'aaaaa'

字符串常用操作:

s = "Python編程"
print(len(s))          # 輸出9
print(s.split('程'))  # 輸出['Python編', '序']
print(s.replace('程', '學'))  # 輸出'Python學習'# 字符串格式化
name="張三"
address="香港"
print("我是%s,我在%s"%(name,address))
print(f"我是{name},我在{address}")
print("我是{0},我在{1}".format(name,address))
5. 列表類型(list)

列表類型是可變的、有序的元素集合,可以包含不同類型的數據。列表在Python中非常靈活,支持多種操作,如添加、刪除、修改元素等。

創建列表的基本方法:

a = [1, 2, 3, 4.5, "Python"]  # 混合類型列表
b = list(range(5))          # [0, 1, 2, 3, 4]
c = list("hello")            # ['h', 'e', 'l', 'l', 'o']

列表常用操作:

fruits = ['apple', 'banana', 'cherry']fruits.append('date')     # 在末尾添加元素,結果為['apple', 'banana', 'cherry', 'date']
fruits.extend(['elderberry', 'fig'])  # 擴展多個元素
fruits.insert(1, 'grape')  # 在指定位置插入元素
fruits.remove('banana')   # 移除指定元素
popped = fruits.pop()      # 移除并返回末尾元素
print(fruits.index('cherry'))  # 輸出2,返回元素索引
print(fruits.count('apple'))    # 輸出1,返回元素出現次數
6. 元組類型(tuple)

元組類型是不可變的、有序的元素集合,一旦創建就不能修改。元組通常用于存儲不會變化的數據,比列表更節省內存,且在某些場景下性能更好。

創建元組的方法:

point = (3, 4)          # 基本元組
empty_tuple = ()         # 空元組
single_element_tuple = (5,)  # 單元素元組必須帶逗號

元組的特性與應用:

# 元組解包
x, y = point
print(x, y)  # 輸出3 4# 元組的不可變性
point = (3, 4)
# point[0] = 5  # 這會引發TypeError# 元組的高效性
import sys
print(sys.getsizeof([1,2,3]))  # 列表占用更多內存
print(sys.getsizeof((1,2,3)))   # 元組占用更少內存
7. 集合類型(set)

集合類型是無序的、元素唯一的容器,用于存儲不重復的數據。集合支持數學集合的運算,如并集、交集等。

創建集合的方法:

a = {1, 2, 3, 3}  # 結果為{1, 2, 3}
b = set([4, 5, 6, 6])  # 結果為{4, 5, 6}
c = set("hello")    # 結果為{'h', 'e', 'l', 'o'}

集合的數學運算:

set1 = {1, 2, 3}
set2 = {3, 4, 5}print(set1 | set2)     # 并集,結果為{1, 2, 3, 4, 5}
print(set1 & set2)     # 交集,結果為{3}
print(set1 - set2)     # 差集,結果為{1, 2}
print(set1 ^ set2)     # 對稱差集,結果為{1, 2, 4, 5}
8. 字典類型(dict)

字典類型是鍵值對的集合,鍵必須是不可變類型(如字符串、數字、元組),值可以是任意類型。字典支持快速查找和修改,是處理結構化數據的理想選擇。

創建字典的方法:

person = {"name": "Alice", "age": 30, "city": "New York"}
empty_dict = {}
dict_from_tuple = dict([("a", 1), ("b", 2)])  # 從列表推導字典

字典的操作方法:

print(person["name"])  # 輸出'Apple'
person["age"] = 31      # 修改值
person["gender"] = "女"  # 添加新鍵值對
del person["city"]      # 刪除鍵值對# 字典解包與合并
def func(a, b, c):print(a, b, c)params = {'a': 1, 'b': 2, 'c': 3}
func(**params)  # 輸出1 2 3dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
merged_dict = {**dict1, **dict2}  # 結果為{'a':1, 'b':3, 'c':4}
9. 字節類型(bytes)

bytes類型是不可變的字節序列,用于處理二進制數據。它與字符串類似,但處理的是字節而非字符,是處理文件、網絡數據等二進制內容的基礎。

創建bytes對象的方法:

b1 = b'Hello'          # 帶b前綴的字面量
b2 = bytes([72, 101, 108, 108, 111])  # 從ASCII碼創建
b3 = "Python編程".encode('utf-8')  # 字符串編碼為bytes

bytes與字符串的轉換:

# 字符串轉bytes
s = "Hello"
b = s.encode('utf-8')  # b'Hello'# bytes轉字符串
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'  # '你好'的UTF-8編碼
s = b.decode('utf-8')  # '你好'# 處理編碼錯誤
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
try:s = b.decode('ascii')
except UnicodeDecodeError as e:print(f"解碼錯誤: {e}")  # 輸出解碼錯誤信息

二、運算符詳解

1. 算術運算符

算術運算符用于執行數學運算,是最基本的運算符類型。

運算符

名稱

示例

說明

+

a + b

加法運算

-

a - b

減法運算

*

a * b

乘法運算

/

a / b

返回浮點數

//

整除

a // b

返回整數商

%

取余

a % b

返回除法余數

**

a ** b

a的b次冪

@

矩陣乘

a @ b

(3.5+)僅用于支持__matmul__的對象

~

按位取反

~a

按位取反操作

算術運算符的使用示例:

a = 10
b = 3print(a + b)    # 13
print(a - b)    # 7
print(a * b)    # 30
print(a / b)    # 3.333333333333333
print(a // b)   # 3
print(a % b)    # 1
print(a ** b)   # 1000
2. 比較運算符

比較運算符用于比較兩個值的大小,返回布爾值。

運算符

名稱

示例

說明

==

等于

a == b

檢查兩個值是否相等

!=

不等于

a != b

檢查兩個值是否不等

<

小于

a < b

檢查a是否小于b

>

大于

a > b

檢查a是否大于b

<=

小于或等于

a <= b

檢查a是否小于或等于b

>=

大于或等于

a >= b

檢查a是否大于或等于b

比較運算符的使用示例:

x = 10
y = 20print(x == y)  # False
print(x != y)  # True
print(x < y)   # True
print(x > y)   # False
print(x <= y)  # True
print(x >= y)  # False# 字符串比較
print("apple" < "banana")  # True,按字母順序比較
3. 邏輯運算符

邏輯運算符用于組合條件表達式,返回布爾值。

運算符

名稱

示例

說明

and

邏輯與

x and y

如果x為True,返回y的值;否則返回x的值

or

邏輯或

x or y

如果x為True,返回x的值;否則返回y的值

not

邏輯非

not x

反轉布爾值

邏輯運算符的使用示例:

x = True
y = Falseprint(x and y)  # False
print(x or y)   # True
print(not x)    # False# 邏輯運算符的短路特性
print(x and "執行了")  # 輸出"執行了",因為x為True
print(y or "執行了")  # 輸出"執行了",因為y為False
4. 位運算符

位運算符直接操作二進制位,常用于底層數據處理。

運算符

名稱

示例

說明

~

按位取反

~a

反轉所有二進制位

<<

左移

a << b

將a的二進制左移b位

>>

右移

a >> b

將a的二進制右移b位

&

按位與

a & b

二進制按位與操作

按位或

a

^

按位異或

a ^ b

二進制按位異或操作

~~

取整數的二進制形式

~a & ~b

位運算組合操作

位運算符的使用示例:

a = 8  # 二進制為1000
b = 3  # 二進制為0011print(a << 2)    # 32,二進制為100000
print(a >> 1)    # 4,二進制為100
print(a & b)     # 0,二進制為0000
print(a | b)     # 11,二進制為1011
print(a ^ b)     # 11,二進制為1011
5. 成員運算符

成員運算符用于檢查元素是否存在于容器中。

運算符

名稱

示例

說明

in

成員檢查

x in list

如果x存在于容器中,返回True

not in

非成員檢查

x not in list

如果x不存在于容器中,返回True

成員運算符的使用示例:

fruits = ['apple', 'banana', 'cherry']print('apple' in fruits)   # True
print('date' not in fruits)  # True# 字符串中的成員檢查
print('a' in 'apple')  # True
6. 身份運算符

身份運算符用于檢查對象是否相同,比較的是對象的內存地址而非值。

運算符

名稱

示例

說明

is

身份檢查

x is y

如果x和y是同一個對象,返回True

is not

非身份檢查

x is not y

如果x和y不是同一個對象,返回True

身份運算符的使用示例:

a = [1, 2, 3]
b = a
c = [1, 2, 3]print(b is a)    # True,b和a指向同一個列表
print(c is a)    # False,c和a指向不同的列表
print(c == a)    # True,c和a的值相同

三、運算符優先級與結合性

Python運算符具有明確的優先級和結合性規則,正確理解這些規則對編寫清晰的表達式至關重要。以下是主要運算符的優先級排序(從高到低):

  1. 乘方運算符:**
  2. 單目運算符:~ + - not
  3. 乘除運算符:* / // % divmod()
  4. 加減運算符:+ -
  5. 位移運算符:<< >>
  6. 按位與運算符:%
  7. 按位異或運算符:^
  8. 按位或運算符:|
  9. 比較運算符:< > == != <= >= is is not
  10. 成員運算符:in not in
  11. 邏輯與運算符:and
  12. 邏輯或運算符:or
  13. 條件表達式:x if condition else y
  14. 賦值運算符:= += -= *= /= %= **= <<= >>= &= ^= |=

運算符的結合性是指當同一優先級的運算符連續出現時,運算的順序如何確定。Python中的運算符結合性分為左結合右結合兩種。

左結合運算符:從左到右執行

print(10 - 3 - 2)  # (10-3)=7,7-2=5 → 5
print(5 + 3 * 2)   # 3*2=6,5+6=11 → 11

右結合運算符:從右到左執行

print(2 ** 3 ** 2)  # 3**2=9,2**9=512 → 512
print(-(-(-5)))       # 從右到左計算 → -5 → 5 → -5

四、數據類型轉換與操作技巧

1. 類型轉換函數

Python提供了豐富的類型轉換函數,用于在不同數據類型間轉換。

  • int():將其他類型轉換為整數
print(int(3.9))    # 3,向下取整
print(int("123"))   # 123
print(int("0x1a", 16))  # 26,十六進制轉十進制
  • float():將其他類型轉換為浮點數
print(float(10))    # 10.0
print(float("3.5"))  # 3.5
  • str():將其他類型轉換為字符串
print(str(123))     # '123'
print(str(3.14))    # '3.14'
  • list():將可迭代對象轉換為列表
print(list((1,2,3)))  # [1,2,3]
print(list("hello"))    # ['h','e','l','l','o']
  • tuple():將可迭代對象轉換為元組
print(tuple([1,2,3]))  # (1,2,3)
  • set():將可迭代對象轉換為集合
print(set([1,2,3,3]))  # {1,2,3}
  • dict():創建字典,支持從鍵值對序列創建
print(dict([("a",1),("b",2)]))  # {'a':1, 'b':2}
print(dict.fromkeys(["a","b"], 0))  # {'a':0, 'b':0}
  • bytes():將可迭代對象轉換為bytes
print(bytes([72,101,108,108,111]))  # b'Hello'
2. 容器類型操作技巧
  • 列表推導式:簡潔創建列表
squares = [x**2 for x in range(10)]  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
even_numbers = [x for x in range(10) if x%2 ==0]  # [0,2,4,6,8]
  • 字典推導式:簡潔創建字典
keys = ['a','b','c']
values = [1,2,3]
my_dict = {k:v for k,v in zip(keys,values)}  # {'a':1, 'b':2, 'c':3}
  • 集合推導式:簡潔創建集合
unique_chars = {c for c in "hello"}  # {'h','e','l','o'}
  • 元組解包:快速分配多個值
a, b, c = (1,2,3)
print(a, b, c)  # 1 2 3
3. 字符串與bytes轉換技巧
  • 字符串轉bytes:使用encode方法
s = "Python編程"
b = s.encode('utf-8')  # b'Python編程' → 實際為b'Python編程'的UTF-8編碼
  • bytes轉字符串:使用decode方法
b = b'Hello'
s = b.decode('utf-8')  # 'Hello'
  • 處理編碼錯誤:指定錯誤處理方式
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
s = b.decode('utf-8', errors='ignore')  # 忽略無法解碼的字節
4. 字典操作高級技巧
  • 字典解包:將字典展開為函數參數
def print_info(name, age, city):print(f"{name} {age}歲,住在{city}")person = {"name": "Alice", "age": 30, "city": "New York"}
print_info(**person)  # 輸出"Alice 30歲,住在New York"
  • 字典合并:Python 3.9+支持|運算符
dict1 = {'a':1, 'b':2}
dict2 = {'b':3, 'c':4}
merged_dict = dict1 | dict2  # {'a':1, 'b':3, 'c':4}
  • 字典get()方法:安全獲取值
person = {"name": "Alice", "age": 30}
print(person.get("city", "未知"))  # '未知',因為鍵不存在
5. 異常處理與類型轉換
  • 捕獲轉換錯誤:使用try-except塊
try:num = int("10.5")
except ValueError:print("轉換失敗:無效的整數字符串")
  • 安全轉換函數:自定義轉換函數
def safe_int(s):try:return int(s)except ValueError:return Nonenum = safe_int("10.5")
print(num)  # None

五、實際應用場景與最佳實踐

1. 數據處理中的類型選擇
  • 使用元組存儲不可變數據:如數據庫記錄、坐標點等
  • 使用集合去重:快速去除列表中的重復元素
  • 使用字典映射關系:存儲鍵值對數據,如配置信息、用戶數據等
2. 運算符的高效使用
  • 利用成員運算符:快速檢查元素是否存在
if "apple" in fruits:print("找到了蘋果")
  • 使用邏輯運算符:構建復雜條件表達式
if age >= 18 and age <= 60:print("成年人")
  • 結合位運算符:進行低級數據操作
# 檢查是否為奇數
print((5 & 1) == 1)  # True
3. 字符串與bytes的正確使用
  • 文本處理使用字符串:如消息處理、用戶輸入等
  • 二進制數據使用bytes:如文件讀寫、網絡傳輸等
  • 注意編碼轉換:處理文本和二進制數據時需明確編碼方式
4. 容器類型的性能考慮
  • 列表適合頻繁修改:如添加、刪除元素
  • 元組適合頻繁訪問:如迭代、作為字典鍵
  • 集合適合快速查找:成員存在性檢查的時間復雜度為O(1)

六、常見問題與解決方案

1. 浮點數精度問題

浮點數運算可能因二進制表示導致精度誤差,解決方案包括:

  • 使用十進制模塊處理精確小數
from decimal import Decimal
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)  # 0.3
  • 對結果進行四舍五入
print(round(0.1 + 0.2, 1))  # 0.3
2. 類型轉換錯誤處理

在進行類型轉換時,常遇到ValueError等異常,應使用try-except塊處理:

def convert_to_int(s):try:return int(s)except ValueError:print(f"錯誤:無法將{s}轉換為整數")return Nonenum = convert_to_int("10.5")
print(num)  # 輸出錯誤信息并返回None
3. 字符串與bytes的編碼問題

不同系統可能使用不同編碼方式,導致轉換錯誤,解決方案包括:

  • 明確指定編碼方式
s = "你好"
b = s.encode('utf-8')  # 指定編碼方式
  • 處理編碼錯誤
b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
try:s = b.decode('gbk')
except UnicodeDecodeError:s = b.decode('utf-8', errors='ignore')

七、總結與建議

Python的基礎數據類型和運算符構成了編程的核心,正確理解這些概念對于編寫高效、清晰的Python代碼至關重要。在實際應用中,應根據數據特性和操作需求選擇合適的類型,如使用集合去重、使用字典映射關系等。

關于運算符的使用,建議:

  1. 熟悉運算符優先級,必要時使用括號明確優先級
  2. 合理利用運算符的短路特性,優化條件判斷
  3. 避免在浮點數運算中直接比較相等性,考慮使用近似比較

關于類型轉換,建議:

  1. 明確轉換的目的和可能的異常情況
  2. 處理字符串和bytes時,始終指定編碼方式
  3. 使用自定義函數處理可能失敗的轉換,增加代碼健壯性

通過掌握這些基礎概念和操作技巧,開發者可以更高效地利用Python處理各種數據問題,構建功能強大的應用程序。

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

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

相關文章

Mysql分區(單服務器應對大數據量方案)

參考資料&#xff1a; 參考視頻 參考博客 分區的復雜操作 參考資料 概述&#xff1a; 這里只講實操&#xff0c;不講原理&#xff0c;看原理請看參考資料Mysql自5.1后支持分區&#xff0c;在Mysql8之后只有InnoDB支持分區&#xff0c;Mysiam不支持分區本例只是一個簡單的說…

[Java惡補day22] 240. 搜索二維矩陣Ⅱ

編寫一個高效的算法來搜索 m x n 矩陣 matrix 中的一個目標值 target 。該矩陣具有以下特性&#xff1a; 每行的元素從左到右升序排列。 每列的元素從上到下升序排列。 示例 1&#xff1a; 輸入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17…

基于Master-Slave主從博弈論的儲能與能源協調算法matlab仿真

目錄 1.課題概述 2.系統仿真結果 3.核心程序 4.系統仿真參數 5.系統原理簡介 6.參考文獻 7.完整工程文件 1.課題概述 基于Master-Slave主從博弈論的儲能與能源協調算法matlab仿真.主從博弈&#xff08;Stackelberg Game&#xff09;是一種具有層級決策結構的博弈模型&am…

vue-print-nb 打印相關問題

一、背景與解決方案 1、ElementUI表格打印通病&#xff0c;均面臨邊框丟失、寬度超出問題&#xff1a;相關解決代碼有注釋&#xff1b; 2、大多數情況下不會打印頁眉頁腳的日期、網址、未配置popTitle顯示的undefined&#xff1a;相關解決代碼有注釋&#xff1b; 3、打印預覽頁…

Agent應用案例精選,以及主流Agent框架開源項目推薦

一、Agent技術概述 在人工智能領域,Agent(智能體)是指能夠感知環境、自主決策并執行動作以實現特定目標的智能系統。隨著大語言模型(LLM)的快速發展,基于LLM的Agent系統已成為當前AI研究的熱點方向,為復雜任務解決提供了全新范式。 Agent的核心特征 自主性(Autonomy): 能夠…

Linux下基礎IO

1 文件 這里首先得理解一下文件&#xff0c;文件存放在磁盤中&#xff08;磁盤是永久性存儲介質&#xff0c;是一種外設&#xff0c;也是一種輸入輸出設備&#xff09;&#xff0c;磁盤上的文件的所有操作&#xff0c;都是對外設的輸入和輸出簡稱IO&#xff0c;linux下一切皆?…

云原生核心技術 (6/12): K8s 從零到一:使用 Minikube/kind 在本地搭建你的第一個 K8s 集群

摘要 本文是一篇保姆級的實踐指南&#xff0c;旨在解決學習 Kubernetes (K8s) 時“環境搭建難”的頭號痛點。我們將對比分析 Minikube、kind、K3s 和 Docker Desktop Kubernetes 等主流本地 K8s 環境方案的優缺點&#xff0c;幫助你選擇最適合自己的工具。隨后&#xff0c;文章…

線程運行的現象和相關指令

一.多個線程運行的現象 1.規律 交替執行誰先誰后&#xff0c;不由我們控制 2.舉例 Slf4j(topic "c.Test6") public class Test06 {public static void main(String[] args) {//創建并運行線程1new Thread(()->{while (true){log.debug("running");…

Windows網絡配置避坑指南

Windows網絡配置避坑指南 一、網絡配置是什么?防火墻的“信任開關”二、何時需要手動切換網絡配置文件??必需切換的場景高危!絕對禁止選錯的兩個場景三、3種切換指南(Win10/11通用)方法1:圖形化操作(推薦小白)?方法2:用PowerShell強制切換方法3:注冊表底層修改(應…

基于ThinkPHP8.*的后臺管理框架--Veitool框架學習使用

基于ThinkPHP8.*的后臺管理框架--Veitool框架學習使用 一、安裝部署二、目錄結構 一、安裝部署 環境要求 Linux、Unix、macOS、Windows Nginx、Apache、IIS PHP > 8.1.0 MySQL > 5.7 下載地址 官網下載&#xff1a;https://www.veitool.com/download 境內倉庫&#xff…

Java多線程通信核心機制詳解

在Java中&#xff0c;多線程通信與協作主要通過以下幾種核心機制實現&#xff0c;每種方式適用于不同的并發場景&#xff1a; &#x1f504; 一、共享變量同步控制&#xff08;基礎方式&#xff09; // 使用volatile保證可見性 private volatile boolean flag false;// 線程A…

Django知識-視圖

視圖設置 一個視圖函數&#xff0c;簡稱視圖&#xff0c;是一個簡單的Python 函數&#xff0c;它接受Web請求并且返回Web響應。代碼寫在哪里也無所謂&#xff0c;只要它在你的應用目錄下面。但是為了方便視圖一般被定義在“應用/views.py”文件中。 視圖的第一個參數必須為Ht…

DevSecOps實踐:CI/CD流水線集成動態安全測試(DAST)工具

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 讓安全掃描成為代碼交付的“守門員” 引言&#xff1a;安全漏洞的代價&#xff0c;越早發現越好 在軟件開發領域&#xff0c;安全漏洞的修復成本隨著開發…

使用CSDN作為Markdown編輯器圖床

使用CSDN作為Markdown編輯器圖床 一、CSDN圖床的優勢 MD編輯器在撰寫文檔時功能強大&#xff0c;但插入圖片需借助圖床。CSDN作為免費圖床&#xff0c;操作簡單且穩定性高&#xff0c;適合日常使用。只需將圖片上傳至CSDN的MD編輯器&#xff0c;即可獲取可直接訪問的圖片地址…

python打卡day51

復習日 作業&#xff1a;day43的時候我們安排大家對自己找的數據集用簡單cnn訓練&#xff0c;現在可以嘗試下借助這幾天的知識來實現精度的進一步提高 還是繼續用上次的街頭食物分類數據集&#xff0c;既然已經統一圖片尺寸到了140x140&#xff0c;所以這次選用輕量化模型 Mobi…

Vuex 自動化生成工具

Vuex 自動化生成工具需求文檔 1. 需求背景 為提升前端開發效率&#xff0c;減少重復代碼編寫&#xff0c;需開發一個自動化工具&#xff0c;根據輸入參數自動生成完整的 Vuex 存儲模塊&#xff08;包括api.js&#xff0c;mutations.js&#xff0c;actions.js&#xff0c;gette…

深入淺出多路歸并:原理、實現與實戰案例解析

文章目錄 二路歸并多路歸并方法一&#xff1a;指針遍歷&#xff08;多指針比較法&#xff09;方法二&#xff1a;小根堆法&#xff08;最小堆歸并&#xff09; 實際場景外部排序 經典題目丑數Ⅱ方法一&#xff1a;三指針法方法二&#xff1a;優先隊列法&#xff08;K路歸并&…

Koji構建系統宏定義注入與Tag體系解析

在Red Hat生態的持續集成鏈條中&#xff0c;Koji作為核心構建系統&#xff0c;其靈活的宏定義機制與精密的Tag體系是保障軟件包高效流轉的關鍵。本文將系統闡述在既有構建目標中注入宏定義的技術路徑&#xff0c;并深度解析Koji中Target與Tag的概念架構及其版本演進差異。 一、…

【Kubernetes】架構與原理:核心概念、組件協同及容器化部署解析

文章目錄 一、前言二、為什么需要 Kubernetes1. 傳統部署方法2. 虛擬化部署3. 容器化部署Ⅰ. 基本概念Ⅱ. 容器編排的必要性Ⅲ. 容器化部署的優勢4. k8s 的歷史與發展三、Kubernetes 基本概念1. k8s 核心架構解析Ⅰ. 控制平面與工作節點Ⅱ. 各組件協同工作原理2. k8s 核心概念Ⅰ…

Pip Manager本地Python包管理器

在Python開發領域&#xff0c;包管理是每個開發者日常工作中不可或缺的一部分。雖然命令行工具pip功能強大&#xff0c;但對于初學者和非技術背景的用戶來說&#xff0c;命令行界面往往顯得不夠友好。如果使用PyCharm&#xff0c;則可以非常簡單的管理安裝的Python包&#xff1…