python定义字符串类型_python 基本数据类型 之 字符串

字符串数据出现的意义

掌握字符串的定义和特性

能熟练掌握字符串常用操作,并了解其他工厂方法

字符串的定义和创建

字符串是一个有序的字符集合,用于存储和表示基本的文本信息, 用引号“ ” 之间的内容就是字符串。

创建方式

字符串 = “ 用引号引起来就行 ”

特性:

按照从左到右的顺序定义字符集合,下表从0开始顺序访问,有序

提示:

1.字符串单引号和双引号都无法取消特殊字符的含义,假如需要取消其特殊意义:

则在其前面加上 r 如:name = r‘I\thf‘

2. unicode字符串与 r 连用必须在 r 前面,如 name = ur‘I\thf‘

常用操作:

#索引

name = ‘yan xia ting yu‘

print(name[0])

>>:y

print(name[-1])

>>:u

print(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()方法的实现方式

>>:35

print(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])#步长为2

print(name[4::2])#步长为2

print(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 hashlib

hs=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())

fz.gif

原文:https://www.cnblogs.com/yanxiatingyu/p/9276757.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值