Python3 字元串(七)

来源:http://www.cnblogs.com/jiyimeng/archive/2017/11/09/python11093.html
-Advertisement-
Play Games

字元串是 Python 中最常用的數據類型。我們可以使用引號( ' 或 " )來創建字元串。 創建字元串很簡單,只要為變數分配一個值即可。 python中單引號和雙引號使用完全相同。 使用三引號( ''' 或 """ )可以指定一個多行字元串。 轉義符 '\' 自然字元串, 通過在字元串前加r或R。 ...


字元串是 Python 中最常用的數據類型。我們可以使用引號( ' 或 " )來創建字元串。

創建字元串很簡單,只要為變數分配一個值即可。

  • python中單引號和雙引號使用完全相同。
  • 使用三引號( ''' 或 """ )可以指定一個多行字元串。
  • 轉義符 '\'
  • 自然字元串, 通過在字元串前加r或R。 如 r"this is a line with \n" 則\n會顯示,並不是換行。
  • python允許處理unicode字元串,加首碼u或U, 如 u"this is an unicode string"。
  • 字元串是不可變的。
  • 按字面意義級聯字元串,如"this " "is " "string"會被自動轉換為this is string。
  • Python 沒有單獨的字元類型,一個字元就是長度為1的字元串
  • Python 字元串不能被改變。向一個索引位置賦值,比如word[0] = 'm'會導致錯誤
  • 反斜杠可以用來轉義,使用r可以讓反斜杠不發生轉義。
  • 字元串可以用+運算符連接在一起,用*運算符重覆。
  • Python中的字元串有兩種索引方式,從左往右以0開始,從右往左以-1開始。

例如:

1 word = '字元串'
2 sentence = "這是一個句子。"
3 paragraph = """這是一個段落,
4 可以由多行組成"""
1 >>> print('Ru\noob')
2 Ru
3 oob
4 >>> print(r'Ru\noob')
5 Ru\noob
6 >>>
 1 #!/usr/bin/python3
 2  
 3 str = 'Runoob'
 4  
 5 print (str)          # 輸出字元串
 6 print (str[0:-1])    # 輸出第一個到倒數第二個的所有字元
 7 print (str[0])       # 輸出字元串第一個字元
 8 print (str[2:5])     # 輸出從第三個開始到第五個的字元
 9 print (str[2:])      # 輸出從第三個開始的後的所有字元
10 print (str * 2)      # 輸出字元串兩次
11 print (str + "TEST") # 連接字元串

執行以上程式會輸出如下結果:

1 Runoob
2 Runoo
3 R
4 noo
5 noob
6 RunoobRunoob
7 RunoobTEST

Python 訪問字元串中的值

Python 不支持單字元類型,單字元也在Python也是作為一個字元串使用。

Python 訪問子字元串,可以使用方括弧來截取字元串,如下實例:

1 #!/usr/bin/python3
2  
3 var1 = 'Hello World!'
4 var2 = "Runoob"
5  
6 print ("var1[0]: ", var1[0])
7 print ("var2[1:5]: ", var2[1:5])

以上實例執行結果:

1 var1[0]:  H
2 var2[1:5]:  unoo

Python字元串更新

你可以截取字元串的一部分並與其他欄位拼接,如下實例:

1 #!/usr/bin/python3
2  
3 var1 = 'Hello World!'
4  
5 print ("已更新字元串 : ", var1[:6] + 'Runoob!')

以上實例執行結果:

1 已更新字元串 :  Hello Runoob!

Python轉義字元

在需要在字元中使用特殊字元時,python用反斜杠(\)轉義字元。如下表:

Python字元串運算符

下表實例變數a值為字元串 "Hello",b變數值為 "Python":

 

 1 #!/usr/bin/python3
 2  
 3 a = "Hello"
 4 b = "Python"
 5  
 6 print("a + b 輸出結果:", a + b)
 7 print("a * 2 輸出結果:", a * 2)
 8 print("a[1] 輸出結果:", a[1])
 9 print("a[1:4] 輸出結果:", a[1:4])
10  
11 if( "H" in a) :
12     print("H 在變數 a 中")
13 else :
14     print("H 不在變數 a 中")
15  
16 if( "M" not in a) :
17     print("M 不在變數 a 中")
18 else :
19     print("M 在變數 a 中")
20  
21 print (r'\n')
22 print (R'\n')

以上實例輸出結果為:

1 a + b 輸出結果: HelloPython
2 a * 2 輸出結果: HelloHello
3 a[1] 輸出結果: e
4 a[1:4] 輸出結果: ell
5 H 在變數 a 中
6 M 不在變數 a 中
7 \n
8 \n

