Python天梯賽系統備考-字符串篇

知識點拆解
??

1. 切片技巧

定義

通過?[start:end:step]?語法截取字符串的子序列

  • start:起始索引(包含,默認0)

  • end:結束索引(不包含,默認末尾)

  • step:步長(可為負數實現逆序)

字訣:包左不包右

核心用途
  • 快速逆序字符串

  • 提取特定區間的子串

  • 間隔取字符

示例代碼
#輸入一個字符串s
s = "Hello,天梯賽!"# 基本切片
print(s[0:5])    # 輸出 "Hello" (索引0-4)
print(s[7:10])   # 輸出 "天梯賽"# 逆序技巧
print(s[::-1])   # 輸出 "!賽梯天,olleH"
print(s[5:2:-1]) # 輸出 ",ol" (從索引5到3逆序)# 步長應用
print(s[::2])    # 輸出 "Hlo天賽" (每隔1個字符取)
注意事項
  • 索引越界時自動取有效范圍(如s[0:100]等效s[0:])

  • 原字符串不可變,切片會生成新字符串


2. 格式化輸出

定義

使用?f-string?或?format()?方法控制字符串的顯示格式

常用格式符
格式符號功能說明示例
:>n右對齊,總寬度nf"{6:>4}" → "? ?6"
:<n左對齊,總寬度nf"{6:<4}" → "6? ?"
:^n居中對齊,總寬度nf"{6:^4}" → " 6? "
:0>n右側補零到n位f"{6:0>4}" → "0006"
:.2f保留兩位小數f"{3.1415:.2f}" → "3.14"
:x十六進制格式f"{255:x?}" → "ff"
print(f"{6:>4}")
print(f"{6:<4}")
print(f"{6:^4}")
print(f"{6:0>4}")
print(f"{6:0<4}")
print(f"{6:0^4}")
#答案輸出示例已在上面表格中給出
場景應用
  • 按要求補前導零(如輸出時間格式)

  • 對齊表格數據

  • 控制浮點數精度

示例代碼
# 成績格式化輸出
name, score = "張三", 95.5
print(f"{name:<5}的成績:{score:0>5.1f}分") 
# 輸出 "張三   的成績:095.5分"# 日期補零
month, day = 3, 8
print(f"日期:{month:0>2d}-{day:0>2d}") 
# 輸出 "日期:03-08"

3. 正則表達式

定義

通過特定模式匹配文本的工具,Python中通過?re?模塊實現。

re.findall()提取數字/字母  匹配模式 r'\d+'(整數) / r'-?\d+'(含負數)
常用元字符
模式含義示例
\d匹配數字等價于[0-9]
\w匹配字母/數字/下劃線等價于[a-zA-Z0-9_]
\s匹配空白字符包含空格、換行等
.匹配任意字符(除換行)
*匹配前字符0次或多次
+匹配前字符1次或多次
?匹配前字符0或1次
典型應用場景
  • 從復雜文本中提取數字/字母

  • 驗證輸入格式(如郵箱、電話號碼)

  • 替換特定模式的文本

示例代碼
import retext = "訂單號:AB123,金額:-45.6元,數量:2"# findall提取所有整數(含負數)
nums = re.findall(r"-?\d+", text) 
print(nums)  # 輸出 ['123', '-45', '6', '2']# 分割混合字符
parts = re.split(r"(\d+)", "A12B34C") 
print(parts)  # 輸出 ['A', '12', 'B', '34', 'C']# 替換非數字字符
clean_str = re.sub(r"[^\d]", "", "Tel: 0571-8888-6666")
print(clean_str)  # 輸出 "057188886666"

?正則表達式在密碼強度評估器的設計中有反復使用過,他的公式套用相對比較晦澀,例如\d表示數字,+表示一個或多個,-?處理可能出現的負號等等,比較細碎可以學一個用一個,初學者以盡量知道在干什么為主。


4. 字符串轉換

核心方法
方法功能說明時間復雜度
.split()按分隔符分割為列表O(n)
.join()合并可迭代對象為字符串O(n)
.replace()替換子串O(n)
.upper()轉大寫O(n)
.strip()去除首尾空白O(n)
應用場景對比
場景推薦方法
按空格分割單詞s.split() (無參數自動處理)
處理含多種分隔符re.split()
合并路徑"/".join(path_parts)
批量替換多個不同字符.translate()
示例代碼
# 分割與合并
s = "2023-08-15"
parts = s.split("-")  # ['2023', '08', '15']
new_s = "/".join(parts)  # "2023/08/15"# 多重替換
s = "Hello World"
s = s.replace("H", "J").replace("W", "")  # "Jello orld"# 快速清洗數據
dirty_str = "  Price: $123.45\n"
clean_str = dirty_str.strip().replace("$", "").upper()
# 結果:"PRICE: 123.45"

