【零基础Python专题(源码版)】篇章5·字符串str

本篇博客是零基础Python系列的第五部分,主要介绍Python字符串str的基础知识。内容包括如何创建、使用和操作字符串,适合初学者通过源码实践学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【零基础Python专题(源码版)】篇章5·字符串str

下面列举的Python的字符串基础知识(三引号成对儿注释的内容为一个小知识点),可以直接在Pycharm运行学习:

#字符串

#字符串的存储
#a='Python'
#b="Python"
#c='''Python'''
#print(a,id(a))
#print(b,id(b))    #地址是相同的,说明Python的驻留机制对于相同的字符串,只保留一个,不会开辟新的地址空间
#print(c,id(c))     #前提是字符串必须是符合标识符的字符串,eg:abc,abc_ 反例:abc%

#符合标识符的字符串才可以共享内存,不过pycharm做了优化
'''a='abc%'
b='abc%'
print(id(a) ,id(b))'''

#字符串只在编译时驻留,而非运行时
'''a='abc'
b='ab'+'c'
c=''.join(['ab','c'])
print(id(a) ,id(b),id(c))'''

#只有[-5,256]共享内存,pycharm已优化
'''a=-5
b=-5
c=-6
d=-6
print(id(a))
print(id(b))
print(id(c))
print(id(d))'''

#强行转换为同一内存
'''import sys
a='abc%'
b='abc%'
a=sys.intern(b)'''

#字符串的操作
'''#    查找
s='hello hello'
#    查找第一次出现的位置
print(s.index('lo'))   #找不到报错
print(s.find('lo'))      #找不到返回-1
#    查找最后一次出现的位置
print(s.rindex('lo')) #找不到报错
print(s.rfind('lo'))    #找不到返回-1'''

#    大小写转换
'''#    转大写
#    全部转大写upper()
s='hello world'
a=s.upper()   #注意,字符串是不可变的,所以每次都会开辟新的内存空间
print(a)
#    转小写
s1='HELLO'
b=s1.lower()
print(b)
#    大小写反转
r1=s.swapcase()
r2=s1.swapcase()
print(r1)
print(r2)
#    第一个字符串的第一个变成大写,其余的小写
r3=s.capitalize()
print(r3)
#    把每个单词的第一个字母大写,其余的变小写
r4=s.title()
print(r4)'''

#字符串内容对齐
'''s='hello world'
#居中
print(s.center(20,'*'))
#左对齐
print(s.ljust(20,'*'))
#右对齐
print(s.rjust(20,'*'))
#右对齐,填充零
print(s.zfill(20))'''

#劈分操作
#    左侧开始劈分
'''s='hello|world'
lis=s.split()   #没有写内容,默认空格为分隔符
print(lis)
lis1=s.split(sep='|')    #sep指定分隔符
print(lis1)
lis2=s.split(sep='|',maxsplit=6)    #指定字符串最大分隔次数
print(lis2)
#    右侧开始劈分
s='hello|world'
lis=s.split()   #没有写内容,默认空格为分隔符
print(lis)
lis1=s.rsplit(sep='|')    #sep指定分隔符
print(lis1)
lis2=s.rsplit(sep='|',maxsplit=6)    #指定字符串最大分隔次数
print(lis2)'''

#字符串判断的相关方法
'''#    判断是否是合法字符串
s1='hello,world'
s2='helloworld'
print(s1.isidentifier())
print(s2.isidentifier())
#    判断是否为空白字符
print('\t'.isspace())
#    判断是否全部为字母
print(s1.isalpha())
print(s2.isalpha())
#    判断是否全部十进制数字组成
print(s1.isdecimal())
#    判断是否全部数字组成
print(s1.isnumeric())
#    判断是否全部数字或字母组成
print(s1.isalnum())'''

#字符串内容的替换
'''s1='hello,world,Python,Python,Python,Python'
print(s1.replace('Python','Java'))
print(s1.replace('Python','Java',2))'''

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

#字符串的比较
'''print('apple'>'appl')
print('apple'>'banana')   #比较的是id地址的大小 ord
#    ==比较的是value,   is比较的是地址
a=b='Python'
c='Pyhton'
print(a==b)
print(b==c)'''

#字符串的切片[起始:终止:步长]
'''s1='hello,python'
s2=s1[:5]
s3=s1[6:]
s4='!'
s5=s2+s3+s4
print(s5)
print(id(s1))
print(s2,id(s2))
print(id(s3))
print(id(s4))
print(id(s5))
print(s1[::2])'''

#字符串的格式化
'''#    使用占位符
name='Tom'
age=25
print('我是%s,年龄是%d' % (name,age))
#    使用{}
print('我是{0},年龄是{1}'.format(name,age))
#    使用f-string
print(f'我是{name},年龄是{age}')'''

#保留位数和宽度
'''print('%d' % 99)
print('%10d'% 99)
print('%f'% 3.1415926)
print('%.3f'% 3.1415926)
print('%10.3f'% 3.1415926)
print('--------------------------------------')
print('{0}'.format(3.1415926))
print('{0:.3}'.format(3.1415926))   #一共保留三位
print('{0:.3f}'.format(3.1415926))   #保留三位小数
print('{0:10.3f}'.format(3.1415926))   #保留三位小数,宽度为10'''

#字符串的编码转换
'''s='天涯共此时'
#    编码
print(s.encode(encoding='GBK'))   #一个中文占两个字节
print(s.encode(encoding='UTF-8'))   #一个中文占三个字节
#   解码
byte=s.encode(encoding='GBK')
print(byte.decode(encoding='GBK'))'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值