Python字元串格式化

Python 支持格式化字元串的輸出 。儘管這樣可能會用到非常複雜的表達式,但最基本的用法是將一個值插入到一個有字元串格式符 %s 的字元串中。

1 #!/usr/bin/python3
2  
3 print ("我叫 %s 今年 %d 歲!" % ('小明', 10))

以上實例輸出結果:

1 我叫 小明 今年 10 歲!

python字元串格式化符號:

格式化操作符輔助指令:

Python2.6 開始,新增了一種格式化字元串的函數 str.format(),它增強了字元串格式化的功能。

 1 Name = input("Name:")
 2 Age = int(input("Age:"))
 3 Job = input("Job:")
 4 Salary = int(input("Salary:"))
 5 
 6 msg = """
 7 =======Info of %s===========
 8 Name: %s
 9 Age: %d
10 Job: %s
11 Salary: %d
12 ========= end ===============
13 """ % (Name, Name, Age, Job, Salary)
14 
15 print(msg)
View Code

運行結果為:

 1 Name:lhm
 2 Age:23
 3 Job:coding
 4 Salary:5699
 5 
 6 =======Info of lhm===========
 7 Name: lhm
 8 Age: 23
 9 Job: coding
10 Salary: 5699
11 ========= end ===============
View Code

Unicode 字元串

在Python2中,普通字元串是以8位ASCII碼進行存儲的,而Unicode字元串則存儲為16位unicode字元串,這樣能夠表示更多的字元集。使用的語法是在字元串前面加上首碼 u

在Python3中,所有的字元串都是Unicode字元串。

Python 的字元串內建函數

Python 的字元串常用內建函數如下:

序號方法及描述
1

capitalize()
將字元串的第一個字元轉換為大寫

2

center(width, fillchar)


返回一個指定的寬度 width 居中的字元串,fillchar 為填充的字元,預設為空格。
3

count(str, beg= 0,end=len(string))


返回 str 在 string 裡面出現的次數,如果 beg 或者 end 指定則返回指定範圍內 str 出現的次數
4

bytes.decode(encoding="utf-8", errors="strict")


Python3 中沒有 decode 方法,但我們可以使用 bytes 對象的 decode() 方法來解碼給定的 bytes 對象,這個 bytes 對象可以由 str.encode() 來編碼返回。
5

encode(encoding='UTF-8',errors='strict')


以 encoding 指定的編碼格式編碼字元串,如果出錯預設報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace'
6

endswith(suffix, beg=0, end=len(string))
檢查字元串是否以 obj 結束,如果beg 或者 end 指定則檢查指定的範圍內是否以 obj 結束,如果是,返回 True,否則返回 False.

7

expandtabs(tabsize=8)


把字元串 string 中的 tab 符號轉為空格,tab 符號預設的空格數是 8 。
8

find(str, beg=0 end=len(string))


檢測 str 是否包含在字元串中,如果指定範圍 beg 和 end ,則檢查是否包含在指定範圍內,如果包含返回開始的索引值,否則返回-1
9

index(str, beg=0, end=len(string))


跟find()方法一樣,只不過如果str不在字元串中會報一個異常.
10

isalnum()


如果字元串至少有一個字元並且所有字元都是字母或數字則返 回 True,否則返回 False
11

isalpha()


如果字元串至少有一個字元並且所有字元都是字母則返回 True, 否則返回 False
12

isdigit()


如果字元串只包含數字則返回 True 否則返回 False..
13

islower()


如果字元串中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是小寫,則返回 True,否則返回 False
14

isnumeric()


如果字元串中只包含數字字元,則返回 True,否則返回 False
15

isspace()


如果字元串中只包含空白,則返回 True,否則返回 False.
16

istitle()


如果字元串是標題化的(見 title())則返回 True,否則返回 False
17

isupper()


如果字元串中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是大寫,則返回 True,否則返回 False
18

join(seq)


以指定字元串作為分隔符,將 seq 中所有的元素(的字元串表示)合併為一個新的字元串
19

len(string)


返回字元串長度
20

ljust(width[, fillchar])


返回一個原字元串左對齊,並使用 fillchar 填充至長度 width 的新字元串,fillchar 預設為空格。
21

lower()


轉換字元串中所有大寫字元為小寫.
22

lstrip()


截掉字元串左邊的空格或指定字元。
23

maketrans()


創建字元映射的轉換表,對於接受兩個參數的最簡單的調用方式,第一個參數是字元串,表示需要轉換的字元,第二個參數也是字元串表示轉換的目標。
24

max(str)


