一. 什麼是字符串
字符串的定義與作用:
1、在非註釋語句中,凡是用引號括起來的部分都是字符串(str:英文全寫爲string)
2、字符串的作用是用來記錄文本(文字)信息,與人溝通交流。
name = "字符串"
print("字符串",name)
結果:
字符串字符串
二.字符串表現形式
- 引號
" "
' '
''' ''' //多用於多行註釋
""" """ //多用於多行註釋
- 空字符串
括號裏面除了有引號以外什麼內容也沒有,計算機也能把它讀出來的值 - 非空字符串
在引號內放入的一些文本信息,人可以看到這個字符串的文本並且計算機會打印出引號內的信息。
name = "hello world"
print("name")
- 單引號和雙引號的區別
單引號內的雙引號不算結束符,雙引號內的單引號不算結束符
print ("I'm chinese")
結果:
I'm chinese
- 三單引號字符串的作用
三引號字符串的換行會自動轉換爲換行符’\n
print("my name is zahngsan\nI'm from china")
print(''' my name is zhangsan
I'm from china''')
結果:
my name is zahngsan
I'm from china
my name is zhangsan
I'm from china
- 三單引號裏面可以包含單引號和雙引號
name ='''I'm a new "bard" '''
print(name)
結果:
I'm a new "bard"
三.字符串格式化操作
%s | 字符串佔位符 |
---|---|
%d | 數字佔位符 |
%f | 浮點型數字佔位符 |
%.2f | 控制浮點型數字佔位符 |
print('my name is %s'%('zhangsan')) //字符型
print('my name is %s ,my age is %d,my height is %f'%('zhangsan',20,1.80)) //字符型+數字%d+浮點型%f
print('my name is %s ,my age is %d,my height is %.2f'%('new bard',20,1.80)) //%.2f 輸出小數不會太長
結果:
my name is zhangsan
my name is zhangsan ,my age is 20,my height is 1.800000
my name is new bard ,my age is 20,my height is 1.80
四.字符串索引
字符串裏的每一個個體都被稱作字符也是該字符串的一個元素,每一個元素都對應一個索引值(下標);
下標從左往右從0開始,從右往左-1開始
五. 對字符串進行操作
- 字符串切片
a ="abcdefg"
print(a,type(a)) #查看a的類型
print(a[1]) #取a的第一個元素
print(a[2:3]) #取a的第2個元素
print(a[0:3]) #字符串切片,取頭不取尾,012
print(a[1:]) #除過第0個其他都取
print(a[:]) #全取
print(a[:-1]) #最後一個不取,0到-1
print(a[2:5:2]) #234每兩個取一個,2和4
print(a[-1:-6:2]) #-1-2-3-4-5每兩個取一個
print(a*3) #字符串重複操作,a輸出三次
結果:
abcdefg <class 'str'>
b
c
abc
bcdefg
abcdefg
abcdef
ce
abcdefgabcdefgabcdefg
- 字符串統計
name = "zhangsan"
print(name.count("a")) #統計字母a個數
結果:2
- 判斷
name = "zhangsan"
print(name.endswith("x")) #判斷字符串結尾字符
False
print("123".isdigit()) #判斷字符串123是否爲數字
True
print("wq123q".isalnum()) #判斷字符串wq123q是否爲數字字母組合
True
print("wql".isalpha()) #判斷字符串是否爲字母
True
print("111".isdecimal()) #判斷字符串是否爲十進制
True
print(name.isidentifier()) #判斷是否爲合法的標識符
False
print("abc".islower()) #判斷是否爲小寫字母
True
print("Abc".istitle()) #判斷首字母是否大寫
True
print("123".isprintable()) #判斷字符串是否可打印,tty File OR driver File
True
print(" ".isspace()) #判斷是否爲空格
True
print("www.baidu.com".startswith("www")) #判斷以是否以www前綴開始
- 拼接
a = "abc"
b = "def"
print(a+b) #字符串拼接,ab類型必須相同
# 若 b = 666666 則 print(a+str(b)) # 轉換b爲字符串
結果:
abcdef
- 對字符串操作後輸出
name = "zhangsan"
print(name.capitalize()) #將字符串首字母大寫
Zhangsan
print(name.center(50,"-")) #將字符串格式化居中輸出
---------------------zhangsan---------------------
print("abc".ljust(10,"+")) #輸出十個字節,空出的用+右邊補齊
abc+++++++
print("abc".rjust(10,"+")) #輸出十個字符,空出來的+左邊補齊
+++++++abc
print(" ABC".lstrip()) #左邊空格不輸出
print("ABC ".rstrip()) #右邊空格不輸出
print(" ABC ".strip()) #中間空格不輸出
ABC
ABC
ABC
print(name.format(name="anliu",yunwei="linux")) #格式化輸出
print(name.format_map({"name":"anliu","yunwei":"linux"})) #字典的方式格式輸出
- 轉換
print('hello'.upper()) #轉換爲大寫
print('HELLO'.lower()) #轉換爲小寫
print('hello world'.title()) #將字串符當中的單詞首字母大寫,單詞以非字母劃分
print("anliu".replace("a","A")) #替代,A替代a
print("abc".swapcase()) #大小寫相互轉化
- 索引
name = "zhangsan"
print(name.index("a")) #獲取索引a,在第幾個位置
print(name.find("a")) #獲取索引
2
2