Yunyuzuiluo

Python 百战 入门 3 字符串

字符串基本特点

字符串的本质是:字符序列。
Python不支持单字符类型,单字符也是作为一个字符串使的。

字符串的编码

Python3的字符默认就是16位Unicode编码,ASCII码是Unicode编码的子集。

ord('A') #65 内置函数ord()可以把字符转换成对应的Unicode码
ord('高') #39640
chr(66) #'B'内置函数chr()可以把十进制数字转换成对应的字符。
ord('淇') #28103

引号创建字符串

a = "I'm a teacher!"
print(a) #I'm a teacher!
b = 'my_name is "TOM"'
print(b) #my_name is "TOM"
s='''
I
Love
Python
'''
print(s)

空字符串和len()函数

c = '' #允许存在,长度为0
print(len(c)) #结果:0

转义字符

a = 'I\nlove\nU'
print(a)
print('aabb\cc')
输出:
I
love
U
aabb\cc

字符串拼接

a = 'sxt'+'gaoqi' #结果是:'sxtgaoqi'
b = 'sxt''gaoqi' #结果是:'sxtgaoqi'

字符串复制

a = 'Sxt'*3 #结果:'SxtSxtSxt'1

不换行打印

print("sxt",end=' ')
print("sxt",end='##')
print("sxt") #sxt sxt##sxt

从控制台读取字符串

myname = input("请输入名字:")
print("您的名字是:"+myname)

replace() 实现字符串替换

a = 'abcdefghijklmnopqrstuvwxyz'
a
'abcdefghijklmnopqrstuvwxyz'
a = a.replace('c','高') #这是一个新字符串
'ab高defghijklmnopqrstuvwxyz'

str()实现其他转型字符串

a = str(5.20) #结果是:a = ‘5.20’
b = str(3.14e2) #结果是:b = ’314.0’
c = str(True) #结果是:c = ‘True’

使用[]提取字符

a = 'abcdefghijklmnopqrstuvwxyz'
a
'abcdefghijklmnopqrstuvwxyz'
a[0]
'a'
a[3]
'd'
a[26-1]
'z'
a[-1]
'z'
a[-26]
'a'
a[-30]

字符串切片slice操作

[:] 提取整个字符串
[2:] 从2开始提取整个字符串
[:8] 从0开始提取到8
[2:8] 从2开始提取到8
[2:8:2] 从2开始提取到8,步长为2

split()分割和join()合并

a = "to be or not to be"
a.split() #空格当分隔符
['to', 'be', 'or', 'not', 'to', 'be']
a.split('be') #‘be’当分隔符
['to ', ' or not to ', '']

a = ['sxt','sxt100','sxt200']
''.join(a) #‘’可以换
'sxtsxt100sxt200'

字符串驻留机制和字符串比较

c = "dd#"
d = "dd#"
print(c is d) #True,c,d指向同一个地址

字符串比较和同一性

a == b #值一样
a != b #值不一样
a is b #id一样
a not is b #id不一样
a in b #b中包含a

字符串常用方法汇总

字符串的格式化.format()

a = "名字是:{0},年龄是:{1}"
a.format("高淇",18)
'名字是:高淇,年龄是:18'
a.format("高希希",6)
'名字是:高希希,年龄是:6'

b = "名字是:{0},年龄是{1}。{0}是个好小伙"
b.format("高淇",18)
'名字是:高淇,年龄是18。高淇是个好小伙'

c = "名字是{name},年龄是{age}"
c.format(age=19,name='高淇')
'名字是高淇,年龄是19'

"{:*>8}".format("245")
'*****245'

"我是{0},我喜欢数字{1:^8}".format("高
淇","666")
'我是高淇,我喜欢数字666
'

可变字符串io.StringIO对象或array模块225

import io # 导入io模块,用于处理流数据
s = "hello, sxt" # 定义一个不可变的字符串
sio = io.StringIO(s) # 使用io.StringIO创建一个可变字符串对象sio,初始值为s
print(sio) # 打印sio对象(会显示对象信息,而非字符串内容)
v1 = sio.getvalue() # 获取sio对象的当前值
print("v1:", v1) # 输出初始值:"hello, sxt"
char7 = sio.seek(7) # 将指针移动到索引位置7(注意:字符串索引从0开始)
sio.write("gaoqi") # 从当前指针位置(索引7)开始写入字符串"gaoqi"

原字符串中", sxt"会被覆盖为"gaoqi"

v2 = sio.getvalue() # 获取修改后的字符串值
print("v2:", v2) # 输出修改后的值:"hello, gaoqi"

类型转换总结

posted on 2025-04-08 22:00  刘晋宇  阅读(19)  评论(0)    收藏  举报

导航