綜合應用示例

題目:處理用戶輸入的復雜字符串,提取所有整數并求和

import reinput_str = "數據:A1銷售額5000元,B2銷量-300件,成本-1200.5"
numbers = list(map(int, re.findall(r"-?\d+", input_str)))
total = sum(numbers)  # 5000 + (-300) + (-1200) = 3800
print(f"合計:{total}") 

對應練習題

??L1-011 A-B(字符串刪除操作)?
? L1-026 I Love GPLT(固定格式輸出)?
? L1-034 點贊(統計特征字符)?

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

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

相關文章

國標28181協議在智聯視頻超融合平臺中的接入方法

一. 國標28181介紹 國標 28181 協議全稱是《安全防范視頻監控聯網系統信息傳輸、交換、控制技術要求》&#xff0c;是國內視頻行業最重要的國家標準&#xff0c;目前有三個版本&#xff1a; 2011 年&#xff1a;推出 GB/T 28181-2011 版本&#xff0c;為安防行業的前端設備、平…

深入探究 C 語言內存函數:memcpy、memmove、memset 和 memcmp

一&#xff0c;常見的內存函數 在 C 語言的編程世界里&#xff0c;對內存的高效操作至關重要。C 標準庫為我們提供了一系列強大的內存操作函數&#xff0c;其中 memcpy、memmove、memset 和 memcmp 這四個函數是處理內存數據的得力助手。接下來&#xff0c;讓我們深入了解它們…

Java 集合

Java 集合 在 Java 編程中&#xff0c;集合框架&#xff08;java.util 包&#xff09;是處理一組對象的強大工具。與數組不同&#xff0c;集合提供了更靈活的數據存儲和操作方式。本文將詳細介紹 Java 集合框架的核心接口、常用實現類及其應用場景&#xff0c;幫助你更好地理解…

go基本語法

跟Java比較學習。 hello word 示例代碼 test1.go文件&#xff1a; // 包路徑 package main// 導入模塊&#xff0c;下面兩種都行 import ("fmt" ) import "log"// main方法 func main() {log.Print("hello word !!!")fmt.Print("hello …

【Docker】如何在Linux、Windows、MacOS中安裝Docker

Linux安裝Docker 在終端中執行一鍵安裝腳本命令安裝docker sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh | bash -s docker --mirror Aliyun1.1 配置docker鏡像源 在終端執行 一行命令&#xff0c;編輯配置文件 sudo …

2.24力扣-回溯電話號碼的字母組合

17. 電話號碼的字母組合 - 力扣&#xff08;LeetCode&#xff09; class Solution {List<String> ans new LinkedList<>();StringBuilder temp new StringBuilder();public List<String> letterCombinations(String digits) {if(digitsnull || digits.leng…

Cocos Creator Shader入門實戰(一):材質和Effect的了解

引擎版本&#xff1a;3.8.5 環境&#xff1a; Windows 簡介 在Cocos Creator中&#xff0c;游戲炫彩繽紛的效果是借助著色器(Shader)來實現的。 Cocos主要基于OpenGL ES&#xff0c;而Shader的編寫則是在可編程渲染管線中基于修改&#xff1a;頂點著色器(Vertex) 和 片段著色…

akka現有的分布式定時任務框架總結

根據你的需求&#xff0c;以下是一些基于 Akka 實現的分布式定時任務框架&#xff0c;以及相關的 GitHub 項目推薦&#xff1a; 1. Openjob Openjob 是一個基于 Akka 架構的新一代分布式任務調度框架&#xff0c;支持多種定時任務、延時任務、工作流設計&#xff0c;采用無中…

微信小程序地圖map全方位解析

微信小程序地圖map全方位解析 微信小程序的 <map> 組件是一個功能強大的工具&#xff0c;可以實現地圖展示、定位、標注、路徑規劃等多種功能。以下是全方位解析微信小程序地圖組件的知識點&#xff1a; 一、地圖組件基礎 1. 引入 <map> 組件 在頁面的 .wxml 文…

