Python快速入門專業版(十):字符串特殊操作:去除空格、判斷類型與編碼轉換

在這里插入圖片描述

目錄

  • 1.去除空格:清理字符串的實用技巧
    • 1.1 三類去空格方法:strip()、lstrip()、rstrip()
    • 1.2 實戰案例:處理用戶輸入的空格問題
  • 2.判斷類型:驗證字符串內容的特性
    • 2.1 常用類型判斷方法
    • 2.2 實戰案例:驗證用戶輸入的合法性
  • 3.編碼轉換:字符串與字節的相互轉換
    • 3.1 編碼與解碼的基本概念
    • 3.2 實戰案例:解決中文編碼亂碼問題
  • 4.總結與擴展

在實際開發中,字符串處理往往涉及更具體的需求:清理用戶輸入的多余空格、驗證輸入內容是否符合特定格式(如純數字)、處理不同編碼的文本數據等。這些操作雖然基礎,卻直接影響程序的健壯性和用戶體驗。本文將詳細講解字符串的三類特殊操作——去除空格、類型判斷和編碼轉換,通過實用案例展示其在實際開發中的應用,幫助讀者解決文本處理中的常見問題。

1.去除空格:清理字符串的實用技巧

用戶輸入的文本常常包含多余的空格(如首尾空格、意外的空白字符),這些無效字符會導致比較、查找等操作出錯。Python 提供了專門的方法用于去除字符串中的空格,確保文本數據的整潔性。

1.1 三類去空格方法:strip()、lstrip()、rstrip()

Python 字符串提供了三種去除空格的方法,分別針對不同位置的空格:

  • s.strip():去除字符串兩端的所有空白字符(包括空格、制表符 \t、換行符 \n 等)
  • s.lstrip():僅去除字符串左端(開頭)的空白字符
  • s.rstrip():僅去除字符串右端(結尾)的空白字符
# 定義包含多種空白字符的字符串
text = "  \tPython編程  \n"
print(f"原始字符串:「{text}」")
print(f"原始長度: {len(text)}")# 使用strip()去除兩端空白
stripped = text.strip()
print(f"\nstrip()結果:「{stripped}」")
print(f"strip()后長度: {len(stripped)}")# 使用lstrip()去除左端空白
left_stripped = text.lstrip()
print(f"\nlstrip()結果:「{left_stripped}」")
print(f"lstrip()后長度: {len(left_stripped)}")# 使用rstrip()去除右端空白
right_stripped = text.rstrip()
print(f"\nrstrip()結果:「{right_stripped}」")
print(f"rstrip()后長度: {len(right_stripped)}")# 去除指定字符(不僅限于空白)
# strip()可以接收參數,指定要去除的字符集合
custom_str = "###Hello World###"
print(f"\n原始字符串:「{custom_str}」")
print(f"去除#后:「{custom_str.strip('#')}」")mixed_str = "123abc456"
print(f"原始字符串:「{mixed_str}」")
# 去除開頭和結尾的數字(123和456)
print(f"去除數字后:「{mixed_str.strip('0123456789')}」")

注意事項:

  • 空白字符不僅包括空格( ),還包括制表符(\t)、換行符(\n)、回車符(\r)等
  • 這三個方法都不會修改原字符串(字符串不可變),而是返回處理后的新字符串
  • 可以通過參數指定要去除的字符(不限于空白),例如 s.strip('$%') 會去除兩端的 $%

1.2 實戰案例:處理用戶輸入的空格問題

用戶輸入是空格問題的高發區——用戶可能在輸入用戶名、密碼、搜索關鍵詞時意外添加空格,導致程序判斷錯誤(如登錄失敗、搜索無結果)。解決這類問題的核心是在處理輸入前先進行空格清理。

