05python字元串

来源:https://www.cnblogs.com/palien/archive/2022/11/11/16880690.html
-Advertisement-
Play Games

這一篇文章主要介紹python字元串相關知識。 單引號字元串及對單引號的轉義 **字元串(String)**就是一段文本,幾乎在所有的Python程式中都有字元串的身影。 字元串可以用單引號表示,也可以用雙引號表示,但是輸出一般為單引號: >>> 'Hello World!' 'Hello Worl ...


這一篇文章主要介紹python字元串相關知識。

單引號字元串及對單引號的轉義

字元串(String)就是一段文本,幾乎在所有的Python程式中都有字元串的身影。

字元串可以用單引號表示,也可以用雙引號表示,但是輸出一般為單引號:

>>> 'Hello World!' 
'Hello World!'
>>>
>>> "Hello World!" 
'Hello World!'
>>>

如果字元串中有單引號,我們就需要用雙引號表示字元串;同樣如果字元串中有雙引號,我們就需要用單引號表示字元串。否則,會報錯

>>> "Let's go!"
"Let's go!"
>>>
>>> '"Hello, world!" she said' 
'"Hello, world!" she said'
>>>
>>> 'Let's go!' 
  File "<stdin>", line 1
    'Let's go!'
         ^
SyntaxError: invalid syntax
>>>
>>> ""Hello, world!" she said" 
  File "<stdin>", line 1
    ""Hello, world!" she said"
      ^^^^^
SyntaxError: invalid syntax
>>>

可以通過轉義符\的使用表示字元串裡面的引號:

>>> 
>>> "\"Hello, world!\" she said" 
'"Hello, world!" she said'
>>> 'Let\'s go!'             
"Let's go!"
>>>
  • 這樣對引號轉義很有作用,且在有些情況下必須這樣做,例如字元串同時包含單引號和雙引號時

字元串拼接

>>> 
>>> "Let's say " '"Hello , world!"'
'Let\'s say "Hello , world!"'
>>>
>>> x = "Hello, "
>>> y = "world!"
>>> x y
  File "<stdin>", line 1
    x y
      ^
SyntaxError: invalid syntax
>>>
>>> x + y
'Hello, world!'
>>>
  • 同時依次輸入兩個字元串,Python會自動將他們拼接起來,這是一種輸入字元串的特殊方式,而非通用的字元串拼接方法
  • 正確的拼接字元串的方法是藉助於+,將字元串拼接起來

字元串的str和repr

>>> 
>>> "Hello, world!"
'Hello, world!'
>>> print("Hello, world!")
Hello, world!
>>>
>>> "Hello, \nworld!"  
'Hello, \nworld!'
>>> print("Hello, \nworld!") 
Hello, 
world!
>>>
>>> print(repr("Hello, \nworld!")) 
'Hello, \nworld!'
>>> print(str("Hello, \nworld!"))  
Hello, 
world!
>>>
  • Python列印會儘量保留在代碼中的樣子
  • print列印的結果是希望用戶看到的樣子
  • print+repr函數的效果就是python列印效果
  • print+str類就是列印出字元串的用戶效果

長字元串

要表示很長的字元串(跨越多行的字元串),可以使用三引號(而不是普通的引號):

>>> 
>>> print('''This is a very long string. It continues here.
...       And it's not over yet. "Hello, world!"
...       Still here.''')
This is a very long string. It continues here.
      And it's not over yet. "Hello, world!"
      Still here.
>>> 
>>> 1 + 2 + \   
... 4 + 5   
12
>>>
>>> print\  
... ('Hello, world!') 
Hello, world!
>>>
  • 也可以使用三個雙引號表示長字元串
  • 註意:長字元串本身包含單引號或雙引號無需使用反斜杠轉義。因為三引號讓解釋器能夠識別表示字元串的開始和結束位置,不衝突。區別於引號表示的字元串。
  • 常規字元串也可以 橫跨多行,只要在行尾加上反斜杠,反斜杠和換行符將被轉義,即被忽略

原始字元串

原始字元串不以特殊方式處理反斜杠,因此在有些情況下很有用,例如正則表達式中。

