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
其餘的請自行嘗試。。。