# 案例1:用戶登錄驗證(處理用戶名空格)
def login(username, password):# 模擬數據庫中的正確憑據valid_username = "admin"valid_password = "123456"# 清理輸入(去除兩端空格)cleaned_username = username.strip()cleaned_password = password.strip()# 驗證if cleaned_username == valid_username and cleaned_password == valid_password:return True, "登錄成功"else:return False, "用戶名或密碼錯誤"# 測試帶空格的輸入
print("案例1:登錄驗證")
username = "  admin  "  # 帶前后空格
password = "123456\t"   # 帶制表符
success, message = login(username, password)
print(f"登錄結果:{success},消息:{message}")  # 應登錄成功
print()# 案例2:搜索功能(忽略輸入前后空格)
def search_items(keyword, items):# 清理關鍵詞(僅去除兩端空格,保留中間空格)cleaned_keyword = keyword.strip()# 如果清理后為空,返回空結果if not cleaned_keyword:return []# 搜索(不區分大小寫)results = []for item in items:if cleaned_keyword.lower() in item.lower():results.append(item)return results# 測試搜索功能
print("案例2:搜索功能")
items = ["Python編程", "Java開發", "Python數據分析", "C++入門"]
user_input = "  python  "  # 帶前后空格
results = search_items(user_input, items)
print(f"搜索關鍵詞「{user_input}」的結果:{results}")  # 應返回包含Python的項
print()# 案例3:表單驗證(不允許中間有空格)
def validate_username(username):# 清理兩端空格cleaned = username.strip()# 檢查是否為空if not cleaned:return False, "用戶名不能為空"# 檢查是否包含空格if ' ' in cleaned:return False, "用戶名不能包含空格"# 檢查長度if len(cleaned) < 3 or len(cleaned) > 20:return False, "用戶名長度必須在3-20之間"return True, "用戶名有效"# 測試用戶名驗證
print("案例3:用戶名驗證")
test_usernames = ["  user  ", "  my name  ", "ab", "a"*21, "valid_user"]
for name in test_usernames:valid, msg = validate_username(name)print(f"用戶名「{name}」:{valid} - {msg}")

處理用戶輸入空格的最佳實踐:

  1. 輸入預處理:在驗證或存儲用戶輸入前,先用 strip() 清理兩端空格
  2. 保留中間空格:除非業務明確禁止,否則不要去除字符串中間的空格(如用戶輸入的姓名可能包含空格)
  3. 明確提示:當用戶輸入包含不允許的空格時,給出清晰的錯誤提示
  4. 日志記錄:必要時記錄原始輸入(便于排查問題),但處理和存儲時使用清理后的值

2.判斷類型:驗證字符串內容的特性

在處理用戶輸入時,經常需要驗證字符串是否符合特定格式:如手機號必須是純數字、用戶名只能包含字母和數字等。Python 字符串提供了一系列用于判斷內容特性的方法,無需編寫復雜的正則表達式即可完成基本驗證。

2.1 常用類型判斷方法

Python 提供了多個用于判斷字符串內容特性的方法,最常用的包括:

方法功能描述
s.isdigit()判斷字符串是否只包含數字字符(0-9),返回布爾值
s.isalpha()判斷字符串是否只包含字母(a-z, A-Z, 漢字等 Unicode 字母),返回布爾值
s.isalnum()判斷字符串是否只包含字母和數字,返回布爾值
s.islower()判斷字符串中的字母是否全為小寫
s.isupper()判斷字符串中的字母是否全為大寫
s.istitle()判斷字符串是否為標題格式(每個單詞首字母大寫,其余小寫)
s.isspace()判斷字符串是否只包含空白字符
# 定義測試字符串
test_strings = ["12345",       # 純數字"abcdef",      # 純小寫字母"ABCDEF",      # 純大寫字母"HelloWorld",  # 混合大小寫字母"Python123",   # 字母+數字"Python編程",   # 字母+中文"   ",         # 空格"123abc!",     # 包含特殊字符"12.34",       # 包含小數點"-123"         # 包含負號
]# 測試isdigit():是否只包含數字
print("=== isdigit() 測試 ===")
for s in test_strings:print(f"「{s}」: {s.isdigit()}")# 測試isalpha():是否只包含字母
print("\n=== isalpha() 測試 ===")
for s in test_strings:print(f"「{s}」: {s.isalpha()}")# 測試isalnum():是否只包含字母和數字
print("\n=== isalnum() 測試 ===")
for s in test_strings:print(f"「{s}」: {s.isalnum()}")# 其他常用判斷方法
print("\n=== 其他判斷方法測試 ===")
s = "Hello World"
print(f"「{s}」是否全為小寫: {s.islower()}")
print(f"「{s.upper()}」是否全為大寫: {s.upper().isupper()}")
print(f"「{s.title()}」是否為標題格式: {s.title().istitle()}")
print(f"「   \t\n」是否全為空白: {'   \t\n'.isspace()}")

