字符串常用功能:
# name.upper() #全部大写变小写 # name.lower() #全部小写变大写 # name.split() #分割 # name.find() #找到指定子序列的索引位置 # name.strip() #默认移除左右空白,可以传参数,指定移除的值 # name.startswith() #是否以xx开头 # name.format() #字符串格式化 # name.replace() #字符串替换 # "alex".join(["aa",'bb']) #元素拼接(元素必须是字符串)
# name.encode # 编码转换
字符串额外功能:
# name[0] # 索引 # name[0:3] # 切片 # name[0:3:2] # 补偿 # len(name) # 长度 # 字符串for循环,每个元素是字符
字符串详细功能介绍:
#创建
a = 'abc' a = str('abc')
#转换
age = 19 new_age = str(age)
#字符串的拼接
name = 'lishichao' gender = '男' new_str = name + gender print(new_str)
#字符串格式化
name=input("whatyo is your name? >>>") print("Hello,%s" %(name)) msg = """ 姓名:%s 职业:%s 年龄:%s """ %("李世超","搬砖","18") print(msg) """
#判断子序列是否在其中
content = '成功最有效的方法就是向有经验的人学习!' if '成功' in content: print('包含敏感字符') else: print(content)
# 移除空白,源字符串不变
val = ' lishichao ' print(val) new_val = val.strip() #移除左右空白 new_val = val.lstrip( #移除左空白 new_val = val.rstrip() #移除右空白 print(new_val)
# 分割
user_info = 'lishichao|handan|19' #v = user_info.split('|') #根据'|' 全部分割 #['lishichao', 'handan', '19'] #v = user_info.split('|',1) #左边开始 分割1次 #['lishichao', 'handan|19'] #v = user_info.rsplit('|',1) #右边开始 分割1次 #['lishichao|handan', '19'] print(v)
# 长度,字符长度
val = '世超li' v = len(val) print(v)
# 索引
#val = 'a啊啊啊a' # v = val[0] #通过索引去找字符 # print(v) #通过索引,循环打印字符串 val =input('>>>') i = 0 while i < len(val): print(val[i]) i+=1
# 切片
content = '成功最有效的方法就是向有经验的人学习!' print(content[0]) print(content[0:2]) #取区间 print(content[5:9]) print(content[5:]) # print(content[5:-2]) # print(content[0:10:2]) #补偿 跳着取 print(content[0::2]) #不写 默认全部 print(content[-2:]) #从最后开始,取2个字符
#1. 首字母变大写,自身不变;生成新的值
#v = name.capitalize()
#2. 所有大写变小写
v = name.casefold() #更牛逼,支持多国语言
#v = name.lower()
#3. 文本居中
# 参数1:总长度 # 参数2:空白处填充的字符(长度为1) name = 'LiShiChao' v = name.center(20,'*') print(v) #执行结果 #*****LiShiChao****** # 左右填充 # center,rjust,ljust # name = 'alex' # v = name.rjust(20,'*') # print(v)
#4. 计算传入的值,在字符串中出现的次数
#参数1:要查找的值(子序列) #参数2:起始位置(索引) #参数3:结束位置(索引) #def count(self, sub, start=None, end=None): name = 'aaaabbbbcccc' v = name.count('b',4,8) print(v)
#5. 是否以xx结尾
# name = 'lishichao' # v1 = name.endswith('o') # print(v1)
# #6. 是否以xx开头
# name = 'lishichao' # v2 = name.startswith('li') # print(v2)
#7.找到制表符 ,进行替换(包含前面的值)
name = 'lishichao 19 lirenjie 20' v = name.expandtabs(20) print(v) # 执行结果 # lishichao 19 # linjreie 20
#8. 找到指定子序列的索引位置:不存在返回-1。
name = 'lishichao' v = name.find('i') #不存在返回-1。 #v = name.index('x') #不存在会报错 print(v)
#9.字符串格式化
# tpl = '姓名:{0};年龄:{1};性别:{2}' # v = tpl.format('李',19,'男') # print(v) # tpl = '姓名:{name};年龄:{age};性别:{gender}' # v = tpl.format(name='李',age=19,gender='男') # print(v) # tpl = '姓名:{name};年龄:{age};性别:{gender}' # v = tpl.format_map({'name':'李','age':'19','gender':'男'}) # print(v)
#10.是否是数字、汉字
# name = 'li23汉子' # v = name.isalnum() #包含子和数字,返回True # print(v) # v2 = name.isalpha() # print(v2) #不包含数字
s = "a" print(s.isalpha()) #判断是否是字母 True
#11. 判断是否是数字
# num = '二' # v1 = num.isdecimal() #只能判断123, # v2 = num.isdigit() #能判断123,'②' # v3 = num.isnumeric() #能判断123,'②','二' # print(v1,v2,v3)
#12. 移除空白,源字符串不变
# val = ' lishichao ' # print(val) # v1= val.strip() #移除左右空白 # v2 = val.lstrip() #移除左空白 # v3 = val.rstrip() #移除右空白
# #13. 是否是一个标识符
# n = 'name' # v = n.isidentifier() # print(v)
#14. 是否全部是小写
# name = 'lishichao' # v = name.islower() # print(v)
# 是否全部是大写
# n = 'LISHICHAO' # v1 = n.isupper() # print(v1)
# 大小写转换
# print(name.upper()) #全部小写变大写
# print(n.lower()) #全部大写变小写
# #15. 是否包含隐含字符
# name = 'asdsad sadsadsa' # print(name.isprintable())
#16. 判断是否全部是空格
# name = ' ' # print(name.isspace())
#17. 元素的拼接(元素字符串), 重点,经常用
# name = 'LSC' # v = '_'.join(name) # print(v) # name = ['a','b','c'] # v = '哈'.join(name) # print(v)
#18. 字符串替换
# content = '10.0.3.188,172.16.1.188' # v1 = content.replace('188','99') # 全部替换 # v2 = content.replace('188','99',1) # 只替换第一个188 # print(v1) # print(v2) # #执行结果: # # 10.0.3.99,172.16.1.99 # # 10.0.3.99,172.16.1.188
#29.encode
name = '李小' v1 = name.encode(encoding='utf-8') #转换成字节类型, utf-8 3个字节表示中文 print(v1) v2 = name.encode(encoding='gbk') #转换成字节类型,gbk 2个字节表示中文 print(v2)