返回字元串 str 中最大的字母。
25

min(str)


返回字元串 str 中最小的字母。
26

replace(old, new [, max])


把 將字元串中的 str1 替換成 str2,如果 max 指定,則替換不超過 max 次。
27

rfind(str, beg=0,end=len(string))


類似於 find()函數,不過是從右邊開始查找.
28

rindex( str, beg=0, end=len(string))


類似於 index(),不過是從右邊開始.
29

rjust(width,[, fillchar])


返回一個原字元串右對齊,並使用fillchar(預設空格)填充至長度 width 的新字元串
30

rstrip()


刪除字元串字元串末尾的空格.
31

split(str="", num=string.count(str))


num=string.count(str)) 以 str 為分隔符截取字元串,如果 num 有指定值,則僅截取 num 個子字元串
32

splitlines([keepends])


按照行('\r', '\r\n', \n')分隔,返回一個包含各行作為元素的列表,如果參數 keepends 為 False,不包含換行符,如果為 True,則保留換行符。
33

startswith(str, beg=0,end=len(string))


檢查字元串是否是以 obj 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定範圍內檢查。
34

strip([chars])


在字元串上執行 lstrip()和 rstrip()
35

swapcase()


將字元串中大寫轉換為小寫,小寫轉換為大寫
36

title()


返回"標題化"的字元串,就是說所有單詞都是以大寫開始,其餘字母均為小寫(見 istitle())
37

translate(table, deletechars="")


根據 str 給出的表(包含 256 個字元)轉換 string 的字元, 要過濾掉的字元放到 deletechars 參數中
38

upper()


轉換字元串中的小寫字母為大寫
39

zfill (width)


返回長度為 width 的字元串,原字元串右對齊,前面填充0
40

isdecimal()


檢查字元串是否只包含十進位字元,如果是返回 true,否則返回 false。

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

-Advertisement-
Play Games
更多相關文章
  • 筆記內容:CentOS7配置IP和網路問題排查 筆記日期:2017.8.1 CentOS7配置IP: 因為是我們安裝的CentOS操作系統是最小化安裝的,所以沒有圖形界面和一些軟體或插件的。IP也是沒有配置的我們需要手動配置IP,然後使用遠程終端通過這個IP去連接操作系統,在終端上操作要比在虛擬機里 ...
  • 服務端部署 第一個裡程碑:安裝依賴關係 Memcache用到了libevent這個庫用於Socket的處理。 [root@nfs01 ~]# yum install libevent libevent-devel nc -y 第二個裡程碑:安裝memcache [root@nfs01 ~]# yum ...
  • ...
  • 今天,打開了以前裝過的vmware虛擬機,正常啟動之後,一直想不起登錄密碼,怎麼都是登錄不進去。然後在網上查找資料,最後重置了密碼。下麵,分享下具體操作過程。 1、重新啟動虛擬機,在出現啟動進度條時按下e鍵(啟動編輯器),進入以下界面後,再按下e鍵; 2、進入以下界面後,通過上下鍵選中第二個選項,再 ...
  • 源起 最近看到國內兩篇文章[1][2]先後翻譯了就職於Netflix的性能分析大牛Brendan Gregg於2017年7月31日寫的《Golang bcc/BPF Function Tracing》[3],這迅速引起了我的興趣,2016年時我曾在做MQTT伺服器端開發時便意識到軟體調試及動態追蹤技 ...
  • 寄存器變數 這個可以不理睬 register 關鍵字定義的變數直接放在寄存器當中 寄存器是放在CPU內部的存儲單元,它的速度比記憶體快的多,所以當程式中有10000多次調用同一個變數的時候聲明成寄存器變數會提高程式的執行速度。 科技發展不用這樣寫 register int i,f=1; 外部變數 使用 ...
  • 文件操作基本流程 電腦系統分為:電腦硬體,操作系統,應用程式三部分。 我們用python或其他語言編寫的應用程式若想要把數據永久保存下來,必須要保存於硬碟中,這就涉及到應用程式要操作硬體,眾所周知,應用程式是無法直接操作硬體的,這就用到了操作系統。操作系統把複雜的硬體操作封裝成簡單的介面給用戶/ ...
  • 有時會遇到this作為返回值的情況,那麼此時返回的到底是什麼呢? 返回的是調用this所處方法的那個對象的引用,讀起來有點繞口哈,有沒有想起小學語文分析句子成份的試題,哈哈。 一點點分析的話,主幹是“返回的是引用”; 什麼引用呢?“那個對象的引用”; 哪個對象呢?“調用方法的那個對象”; 調用的哪個 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...