重要說明:

  • isdigit() 只識別 0-9 這樣的數字字符,不識別小數點(.)、負號(-)等,因此 "12.3""-45" 會返回 False
  • isalpha() 會將漢字、日文等 Unicode 字母視為字母,因此 "Python編程" 會返回 True
  • 空字符串("")調用這些方法時均返回 False
  • 這些方法的返回結果受字符串內容影響,與字符串長度無關(只要內容符合條件,無論長度如何都返回 True

2.2 實戰案例:驗證用戶輸入的合法性

類型判斷方法在用戶輸入驗證中應用廣泛,如驗證手機號、身份證號、用戶名等。結合去空格操作,可以構建簡單而有效的輸入驗證邏輯。

# 案例1:驗證手機號(中國大陸)
def validate_phone(phone):# 1. 去除兩端空格cleaned = phone.strip()# 2. 檢查是否為11位數字if len(cleaned) != 11 or not cleaned.isdigit():return False, "手機號必須是11位數字"# 3. 檢查開頭是否為1(中國大陸手機號規則)if not cleaned.startswith(('13', '14', '15', '17', '18', '19')):return False, "手機號格式不正確"return True, "手機號驗證通過"print("案例1:手機號驗證")
test_phones = ["13800138000",    # 正確格式" 13912345678 ",   # 帶空格"123456789",       # 長度不足"138001380000",    # 長度過長"1380013800a",     # 包含字母"23800138000"      # 開頭不正確
]
for phone in test_phones:valid, msg = validate_phone(phone)print(f"手機號「{phone}」: {valid} - {msg}")
print()# 案例2:驗證用戶名(只能包含字母、數字和下劃線,長度3-20)
def validate_username(username):cleaned = username.strip()# 檢查長度if len(cleaned) < 3 or len(cleaned) > 20:return False, "用戶名長度必須在3-20之間"# 檢查字符(字母、數字、下劃線)# 注意:isalnum()不包含下劃線,因此需要單獨處理for char in cleaned:if not (char.isalnum() or char == '_'):return False, "用戶名只能包含字母、數字和下劃線"# 檢查不能以數字開頭if cleaned[0].isdigit():return False, "用戶名不能以數字開頭"return True, "用戶名驗證通過"print("案例2:用戶名驗證")
test_usernames = ["python_dev",      # 正確"user123",         # 正確"  py_user  ",     # 帶空格"ab",              # 太短"a"*21,            # 太長"user@name",       # 包含特殊字符"123user"          # 以數字開頭
]
for name in test_usernames:valid, msg = validate_username(name)print(f"用戶名「{name}」: {valid} - {msg}")
print()# 案例3:驗證年齡(必須是正整數)
def validate_age(age_str):cleaned = age_str.strip()# 檢查是否為數字if not cleaned.isdigit():return False, "年齡必須是數字"# 轉換為整數并檢查范圍age = int(cleaned)if age < 0 or age > 150:return False, "年齡必須在0-150之間"return True, f"年齡驗證通過({age}歲)"print("案例3:年齡驗證")
test_ages = ["25",       # 正確" 30 ",     # 帶空格"abc",      # 非數字"12.5",     # 小數"-5",       # 負數"200"       # 超出范圍
]
for age in test_ages:valid, msg = validate_age(age)print(f"年齡「{age}」: {valid} - {msg}")

輸入驗證的最佳實踐:

  1. 先清理后驗證:始終先使用 strip() 去除兩端空格,避免空格導致的誤判
  2. 分步驗證:將驗證邏輯分解為多個步驟(如先檢查長度,再檢查格式),并返回具體的錯誤原因
  3. 結合業務規則:基礎類型判斷(如 isdigit())只是第一步,還需結合具體業務規則(如手機號的長度和開頭數字)
  4. 提供明確反饋:錯誤提示應清晰說明問題所在(如“手機號必須是11位數字”而非簡單的“輸入無效”)

3.編碼轉換:字符串與字節的相互轉換

在 Python 中,字符串(str)和字節(bytes)是兩種不同的數據類型:字符串是 Unicode 字符的序列,而字節是原始的二進制數據。在處理文件、網絡通信、數據庫交互時,經常需要在兩者之間進行轉換,尤其是處理中文等非 ASCII 字符時,編碼轉換是避免亂碼的關鍵。

3.1 編碼與解碼的基本概念

  • 編碼(encode):將字符串(str)轉換為字節(bytes),使用 str.encode(encoding) 方法
  • 解碼(decode):將字節(bytes)轉換為字符串(str),使用 bytes.decode(encoding) 方法

最常用的編碼格式是 utf-8,它支持所有 Unicode 字符,是國際通用的編碼標準。其他常見編碼包括 gbk(中文編碼)、latin-1(西歐語言)等。

# 定義一個包含中文的字符串
text = "Python編程很有趣"
print(f"原始字符串: {text}")
print(f"類型: {type(text)}")# 編碼:字符串 -> 字節(使用utf-8編碼)
bytes_utf8 = text.encode("utf-8")
print(f"\nutf-8編碼的字節: {bytes_utf8}")
print(f"字節長度: {len(bytes_utf8)}")  # utf-8中一個漢字占3字節
print(f"類型: {type(bytes_utf8)}")# 解碼:字節 -> 字符串(使用utf-8解碼)
decoded_text = bytes_utf8.decode("utf-8")
print(f"\n解碼后的字符串: {decoded_text}")
print(f"解碼后與原字符串是否相同: {decoded_text == text}")# 使用其他編碼(如gbk)
try:bytes_gbk = text.encode("gbk")print(f"\ngbk編碼的字節: {bytes_gbk}")print(f"字節長度: {len(bytes_gbk)}")  # gbk中一個漢字占2字節print(f"gbk解碼: {bytes_gbk.decode('gbk')}")
except UnicodeEncodeError as e:print(f"gbk編碼錯誤: {e}")# 錯誤示例:編碼和解碼使用不同的格式
try:# 用utf-8編碼,卻用gbk解碼bytes_utf8 = text.encode("utf-8")wrong_decode = bytes_utf8.decode("gbk")print(f"\n錯誤解碼結果: {wrong_decode}")  # 會出現亂碼
except UnicodeDecodeError as e:print(f"解碼錯誤: {e}")

關鍵知識點:

  • 同一個字符串用不同編碼格式轉換為字節時,結果(字節內容和長度)可能不同(如 UTF-8 中一個漢字占 3 字節,GBK 中占 2 字節)
  • 編碼和解碼必須使用相同的格式,否則會出現亂碼或 UnicodeDecodeError
  • Python 3 中,字符串默認是 Unicode 編碼,支持全球所有語言的字符
  • 字節數據在打印時會顯示為 b'...' 形式,非 ASCII 字符會以十六進制表示(如 \xe7\xbc\x96

3.2 實戰案例:解決中文編碼亂碼問題

中文編碼亂碼是開發中常見的問題,通常源于編碼和解碼格式不匹配。以下案例展示了如何在文件操作和網絡通信中正確處理編碼轉換,避免亂碼。

# 案例1:正確讀寫包含中文的文件
def write_and_read_chinese():# 寫入中文到文件(指定encoding="utf-8")text = "這是一段包含中文的文本"try:# 寫入時指定編碼為utf-8with open("chinese_text.txt", "w", encoding="utf-8") as f:f.write(text)print("文件寫入成功")# 讀取時使用相同的編碼with open("chinese_text.txt", "r", encoding="utf-8") as f:content = f.read()print(f"正確讀取內容: {content}")# 錯誤示例:使用錯誤的編碼讀取try:with open("chinese_text.txt", "r", encoding="gbk") as f:wrong_content = f.read()print(f"錯誤編碼讀取內容: {wrong_content}")  # 會出現亂碼except UnicodeDecodeError as e:print(f"錯誤編碼讀取失敗: {e}")except Exception as e:print(f"文件操作錯誤: {e}")print("案例1:文件讀寫中的中文處理")
write_and_read_chinese()
print()# 案例2:模擬網絡傳輸中的編碼處理
def simulate_network_transfer():# 模擬服務器發送數據def server_send(message):# 服務器將字符串編碼為utf-8字節后發送return message.encode("utf-8")# 模擬客戶端接收數據def client_receive(data):# 客戶端用utf-8解碼接收到的字節return data.decode("utf-8")# 測試正常情況original_message = "服務器發送的中文消息"print(f"原始消息: {original_message}")# 模擬傳輸過程transferred_data = server_send(original_message)received_message = client_receive(transferred_data)print(f"接收消息: {received_message}")print(f"傳輸是否正確: {received_message == original_message}")# 測試異常情況(客戶端使用錯誤編碼)try:wrong_message = transferred_data.decode("gbk")print(f"錯誤解碼消息: {wrong_message}")except UnicodeDecodeError as e:print(f"解碼錯誤: {e}")print("\n案例2:網絡傳輸中的中文處理")
simulate_network_transfer()
print()# 案例3:處理已存在的亂碼文本
def fix_mojibake():# 假設這是一段用gbk編碼卻被錯誤地以utf-8解碼產生的亂碼garbled_text = "浣犲ソ錛屾垜鏄疘ython"# 嘗試修復:先將亂碼文本以utf-8編碼回字節,再用正確的gbk解碼try:# 步驟1:將亂碼字符串以utf-8編碼為字節(還原原始字節)original_bytes = garbled_text.encode("utf-8", errors="replace")# 步驟2:用正確的編碼(這里假設是gbk)解碼fixed_text = original_bytes.decode("gbk", errors="replace")print(f"亂碼文本: {garbled_text}")print(f"修復后文本: {fixed_text}")  # 應顯示"你好,我是Python"except Exception as e:print(f"修復失敗: {e}")print("\n案例3:修復亂碼文本")
fix_mojibake()

解決中文編碼問題的最佳實踐:

  1. 統一使用 UTF-8 編碼:在文件操作、網絡通信、數據庫交互中,優先使用 UTF-8 編碼,減少編碼不匹配問題
  2. 顯式指定編碼:在讀寫文件(open() 函數的 encoding 參數)、編碼轉換時,始終顯式指定編碼格式,不要依賴默認值
  3. 處理編碼錯誤:在編碼轉換時,可以使用 errors 參數處理異常字符(如 errors="replace" 替換無法編碼的字符)
  4. 修復亂碼的思路:如果文本已亂碼,可嘗試將其重新編碼為字節(使用錯誤的編碼),再用正確的編碼解碼

記住:編碼問題的核心是“編碼和解碼必須使用相同的格式”,只要保證這一點,就能避免大多數亂碼問題。

4.總結與擴展

本文介紹了字符串的三類特殊操作——去除空格、類型判斷和編碼轉換,這些操作在實際開發中應用廣泛,直接影響程序的健壯性和用戶體驗:

  1. 去除空格

    • strip()lstrip()rstrip() 分別用于去除兩端、左端、右端的空白字符
    • 核心應用是清理用戶輸入,避免空格導致的判斷錯誤
    • 擴展用法:可以通過參數指定要去除的特定字符
  2. 類型判斷

    • isdigit()isalpha()isalnum() 是驗證輸入格式的基礎工具
    • 需結合業務規則(如長度限制、特定前綴)進行完整驗證
    • 提供明確的錯誤提示,提升用戶體驗
  3. 編碼轉換

    • 編碼(encode())將字符串轉為字節,解碼(decode())將字節轉為字符串
    • 始終使用相同的編碼格式進行編碼和解碼,推薦使用 UTF-8
    • 處理文件和網絡數據時必須注意編碼問題,避免中文亂碼

擴展學習建議

  • 學習正則表達式(re 模塊),處理更復雜的字符串驗證需求(如郵箱、URL 格式)
  • 掌握 str.replace()str.split()str.join() 等方法,擴展字符串處理能力
  • 了解 Unicode 字符屬性,處理多語言文本(如區分中文、日文、韓文)
  • 學習 unicodedata 模塊,處理特殊 Unicode 字符(如表情符號、重音字符)

這些字符串操作看似簡單,但在實際開發中卻至關重要。熟練掌握并靈活運用這些技巧,能夠有效解決文本處理中的常見問題,編寫更健壯、更用戶友好的程序。

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

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

相關文章

Gamma AI:AI演示文稿制作工具,高效解決PPT框架搭建難與排版耗時問題

你做 PPT 的時候是不是也常陷入 “兩難”&#xff1f;要么對著空白幻燈片發呆&#xff0c;不知道怎么搭框架 —— 比如要做 “產品季度迭代復盤”&#xff0c;既想放數據又想講問題&#xff0c;結果頁面堆得像亂燉&#xff1b;要么好不容易湊完內容&#xff0c;又花兩小時調排版…

【應用案例】AI 給醫用過濾器 “找茬”:3 大難點 + 全流程解決方案

【應用案例】AI 給醫用過濾器 “找茬”&#xff1a;3 大難點 全流程解決方案&#x1f3af;醫用過濾器進行醫療AI檢測&#x1f3af;先看痛點&#xff1a;醫用過濾器檢測難在哪&#xff1f;&#x1f3af;AI檢測方案&#xff1a;3步實現“零漏檢”1. 硬件定制&#xff1a;讓缺陷“…

【數據庫相關】TxSQL新增數據庫節點步驟

TxSQL新增數據庫節點步驟準備工作與注意事項具體操作步驟第 1 步&#xff1a;在主庫上創建復制專用賬號第 2 步&#xff1a;對主庫進行鎖表并獲取二進制日志坐標第 3 步&#xff1a;備份主庫數據并傳輸到新從庫第 4 步&#xff1a;主庫解鎖第 5 步&#xff1a;在新從庫服務器上…

Jmeter快速安裝配置全指南

1、JDK安裝(Java Development Kit) 1.1.JDK下載 JDK下載址&#xff1a; Java Downloads | Oracle &#xff08;jdk-8u211-windows-x64.exe&#xff09; Android 基于 Java 語言開發&#xff0c;所以必須安裝Java環境&#xff0c;Java 環境分JDK 和JRE &#xff0c;JDK提…

設計模式最佳實踐 - 模板模式 + 責任鏈模式

廢話不多說&#xff0c;直接切入正題&#xff0c;本篇要講的是 模板模式 責任鏈模式 實踐。該最佳實踐本身就是一種對 責任鏈模式的增強&#xff0c;模板模式通過 父類 強耦合&#xff0c;預定義好 責任鏈 next 方法 的前后一些切面行為&#xff0c;優雅簡潔。先上示例&#x…

Python快速入門專業版(十一):布爾值與None:Python中的“真假”與“空值”(附邏輯判斷案例)

目錄引言&#xff1a;為什么“真假”與“空值”是編程的核心邏輯1.布爾值&#xff08;bool&#xff09;&#xff1a;Python中的“真”與“假”1.1 布爾值的基礎特性1.2 布爾運算&#xff1a;and、or、not的邏輯規則代碼示例&#xff1a;基礎布爾運算進階特性&#xff1a;短路求…

C++學習知識小結

1. 什么是類&#xff1f;什么是對象&#xff1f;兩者之間什么關系&#xff1f; 類是一類事物的共同特征的抽象描述&#xff0c;它定義這類所有的屬性和方法 可以理解為模版類本身不占用空間&#xff0c;它只是一種定義&#xff0c;描述了對象一個是什么樣子、能做什么 對象是根…

9. Mono項目與Unity的關系

1.Mono項目簡介 2.Mono項目與Unity是如何結合的 3.從Mono到IL2CPP演變過程1.Mono項目簡介 1).定義Mono是一個自由、開源的項目, 由Xamarin現屬于微軟主導開發; 它的目標是創建一個一套兼容于微軟.NET Framework 的跨平臺工具2).核心功能a.C#編譯器能將你寫的C#代碼編譯成IL(中間…

