我会持续更新....
字符串类型
字符串定义:
字符串的格式:'字符串', "字符串", """字符串"""
字符串一旦被创建,不能被修改,一旦修改或者拼接,都会重新生成字符串
字符串有序,可以索引,可以切片,可迭代对象
语法:
a = '我是字符串' # 单引号 b = "我也是字符串" # 双引号 c = """我照样是字符串""" # 三引号 # 第一个引号会找到第二个相同引号作为结束
单个"我"是一个字符
abc 是字符串, "我"是abc里面的子字符串,子序列
运算符: in not in
a = '我是字符串' b = "我也是字符串" c = """我照样是字符串""" if "我" in a: # 问你 "我"在不在a字符串里面, 在里面,满足if条件,执行if下面的代码块.if判断的就是真假,真就执行,假就不执行(下面我会演示) print("ok") else: print("Error") 执行结果: ok ---------------------------------------------------------------------------------------------------- if "我" not in c: # 问你: "我"不在c字符串里面? 因为"我"在字符串里面,所以不对,不满足if条件,执行else. else执行的都是假 print("ok") else: print("Error") 执行结果: Error
演示真假(bool值)
真假也是一种数据类型,叫布尔值(bool),常用于判断 True : 真==1 首字母大写 False: 假==0 首字母大写 引用上面代码a的变量 v = "我" in a print(v) # 执行结果为: True v1 = "我" not in a print(v1) # 执行结果为: False v2 = v + 10 print(v2) # 执行结果为: 11 v3 = v1 + 10 print(v3) # 执行结果为: 10
由此得证两点:1.if底层就是判断真假
2.True==1,False==0
对字符串操作的方法:
---------------------------------------------------- 字符串的方法: 0.-------------------------------------------------- str() # 强制类型转换 i = 123 s = str(123) print(s) 执行结果:"123" 1.-------------------------------------------------- capitalize(self) # 首字母变大写 test = "kelaiji" T = test.capitalize() print(T) 执行结果:Kelaiji 2.-------------------------------------------------- casefold(self) # 变小写,不仅仅是字母 test = "KELAIJI" T = test.casefold() print(T) 执行结果:kelaiji 3.-------------------------------------------------- lower(self) # 字母转换成小写 test = "KELAIJI" T = test.lower() print(T) 执行结果:kelaiji 4.-------------------------------------------------- islower(self) # 至少一个字符,且都是小写字母才返回True s = "Kelaiji" v = s.islower() print(v) 执行结果:False 5.-------------------------------------------------- upper(self) # 转换大写字母 s = "Kelaiji" v = s.upper() print(v) 执行结果:KELAIJI 6.-------------------------------------------------- isupper(self) # 至少一个字符,且都是小写字母才返回True s = "Kelaiji" v = s.islower() print(v) 执行结果:False 7.-------------------------------------------------- ljust(self, width, fillchar=None) # 设置长度,并放左边,不够用fillchar代替,默认空白代替 test = "KELAIJI" T = test.ljust(20, "*") print(T) 执行结果:KELAIJI************* 8.-------------------------------------------------- center(self, width, fillchar=None) # 设置长度,并居中,不够用fillchar代替,默认空白代替 test = "KELAIJI" T = test.center(20, "*") print(T) 执行结果:******KELAIJI******* 9.-------------------------------------------------- rjust(self, width, fillchar=None) # 设置长度,并放右边,不够用fillchar代替,默认空白代替 test = "KELAIJI" T = test.rjust(20, "*") print(T) 执行结果:*************KELAIJI 10.-------------------------------------------------- count(self, sub, start=None, end=None) # 统计元素的在字符串出现的次数,可以设置查询范围 test = "KELAIJI" T = test.count("I", 4, 5) print(T) 执行结果:1 11.-------------------------------------------------- startswith(self, prefix, start=None, end=None) # 检查以什么为开头,是的返回True,不是返回False,默认起始和终止位置为None test = "kelaiji" T = test.startswith("ke") print(T) 执行结果:True 12.-------------------------------------------------- encode(self, encoding='utf-8', errors='strict') # 把Unicode编码成指定编码 s = "周科" s = s.encode("utf-8") # 参数为指定编码格式 print(s) 执行结果:b'\xe5\x91\xa8\xe7\xa7\x91' 13.-------------------------------------------------- decode(self, encoding='utf-8', errors='strict') # 将原编码转换成指定编码 s1 = s.decode("utf-8") # 参数为原编码格式 print(s1) 执行结果:周科 14.-------------------------------------------------- endswith(self, prefix, start=None, end=None) # 检查以什么为开头,是的返回True,不是返回False,默认起始和终止位置为None test = "kelaiji" T = test.endswith("i", 10) print(T) 执行结果:False 15.-------------------------------------------------- expandtabs(self, tabsize=8) 默认一个表格的长度最少为8个字符,不够用空白补 test = "username\tpassword\tage\tsex\nkelaiji\t1318905\t18\t男" T = test.expandtabs(20) print(T) 执行结果: username password age sex kelaiji 1318905 18 男 16.-------------------------------------------------- find(self, sub, start=None, end=None) # 查找字符的第一个索引位置.没找到返回-1,可以设置起始和终止的范围 test = "kelaiji" T = test.find("o") print(T) 执行结果:-1 17.-------------------------------------------------- index(self, sub, start=None, end=None) # 找字符的第一个索引位置.没找到报错,不建议使用 test = "kelaiji" T = test.index("i") print(T) 执行结果:4 18.-------------------------------------------------- format(self, *args, **kwargs) # 格式化输出 第一种用法: s = "I am {}".format("kelaiji") print(s) 执行结果:I am kelaiji 第二种用法: s = "I am {}" v = s.format("kelaiji") print(v) 执行结果:I am kelaiji 第三种用法: s = "I am {}" v = s.format("kelaiji") print(v) 执行结果:I am kelaiji 第四种方法: s = "I am {}" v = s.format("kelaiji") print(v) 执行结果:I am kelaiji 第五种方法,保留小数: a = '{:.2f}'.format(12.333) print(a) 执行结果:12.33 第六种方法,百分比格式: a = '{:.2%}'.format(0.333) print(a) 执行结果:33.30% 第七种方法,左对齐,长度为10 a = '{a:<10}'.format(a=12.3) print(a) 执行结果:12.3 # 这后面有10个空格 第八种方法,右对齐,长度为10 a = '{a:0>10}'.format(a=12.3) print(a) 执行结果:00000012.3 第九种方法,居中对齐,长度为10 a = '{a:0^10}'.format(a=12.3) print(a) 执行结果:00012.3000 第十种方法********用法: L = ["kelaiji", 18, "Python"] s = "我叫{}\n我的年龄{}\n我在学{}".format(*L) print(s) 执行结果: 我叫kelaiji 我的年龄18 我在学Python 19.-------------------------------------------------- format_map(self, mapping) 格式化输出,字典 s = "I am {name}" v = s.format_map({"name": "kelaiji"}) print(v) 执行结果:I am kelaiji 20.-------------------------------------------------- isdecimal(self) # 判读是不是数字,支持十进制 s = "②" v = s.isdecimal() print(v) 执行结果:False 21.-------------------------------------------------- isdigit(self) # 判读是不是数字,支持特殊字符 s = "②" v = s.isdigit() print(v) 执行结果:True 22.-------------------------------------------------- isnumeric(self) # 判读是不是数字,支持中文的数字 s = "二" v = s.isnumeric() print(v) 执行结果:True 23.-------------------------------------------------- isalnum(self) # 判断字符串是不是字母和数字,是True,不是返回False s = "123asd_+=" v = s.isalnum() print(v) 执行结果:False 24.-------------------------------------------------- isalpha(self) # 这个值判断是否是字母,汉字 s = "kelaiji" v = s.isalpha() print(v) 执行结果:True 25.-------------------------------------------------- join(self) # 将字符串的每一个元素按照指定的分隔符进行拼接 s = "KELAIJI123" v = ":".join(s) print(v) 执行结果:K:E:L:A:I:J:I:1:2:3 26.-------------------------------------------------- isprintable(self) # 是否存在不可显示的字符\t \n, 存在就是False s = "Kelaiji\t" v = s.isprintable() print(v) 执行结果:False 27.-------------------------------------------------- isspace(self) # 至少一个字符,且都是空格才返回True s = " " v = s.isspace() print(v) 执行结果:True 28.-------------------------------------------------- title(self) # 转换成标题 s = "Return True if" v = s.title() print(v) 执行结果:Return True If 29.-------------------------------------------------- istitle(self) # 判断是否是标题 v = Return True If v1 = v.istitle() print(v1) 执行结果:True 30.-------------------------------------------------- swapcase(self) # 大写可以转换成小写,小写可以转换成大写 s = "KELAIJI" v = s.swapcase() print(v) 执行结果:kelaiji 31.-------------------------------------------------- isidentifier(self) # 符合 字母,数字,下划线: 标识符 def class s = "1KELAIJI" v = s.isidentifier() print(v) 执行结果:True 32.-------------------------------------------------- lstrip(self, chars=None) # 默认移除左边空白,加参数,移除左边指定字符 s = "kelaijike" s1 = s.lstrip("ke") print(s1) 执行结果:laijike 33.-------------------------------------------------- strip(self, chars=None) # 默认移出左右空白 s = "kelaijike" s1 = s.strip("ke") print(s1) 执行结果:laiji 34.-------------------------------------------------- rstrip(self, chars=None) # 默认移除右边空白,加参数,移除右边指定字符,移出\t,\n s = "kelaijike" s1 = s.rstrip("ke") print(s1) 执行结果:kelaiji 35.-------------------------------------------------- translate(self, table) # 暂时不会用,以后更新 36.-------------------------------------------------- zfill(self, width) # 返回指定长度的字符串,原字符串右对齐,前面填充0 s = "kelaijike" s1 = s.zfill(20) print(s1) 执行结果:00000000000kelaijike 37.-------------------------------------------------- replace(self, old, new, count=None) # 替换 参数: 被替换的 , 替换成, 替换次数,默认全部 s = "kelaijike" s1 = s.replace("ke", "ek", 1) print(s1) 执行结果:eklaijike 38.-------------------------------------------------- partition(self, sep) # 以什么分割成三部分,并以元组的形式返回 s = "keilaijike" s1 = s.partition("i") print(s1) 执行结果:('ke', 'i', 'laijike') 39.-------------------------------------------------- split(self, sep=None, maxsplit=-1) # 分割成指定数量,默认全部分割,并以列表的形式返回 s = "keilaijike" s1 = s.split("i", 1) print(s1) 执行结果:['ke', 'laijike'] 40.-------------------------------------------------- splitlines(self, keepends=None) # 根据换行符来进行分割,true,false:是否保留换行符,并以列表的形式返回 test = "asdfadfasdf\nasdfasdf\nadfasdf" v = test.splitlines(True) # False不显示换行符 print(v) 执行结果:['asdfadfasdf\n', 'asdfasdf\n', 'adfasdf']