python文本

文本

除了數字 Python 還可以操作文本(由?str?類型表示,稱為“字符串”)。 這包括字符 "!", 單詞 "rabbit", 名稱 "Paris", 句子 "Got?your?back." 等等. "Yay!?:)"。 它們可以用成對的單引號 ('...') 或雙引號 ("...") 來標示,結果完全相同?2。

>>>

>>> 'spam eggs'  # single quotes
'spam eggs'
>>> "Paris rabbit got your back :)! Yay!"  # double quotes
'Paris rabbit got your back :)! Yay!'
>>> '1975'  # digits and numerals enclosed in quotes are also strings
'1975'

要標示引號本身,我們需要對它進行“轉義”,即在前面加一個?\。 或者,我們也可以使用不同類型的引號:

>>>

>>> 'doesn\'t'  # use \' to escape the single quote...
"doesn't"
>>> "doesn't"  # ...or use double quotes instead
"doesn't"
>>> '"Yes," they said.'
'"Yes," they said.'
>>> "\"Yes,\" they said."
'"Yes," they said.'
>>> '"Isn\'t," they said.'
'"Isn\'t," they said.'

在 Python shell 中,字符串定義和輸出字符串看起來可能不同。?print()?函數會略去標示用的引號,并打印經過轉義的特殊字符,產生更為易讀的輸出:

>>>

>>> s = 'First line.\nSecond line.'  # \n means newline
>>> s  # without print(), special characters are included in the string
'First line.\nSecond line.'
>>> print(s)  # with print(), special characters are interpreted, so \n produces new line
First line.
Second line.

如果不希望前置?\?的字符轉義成特殊字符,可以使用?原始字符串,在引號前添加?r?即可:

>>>

>>> print('C:\some\name')  # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name')  # note the r before the quote
C:\some\name

原始字符串還有一個微妙的限制:一個原始字符串不能以奇數個?\?字符結束;請參閱?此 FAQ 條目?了解更多信息及繞過的辦法。

字符串字面值可以包含多行。 一種實現方式是使用三重引號:"""..."""?或?'''...'''。 字符串中將自動包括行結束符,但也可以在換行的地方添加一個?\?來避免此情況。 參見以下示例:

print("""\
Usage: thingy [OPTIONS]-h                        Display this usage message-H hostname               Hostname to connect to
""")

輸出如下(請注意開始的換行符沒有被包括在內):

Usage: thingy [OPTIONS]-h                        Display this usage message-H hostname               Hostname to connect to

字符串可以用?+?合并(粘到一起),也可以用?*?重復:

>>>

>>> # 3 times 'un', followed by 'ium'
>>> 3 * 'un' + 'ium'
'unununium'

相鄰的兩個或多個?字符串字面值?(引號標注的字符)會自動合并:

>>>

>>> 'Py' 'thon'
'Python'

拼接分隔開的長字符串時,這個功能特別實用:

>>>