谷歌Genie 3:讓你的照片變成可以玩的游戲世界

你是否曾凝視著一張完美的旅行照片&#xff0c;想象著如果能走進那個畫面&#xff0c;自由探索會是怎樣一種體驗&#xff1f;或者&#xff0c;你是否曾被一幅畫的奇幻氛圍所吸引&#xff0c;渴望能在那片色彩斑斕的世界里奔跑跳躍&#xff1f;過去&#xff0c;這只是白日夢。而…

Cursor 提示詞探索——如何打造真正懂自己的Agent

最近看到魚皮的Cursor提示詞分享&#xff08;微信公眾平臺)&#xff0c;剛好之前也在做Agent開發&#xff0c;跟提示詞打交道的多&#xff0c;也經常發現 ai 蠢蠢的&#xff0c;一點不會根據提示詞設計的來&#xff0c;按魚皮的分享研究了一下&#xff0c;寫了這篇博客。 Curs…

C++ 內存模型:用生活中的例子理解并發編程

C 內存模型&#xff1a;用生活中的例子理解并發編程 文章目錄C 內存模型&#xff1a;用生活中的例子理解并發編程引言&#xff1a;為什么需要內存模型&#xff1f;核心概念&#xff1a;改動序列原子類型&#xff1a;不可分割的操作內存次序&#xff1a;不同的同步級別1. 寬松次…

