Python字符串全解析從創(chuàng)建到實戰(zhàn)應(yīng)用小結(jié)
1. 字符串基礎(chǔ)操作
1.1 字符串創(chuàng)建與基本概念
Python中的字符串是不可變序列,可以使用單引號、雙引號或三引號創(chuàng)建:
# 單引號創(chuàng)建字符串 str1 = 'Hello World' print(str1) # 輸出:Hello World # 雙引號創(chuàng)建字符串 str2 = "Python Programming" print(str2) # 輸出:Python Programming # 三引號創(chuàng)建多行字符串 str3 = '''這是 多行 字符串''' print(str3)
1.2 字符串拼接與重復(fù)
# 字符串拼接 name = "張三" greeting = "你好," + name + "!" print(greeting) # 輸出:你好,張三! # 字符串重復(fù) stars = "*" * 10 print(stars) # 輸出:**********
2. 字符串格式化方法
2.1 f-string格式化(推薦使用)
f-string是Python 3.6引入的高效格式化方法:
# 基本用法
name = "李四"
age = 25
info = f"姓名:{name},年齡:{age}"
print(info) # 輸出:姓名:李四,年齡:25
# 表達式求值
a, b = 10, 20
result = f"{a} + = {a + b}"
print(result) # 輸出:10 + 20 = 30
# 函數(shù)調(diào)用
def get_score():
return 95.5
score_info = f"考試成績:{get_score()}分"
print(score_info) # 輸出:考試成績:95.5分 2.2 format()方法格式化
# 位置參數(shù)
template1 = "{}的{}成績是{}分".format("小明", "數(shù)學(xué)", 98)
print(template1) # 輸出:小明的數(shù)學(xué)成績是98分
# 關(guān)鍵字參數(shù)
template2 = "姓名:{name},年齡:{age}".format(name="王五", age=30)
print(template2) # 輸出:姓名:王五,年齡:30
# 數(shù)字格式化
pi = 3.1415926
formatted_pi = "圓周率:{:.2f}".format(pi)
print(formatted_pi) # 輸出:圓周率:3.14 2.3 %格式化(傳統(tǒng)方法)
# 基本格式化 name = "趙六" score = 88 info = "學(xué)生%s的成績是%d分" % (name, score) print(info) # 輸出:學(xué)生趙六的成績是88分 # 浮點數(shù)格式化 price = 15.5 price_info = "價格:%.1f元" % price print(price_info) # 輸出:價格:15.5元
3. 字符串索引與切片
3.1 字符串索引
text = "Python編程" # 正向索引 print(text[0]) # 輸出:P print(text[5]) # 輸出:n # 負向索引 print(text[-1]) # 輸出:程 print(text[-3]) # 輸出:編
3.2 字符串切片
text = "HelloPythonWorld"
# 基本切片
print(text[0:5]) # 輸出:Hello
print(text[5:11]) # 輸出:Python
# 省略起始/結(jié)束位置
print(text[:5]) # 輸出:Hello
print(text[11:]) # 輸出:World
# 使用步長
print(text[::2]) # 輸出:HloPtoWrd
print(text[::-1]) # 輸出:dlroWnohtyPolleH(反轉(zhuǎn)字符串)
# 回文判斷示例
def is_palindrome(s):
return s == s[::-1]
print(is_palindrome("racecar")) # 輸出:True
print(is_palindrome("hello")) # 輸出:False 4. 字符串常用方法
4.1 查找與替換方法
text = "Python是一門強大的編程語言,Python簡單易學(xué)"
# 查找方法
print(text.find("Python")) # 輸出:0
print(text.rfind("Python")) # 輸出:16
print(text.index("編程")) # 輸出:8
print("Python" in text) # 輸出:True
# 替換方法
new_text = text.replace("Python", "Java")
print(new_text) # 輸出:Java是一門強大的編程語言,Java簡單易學(xué) 4.2 大小寫轉(zhuǎn)換
text = "Hello World" print(text.upper()) # 輸出:HELLO WORLD print(text.lower()) # 輸出:hello world print(text.title()) # 輸出:Hello World print(text.capitalize()) # 輸出:Hello world
4.3 字符串分割與連接
# 分割字符串
data = "apple,banana,orange,grape"
fruits = data.split(",")
print(fruits) # 輸出:['apple', 'banana', 'orange', 'grape']
# 連接字符串
new_data = "-".join(fruits)
print(new_data) # 輸出:apple-banana-orange-grape
# 多行分割
multiline_text = "第一行
第二行
第三行"
lines = multiline_text.splitlines()
print(lines) # 輸出:['第一行', '第二行', '第三行'] 4.4 去除空白字符
text = " Hello World " print(text.strip()) # 輸出:Hello World print(text.lstrip()) # 輸出:Hello World print(text.rstrip()) # 輸出: Hello World
5. 字符串判斷方法
# 各種判斷方法示例
text1 = "Hello123"
text2 = "12345"
text3 = "HELLO"
text4 = "hello"
text5 = "Hello World"
print(text1.isalnum()) # 輸出:True(字母或數(shù)字)
print(text2.isdigit()) # 輸出:True(純數(shù)字)
print(text3.isupper()) # 輸出:True(全大寫)
print(text4.islower()) # 輸出:True(全小寫)
print(text5.istitle()) # 輸出:True(標題格式)
print(text1.startswith("Hello")) # 輸出:True
print(text1.endswith("123")) # 輸出:True 6. 轉(zhuǎn)義字符與原始字符串
6.1 常用轉(zhuǎn)義字符
# 轉(zhuǎn)義字符使用
print("Hello
World") # 換行
print("Hello\tWorld") # 制表符
print("他說:\"你好\"") # 雙引號
print('它說:\'你好\'') # 單引號
print("路徑:C:\\Users") # 反斜杠
6.2 原始字符串
# 原始字符串(不處理轉(zhuǎn)義字符) path = r"C:\Users\Documents\file.txt" print(path) # 輸出:C:\Users\Documents\file.txt regex_pattern = r"\d+\w*" print(regex_pattern) # 輸出:\d+\w*
7. 字符串與數(shù)值轉(zhuǎn)換
# 字符串轉(zhuǎn)數(shù)字
num_str = "123"
num_int = int(num_str)
num_float = float("3.14")
print(f"整數(shù):{num_int},浮點數(shù):{num_float}") # 輸出:整數(shù):123,浮點數(shù):3.14
# 數(shù)字轉(zhuǎn)字符串
number = 42
str_number = str(number)
print(f"字符串:{str_number},類型:{type(str_number)}") # 輸出:字符串:42,類型:<class 'str'> 8. 字符串編碼與字節(jié)轉(zhuǎn)換
# 字符串編碼
text = "你好,世界"
utf8_bytes = text.encode('utf-8')
gbk_bytes = text.encode('gbk')
print(f"UTF-8編碼:{utf8_bytes}") # 輸出:b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c'
print(f"GBK編碼:{gbk_bytes}") # 輸出:b'\xc4\xe3\xba\xc3\xa3\xac\xca\xc0\xbd\xe7'
# 字節(jié)解碼
decoded_text = utf8_bytes.decode('utf-8')
print(f"解碼后:{decoded_text}") # 輸出:解碼后:你好,世界 9. 字符串格式化高級應(yīng)用
9.1 數(shù)字格式化控制
# 數(shù)字格式化示例
number = 1234.5678
print(f"千位分隔符:{number:,}") # 輸出:1,234.5678
print(f"保留兩位小數(shù):{number:.2f}") # 輸出:1234.57
print(f"百分比:{0.256:.1%}") # 輸出:25.6%
print(f"十六進制:{255:#x}") # 輸出:0xff 9.2 對齊與填充
# 字符串對齊
text = "Python"
print(f"左對齊:|{text:<10}|") # 輸出:|Python |
print(f"右對齊:|{text:>10}|") # 輸出:| Python|
print(f"居中對齊:|{text:^10}|") # 輸出:| Python |
print(f"填充字符:|{text:*^10}|") # 輸出:|**Python**| 10. 綜合應(yīng)用實例
10.1 九九乘法表
# 使用字符串格式化輸出九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j:2d}", end=" ")
print() # 換行
10.2 打印三角形圖案
# 打印三角形
def print_triangle(n):
for i in range(1, n + 1):
spaces = " " * (n - i)
stars = "*" * (2 * i - 1)
print(f"{spaces}{stars}")
print_triangle(5) # 輸出5行三角形
10.3 字符串統(tǒng)計與分析
def analyze_string(text):
# 統(tǒng)計各種字符數(shù)量
total_chars = len(text)
letters = sum(1 for char in text if char.isalpha())
digits = sum(1 for char in text if char.isdigit())
spaces = sum(1 for char in text if char.isspace())
print(f"字符串:{text}")
print(f"總字符數(shù):{total_chars}")
print(f"字母數(shù):{letters}")
print(f"數(shù)字數(shù):{digits}")
print(f"空格數(shù):{spaces}")
analyze_string("Hello World 123!") # 輸出分析結(jié)果 總結(jié)
Python字符串處理功能強大且靈活,通過掌握上述各種方法和技巧,可以高效地處理文本數(shù)據(jù)。在實際開發(fā)中,建議優(yōu)先使用f-string進行字符串格式化,結(jié)合切片、查找替換等方法,能夠滿足絕大多數(shù)字符串處理需求。字符串的不可變性保證了數(shù)據(jù)的安全性,而豐富的內(nèi)置方法則提供了便捷的操作方式。
參考來源
- python的max、min函數(shù)的用法及實例
- python: 格式化字符串f()用法
- Python中切片的用法
- PYTHON用法第一篇:print的用法。
- Python字符串的格式化
- python用法字符串_Python字符串,詳細用法補充
到此這篇關(guān)于Python字符串全解析從創(chuàng)建到實戰(zhàn)應(yīng)用小結(jié)的文章就介紹到這了,更多相關(guān)Python字符串創(chuàng)建應(yīng)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python機器學(xué)習(xí)包mlxtend的安裝和配置詳解
這篇文章主要介紹了python機器學(xué)習(xí)包mlxtend的安裝和配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python QTimer實現(xiàn)多線程及QSS應(yīng)用過程解析
這篇文章主要介紹了Python QTimer實現(xiàn)多線程及QSS應(yīng)用過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07
Python使用PDFMiner.six解析PDF數(shù)據(jù)詳解
PDFMiner.six 是基于 PDFMiner 項目開發(fā)的增強版,用于從PDF文檔中提取文本和結(jié)構(gòu)信息,下面我們就來學(xué)習(xí)一下如何使用PDFMiner.six解析PDF數(shù)據(jù)吧2025-03-03
Pycharm中Python環(huán)境配置常見問題解析
這篇文章主要介紹了Pycharm中Python環(huán)境配置常見問題,結(jié)合圖文形式分析了Pycharm中Python環(huán)境配置模塊路徑問題、虛擬環(huán)境創(chuàng)建、配置遠程服務(wù)器、連接數(shù)據(jù)庫等常見問題與操作方法,需要的朋友可以參考下2020-01-01
Python+Tkinter簡單實現(xiàn)注冊登錄功能
這篇文章主要為大家詳細介紹了Python+Tkinter簡單實現(xiàn)注冊登錄功能,連接本地MySQL數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02

