字符串数据出现的意义
掌握字符串的定义和特性
能熟练掌握字符串常用操作,并了解其他工厂方法
字符串的定义和创建
字符串是一个有序的字符集合,用于存储和表示基本的文本信息, 用引号“ ” 之间的内容就是字符串。
创建方式
字符串 = “ 用引号引起来就行 ”
特性:
按照从左到右的顺序定义字符集合,下表从0开始顺序访问,有序
提示:
1.字符串单引号和双引号都无法取消特殊字符的含义,假如需要取消其特殊意义:
则在其前面加上 r 如:name = r‘I\thf‘
2. unicode字符串与 r 连用必须在 r 前面,如 name = ur‘I\thf‘
常用操作:
#索引
name = ‘yan xia ting yu‘ print(name[0])>>:yprint(name[-1])>>:uprint(name[-2])>>:y str.index(element)#查找元素 假如存在 则返回索引 ,不存在报错。print(name.index(‘e‘)) riase抛出异常:ValueError: substring not found str.find(element)print(name.find(‘e‘))#元素存在返回 索引,不存在 返回-1 不会抛出异常报错
print(name.find(‘y‘))print(name.strip())#移除两边的空格print(name.lstrip())#移除左边的空格print(name.rstrip())#移除右边空格
name = ‘****** yan xia ting yu *********‘print(name.strip("*"))#移除两边的*字符
#字符串的长度print(name.__len__())#一般不用,是len()方法的实现方式>>:35print(len(name))>>:35
name = ‘****** yan xia ting yu *********‘
#字符串的替换print(name.replace(‘*‘,‘8‘))#不指定则全部替换>>:888888 yan xia ting yu 888888888 print(name.replace(‘*‘,‘8‘,8))#指定替换个数>>:888888 yan xia ting yu 88******* print(name.replace(‘*‘,‘8‘,-8))>>;888888 yan xia ting yu 888888888 print(name.replace(‘*‘,‘8‘,-1))>>:888888 yan xia ting yu 888888888 #切片
name = ‘yanxiatingyu‘print(name[0:])print(name[0::])print(name[0:7])#顾头不顾尾print(name[0:7:2])#步长为2print(name[4::2])#步长为2print(name[::-1])#反向步长 #取反print(name[:-7:-1])print(name[-2:-7:-1])print(name[-1:-7:-1])
>>:yanxiatingyu
>>:yanxiatingyu
>>:yanxiat
>>:ynit
>>:itny
>>:uygnitaixnay
>>:uygnit
>>:ygnit
>>:uygnit
#一些比较有用的函数
name = ‘yanxiatingyuyanxiatingyu‘upper_name=‘YANXIATINGYU‘print(name.capitalize())print(upper_name.casefold())print(name.center(20,‘8‘))#第一个参数设置宽度,第二个:补全的字符:print(name.center(20))#不写默认为空格#原来的字符串居中,不够用字符补全print(name.count(‘y‘,0,7))#统计字符出现的次数,start_int_index,end_int_index设置查找范围print(name.count(‘y‘))#不设定不限制:默认范围是全部
Yanxiatingyuyanxiatingyu
yanxiatingyu
yanxiatingyuyanxiatingyu
yanxiatingyuyanxiatingyu
1
4
import hashlibhs=hashlib.md5()hs.update(name.encode(‘utf-8‘))print(hs.hexdigest())>>:ecbf46328d68cca2a29e618186efd377
#字符串的格式输出
#format的三种玩法 res=‘{} {} {}‘.format(‘egon‘,18,‘male‘) res=‘{1} {0} {1}‘.format(‘egon‘,18,‘male‘) res=‘{name} {age} {sex}‘.format(sex=‘male‘,name=‘egon‘,age=18)
#字符串的拼接
单独拿出来了 有兴趣可以去看看
# in 和 not in 成员运算
if ‘y‘ in name: print(‘存在‘) if ‘Y‘ not in name: print(‘不存在‘)
#1、strip,lstrip,rstrip #2、lower,upper #3、startswith,endswith #4、format的三种玩法 #5、split,rsplit #6、join #7、replace #8、isdigit
#strip name=‘*egon**‘ print(name.strip(‘*‘)) print(name.lstrip(‘*‘)) print(name.rstrip(‘*‘)) #lower,upper name=‘egon‘ print(name.lower()) print(name.upper()) #startswith,endswith name=‘alex_SB‘ print(name.endswith(‘SB‘)) print(name.startswith(‘alex‘)) #split name=‘root:x:0:0::/root:/bin/bash‘ print(name.split(‘:‘)) #默认分隔符为空格 name=‘C:/a/b/c/d.txt‘ #只想拿到顶级目录 print(name.split(‘/‘,1)) name=‘a|b|c‘ print(name.rsplit(‘|‘,1)) #从右开始切分>>:[‘a|b‘, ‘c‘]
#join tag=‘ ‘ print(tag.join([‘egon‘,‘say‘,‘hello‘,‘world‘])) #可迭代对象必须都是字符串 #replace name=‘yanxiatingyu say :i have ,my name is yanxiatingyu‘ print(name.replace(‘yanxiatingyu‘,‘88‘,1)) #isdigit:可以判断bytes和unicode类型,是最常用的用于于判断字符是否为"数字"的方法 age=input(‘>>: ‘) print(age.isdigit())
print(name.capitalize())#首字母大写print(name.swapcase())#全部大写print(name.istitle())#判断首字母是否大写
#find,rfind,index,rindex,count name=‘egon say hello‘ print(name.find(‘o‘,1,3)) #顾头不顾尾,找不到则返回-1不会报错,找到了则显示索引 # print(name.index(‘e‘,2,4)) #同上,但是找不到会报错 print(name.count(‘e‘,1,3)) #顾头不顾尾,如果不指定范围则查找所有 #center,ljust,rjust,zfill name=‘egon‘ print(name.center(30,‘-‘)) print(name.ljust(30,‘*‘)) print(name.rjust(30,‘*‘)) print(name.zfill(50)) #用0填充 #expandtabs name=‘egon\thello‘ print(name) print(name.expandtabs(1)) #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg=‘egon say hi‘ print(msg.title()) #每个单词的首字母大写 #is数字系列 #在python3中 num1=b‘4‘ #bytes num2=u‘4‘ #unicode,python3中无需加u就是unicode num3=‘四‘ #中文数字 num4=‘Ⅳ‘ #罗马数字 #isdigt:bytes,unicode print(num1.isdigit()) #True print(num2.isdigit()) #True print(num3.isdigit()) #False print(num4.isdigit()) #False #isdecimal:uncicode #bytes类型无isdecimal方法 print(num2.isdecimal()) #True print(num3.isdecimal()) #False print(num4.isdecimal()) #False #isnumberic:unicode,中文数字,罗马数字 #bytes类型无isnumberic方法 print(num2.isnumeric()) #True print(num3.isnumeric()) #True print(num4.isnumeric()) #True #三者不能判断浮点数 num5=‘4.3‘ print(num5.isdigit()) print(num5.isdecimal()) print(num5.isnumeric()) ‘‘‘ 总结: 最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景 如果要判断中文数字或罗马数字,则需要用到isnumeric ‘‘‘ #is其他 print(‘===>‘) name=‘egon123‘ print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isidentifier()) print(name.islower()) print(name.isupper()) print(name.isspace()) print(name.istitle())
原文地址:https://www.cnblogs.com/yanxiatingyu/p/9276757.html
时间: 2024-10-05 05:04:56