Python基礎之字元串

来源:https://www.cnblogs.com/yifchan/archive/2019/04/28/python-1-8.html
-Advertisement-
Play Games

Python基礎之字元串的知識;包括初識字元串,字元串的操作函數,字元串操作函數實操,字元串的切片等。 ...


初識字元串

字元串的認識

首先,我們先認識下什麼是字元串:

# 定義字元串
t_str1 = "Hello World"
t_str2 = "asdfghh"

print(t_str1)  # Hello World
print(t_str2)  # asdfghh

字元串的介紹

  • 字元串就是一串字元,是編程語言彙總表示文本的數據類型;
  • 在Python中可以使用一對雙引號或者一對單引號定義一個字元串;
  • 字元串內部如果需要使用",可以使用'定義字元串;同理,單引號也是;除此之外,也可以用\轉譯單引號雙引號;
  • 字元串的索引從0開始,可以用索引獲取一個字元串的指定位置的字元;
  • 還可以用for遍歷字元串中的每一個字元。

字元串的定義語法

變數名 = "一串字元"
eg:
t_str1 = "Hello World"
t_str2 = "asdfgh"
t_str3 = '他說:"你好呀!"'

字元串的操作函數

查看字元串操作函數

在ipython互動式下,先定義一個空字元串,然後輸入 空字元. 按下tab鍵,即可查看;

In [1]: t_str = ""    

In [2]: t_str.
t_str.capitalize    t_str.isidentifier  t_str.rindex
t_str.casefold      t_str.islower       t_str.rjust
t_str.center        t_str.isnumeric     t_str.rpartition
t_str.count         t_str.isprintable   t_str.rsplit
t_str.encode        t_str.isspace       t_str.rstrip
t_str.endswith      t_str.istitle       t_str.split
t_str.expandtabs    t_str.isupper       t_str.splitlines
t_str.find          t_str.join          t_str.startswith
t_str.format        t_str.ljust         t_str.strip
t_str.format_map    t_str.lower         t_str.swapcase
t_str.index         t_str.lstrip        t_str.title
t_str.isalnum       t_str.maketrans     t_str.translate
t_str.isalpha       t_str.partition     t_str.upper
t_str.isdecimal     t_str.replace       t_str.zfill
t_str.isdigit       t_str.rfind

字元串所有的操作函數我們可以看上面。

字元串操作函數分類

1.判斷類型

方法 說明
string.isspace() 如果string只包含空格,則返回True
string.isalnum() 如果string至少包含一個字元且所有字元都是字母或者數字則返回True
string.isalpha() 如果string至少有一個字元並且所有字元都是字母則返回True
string.isdecimal() 如果string只包含數字則返回True,全形數字
string.isdigit() 如果string只包含數字則返回True,全形數字,(1),\u00b2
string.isnumeric() 如果string只包含數字則返回True,全形數字,(1),\u00b2,漢字數字
string.istitle() 如果string是標題化的(每個單詞的首字母大寫)則返回True
string.islower() 如果string中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是小寫,True
string.isupper 如果string中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元都是大寫,True

2.查找和替換

方法 說明
string.startswitj(str) 檢查字元串是否以str開頭,是則返回True
string.endswith(str) 檢查字元串是否以str結尾,是則返回True
string.find(str,start=0,end=len(string)) 檢查str是否包含在string中,如果start和end指定範圍,則檢查是否包含在指定範圍內,如果是則返回開始的索引值,否則返回-1
string.rfind(str,start=0,end=len(string)) 類似於find()函數,不過是從右邊開始查找
string.index(str,start=0,end=len(string)) 和find()方法類似,只不過如果str不再string中會報錯
string.rindex(str,start=0,end=len(string)) 類似於index(),不過是從右邊開始
string.replace(oldstr,newstr,num=string.count(old)) 把string中的oldstr替換成newstr,如果num指定,則替換不超過num次

3.大小寫與轉換

方法 說明
string.capitalize() 把字元串的第一個字元大寫
string.title() 把字元串的每個單詞首字母大寫
string.lower() 轉換string中的所有大寫字元轉換為小寫
string.upper() 轉換string中的所有小寫字母轉換為大寫
string.swapcase() 翻轉string中的大小寫

4.文本對齊

方法 說明
string.ljust(width) 返回一個原字元串左對齊,並使用空格填充至長度width的新字元
string.rjust(width) 返回一個原字元串右對齊,並使用空格填充至長度width的新字元
string.center(width) 返回一個原字元串居中,並使用空格填充至長度width的新字元

5.去除空白字元

方法 說明
string.lstrip() 截掉string左邊(開始)的空白字元
string.rstrip() 截掉string右邊(末尾)的空白字元
string.strip() 截掉string左右兩邊的空白字元

6.拆分和連接

