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 jie"
# 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.用 切割
# s1="""ccj
# boy
# girl"""
# print(s1.split(" ")) #结果:['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".



































原文地址:https://www.cnblogs.com/chcj/p/9818971.html