# 切片和索引 # 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 字符串切片、索引、查找、统计,用户登陆验证
最新推荐文章于 2023-01-15 05:14:03 发布