AI急速搭建網站:Gemini、Bolt或Jules、GitHub、Cloudflare Pages實戰全流程!

文章目錄AI急速搭建網站&#xff1a;Gemini、Bolt或Jules、GitHub、Cloudflare Pages實戰全流程&#xff01;&#x1f680; 極速建站新范式&#xff1a;Gemini、Bolt.new、GitHub & Cloudflare Pages 全流程實戰&#xff01;第一步&#xff1a;創意可視化與代碼生成 — Goo…

Qwen2.5-VL實現本地GPTQ量化

本文不生產技術,只做技術的搬運工!! 前言 公開的Qwen2.5-VL模型雖然功能非常強大,但有時面對專業垂直領域的問題往往會出現一些莫名其妙的回復,這時候大家一版選擇對模型進行微調,而微調后的模型如果直接部署則顯存開銷過大,這時就需要執行量化,下面將介紹執行本地GPT…

【Redis】常用數據結構之Hash篇:從常用命令到使用場景詳解

目錄 1.前言 插播一條消息~ 2.正文 2.1Hash與String對比 2.2常用命令 2.2.1HSET 2.2.2HGET 2.2.3HEXISTS 2.2.4HDEL 2.2.5HKEYS 2.2.6HVALS 2.2.7HGETALL 2.2.8HMGET 2.2.9HLEN 2.2.10HSETNX 2.2.11HINCRBY 2.2.12HINCRBYFLOAT 2.3內部編碼 2.3.1. ziplist&…

