python中字符串支持的基本操作?從鍵盤讀入的數據,無論是字符還是數字,都是字符串類型的數據程序的輸出結果也多以文本形式展示給用戶所以,字符串是最重要的數據類型之一,我來為大家講解一下關于python中字符串支持的基本操作?跟着小編一起來看一看吧!
從鍵盤讀入的數據,無論是字符還是數字,都是字符串類型的數據。程序的輸出結果也多以文本形式展示給用戶。所以,字符串是最重要的數據類型之一。
字符串是一個字符序列,在内存中占用一段連續的存儲空間,它的每一個元素不僅有值,而且有索引。索引唯一的标識了每一個元素,可以通過索引進行檢索、讀取、存儲等操作。
其語法格式如下:
len(string)
其中,參數string要計算長度的字符串。Len(string)的返回值為一個整數,單位是字節。
首先我們先做一個測試:
str1='我愛Pyhon'
len1=len(str1)
print('str1的長度為:' str(len1))
輸出結果為:str1的長度為:7
字符串‘我愛Python’包含2個漢字和5個英文字母,看上去漢字字符和英文字符在計算長度時是沒有區别的。真的是這樣嗎?
我們對上面的代碼稍作修改:
str1='我愛Pyhon'
str2=str1.encode('GBK')
len1=len(str2)
print('str2的長度為:' str(len1))
輸出結果為:str2的長度為:9
這兩段代碼的區别就是,在第二段代碼中用到了encode()這個函數,它的指定是指定編碼方式。
字符串str1沒有指定編碼方式,故采用python默認編碼方式,不區分英文、數字和漢字,所有字符都占用一個字節。
字符串str2指定采用GBK編碼,漢字占2個字節,故長度變成了9。
如果将上段代碼str2=str1.encode('GBK')改為str2=str1.encode('UTF-8'),則輸出結果為:str2的長度為:11
因為UTF-8編碼漢字占3個字符。
2、字符串連接
Python的字符串連接方法非常簡單,隻需要把要連接的字符串用“ ”連接起來即可。在前面的例子中已經多次使用過了。
例如:
str1='人生苦短'
str2='我用Python'
print(str1 ',' str2 '!')
輸出結果為:人生苦短,我用Python!
3、字符串截取
Python中的字符串截取非常有趣,采用被稱為“切片”的方法。
語法格式如下:
string[start : end : step]
其中,string表示源字符串;start表示起始字符(包括該字符)的索引,默認值為0;end表示結束字符(不包括該字符)的索引,默認為字符串的長度;step表示切片的步距,步距默認為1,此時可以省略。要特别注意這兩個括号中描述的内容,是非常容易混淆和忽視的。
如:
str1='人生苦短,我用Python!'
print(str1[0:4:1])
輸出結果為:人生苦短
詳解:
索引 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
字符 |
人 |
生 |
苦 |
短 |
, |
我 |
用 |
P |
y |
t |
h |
o |
n |
! |
str1[0:4:1]的含義是,從字符串str1中的索引号為0的位置開始(包括),到索引号為4的位置截止(不包括),步距為1。由于start的默認值為0,step為默認值1時可以省略,故str1[0:4:1]可以簡寫為 str1[:4]。(注意格式中兩個“:”,取默認值時,第一個不能省略,第二個可以省略)
print(str1[:4])
輸出結果為:人生苦短
print(str1[5:])
輸出結果為:我用Python!
print(str1[7:13])
輸出結果為:Python
4、檢索字符串
這裡重點介紹常用的count()、find()和index()方法。
█ count()方法
count()方法用于檢索子字符串在源字符串中出現的次數。若存在,則返回出現的次數,否則,返回值為0。
格式:
str.count(sub[,start[,end]])
其中,str為源字符串;sub為子字符串;start為檢索範圍的起始位置索引,若不指定,則從0位置開始;end為檢索範圍的結束位置索引,若不指定,則一直檢索都結尾。
例:
str1='The knowledge change your fate, and the Python accomplish your future.'
print(str1.count('your')) #查找字符串str1中包含多少個子字符串‘your’。
運行結果為:2
█ find()方法
find()方法用于檢索是否包含指定的子字符串。如果檢索的子字符串不存在,則返回-1,否則返回首次找到該子字符串時的索引。
格式:str.find(sub[,start[,end]])
用法和count()方法相似。
例:
str1='The knowledge change your fate, and the Python accomplish your future.'
print(str1.count('Python')) #查找字符串str1中子字符串‘Python’首次出現的位置。
輸出結果為:40
█ index()方法
index()方法與find()方法相似,用于檢索子字符串在源字符串中首次出現的位置索引。若存在,則返回索引值,否則,抛出異常(要特别注意這一點)。
格式:
str.index(sub[,start[,end]])
其中,str為源字符串;sub為子字符串;start為檢索範圍的起始位置索引,若不指定,則從0位置開始;end為檢索範圍的結束位置索引,若不指定,則一直檢索都結尾。
例:
str1='The knowledge change your fate, and the Python accomplish your future.'
print(str1.index('Python'))
輸出結果為:40
現在将要要檢索的子字符串改為“python”:
print(str1.index('python'))
由于字符串str1中不包含‘python’,此時會抛出一個異常:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
print(str1.index('python'))
ValueError: substring not found
5、字母大小寫轉換
█ lower()方法
lower()方法可以将字符串中包含的大寫字母全部轉換為小寫。
例:
str1='The knowledge change your fate, and the Python accomplish your future.'
print(str1.lower())
輸出結果為:the knowledge change your fate, and the python accomplish your future.
█ upper()方法
upper()方法可以将字符串中包含的大寫字母全部轉換為小寫。
例:
str1='The knowledge change your fate, and the Python accomplish your future.'
print(str1.upper())
輸出結果為:THE KNOWLEDGE CHANGE YOUR FATE, AND THE PYTHON ACCOMPLISH YOUR FUTURE.
6、去除字符串中的空格和特殊字符
█ strip()方法
用于去掉字符串左、右兩側的空格和特殊字符。格式如下:
str.strip([chars])
其中,chars為可選參數,用于指定要去除的字符,可以指定多個。
例:
str1=' The knowledge change your fate, and the Python accomplish your future. ' #字符串str1左、右兩側各有4個空格。
print(str1.strip())
運行結果:The knowledge change your fate, and the Python accomplish your future. #字符串str1左右兩側的空格都已去除。
print(str1.strip(',.'))
運行結果: The knowledge change your fate, and the Python accomplish your future #字符串str1左、右兩側的4個空格都未被去除,中間的“,”也未被去除,隻去除了右側的“.”。
可以看出,若strip()方法不使用參數,則去除字符串左、右兩側的空格;若strip()函數使用參數,則去除字符串左、右兩側的指定字符。
█ lstrip()方法和rstrip()方法
這兩個方法的使用規則與strip()方法相似,但僅限于對字符串的左側或右側字符的去除。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!