Python 中的字元串基礎與應用

来源:https://www.cnblogs.com/xiaowange/archive/2023/09/28/17736519.html
-Advertisement-
Play Games

在Python中,字元串可以用單引號或雙引號括起來。'hello' 與 "hello" 是相同的。您可以使用print()函數顯示字元串文字: 示例: print("Hello") print('Hello') 將字元串分配給變數是通過變數名後跟等號和字元串完成的: 示例 a = "Hello" p ...


在Python中,字元串可以用單引號或雙引號括起來。'hello' 與 "hello" 是相同的。您可以使用print()函數顯示字元串文字:

示例:

print("Hello")
print('Hello')

將字元串分配給變數是通過變數名後跟等號和字元串完成的:

示例

a = "Hello"
print(a)

多行字元串

您可以使用三個引號將多行字元串分配給變數:示例,您可以使用三個雙引號:

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
print(a)

或者使用三個單引號:示例

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''
print(a)

註意:在結果中,換行符與代碼中的位置相同。

字元串是數組

與許多其他流行的編程語言一樣,Python中的字元串是表示Unicode字元的位元組數組。但是,Python沒有字元數據類型,單個字元只是具有長度1的字元串。可以使用方括弧訪問字元串的元素。

示例,獲取位置1處的字元(請記住,第一個字元的位置是0):

a = "Hello, World!"
print(a[1])

遍歷字元串

由於字元串是數組,因此我們可以使用for迴圈遍歷字元串中的字元。

示例,遍歷單詞"banana"中的字母:

for x in "banana":
  print(x)

在我們的Python For Loops章節中瞭解更多關於for迴圈的內容。

字元串長度

要獲取字元串的長度,請使用len()函數。

示例,len()函數返回字元串的長度:

a = "Hello, World!"
print(len(a))

檢查字元串

要檢查字元串中是否存在某個短語或字元,我們可以使用關鍵字in。

示例,檢查以下文本中是否存在"free":

txt = "The best things in life are free!"
print("free" in txt)

在if語句中使用它:

示例,僅在存在"free"時才列印:

txt = "The best things in life are free!"
if "free" in txt:
  print("Yes, 'free' is present.")

在我們的Python If...Else章節中瞭解更多關於if語句的內容。

檢查是否不存在

要檢查字元串中是否不存在某個短語或字元,我們可以使用關鍵字not in。

示例,檢查以下文本中是否不存在"expensive":

txt = "The best things in life are free!"
print("expensive" not in txt)

在if語句中使用它:

示例,僅在不存在"expensive"時才列印:

txt = "The best things in life are free!"
if "expensive" not in txt:
  print("No, 'expensive' is NOT present.")

切片

您可以使用切片語法返回一系列字元。,指定起始索引和結束索引,用冒號分隔,以返回字元串的一部分。

示例:,獲取從位置2到位置5的字元(不包括位置5):

b = "Hello, World!"
print(b[2:5])

註意:第一個字元的索引為0。,從開頭切片,如果省略起始索引,則範圍將從第一個字元開始:

示例,獲取從開頭到位置5的字元(不包括位置5):

b = "Hello, World!"
print(b[:5])

切片到結尾

如果省略結束索引,則範圍將一直到結尾:

示例,獲取從位置2到結尾的字元:

b = "Hello, World!"
print(b[2:])

負索引

使用負索引從字元串的末尾開始切片:

示例,獲取字元:從:在"World!"中的"o"(位置-5)到,但不包括:在"World!"中的"d"(位置-2):

b = "Hello, World!"
print(b[-5:-2])

Python具有一組可用於字元串的內置方法。

大寫

示例:upper()方法將字元串轉換為大寫:

a = "Hello, World!"
print(a.upper())

小寫

示例:lower()方法將字元串轉換為小寫:

a = "Hello, World!"
print(a.lower())

刪除空白

空白是實際文本之前和/或之後的空格,通常您希望刪除此空間。

示例,strip()方法從開頭或末尾刪除任何空格:

a = " Hello, World! "
print(a.strip()) # 返回 "Hello, World!"

替換字元串

示例,replace()方法將字元串替換為另一個字元串:

a = "Hello, World!"
print(a.replace("H", "J"))

拆分字元串

split()方法返回一個列表,其中指定分隔符之間的文本成為列表項。

示例,split()方法如果找到分隔符的實例,將字元串拆分為子字元串:

a = "Hello, World!"
print(a.split(",")) # 返回 ['Hello', ' World!']

字元串連接

要連接或組合兩個字元串,您可以使用+運算符。

示例:,將變數a與變數b合併到變數c中:

a = "Hello"
b = "World"
c = a + b
print(c)

示例,要在它們之間添加一個空格,請添加一個" ":

a = "Hello"
b = "World"
c = a + " " + b
print(c)

字元串格式化

正如我們在Python變數章節中學到的,我們不能像這樣組合字元串和數字:

示例:

age = 36
txt = "My name is John, I am " + age
print(txt)

但是,我們可以使用format()方法將字元串和數字組合起來!

format()方法接受傳遞的參數,格式化它們,並將它們放在字元串中占位符{}處:

示例,使用format()方法將數字插入字元串中:

age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))

format()方法接受無限數量的參數,並將它們放入相應的占位符中:

示例

quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))

您可以使用索引號{0}來確保參數放在正確的占位符中:

示例

quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))

轉義字元

要插入字元串中不允許的字元,請使用轉義字元。

轉義字元是反斜杠\後跟要插入的字元。

一個非法字元的示例是在由雙引號括起來的字元串中插入雙引號:

示例:如果在由雙引號括起來的字元串中使用雙引號,將會出現錯誤:

txt = "We are the so-called "Vikings" from the north."

要解決這個問題,使用轉義字元\:

示例轉義字元允許您在通常不允許的情況下使用雙引號:

txt = "We are the so-called \"Vikings\" from the north."

Python中使用的其他轉義字元:

\'  單引號  
\\  反斜杠  
\n  換行符  
\r  回車符  
\t  製表符  
\b  退格符  
\f  換頁符  
\ooo  八進位值  
\xhh  十六進位值

Python字元串方法

Python具有一組可用於字元串的內置方法。

註意:所有字元串方法都返回新值。它們不會更改原始字元串。

capitalize() 將第一個字元轉換為大寫
casefold() 將字元串轉換為小寫
center() 返回一個居中的字元串
count() 返回字元串中指定值出現的次數
encode() 返回字元串的編碼版本
endswith() 如果字元串以指定值結尾,則返回True
expandtabs() 設置字元串的製表符大小
find() 搜索字元串中的指定值並返回其找到的位置
format() 格式化字元串中的指定值
format_map() 格式化字元串中的指定值
index() 搜索字元串中的指定值並返回其找到的位置
isalnum() 如果字元串中的所有字元都是字母數字字元,則返回True
isalpha() 如果字元串中的所有字元都在字母表中,則返回True
isascii() 如果字元串中的所有字元都是ASCII字元,則返回True
isdecimal() 如果字元串中的所有字元都是十進位字元,則返回True
isdigit() 如果字元串中的所有字元都是數字,則返回True
isidentifier() 如果字元串是標識符,則返回True
islower() 如果字元串中的所有字元都是小寫,則返回True
isnumeric() 如果字元串中的所有字元都是數字,則返回True
isprintable() 如果字元串中的所有字元都是可列印字元,則返回True
isspace() 如果字元串中的所有字元都是空白字元,則返回True
istitle() 如果字元串遵循標題規則,則返回True
isupper() 如果字元串中的所有字元都是大寫,則返回True
join() 將可迭代對象的元素連接到字元串的末尾
ljust() 返回字元串的左對齊版本
lower() 將字元串轉換為小寫
lstrip() 返回字元串的左修剪版本
maketrans() 返回用於轉換的轉換表
partition() 返回一個元組,其中字元串分為三個部分
replace() 返回一個字元串,其中指定的值替換為指定的值
rfind() 搜索字元串中的指定值並返回其找到的最後位置
rindex() 搜索字元串中的指定值並返回其找到的最後位置
rjust() 返回字元串的右對齊版本
rpartition() 返回一個元組,其中字元串分為三個部分
rsplit() 在指定的分隔符處拆分字元串,並返回一個列表
rstrip() 返回字元串的右修剪版本
split() 在指定的分隔符處拆分字元串,並返回一個列表
splitlines() 在換行符處拆分字元串,並返回一個列表
startswith() 如果字元串以指定值開頭,則返回True
strip() 返回字元串的修剪版本
swapcase() 交換大小寫,小寫變為大寫,反之亦然
title() 將每個單詞的第一個字元轉換為大寫
translate() 返回一個翻譯後的字元串
upper() 將字元串轉換為大寫
zfill() 在開頭填充指定數量的0值的字元串

