字串與列表的內建方法
阿新 • • 發佈:2021-11-09
目錄
字串的內建方法
# 可以通過句點符(.) 檢視資料有那些方法
# 通過ctrl + 滑鼠左鍵 檢視方法底層原始碼
1. # 大小寫轉換 res = 'JaSoN222' 1. upper: 全部轉換為大寫 eg: print(res.upper()) 輸出為:JASON222 2. lower: 全部轉換為小寫 eg: print(res.lower()) 輸出為:jason222 # 可應用於使用者書寫驗證碼的大小寫問題 # 這樣就可以全部轉為大寫或全部轉為小寫作為比對 eg: real_code = JaSoN new_code = input('請輸入正確的驗證碼:') if new_code.upper() == real_code.upper(): #輸入lower同理 print('歡迎進入') else: print('驗證發輸入錯誤') # 判斷是否為純大寫或純小寫 print(res.isupper()) print(res.islower())
2. #判斷字串是否以指定的字元開頭 startswith res = 'my name is jason' print(res.startswith('m')) 輸出為:True print(res.startswith('i')) 輸出為: False print(res.startswith('my')) 輸入為: True #可為多個字元 #判斷字串是否以指定的字元結尾 endswith print(res.endswith('j')) 輸出為: False print(res.endswith('n')) 輸出為: False print(res.endswith('jason')) 輸出結果為: False
3. #格式化輸出 format 第一種為: %s佔位符 第二種為: 使用{},相當於%s佔位符 eg: mes = 'my name is{} my age is {}' print(mes.format('gary','20')) #輸出為 my name is gary my age is 20 第三種: {}大括號內 可以新增索引取值打破順序 並且可以反覆使用相同位置的資料 eg: mes = 'my name is {0} my age is {1} my oldname is {0} today age is {1}' print(mes.format('jason, 20')) #輸出為: my name is jason my age is 20 my oldname is jason today age is 20 第四種:{}大括號內可直接寫變數名 eg: mes = 'my name is {name1} my age is {age1} my oldname is {name1} birth is {age2}' print(mes.format(name1 = 'jason', age1 = 20, age2 = 1999)) #輸出為:my name is jason my age is 20 my oldname is jason birth is 1999
4. #字串的拼接
方式1 : 字串直接相加
print('hello' + 'world')
輸出為: helloworld
方式2 : join方法
name_list = ['gary', 'jason', 'tony', 'jack']
print('|'.join(name_list))
輸出為:gary|jason|tony|jack
# 注: 必須為字串型別(在python中不同的資料型別之間無法直接操作)
a1 = ['jason', 222, 'sss']
print('|'.join(a1)) 這樣就會報錯
5. #替換字串中指定的字元
mes = 'my name is jason my age is 10' 將jason 替換為 gary
print(mes.replace('jason', 'gary')) # 輸出為 my name is gary my age is 10
# 替換指定個數的文字
mes = 'my name is jason jason jason my age is 12'
print(mes.replace('jason', 'gary')) # 輸出為 my name is gary gary gary my age is 12
print(mes.replace('jason', 'gary', 1)) # 只更換第一個文字
# 輸出為 my name is gary jason jason my age is 12
6. # 判斷字串是否為純數字
psw = 'jason2222'
print (psw.isdigit()) # False
psw = '2222'
print (psw.isdigit()) # True
eg:
guess_age = input('請輸入你猜的年齡:')
if guess_age.isdigit():
guess_age = int(guess_age)
else:
print('請輸入正確的格式')
# 不常用方法
1. 所有單詞首字母大寫
mes = 'my name is jason'
print(mes.title()) # 輸出為:My Name Is Jason、
2. 開頭的單詞首字母大寫
mes = 'my name is jason'
print(mes.capitalize()) # 輸出為: My name is Jason
3. 大小寫互換
mes = 'XxX is HandSOme'
print(mes.swapcase()) # 輸出為:xXx IS hANDsoME
4. 查詢指定字元對應的起始索引值 從左往右找到第一個就結束
mes = 'my name is jason'
print(mes.find('m')) # 輸出為: 0
# 如果找不到 返回 -1
print(mes.find('z')) # 輸出為:-1
# 如果為 index 找不到則直接報錯
print(mes.find('z')) # 直接報錯
5. 統計某個字元出現的次數
mes = 'my name is mark'
print(mes.count('m')) # 輸出為:3
6. 居中展示
name = 'jason'
print(s8.center(15, '$')) # 居中展示
print(s8.ljust(15, '&')) # 左對齊 jason&&&&&&&&&&
print(s8.rjust(15, '*')) # 右對齊 **********jason
7. 判斷字串包含的內容
name = 'tony123'
name.isalnum() # 字串中既可以包含數字也可以包含字母
name.isalpha() # 字串中只包含字母
列表的基本用法
1. 修改值
name_list = ['jason', 'kevin', 'tony', 'jack']
name_list[0] = 1111
print(name_list) # 輸出為[1111, 'kevin', 'tony', 'jack']
2. 新增值
方式 1 :在末尾新增括號內指定的資料
name_list.append(99)
print(name_list) # 輸出為:['jason', 'kevin', 'tony', 'jack', 99]
方式 2 :插入元素(將括號內的資料當成一個整體插入到指定的索引位置)
name_list.insert(0,'jason1')
print(name_list) # 輸出為 :['jason1', jason', 'kevin', 'tony', 'jack']
name_list.insert(2. 'jason2')
print(name_list) # 輸出為 :[jason', 'kevin','jason2', 'tony', 'jack']
方式 3 :擴充套件元素
name_list.extend([1, 2, 2, 3, 4, 5])
print(name_list) # ['jason', 'kevin', 'tony', 'jack', 1, 2, 2, 3, 4, 5]
l1 = [1, 2, 3, 4, 5]
l2 = [11, 22, 33, 44, 55]
for i in l2:
l1.append(i) # 將l2中的資料追加到l1末尾
print(l1)
# 輸出為:[1, 2, 3, 4, 5, 11, 22, 33, 44, 55]
列表刪除資料
刪除資料
方式 1 :根據索引直接刪除
lis = [11, 22, 33, 44, 55]
del lis[1]
print(lis) # 輸出為 [11, 33, 44, 55]
方式 2 :remove() 括號內指定需要移除的元素值
lis.remove(11)
print(lis) # 輸出為[22, 33, 44, 55]
print(lis.remove(11)) # 則輸出為 None
方式 3 : pop() 括號內指定需要彈出的元素索引值 括號內如果不加引數的話預設彈出列表尾部元素
lis.pop()
print(lis) # 輸出為[11, 22, 33, 44]
lis.pop(1)
print(lis) # 輸出為[11, 33, 44, 55]
列表的其他用法
1. l1 = [55, 22, 11, 44, 33, 99, 88]
# l1.sort() # 預設為升序
# print(l1) # 輸出為[11, 22, 33, 44, 55, 88, 99]
# l1.sort(reverse=True) # 預設為降序
# print(l1) # 輸出為[99, 88, 55, 44, 33, 22, 11]
2. print(l1[:]) # 冒號兩邊不屑數字預設全都要
print(l1[:5]) # 左邊不寫預設從頭(0)開始
print(l1[1:]) # 右邊不寫預設到尾部
3. 兩個列表比較
ll1 = [999, 111]
ll2 = [111, 222, 333, 444, 555, 666, 777, 888]
print(ll1 > ll2) # 輸出為True
# 列表比較運算採用相同的索引元素進行比較,值對比第一個元素得出結果
如果為字串比較也是按照索引位置內部轉成ASCII對應的數子比較