十、str的索引、切片和str常用的操作方法(重點)
s1 = ‘python全棧22期‘
s2 = s1[0]
print(s2,type(s2)) #p <class ‘str‘>
s3 = s1[2]
print(s3) #t
s4 = s1[-1]
print(s4) #期
(2)
s1[start_index : end_index+1]
比如:
s1 = ‘python全棧22期‘
s5 = s1[0:6]
s5 = s1[:6]
print(s5) #python(第一位開始,可省略不寫;n是第5,要後延1位)
s6 = s1[6:]
print(s6) #全棧22期(一直到最後一位,最後一位可省略不寫)
(3)切片步長:
s1[start_index : end_index+1:步長]
比如:
s1 = ‘python全棧22期‘
s7 = s1[:5:2]
print(s7) #pto(與切片原理一樣,加入了步長,可以隔一個輸出下一個)
(4)倒序,反向按照切片步長:
s1[start_index : end_index後延一位:步長(負的)]
比如:
s1 = ‘python全棧22期‘
s8 = s1[-1:-6:-1]
print(s8) #期22棧全
#思考:倒序全部取出來?
s1 = ‘python全棧22期‘
s9 = s1[::-1] #期22棧全nohtyp
練習:
有字符串s = "123a4b5c"
通過對s切片形成新的字符串s1,s1 = "123"
print(s1)
通過對s切片形成新的字符串s2,s2 = "a4b"
s2 =s[3:-2]
print(s2)
通過對s切片形成新的字符串s3,s3 = "1345"
s3 =s[:-1:2]
print(s3)
通過對s切片形成字符串s4,s4 = "2ab"
s4 =s[1:-2:2]
print(s4)
通過對s切片形成字符串s5,s5 = "c"
s5 =s[-1]
print(s5)
通過對s切片形成字符串s6,s6 = "ba2"
s6 =s[-3:0:-2]
print(s6)
s1 = s.upper()
s1 = s.lower()
# 應用:
username = input(‘用戶名‘)
password = input(‘密碼‘)
code = ‘QweA‘
your_code = input(‘請輸入驗證碼:不區分大小寫‘)
if your_code.upper() == code.upper():
if username == ‘太白‘ and password == ‘123‘:
print(‘登錄成功‘)
else:
print(‘用戶名密碼錯誤‘)
else:
print(‘驗證碼錯誤‘)
(2)startswith(開頭) endswith(結尾)
就是判斷某某開頭(結尾)是否正確
s.startswith(‘內容‘)
s = ‘taiBAifdsa‘
print(s.startswith(‘t‘))
print(s.startswith(‘taiBAi‘))
#結果都是True,是t taiBAi 開頭
(了解)加入切片:
比如:
s = ‘taiBAifdsa‘
print(s.startswith(‘B‘,3,6))
#結果都是True,將s切片,表示第3位到第5位(顧頭不顧尾加1=6)的開頭是B
(3)replace (替換)
s.replace(被替換內容,要替換的內容)
比如:
msg = ‘alex 很nb,alex是老男孩教育的創始人之一,alex長得很帥‘
msg1 = msg.replace(‘alex‘,‘太白‘) # 默認全部替換
msg2 = msg.replace(‘alex‘,‘太白‘,2) # 從左到右替換前2個
print(msg1)
#太白 很nb,太白是老男孩教育的創始人之一,太白長得很帥
print(msg2)
#太白 很nb,太白是老男孩教育的創始人之一,alex長得很帥
(4)strip (去除空白):空格,\n(換行符),\t(TAB鍵)
s.strip()
比如:
s4 = ‘ \n太白\t‘ #太白前邊既有空格又有換行
print(s4)
s5 = s4.strip()
print(s5) #將空格、換行全部清除
(了解)可以去除指定的字符
比如:
s4 = ‘rre太r白qsd‘
s5 = s4.strip(‘qrsed‘)
print(s5)
#結果為:太r白,因為規則是:從前往後、從後往前同時進行,遇到剔除的內容就剔除,直到遇到不用剔除的內容停下,所以“太r白”中間的“r”沒有剔除
(5)
s.split(‘默認空格,或指定的分割符號或內容‘)
默認按照空格分割,返回一個列表
可以指定分隔符,進行分割
str——>list
比如:
s6 = ‘太白:女神:吳超‘
l = s6.split(‘:‘)
print(l)
#結果:[‘太白‘, ‘女神‘, ‘吳超‘]
(了解)
s6 = ‘:barry:nvshen:wu‘
print(s6.split(":",2))
#結果:[‘‘, ‘barry‘, ‘nvshen:wu‘],讓前2個分開,後面不分開
(6)join(非常好用)(加入)
‘所要加入的內容‘.join(s)
s1 = ‘alex‘
s2 = ‘+‘.join(s1)
print(s2,type(s2))
#結果:a+l+e+x <class ‘str‘>
list——>str(列表元素必須是字符串)
比如:
l1 = [‘太白‘, ‘女神‘, ‘吳超‘] # 前提:列表裏面的元素必須都是str類型
s3 = ‘:‘.join(l1)
print(s3)
#結果:太白:女神:吳超
(7)count(計數)
s.count(‘要計數的內容‘)
比如:
s8 = ‘sdfsdagsfdagfdhgfhgfhfghfdagsaa‘
print(s8.count(‘a‘))
#結果:5 ,即為a出現了5次
(8)format(格式化輸出)
- 第一種用法:
msg = ‘我叫{}今年{}性別{}‘.format(‘大壯‘, 25, ‘男‘)
print(msg)
#結果:我叫大壯今年25性別男
- 第二種用法:
msg = ‘我叫{0}今年{1}性別{2}我依然叫{0}‘.format(‘大壯‘, 25,‘男‘)
print(msg)
#結果:我叫大壯今年25性別男我依然叫大壯
- 第三種用法:
a = 100
msg = ‘我叫{name}今年{age}性別{sex}‘.format(age=a,sex=‘男‘,name=‘大壯‘)
print(msg)
#結果:我叫大壯今年100性別男
note:註意格式,s = ‘.....{a}....{b}......{c}...’.format(a=xxx,b=xxx,c=xxx),別忘了中間的{}
(9)is 系列
name.isalnum() #字符串由字母或數字組成
name.isalpha() #字符串只由字母組成
name.isdecimal() #字符串只由十進制組成
比如:
s1 = input(‘請輸入您的金額:‘)
if s1.isdecimal():
print(int(s1))
else:
print(‘輸入有誤‘)
#結果:會顯示用戶輸入的金額,如果有非數字,會顯示輸入有誤,結束程序
(10)in
s1 = ‘老男孩edu‘
print(‘老‘ in s1)
print(‘老男‘ in s1)
print(‘老ed‘ in s1)
print(‘老ed‘ not in s1)
#結果:
True
True
False
True
(必須是相連的)
(11)len:獲取可叠代對象的元素總個數
len(s)
比如:
s1 = ‘老男孩教育最好的講師:太白‘
print(len(s1))
#結果:13
練習:將’老男孩教育最好的講師:太白0’豎著顯示:
s1 = ‘老男孩教育最好的講師:太白‘
index = 0
while index < len(s1):
print(s1[index])
index += 1
#結果:
老
男
孩
教
育
最
好
的
講
師
:
太
白
十、str的索引、切片和str常用的操作方法(重點)