OSPF基礎部分知識點

OSPF基礎 前言 路由器 根據 路由表 轉發數據包&#xff0c;路由表項 可通過手動配置 和動態路由協議 生成。&#xff08;兩種生成方式&#xff09;靜態路由比動態路由使用更少的帶寬&#xff0c;并且不占用CPU資源來計算和分析路由更新。當網絡結構比較簡單時&#xff0c;只需配…

Flutter 真 3D 游戲引擎來了,flame_3d 了解一下

在剛剛結束的 FlutterNFriends 大會上&#xff0c;Flame 展示了它們關于 3D 游戲的支持&#xff1a;flame_3d &#xff0c;Flame 是一個以組件系統&#xff08;Flame Component System, FCS&#xff09;、游戲循環、碰撞檢測和輸入處理為核心的 Flutter 游戲框架&#xff0c;而…

無需公網IP,電腦隨時與異地飛牛同步互聯保持數據一致性

最近小白有這樣一個煩惱&#xff1a;隨身帶著的電腦每天都在更新內容&#xff0c;于是就會有很多很多的存稿。電腦的空間開始變得不夠用了。各式各樣的圖片、視頻、文稿等內容&#xff0c;如果要整理到飛牛NAS上&#xff0c;好像很麻煩&#xff0c;而且每次都是需要回到家里才能…

