Python 文本序列類型(字元串類型 str)[學習 Python 必備基礎知識][看此一篇就夠了][長字元串][原始字元串 r][字元串常用方法]

来源:https://www.cnblogs.com/manongajie/archive/2020/05/20/12925791.html
-Advertisement-
Play Games

在 Python 中處理文本數據是使用 `str` 對象,也稱為`字元串類型`。 字元串是由 Unicode 碼位構成的不可變序列。 ...


您的“關註”和“點贊”,是信任,是認可,是支持,是動力......

如意見相佐,可留言。
本人必將竭盡全力試圖做到準確和全面,終其一生進行修改補充更新。

在這裡插入圖片描述

目錄

1 字元串類型概述

在 Python 中處理文本數據是使用 str 對象,也稱為字元串類型

字元串是由 Unicode 碼位構成的不可變序列。

簡單理解,若幹個字元(可以包含字母、標點、特殊符號、中文、日文等全世界的所有文字)的集合就是一個字元串。

字元串字面值有多種不同的寫法,如下所示:

  • 單引號: '允許包含有 "雙" 引號'
  • 雙引號: "允許包含有 '單' 引號"
  • 三重引號: '''三重單引號'''"""三重雙引號"""。使用三重引號的字元串可以跨越多行,其中所有的空白字元都將包含在該字元串字面值中。

舉例如下所示:

'微信公眾號:碼農阿傑'
'微信公眾號:"碼農阿傑"'  # 單引號允許包含雙引號
"CSDN 博客地址 https://blog.csdn.net/manongajie"
"CSDN 博客地址 'https://blog.csdn.net/manongajie'"  # 雙引號允許包含單引號
'''
弱水三千,只取一瓢飲;
嬌玫萬朵,獨摘一枝憐。
'''
"""
滿天星斗,只見一顆芒;
人海茫茫,唯系你一人。
"""

2 處理字元串中的引號問題

2.1 分析字元串中的引號問題

當字元串內容中出現引號時(指的是字元串中出現的引號與定義字元串的引號相同),我們需要進行處理,否則 Python 解釋器會報錯。

舉例如下所示:

print('I'm CodeFarmer_Ajie')

運行結果:

    print('I'm CodeFarmer_Ajie')
             ^
SyntaxError: invalid syntax

可以這麼理解,因為 Python 解釋器會把遇到的第一個單引號到再次遇到單引號之間的內容當做字元串,也就是說 Python 解釋器會將字元串中的單引號與第一個單引號配對,這樣就會把'I'當成字元串,而後面的m CodeFarmer_Ajie''就變成了多餘的內容,從而導致語法錯誤。

對於這種問題,我們有兩種處理方法,如下內容所示。

2.2 處理方法一:對引號進行轉義

在需要轉義的引號前添加轉義字元 \即可。

舉例如下所示:

str_demo = 'I\'m CodeFarmer_Ajie'

print(str_demo)

運行結果:

I'm CodeFarmer_Ajie

2.3 處理方法二:使用不同的引號包含字元串

  • 如果字元串內容中出現了單引號,那麼我們可以使用雙引號包圍字元串。
  • 如果字元串內容中出現了雙引號,那麼我們可以使用單引號包圍字元串。

舉例如下所示:

str_demo1 = "I'm CodeFarmer_Ajie"  # 如果字元串內容中出現了單引號,那麼我們可以使用雙引號包圍字元串。
str_demo2 = '英文雙引號為:"'

print(str_demo1)
print(str_demo2)

運行結果:

I'm CodeFarmer_Ajie
英文雙引號為:"

3 處理字元串的換行問題

Python 對程式的換行有嚴格的語法要求。

想要換行書寫一個比較長的字元串,必須在行尾添加反斜杠 \

舉例如下所示:

str_demo = '弱水三千,只取一瓢飲;\
           嬌玫萬朵,獨摘一枝憐。'


print(str_demo)

運行結果:

弱水三千,只取一瓢飲;           嬌玫萬朵,獨摘一枝憐。

4 Python 長字元串

由三個雙引號"""或者三個單引號'''包圍的字元串,被稱為 Python 長字元串

簡單理解,長字元串,就是可以直接換行(不用加反斜杠\)書寫的字元串。

當程式中有大段文本內容需要寫成字元串時,建議使用長字元串形式,因為長字元串形式非常強大,可以在字元串中放置任何內容,包括單引號和雙引號。

語法格式如下所示:

"""長字元串內容"""
'''長字元串內容'''

《Python 註釋詳解》文章中有講到可以使用三個單引號或者三個雙引號對多行內容進行註釋,這其實就是 Python 的長字元串。如果長字元串沒有賦值給任何變數,那麼這個長字元串就不會起到任何作用,和一段普通的文本無異,相當於註釋(註意:Python 解釋器並不會忽略長字元串,同樣會按照語法解析,只不過長字元串沒有實際作用)。

5 Python 原始字元串

5.1 Python 原始字元串概述

在普通字元串或者長字元串的開頭加上 r 首碼,就變成了原始字元串。

在原始字元串中,反斜杠 \ 不會被當作轉義字元,所有的內容都會保持原來的樣子。

格式如下所示:

str1 = r'原始字元串內容'
str2 = r"""原始字元串內容"""

舉例如下所示:

str_demo = r'D:\Data\Tools\Python382\python.exe'

print(str_demo)

運行結果:

D:\Data\Tools\Python382\python.exe

5.2 處理原始字元串中的引號問題

普通格式的原始字元串中如果出現了引號,是需要對引號進行轉義的。否則 Python 照樣無法對字元串的引號精確配對。

但是,又和普通字元串有所不同,此時用於轉義的反斜杠會變成字元串內容的一部分。

註意:Python 原始字元串中的反斜杠仍然會對引號進行轉義,因此原始字元串的結尾處不能有反斜杠,否則字元串結尾處的引號會被轉義,導致字元串不能正確結束。

舉例如下所示:

str_demo = r'I\'m CodeFarmer'
print(str_demo)

運行結果:

I\'m CodeFarmer

以上問題有兩種解決辦法:

  • 第一種:改用長字元串的寫法,不要使用原始字元串。
  • 第二種:單獨書寫反斜杠。

舉例如下所示:

# 列印 D:\Data\Tools\Python382\
str_demo = r'D:\Data\Tools\Python382''\\'  # 字元串拼接

print(str_demo)

運行結果:

D:\Data\Tools\Python382\

6 Python 字元串常用方法詳解

請參見博文 《Python 字元串常用方法詳解》

【文章其它地址】

微信公眾號:碼農阿傑

CSDN 博客

【參考資料】

Python 官網

Python 3.8.2 documentation


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

-Advertisement-
Play Games
更多相關文章
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...