# 切片和索引 # 1.索引.索引就是下標,Python中下表從0開始 # s1 = "python最牛B" # p y t h o n 最 牛 B # 索引 0 1 2 3 4 5 6 7 8 # print(s1[0]) #結果:p # print(s1[1]) # print(s1[2]) # print(s1[3]) # print(s1[4]) # print(s1[5]) # print(s1[6]) # print(s1[7]) # print(s1[8]) #結果:B # print(s1[9]) #沒有9 會報錯 # print(s1[-1]) #結果:-1標識倒數B # print(s1[-2]) #結果:牛 # 2.切片.使用下表來截取部分字符串的內容 # 語法:str[start:end:step] 規則:顧頭不顧尾,從start開始截取,截取到end位置,不包括end. # s2 = "python最牛B" # p y t h o n 最 牛 B # 索引 0 1 2 3 4 5 6 7 8 # print(s2[0:3]) #從0獲取到3,不包含3. 結果:pth # print(s2[6:8]) #從6獲取到8,不包含8, 結果:最牛 # print(s2[6:9]) #從6獲取到9,不包含9,最大是8, 結果:最牛B # print(s2[6:10]) #最大是8,只能獲取到最大值,結果:最牛B # print(s2[4:]) #從4獲取到最大值,最大是8, 結果:on最牛 # s2 = "python最牛B" # p y t h o n 最 牛 B # 索引 0 1 2 3 4 5 6 7 8 # 3.跳着截取,步長 # print(s2[1:5:2]) #從1開始截取,每2個截取一個,截取到4. ytho-結果:yh # print(s2[:5:2]) #從0開始截取至4,每2個截取一個. pytho結果:pto # print(s2[4::2]) #從4開始截取至最後一個,每2個截取一個,on最牛B結果:o最B # print(s2[-5::2]) #從倒數第五個截取到最後,每2個截取一個,on最牛B結果:o最B # print(s2[-1:-5]) #從倒數第一個至倒數第四個,因爲step默認爲1,1代表從左往右截取,所以沒有. # print(s2[-1:-5:-1]) #從倒數第一個截取至倒數第四個,因爲step爲-1,-1代表從右往左截取,結果:B牛最n # print(s2[-5::-3]) #從倒數第五個截取至最後一個,是由右至左,step=-3,ohtyp結果:oy # 字符串相關操作方法 # 1.大小寫轉換 # s1= "abcdeF" # s1.capitalize() # print(s1) # ret =s1.capitalize() # print(ret) #結果:Abcdef 首字母變大寫 # ret = s1.lower() #全轉成小寫:abcdef # print(ret) # ret = s1.upper() #全轉成大寫:ABCDEF # print(ret) # 檢驗用戶輸入碼是否合法(功能:用戶賬戶實爲大小寫混一起,輸入小寫時也能通過) # verify_code = "abCd" # user_verify_code = input("請輸入驗證碼:") # if verify_code.upper() == user_verify_code.upper(): #思路:兩邊都變成大寫且相等時通過. # # print("驗證成功") # else: # print("驗證失敗") # s1 = "AbCdEf" # ret=s1.swapcase() #大小寫互換 結果:aBcDeF # print(ret) # 每個被特殊字符隔開的字母大寫,注:其他字母變成小寫 # s1 ="cHen cHao jIe 陳超傑" # ret =s1.title() # print(ret) #結果:Chen Chao Jie 陳超傑 # 2.字符串居中 # s1 ="陳超傑" # ret =s1.center(20,"*") #長邊變成20並將s1居中,兩端用*補齊. # print(ret) # 3.更改tab的長度 # s1 ="chenchao\tjie" # print(s1) #chenchao jie # ret = s1.expandtabs(18) # print(ret) #chenchao jie # 4.去空格 # s1 =" chen chaoj ie " # ret = s1.strip() #strip去掉左右兩端空格 # print(ret) #chen chaoj ie # retl = s1.lstrip()#lstrip去掉左邊空格 # print(retl) #chen chaoj ie # ret2 =s1.rstrip() #rstrip去掉右邊空格 # print(ret2) # chen chaoj ie # 小應用,模擬用戶登陸,忽略用戶輸入空格 # username = input("請輸入用戶名:").strip() # password = input("請輸入密碼:").strip() # if username == "ccj" and password == "888" : # print("登陸成功") # else: # print("登陸失敗") # 模擬登陸升級,用戶登陸時忽略空格和大小寫 # usr = "ccj" # pw = "888" # username = input("請輸入用戶名:") # password = input("請輸入密碼:") # if usr.strip().upper() == username.strip().upper() and pw.strip().upper() == password.strip().upper(): #包含密碼空格.. # print("登陸成功") # else: # print("登陸失敗") # strip也可以去掉指定元素 # s1 = "chenchaojie" # print(s1.strip("c")) #去掉c,結果:henchaojie # 5.字符串替換 # 語法 replace("old","new",count) # s1 = "chen_chao_jie_good_man" # ret =s1.replace("o","X",5) #把o換成X,換5次 # print(ret) # 6.字符串切割 # s1 ="ccj,boy,girl,hello" # ret =s1.split(",") #用,切割 結果:['ccj', 'boy', 'girl', 'hello'] # print(ret) # 7.用\n切割 # s1="""ccj # boy # girl""" # print(s1.split("\n")) #結果:['ccj', 'boy', 'girl'] # 注意坑:split切割兩端有空格時,出現空字符 # s1 ="ccj,boy,girl,hello" # ret = s1.split("c") # print(ret) #結果['', '', 'j,boy,girl,hello'] # 格式化輸出 # s1 = "我叫%s,今年%d歲了,我喜歡%s" % ("ccj",18,"IT") #常用方法 # print(s1) # s2 = "我叫{},今年{}歲了,我喜歡{}".format("zjl",28,"muzic") #按格式化輸出 # print(s2) # s3 = "我叫{0},今年{2}歲了,我喜歡{1}".format("zjl","muzic",28) #按位置輸出 # print(s3) # s4 = "我叫{name},今年{age}歲了,我喜歡{hobby}".format(hobby ="muzic",name ="zjl",age =28) #指定關鍵字 # print(s4) # 查找字符串 # 1.語法:startswith(X) 判斷字符串是否以X開頭 # s1 = "我叫boy,我喜歡python,java,php等編程語言." # ret = s1.startswith("boy") # print(ret) #判斷是否boy開頭,False # rst = s1.startswith("我叫boy") # print(rst) #判斷是否我叫boy開頭,true # 2.endswith(X)判斷字符串是否以X結尾 # s1 = "我叫boy,我喜歡python,java,php等編程語言." # ret = s1.endswith("語言.") # print(ret) #True # 3.count() 查找字符串出現的次數 # s1 ="chenchaojie" # ret = s1.count("c") # print(ret) #結果:2 出現2次 # 4.find(X) 查找字符串位置,返回索引 # s1 ="chenchaojie" # ret = s1.find("h") #返回索引 1,如果沒有找到,返回-1 ,index()不同的是:找不到時程序報錯. # print(ret) # 5.切片查找字符串的索引 # s1 ="chenchaojie" # ret = s1.find("h",2,10) # print(ret) #結果5, 如果是("h",1,10)只會返回第一個h的索引位置爲1. # 字符串之條件判斷 isalnum # 1.條件判斷 # s1 = "123.45" # s2 = "abcd" # s3 = "_abc!@#" # 2.判斷字符串是否由字母和數字組成 # print(s1.isalnum()) #F # print(s2.isalnum()) #T # print(s3.isalnum()) #F # 3.是否由字母組成 # print(s1.isalpha()) #F # print(s2.isalpha()) #T # print(s3.isalpha()) #F # 4.是否由數字組成,不包括小數點 # print(s1.isdigit()) #F isdigit檢測是否只由數字組成,因爲有小數點,所以爲F,負整數也爲F # print(s2.isdigit()) #F # print(s3.isdigit()) #F # s4 = "一二" # print(s4.isnumeric()) #能識別中文數字 # 小算法.判斷某一個字符串是否是小數 # s1 ="-123.12" # s1 = s1.replace("-","") # if s1.isdigit(): # print("這是一個整數") # else: # if s1.count(".") ==1 and not s1.startswith(".") and not s1.endswith("."): # print("這是一個小數") # else: # print("這不是小數") # 小算法升級.循環判斷小數 # while 1: # s1 = input("輸入一個數:") # s1 = s1.replace("-","") # if s1.isdigit(): # print("這是一個整數") # else: # if s1.count(".") ==1 and not s1.startswith(".") and not s1.endswith("."): # print("這是一個小數") # break # else: # print("這不是小數") # 計算字符串的長度 # s1 ="你是我的眼,帶我領略四季的變化" # ret = len(s1) # print(ret) #結果:15, len()的計算 # 迭代 # for 循環可以用來便利截取字符串中的每一個字符 # 語法: for 變量 in可迭代的對象: # pass # 可迭代的對象:可以一個一個往外取值的對象 # s1 = "大家好,我是CCJ,前端的小朋友們,你們好麼?" # 用while循環 # index = 0 # while index < len(s1): # print(s1[index]) #利用索引切片來完成字符的查找,len(s1)查看s1索引爲0-23,所以即逐個打印出索引0123456...23的字符串 # index += 1 # 用for循環,把s1中的每一個字符拿出來複製給前面的c # for c in s1: # print(c) #輸出效果同上! # in 有兩種用法: # 1.在for中,是把每一個元素獲取然後賦值給前面的變量. # 2.不在for中,是判斷某個字符是否出現在檢測的字符串中. # print("CCJ" in s1) #CCJ在s1中,結果:True # 例子:計算在字符串中"I am Jack,I'm 18 years old, I'have 2 dogs."(用for循環計算該字符串中有多少個數字) # s1 = "I am Jack,I'm 18 years old, I'have 2 dogs." # count = 0 # for c in s1: # if c.isdigit(): # count += 1 # print(count) #結果爲3. 因爲s1中包含"1","8","2".
Python 字符串切片、索引、查找、統計,用戶登陸驗證
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.