方法 說明
string.partition(str) 把字元串string分成一個3元素的元組(str前面,str,str後面)
string.rpartition(str) 類似於partition()函數,不過是從右邊開始查找
string.split(str="".num) 以str為分隔符切片string,如果num有指定值,則僅分隔num+1個子字元串,str預設包含'\r','\t','\n'和空格
string.splitlines() 按照行('\r','\t','\n')分隔,返回一個包含各行作為元素的列表
string.join(seq) 以string作為分隔符,將seq中的所有元素(的字元串表示)合併為一個新的字元串

字元串操作實操

字元串統計操作

t_str = "hello world hello python"

# 1.統計字元串長度
print(len(t_str))  # 24

# 2.統計某一個子字元串出現的次數
print(t_str.count("hel"))  # 2
print(t_str.count("abc"))  # 0

# 3.某一個子字元串出現的位置
print(t_str.index("llo"))  # 2
# 如果子字元串不存在,會報錯
# print(t_str.index("abc"))

判斷實操

示例1

t_str = "    \t\n"

print(t_str.isspace())  # True

示例2

# 判斷字元串中是否只包含數字
str1 = "1"

print(str1)

print(str1.isdecimal())
print(str1.isdigit())
print(str1.isnumeric())

示例3

# 判斷字元串中是否只包含數字
str2 = "1.1"

print(str2.isdecimal())
print(str2.isdigit())
print(str2.isnumeric())

# False
# False
# False

由此可見,這幾種函數都不能判斷小數

示例4

str3 = "(1)"

print(str3)
print(str3.isdecimal())
print(str3.isdigit())
print(str3.isnumeric())

# (1)
# False
# True
# True

提一下,本來結果應該是如上的,但可能是因為自己打的括弧不對的原因,輸出全是False

示例5
unicode 字元串

str4 = "\u00b2"

print(str4)
print(str4.isdecimal())
print(str4.isdigit())
print(str4.isnumeric())

# ²
# False
# True
# True

示例6

str5 = "一百"

print(str5)
print(str5.isdecimal())
print(str5.isdigit())
print(str5.isnumeric())

# 一百
# False
# False
# True

字元串的查找與替換實操

t_str = "hello world"

print(t_str.startswith("hel"))  # True
print(t_str.startswith("Hel"))  # False

print(t_str.endswith("ld"))  # True

# index也可以用來查找字元串,但index指定的字元串如果不存在,會報錯;find不會報錯,只會返回-1
print(t_str.find("llo"))  # 2
print(t_str.find("abc"))  # -1

# replace方法執行完成後,會返回一個新的字元串,不改變原來的字元串
new_str = t_str.replace("world", "python")
print(new_str)  # hello python
print(t_str)  # hello world

其餘的請自行嘗試。。。


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

-Advertisement-
Play Games
更多相關文章
  • 本人是做java web開發的,已經工作兩年了。一直都是自己學習學技術,昨天突然靈光一現,覺得自己應該有一個自己的博客。以後我會不定時的在博客上更新一些自己學習掌握的技術。以前都沒有過這樣書面性的給別人講解技術的經驗,可能有什麼寫的不到位的地方,請大家能夠給我指出來說明一下,我會加以改正。大家一起努 ...
  • 思路 首先以那個環為框架,把所有的邊連出來。如果有兩條邊相交,那麼就把其中一條放到環外面去。 ...
  • 一直以來Base64演算法的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder來進行的。但是這個類是sun公司的內部方法,並沒有在Java API中公開過,不屬於JDK標準庫範疇,但在JDK中包含了該類,可以直接使用。但是在Eclipse和MyEclipse中 ...
  • 題意 給定一張圖,對於每條邊給出一個運算符$(\&,|,\otimes)$和一個值$c(0 \le c \le 1)$。問能否 ...
  • 今日目標 能夠計算二進位和十進位數之間的互轉 能夠使用常見的DOS命令 理解Java語言的跨平臺實現原理 jvm是運行java程式的假想電腦,所有的java程式都運行在它上面。java編寫的軟體可以運行在任何操作系統上,這被稱為java跨平臺特性,是由jvm實現的,java程式運行在jvm上,jv ...
  • 所屬網站分類: 面試經典 > python 作者:外星人入侵 鏈接:http://www.pythonheidong.com/blog/article/67/ 來源:python黑洞網,專註python資源,python教程,python技術 Python支持5種數據類型: 1. Numbers(數 ...
  • 6.1 基本介紹 6.1.1 Scala語言是面向對象的 1) Java時面向對象的編程語言,由於歷史原因,Java中海存在著非面向對象的內容:基本類型,null,靜態方法等 2) Scala語言來自於Java,所以天生就是面向對象的語言,而且Scala時純粹的面相對象的語言,即在Scala中,一切 ...
  • DelayQueue是阻塞隊列嗎? DelayQueue的實現方式? DelayQueue主要用於什麼場景? ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...