字符串__

# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 15:54
# @Author  : 李新宇
# @FileName: demo1.py
# @Software: PyCharm

'''字符串的驻留机制'''
a='python'
b="python"
c='''python'''
print(a,id(a))
print(b,id(b))
print(c,id(c))




# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 16:12
# @Author  : 李新宇
# @FileName: demo2.py
# @Software: PyCharm

#python对字符串驻留机制进行了优化,强制驻留,防止重新创建和销毁
a1='abc%'
a2='abc%'
print(a1 is a2) #True



# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 16:15
# @Author  : 李新宇
# @FileName: demo3.py
# @Software: PyCharm

#字符串的查询操作

s='hello,hello'
print(s.index('h'))
print(s.rindex('h'))
print(s.find('lo'))
print(s.rfind('lo'))

#print(s.index('k')) #ValueError: substring not found
#print(s.rindex('k')) #ValueError: substring not found
print(s.find('k')) #-1,不会抛异常
print(s.rfind('k'))#-1


# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 16:26
# @Author  : 李新宇
# @FileName: demo4.py
# @Software: PyCharm

'''字符串中的大小写转换方法'''

s='hello,python'
a=s.upper() #转成大/小写之后会产生一个新的字符串对象
print(a,id(a))
print(s,id(s))
b=s.lower()
print(b,id(b))


print(b==s) #True,内容相等
print(b is s) #False,转换后没有驻留

s2='hello,python'
print(s2.swapcase())

print(s2.title())





# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 16:35
# @Author  : 李新宇
# @FileName: demo5.py
# @Software: PyCharm

'''字符串对齐'''
s='hello,Python'
'''居中对齐'''
print(s.center(20, '*'))


'''左对齐'''
print(s.ljust(20,'*'))
print(s.ljust(10,'*'))
print(s.ljust(20))

'''右对齐'''
print(s.rjust(20,'*'))
print(s.rjust(10,'*'))
print(s.rjust(20))

'''右对齐,使用0进行填充'''
print(s.zfill(20))
print(s.zfill(10))

# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 16:44
# @Author  : 李新宇
# @FileName: demo6.py
# @Software: PyCharm

'''字符串的分割'''
#左侧开始劈分
s='hello  world Python'
lst=s.split()
print(lst)

s1='hello|world|python'
print(s1.split(sep='|'))

print(s1.split(sep='|',maxsplit=1))

#rsplit()右侧开始劈分
print('-------')
print(s.rsplit())
print(s1.rsplit(sep='|',maxsplit=1))



# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 16:51
# @Author  : 李新宇
# @FileName: demo7.py
# @Software: PyCharm

'''字符串判断的方法'''

s='hello,python'
print('1:',s.isidentifier()) #False,判断是否是合法的标识符
print('2','hello'.isidentifier()) #True
print('3','张三'.isidentifier()) #True
print('4','张三_123'.isidentifier()) #True


print('5','\t'.isspace()) #True,是否由空白字符组成
print('6','abc'.isalpha())#True
print('7','张三'.isalpha()) #True,是否全是字母组成
print('8','张三1'.isalpha()) #False



print('9','123'.isdecimal()) #True,是否由十进制数组成
print('10','123四'.isdecimal()) #False
print('11','ⅠⅡⅢ'.isdecimal()) #False

print('12','123'.isnumeric()) #True,全部由数字组成
print('13','123四'.isnumeric()) #True,说明是数字
print('14','ⅠⅡⅢ'.isnumeric()) #True


print('15','abc1'.isalnum()) #True判断全部由字母和数字组成
print('16','张三123'.isalnum()) #True
print('17','abc!'.isalnum()) #False




# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 17:15
# @Author  : 李新宇
# @FileName: demo8.py
# @Software: PyCharm

'''字符串的替换'''

s='hello,python'
print(s.replace('python','java'))

s1='hello,python,python'
print(s1.replace('python','java',2))

#字符串的连接
lst=['hello','python','java']
print('|'.join(lst))
print(''.join(lst))

t={'hello','java','python'}
print(' '.join(t))


print('*'.join('python')) #p*y*t*h*o*n



# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 17:39
# @Author  : 李新宇
# @FileName: demo9.py
# @Software: PyCharm

#字符串的比较操作

print('apple'>'app')#True

print('apple'>'banana')#False


print(ord('a'),ord('b'))#97 98,ord获取原始值
print(ord('李'))

print(chr(81),chr(98))
print(chr(26446))

'''==与is的区别
 == 比较的是value是否相等
 is 比较的是id是否相等
'''

a=b='python'
c='python'
print(a==b)
print(b==c)

print(a is b)#True
print(a is c)#True
print(b is c)#True
#驻留机制




# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 17:50
# @Author  : 李新宇
# @FileName: demo10.py
# @Software: PyCharm

'''字符串的切片操作将产生新的字符串'''

s='hello,python'
s1=s[:5] #由于没有指定起始位置,所以从0开始
print(s1)

s2=s[6:] #由于没有指定结束位置,所以切到字符串的最后一个元素
print(s2)

s3='!'

new_s=s1+s3+s2
print(new_s)

print('------------')

print(id(s))
print(id(s1))
print(id(s2))
print(id(s3))
print(id(new_s))

print('-----------------切片[start:end:step]---------------------')

print(s[1:5:1]) #从1开始截到5(不包含5),步长为1
print(s[::2]) #默认从0开始,没有写结束,默认到字符串的最后一个元素,步长为2,两个元素之间的索引间隔为2
print(s[::-1]) #nohtyp,olleh
print(s[-6::])#python




# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 18:04
# @Author  : 李新宇
# @FileName: demo11.py
# @Software: PyCharm

'''格式化字符串'''

#1、 % 占位符

name='张三'
age=12
print('我家%s,今年%d岁' % (name , age))

#2、  {}

print('我叫{0},今年{1}'.format(name,age))

#3、  f-string
print(f'我叫{name},今年{age}')



# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 18:16
# @Author  : 李新宇
# @FileName: demo12.py
# @Software: PyCharm

'''精度和宽度'''
print('%10d' % 99) #10表示宽度
print('%.3f' % 3.1415926) #.3表示保留三位小数
print('%10.3f' % 3.1415926) #一共总宽度10,小数点后三位


print('hellohello')



# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 18:23
# @Author  : 李新宇
# @FileName: demo13.py
# @Software: PyCharm

print('{0}'.format(3.1415926))#3.1415926  0代表占位符的顺序,可以不写

print('{0:.3}'.format(3.1415926))#3.14  .3表示的保留三位数

print('{0:.3f}'.format(3.1415926)) #3.142  .3f表示保留三位小数

print('{0:10.3f}'.format(3.1415926)) #同时设置宽度和精度,一共是十位,三位是小数部分


# -*- coding: utf-8 -*-
# @Time    : 2021/9/27 18:28
# @Author  : 李新宇
# @FileName: demo14.py
# @Software: PyCharm

'''字符串的编码与解码'''

#编码
s='天涯共此时'
print(s.encode(encoding='GBK')) #在GBK这种编码格中 一个中文占两个字节

print(s.encode(encoding='UTF-8')) #在UTF-8这种编码格式中,一个中文占据三个字节

#解码
byte=s.encode(encoding='GBK') #编码
print(byte.decode(encoding='GBK')) #解码

byte=s.encode(encoding='UTF-8')
print(byte.decode(encoding='UTF-8'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橙黄橘绿时_Eden

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值