最後

為了方便其他設備和平臺的小伙伴觀看往期文章,鏈接奉上:

公眾號搜索Let us Coding知乎開源中國CSDN思否掘金InfoQ簡書博客園慕課51CTOhelloworld騰訊開發者社區阿裡開發者社區

看完如果覺得有幫助,歡迎點贊、收藏關註


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SQL改寫是資料庫產品中使用比較頻繁的一個技術,在大多數產品中的調用頻率也非常高,通常對性能的需求需要接近對應資料庫產品的上限。例如在天翼雲關係型資料庫中的Mysql語法相容組件,其性能測試標準需要達到接近30萬TPS,也意味著SQL改寫環節的性能標準需要支持至少每秒30萬次以上,否則會成為系統的性... ...
  • MySQL InnoDB的索引統計信息在什麼時候更新呢? 或者說什麼事件會觸發InnoDB索引的統計信息更新呢?下麵結合參考資料When Does InnoDB Update the Index Statistics? (Doc ID 1463718.1)[1]簡單總結梳理一下(文中大部分知識點來自 ...
  • 本文分享自華為雲社區 《實戰指南,SpringBoot + Mybatis 如何對接多數據源》,作者:戰斧。 在我們開發一些具有綜合功能的項目時,往往會碰到一種情況,需要同時連接多個資料庫,這個時候就需要用到多數據源的設計。而Spring與Myabtis其實做了多數據源的適配,只需少許改動即可對接多 ...
  • 近日,天翼雲與神州信息完成神州信息銀行分散式核心系統與天翼雲4.0雲平臺及TeleDB資料庫的適配認證工作,標志著雙方聯合推出的“銀行核心業務系統聯合解決方案”生產環境投產成功。 ...
  • 趁著國慶前夕整了一個vite4結合react18搭建後臺管理模板,搭配上位元組團隊react組件庫ArcoDesign,整體操作功能非常絲滑。目前功能支持多種模板佈局、暗黑/亮色模式、國際化、許可權驗證、多級路由菜單、tabview標簽欄快捷菜單、全屏控制等功能。極簡非凡的佈局界面、高定製化模塊,用心打 ...
  • 針對改動範圍大、影響面廣的需求,我通常會問上線了最壞情況是什麼?應急預案是什麼?你帶開關了嗎?。當然開關也是有成本的,接下來本篇跟大家一起交流下高頻發佈支撐下的功能開關技術理論與實踐結合的點點滴滴。 ...
  • RPC,Remote Procedure Call 即遠程過程調用,與之相對的是本地服務調用,即LPC(Local Procedure Call)。本地服務調用比較常用,像我們應用內部程式(註意此處是程式而不是方法,程式包含方法)互相調用即為本地過程調用,而遠程過程調用是指在本地調取遠程過程進行使用... ...
  • 使用雙指針進行原地移除元素 題目描述 給定一個數組 nums 和一個值 val,需要將數組中所有等於 val 的元素原地刪除,並返回刪除後數組的新長度。 要求: 不使用額外的數組空間 只能使用 O(1) 額外空間 數組中超過新長度後面的元素可以忽略 示例 1: 輸入:nums = [3,2,2,3] ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...