因為反斜杠對字元進行轉義,可以表達字元串中原本無法包含的字元,但是如果字元中本身就有反斜杠或包含反斜杠的組合,就會出問題。這個時候有兩種方案:

  • 用反斜杠轉義反斜杠
  • 用原始字元串表示——在字元串前面用r表示

例如我們想要表達文件路徑:

>>> 
>>> print('C:\Program Files\fnord\foo\baz')   
C:\Program Files
                nord
                    oaz
>>>
>>> print('C:\\Program Files\\fnord\\foo\\baz')
C:\Program Files\fnord\foo\baz
>>>
>>> print(r'C:\Program Files\fnord\foo\baz')  
C:\Program Files\fnord\foo\baz
>>>
>>> print(r'Let\'s go!')
Let\'s go!
>>>   
>>> print(r'C:\Program Files\fnord\foo\baz' '\\' ) 
C:\Program Files\fnord\foo\baz\
>>> 
  • 原始字元串不能以單個反斜杠結尾,因為python無法判斷其是否結束。如果要表示這種字元串可以拼接一個反斜杠轉義的斜杠。

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

-Advertisement-
Play Games
更多相關文章
  • 當一個服務擁有太多處理邏輯時,會導致代碼結構異常的混亂,很難分辨一段邏輯是在哪個階段發揮作用的。 這時就可以引入狀態機模型,幫助代碼結構變得清晰。 一、狀態機庫概述 一)簡介 狀態機由一組狀態組成: 【初始狀態 -> 中間狀態 -> 最終狀態】。 在一個狀態機中,每個狀態會接收一組特定的事件,根據事 ...
  • Servlet04 12.ServletConfig 12.1ServletConfig基本介紹 ServletConfig類是為Servlet程式配置信息的類 Servlet對象和ServletConfig對象都是由Tomcat負責創建 Servlet對象預設是第一次訪問的時候創建,Servlet ...
  • Seata 包括 Server端和Client端。Seata中有三種角色:TC、TM、RM,其中,Server端就是TC,TM和RM屬Client端。Client端的源碼學習上一篇已講過,詳見 《Seata 1.5.2源碼學習》,今天來學習Server端的源碼。 源碼下載地址:https://git ...
  • 目錄 一. EGL 前言 二. EGL 繪製流程簡介 三.eglDestroyContext 函數簡介 四.eglDestroyContext 使用 四.猜你喜歡 零基礎 OpenGL ES 學習路線推薦 : OpenGL ES 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL ES ...
  • 學習Python一周了,知道Python會很難,但是前期基礎覺得會很簡單,現實卻是時間過得飛快,每天都很忙碌,本來以為一兩個小時覺得能搞定的事,結果都要研究很久,感覺主要有以下幾個方面吧 1、預習和上課之間的關係和預習的程度一直調整摸索。 2、上課過程記筆記和編程模式一直調整摸索。 3、課後整理筆記 ...
  • 事情是這樣的 晚上我正在聚精會神寫代碼(打游戲~) 突然,收到學妹給我發來的消息 還有一張自拍照 而且是可以放在結婚證上的那種哦 就是 之前幫過她幾次忙 難道要以身相許 去一起辦證 原來是照片尺寸不合適 讓我幫她修圖。還要什麼藍底、紅底各種背景的 雖然有些失落 還是,默默的擼出了我39米長的pyth ...
  • 簡介: 備忘錄模式,屬於行為型的設計模式。 在不破壞封裝性的前提下,捕獲一個對象的內部狀態,併在該對象之外保存這個狀態。這樣以後就可以將該對象恢復到原先保存的狀態。 備忘錄模式顧名思義,就是存檔功能,類似Git工具,每次提交都相當於一次備份。 主要有一下角色構成 Memento —— 負責存儲 Or ...
  • Mysql的介紹 【1】MySQL是一個輕量級關係型資料庫管理系統,將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,就增加了速度並提高了靈活性。 【2】sql語言分類: 名稱 解釋 命令 DDL 定義和管理數據對象,如:資料庫,數據表等 create,drop,alter DML 用於操作 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...