>>> text = ('Put several strings within parentheses '
...         'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.'

這項功能只能用于兩個字面值,不能用于變量或表達式:

>>>

>>> prefix = 'Py'
>>> prefix 'thon'  # can't concatenate a variable and a string literalFile "<stdin>", line 1prefix 'thon'^^^^^^
SyntaxError: invalid syntax
>>> ('un' * 3) 'ium'File "<stdin>", line 1('un' * 3) 'ium'^^^^^
SyntaxError: invalid syntax

合并多個變量,或合并變量與字面值,要用?+

>>>

>>> prefix + 'thon'
'Python'

字符串支持?索引?(下標訪問),第一個字符的索引是 0。單字符沒有專用的類型,就是長度為一的字符串:

>>>

>>> word = 'Python'
>>> word[0]  # character in position 0
'P'
>>> word[5]  # character in position 5
'n'

索引還支持負數,用負數索引時,從右邊開始計數:

>>>

>>> word[-1]  # last character
'n'
>>> word[-2]  # second-last character
'o'
>>> word[-6]
'P'

注意,-0 和 0 一樣,因此,負數索引從 -1 開始。

除了索引操作,還支持?切片。 索引用來獲取單個字符,而?切片?允許你獲取子字符串:

>>>

>>> word[0:2]  # characters from position 0 (included) to 2 (excluded)
'Py'
>>> word[2:5]  # characters from position 2 (included) to 5 (excluded)
'tho'

切片索引的默認值很有用;省略開始索引時,默認值為 0,省略結束索引時,默認為到字符串的結尾:

>>>

>>> word[:2]   # character from the beginning to position 2 (excluded)
'Py'
>>> word[4:]   # characters from position 4 (included) to the end
'on'
>>> word[-2:]  # characters from the second-last (included) to the end
'on'

注意,輸出結果包含切片開始,但不包含切片結束。因此,s[:i]?+?s[i:]?總是等于?s

>>>

>>> word[:2] + word[2:]
'Python'
>>> word[:4] + word[4:]
'Python'

還可以這樣理解切片,索引指向的是字符?之間?,第一個字符的左側標為 0,最后一個字符的右側標為?n?,n?是字符串長度。例如:

 +---+---+---+---+---+---+| P | y | t | h | o | n |+---+---+---+---+---+---+0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

第一行數字是字符串中索引 0...6 的位置,第二行數字是對應的負數索引位置。i?到?j?的切片由?i?和?j?之間所有對應的字符組成。

對于使用非負索引的切片,如果兩個索引都不越界,切片長度就是起止索引之差。例如,?word[1:3]?的長度是 2。

索引越界會報錯:

>>>

>>> word[42]  # the word only has 6 characters
Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: string index out of range

但是,切片會自動處理越界索引:

>>>

>>> word[4:42]
'on'
>>> word[42:]
''

Python 字符串不能修改,是?immutable?的。因此,為字符串中某個索引位置賦值會報錯:

>>>

>>> word[0] = 'J'
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> word[2:] = 'py'
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

要生成不同的字符串,應新建一個字符串:

>>>

>>> 'J' + word[1:]
'Jython'
>>> word[:2] + 'py'
'Pypy'

內置函數?len()?返回字符串的長度:

>>>

>>> s = 'supercalifragilisticexpialidocious'
>>> len(s)
34

參見

文本序列類型 --- str

字符串是?序列類型?,支持序列類型的各種操作。

字符串的方法

字符串支持很多變形與查找方法。

格式字符串字面值

內嵌表達式的字符串字面值。

格式字符串語法

使用?str.format()?格式化字符串。

printf 風格的字符串格式化

這里詳述了用?%?運算符格式化字符串的操作。

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

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

相關文章

【JS】Chapter15-高階技巧

站在巨人的肩膀上 黑馬程序員前端JavaScript入門到精通全套視頻教程&#xff0c;javascript核心進階ES6語法、API、js高級等基礎知識和實戰教程 &#xff08;十五&#xff09;高階技巧 1. 深淺拷貝 開發中我們經常需要復制一個對象。如果直接用賦值會有下面問題&#xff1a;/…

微信訂房功能怎么做_公眾號里怎么實現在線訂房系統

微信公眾號在線訂房系統&#xff1a;一鍵解決您的住宿問題 在當今數字化時代&#xff0c;微信公眾號已經成為人們生活中不可或缺的一部分。它提供了各種各樣的功能和服務&#xff0c;讓我們的生活變得更加便捷和高效。而如今&#xff0c;微信公眾號也實現了在線訂房功能&#…

什么是應急演練腳本?其設計原則是什么?

應急演練腳本是一種系統性、有計劃的模擬性文件&#xff0c;旨在測試和評估組織在緊急情況下的應對能力。這種腳本提供了一系列步驟和場景&#xff0c;以確保團隊能夠高效、協調地應對各種緊急事件。以下將詳細探討應急演練腳本的定義、設計原則以及實施過程。 一、應急演練腳本…

常見面試題-Redis持久化策略

談談Redis 的持久化策略&#xff1f; 參考文章&#xff1a; Redis 持久化機制演進與百度智能云的實踐 Redis的確是將數據存儲在內存的&#xff0c;但是也會有相關的持久化機制將內存持久化備份到磁盤&#xff0c;以便于重啟時數據能夠重新恢復到內存中&#xff0c;避免數據丟…

【Python 千題 —— 基礎篇】奇數列表

題目描述 題目描述 創建奇數列表。使用 for 循環創建一個包含 20 以內奇數的列表。 輸入描述 無輸入。 輸出描述 輸出創建的列表。 示例 示例 ① 輸出&#xff1a; 創建的奇數列表為: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]代碼講解 下面是本題的代碼&#xff1a; #…

9. 回文數 --力扣 --JAVA

題目 給你一個整數 x &#xff0c;如果 x 是一個回文整數&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 回文數是指正序&#xff08;從左向右&#xff09;和倒序&#xff08;從右向左&#xff09;讀都是一樣的整數。 例如&#xff0c;121 是回文&#xff0…

二、爬蟲-爬取肯德基在北京的店鋪地址

1、算法框架解釋 針對這個案例&#xff0c;現在對爬蟲的基礎使用做總結如下&#xff1a; 1、算法框架 (1)設定傳入參數 ~url: 當前整個頁面的url:當前頁面的網址 當前頁面某個局部的url:打開檢查 ~data:需要爬取數據的關鍵字&…

DB2中實現數據字段的拼接(LISTAGG() 與 xml2clob、xmlagg)

DB2中實現數據字段拼接&#xff08;LISTAGG 與 xml2clob、xmlagg&#xff09; 1. 使用函數LISTAGG()1.1 同oracle實現方式1.2 DB2中使用LISTAGG()1.2.1 關于DB2版本1.2.2 數據準備1.2.3 代碼實現 2 解決DB2中關于 LISTAGG() 超長問題2.1 使用xmlagg xmlelement2.2 將xml標簽去…

數據結構與算法編程題11

已知兩個鏈表A和B分別表示兩個集合&#xff0c;其元素遞增排列。 請設計算法求出A與B的交集&#xff0c;并存放于A鏈表中。 a: 1, 2, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #defin…

【iOS】實現評論區展開效果

文章目錄 前言實現行高自適應實現評論展開效果解決cell中的buttom的復用問題 前言 在知乎日報的評論區中&#xff0c;用到了Masonry行高自適應來實現評論的展開&#xff0c;這里設計許多控件的約束問題&#xff0c;當時困擾了筆者許久&#xff0c;特此撰寫博客記錄 實現行高自…

如何構建更簡潔的前端架構?

目錄 為什么需要前端架構&#xff1f; 那么&#xff0c;前端架構是什么樣的呢&#xff1f; 使用了哪些層&#xff1f; 那么&#xff0c;這種架構會出什么問題呢&#xff1f; 我們應該如何避免這些錯誤&#xff1f; 哪些原則應適用于組件&#xff1f; Anti-Patterns 反模…

小程序存在優惠卷遍歷,但是歪了

進入小程序&#xff0c;因為是一個小商城&#xff0c;所以照例先查看收貨地址是否存在越權&#xff0c;以及能否未授權訪問&#xff0c;但是發現不存在這些問題&#xff0c;所以去查看優惠卷 進入領券中心&#xff0c;點擊領取優惠券時抓包 發現數據包&#xff0c;存在敏感參數…

數據庫的級聯刪除

級聯刪除是指在數據庫中刪除一個對象時&#xff0c;與該對象有關的其他對象也被自動刪除。在 Django 中&#xff0c;級聯刪除通常通過在模型中定義外鍵時使用 on_delete 參數來實現。以下是一些常見的 on_delete 選項&#xff1a; 1.models.CASCADE: 當關聯的對象被刪除時&…

CentOS 7 使用Fmt庫

安裝 fmt Git下載地址&#xff1a;https://github.com/fmtlib/fmt 步驟1&#xff1a;首先&#xff0c;你需要下載fmt的源代碼。你可以從https://github.com/fmtlib/fmt或者源代碼官方網站下載。并上傳至/usr/local/source_code/ ? 步驟2&#xff1a;下載完成后&#xff…

【Docker】Docker安裝Nginx配置靜態資源

1.下載鏡像 2.創建nginx配置文件 3.創建nginx容器運行 4.配置nginx靜態資源 1.下載鏡像 Dockerhub官網&#xff1a;Docker docker pull nginx docker pull nginx下載最新版本 默認latest 下載指定版本docker pull nginx:xxx 2.創建nginx配置文件 啟動容器之前要創建nginx…

怎么使用sentinel,以及所有的知識點

Sentinel是一個開源的流量控制和實時監控系統&#xff0c;主要用于保護企業級應用程序免受不良的請求。下面是使用Sentinel需要了解的知識點&#xff1a; 1. 什么是流量控制&#xff1f; 流量控制指的是限制應用程序的請求流量&#xff0c;防止過多的請求超出系統的承受范圍。…

基于單片機停車場環境監測系統仿真設計

**單片機設計介紹&#xff0c; 基于單片機停車場環境監測系統仿真設計 文章目錄 一 概要二、功能設計設計思路 三、 軟件設計原理圖 五、 程序六、 文章目錄 一 概要 基于單片機的停車場環境監測系統是一種利用單片機技術實現環境監測和數據處理的系統。它可以感知停車場的溫濕…

Python (十一) 迭代器與生成器

迭代器 迭代器是訪問集合元素的一種方式&#xff0c;可以記住遍歷的位置的對象 迭代器有兩個基本的方法&#xff1a;iter() 和 next() 字符串&#xff0c;列表或元組對象都可用于創建迭代器 字符串迭代 str1 Python str_iter iter(str1) print(next(str_iter)) print(next(st…

zip4j壓縮使用總結

一、引入依賴 <dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId><version>1.3.1</version></dependency>二、使用添加文件&#xff08;addFiles&#xff09;的方式生成壓縮包 /*** Author wan…

藍橋杯物聯網_STM32L071_2_繼電器控制

CubeMX配置&#xff1a; Function.c及Function.h&#xff1a; #include "Function.h" #include "gpio.h" void Function_LD5_ON(void){HAL_GPIO_WritePin(LD5_GPIO_Port, LD5_Pin, GPIO_PIN_RESET); }void Function_LD5_OFF(void){HAL_GPIO_WritePin(LD5_…