Python 字符串切片、索引、查找、統計,用戶登陸驗證

# 切片和索引
# 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".
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章