5.字串--索引--詳解
字串-索引-詳解
一、字串索引
1.索引
格式: 變數名[頭標:下標:步長] 步長不寫預設為1
索引從左往右是以0開始,從右往左則以-1開始
例:從左往右 輸出變數中得索引值
name = 'yang'
# 索引 0123
print(name[0])
結果:
y
從右往左 輸出變數中得索引值
name = 'yang'
# 索引 -4-3-2-1
print(name[-1])
結果:
g
2.切片
例: 輸出變數中 頭標至下標這個區間的索引值,但不包含終止索引的值
name = 'yang' # 索引 0123 print(name[0:3]) 結果: yan
3.步長
步長為每次走的步,(有點像跨索引取值)
例:
name = 'helloword'
#索引 012345678
#從頭標開始每次走兩步的話,也就是取02468這些索引的值
print(name [0:9:2])
結果:
hlood
二、字串詳解
1.大小寫轉換
命令格式:
- 換大寫 :變數名.upper()
- 換小寫 :變數名.lower()
換大寫 例:
a=yang
a1=a.upper()
print(a1)
結果:
YANG
換小寫 例:
a=YANG
a1=a.lower()
print(a)
結果:
yang
舉例:讓登入的驗證碼不區分大小寫
y_z_m = 'o98k' #設定驗證碼 y_z_m_input = input("請輸入驗證碼(O98k)") #使用者輸入驗證碼 new_y_z_m_input = y_z_m_input.lower() #將使用者輸入的字串換成小寫 if y_z_m == new_y_z_m_input: user = input('請輸入賬號:') pwd = input('請輸入密碼:') if user == 'yang' and pwd == '8520': print('登陸成功!') else: print('登入失敗') else: print('驗證碼錯誤!')
2.判斷以什麼開頭
命令格式:
變數名.startswith('要判斷的字串')
變數名.startswith('要判斷的字串',上標,下標)
例: name = 'yang' new_name = name.startswith('y') #判斷是否為y開頭,寫入邏輯值 if new_name: #此處new_name的值為True print('是以y開頭') # 判斷這是不是字串是不是以a開頭的 例: name = 'yang' #可用索引指定區間 new_name = name.startswith('n',2,5) #2和5分別為起始索引和終止索引 if new_name: print('是以n開頭') # 我們可以指定從哪個位置開始哪個位置結束
3.判斷以什麼結尾
命令格式:
變數名.endswith('要判斷的字串')
變數名.endswith('要判斷的字串',上標,下標)
例:
name = 'yang'
new_name = name.endswith('g')
if new_name:
print('是以g結尾')
# 判斷這是不是字串是不是以x結尾的
name = 'yang'
new_name = name.endswith('g',2,5)
if new_name:
print('是以g結尾')
# 判斷這是不是字串是不是以x結尾的
4.統計出現的次數
命令格式:
變數名.count('要判斷的字串')
例:
name = 'yanglang'
new_name = name.count('a')
print(new_name)
# 統計name這個字串中a出現的次數
5.字串替換
命令格式:
變數名.replace('被換','要換',換的個數)
例:
name = 'yanglang'
new_name = name.replace('a','b',1) #把name中的a換成b,其中1是替換的次數(替換的個數)
print(new_name)
結果:
ybnglang
# 替換字串中的內容以外 我們可以指定要替換的次數
例:
name = 'yanglang'
new_name = name.count('a') #統計a出現的次數(出現的個數)
nw_name = name.replace('a','b',new_name) #把所有的a替換成b,
print(nw_name)
6.去除的頭尾兩端的空格,換行符,製表符
命令格式:
變數名.strip()
例:
name = ' yanglang ' # 注意!此處字串兩頭是加了空格的
new_name = name.strip() # 預設去除的頭尾兩端的空格,換行符,製表符 也可以自己指定
print(new_name)
# 去除頭尾倆遍的空格和換行符
7.分割字串
命令格式:
變數名.split(‘分割點’)
變數名.split(‘分割點’,maxsplit=分割次數)
例:
name = 'yanglang' # 通過n將字串name進行切割,將n作為切割點
new_name = name.split("n") # 預設以空格,換行符,製表符分隔
print(new_name)
結果:
['ya','gla','g'] # 切割後的內容是一個列表,把字串切割成列表
# print(type(變數名))可以輸出變數型別
例:
name = 'yanglang'
new_name = name.split("n",maxsplit=1) # 此處的1是切割次數(或者說是切割幾個x)
print(new_name)
結果:
['ya','glang']
8.字串格式化
例:
name = 'yanglang{}{}' #這裡的{}是佔位符
new_name = name.format('說的對','是的') #可以按照順序去填充,也可以按照索引去填充,也可以按照關鍵字填充
print(new_name)
9.is系列
- 判斷是否為十進位制的數字 命令格式:變數名.isdecimal()
例:
name = 'yanglang'
new_name = name.isdecimal() #此處輸入值為False
print(new_name)
# 判斷是不是十進位制的數字,返回結果是布林值
- 判斷是否為數字、字母和中文 命令格式:變數名.isalnum()
例:
name = 'yanglang'
new_name = name.isalnum()
print(new_name)
# 判斷是不是數字和字母以及中文,返回結果是布林值
- 判斷是否為純字母和中文 命令格式:變數名.isalpha()
例:
name = 'yanglang'
new_name = name.isalpha()
print(new_name)
# 判斷是不是純字母和漢字,返回的是布林值
10.獲取字串長度
命令格式:
len(變數名)
例:
name='yanglang' #字串
name1=['a','b',[1,2,3]] #列表
print(len(name)) #結果為 8
print(len(name1)) #結果為 3
11.使用while迴圈列印單個元素
例:
name = "Meet"
count = 0
while count < len(name):
print(name[count]) #將變數值作為索引,輸出此索引的元素
count = count + 1
12.for 迴圈
例:
name = "Meet"
for i in name:
print(i)
for i in "Meet":
print(i)
for迴圈, for是關鍵字 i是一個變數 後邊的name是要被迴圈的內容,他會把這個name指向的字串裡的每個元素打印出來
for迴圈是可以迴圈的資料結構:
- 字串(str)
- 列 表(list)
- 元 祖(tuple)
- 字 典(dict)
- 集 合(set)
唯獨不能進行迴圈的就是 整型(int)和布林值(bool) #因為這兩種資料結構都是單個值
【補充】
1.字串首字母大寫
命令格式:
字串.capitalize()
例:
a='asd'
a=a.capitalize()
print(a) #輸出結果為 Asd