數據庫中間件ShardingSphere v5.2.1

數據庫中間件ShardingSphere v5.2.1 文章目錄數據庫中間件ShardingSphere v5.2.1一 概述1 數據庫的瓶頸2 優化的手段3 主從復制4 讀寫分離5 分庫分表5.1 背景5.2 垂直分片5.3 水平分片6 ShardingSphere簡介二 ShardingSphere-JDBC講解1 讀寫分離實現1.1 基于Docker搭建MySQL主從…

[Upscayl圖像增強] Electron主進程命令 | 進程間通信IPC

第三章&#xff1a;Electron主進程命令 歡迎回來&#x1f43b;??? 在第一章&#xff1a;渲染器用戶界面&#xff08;前端&#xff09;中&#xff0c;我們探索了您與之交互的按鈕和菜單。然后在第二章&#xff1a;AI模型中&#xff0c;我們了解了讓您的圖像看起來更棒的&qu…

電競護航小程序成品搭建三角洲行動護航小程序開發俱樂部點單小程序成品游戲派單小程序定制

功能列表&#xff1a;商家入駐 成為管事 平臺公告 客服密鑰 客服管理 發單模板 快捷發單 自定義發單 打手入駐 訂單裁決 即時通訊 &#xff08;接單者員與發單者&#xff09; 打手排行 邀請排行 余額提現技術棧&#xff1a;前端uniapp 后端java