Python的PyTorch+CNN深度學習技術在人臉識別項目中的應用

人臉識別技術是一種基于人臉特征進行身份識別的生物識別技術&#xff0c;其核心原理包括人臉檢測、人臉對齊、特征提取、特征匹配、身份識別。 一、應用場景 安防&#xff1a;門禁、監控。 金融&#xff1a;刷臉支付、身份驗證。 社交&#xff1a;自動標注、美顏。 醫療&am…

《數據庫索引設計與優化》譯本錯誤糾正(1)

今天在學習《數據庫索引設計與優化》第十一章第198頁的時候遇到一個問題&#xff0c;即參數的文字描述與實際不符。我看的是從網絡上找到的譯本&#xff0c;許多喜歡白嫖的朋友可能也會像我一樣遇到這種問題。 可以看到&#xff0c;上面對參數Z的描述是&#xff1a;Z上一次索引…

API測試工具:Swagger vs Postman 2025最新全面對比

隨著微服務架構的普及和云原生應用的激增&#xff0c;高效的 API 開發、測試和文檔管理工具變得越來越重要。在眾多 API 工具中&#xff0c;Swagger 和 Postman 各自以不同的方式解決著 API 開發生命周期中的關鍵問題&#xff0c;本文將從多個維度深入對比這兩款工具&#xff0…

如何查詢SQL Server數據庫服務器的IP地址

如何查詢SQL Server數據庫服務器的IP地址 作為數據庫管理員或開發人員&#xff0c;了解如何查詢SQL Server數據庫服務器的IP地址是一項重要技能。本文將介紹幾種簡單而有效的方法&#xff0c;幫助你輕松獲取這一信息。無論你是新手還是經驗豐富的專業人士&#xff0c;這些方法…

centos 7 安裝python3 及pycharm遠程連接方法

安裝openssl 使用pip3安裝 virtualenv的時候會提示WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 這是因為缺少openssl 2.0以上版本 解決辦法&#xff1a; 一、先確認版本 openssl version 二、安…

AI人工智能之機器學習sklearn-數據預處理和劃分數據集

1、概要 本篇學習AI人工智能之機器學習sklearn數據預處理和劃分數據集&#xff0c;從代碼層面講述如何進行數據的預處理和數據集劃分。 2、簡介 本片講述數據預處理的標準化處理、歸一化處理&#xff0c;以常用的兩個類為例 標準化處理類 StandardScaler歸一化處理類 MinMax…

智能硬件-01智能停車場

行業背景 隨著現代人們生活水平的提高&#xff0c;私家車輛在不斷增加&#xff0c;小區將面臨著臨時車用戶要多于固定車用戶的窘境&#xff0c;尤其是在早晚高峰時段車輛出入擁堵&#xff0c;對小區的車輛管理難度越來越大&#xff0c;對停車場收費員的崗位要求越來越高&#…

定長內存池的實現、測試及錯誤分析

背景 C/C 申請內存使用的是 malloc &#xff0c;malloc 其實就是一個大眾貨&#xff0c;什么場景下都可以用&#xff0c;但是什么場景下都可以用就意味著什么場景下都不會有很高的性能。 定長內存池解決固定大小的內存申請釋放需求&#xff0c; 性能達到極致&#xff0c;不考…

vue3 下載文件 responseType-blob 或者 a標簽

在 Vue 3 中&#xff0c;你可以使用 axios 或 fetch 來下載文件&#xff0c;并將 responseType 設置為 blob 以處理二進制數據。以下是一個使用 axios 的示例&#xff1a; 使用 axios 下載文件 首先&#xff0c;確保你已經安裝了 axios&#xff1a; npm install axios然后在你…

Search API:讓數據獲取變得簡單高效的搜索引擎代理商

Search API&#xff1a;讓數據獲取變得簡單高效的搜索引擎代理商 在當今數字化時代&#xff0c;數據驅動的決策變得越來越重要&#xff0c;而獲取精準、實時的數據是眾多企業、研究機構和開發者的核心需求。然而&#xff0c;直接爬取搜索引擎或行業資訊網站可能會遇到諸多挑戰&…

halcon三維對象處理例程總結(二)

目錄 一、intersect_plane_object_model_3d二、interactive_intersection三、measure_plant四、moments_object_model_3d五、projective_trans_object_model_3d六、read_object_model_3d_generic_ascii一、intersect_plane_object_model_3d 計算三維物體模型與平面之間的相交部…