字符串
字符串是Python中最常用的数据类型,是由单引号或双引号括起来的一串字符,这种灵活性可以让你在字符串中包含引号和撇号(在python2.x版本中不识别单引号)
例如:
str1='有一句名言出自鲁迅:"人的悲喜并不相通,我只觉得他们吵闹"'
str2="中文里的'我靠'是一个意义多样的词语"
str3="I'm a super carry mid!"
print(str1+'\n'+str2+'\n'+str3)
- 将用户的信息存到一个变量中,打印一句欢迎他的话
username='Eric' print('Welcome,'+username+',欢迎来到python的编码世界')
1.字符串加法
字符串加法会把加号两边的字符串拼接在一起。例如
print('1'+'2')
print(1+2)
注意:将两个字符串相加时,它们之间没有空格,两个字符串会紧紧地拼接在一起。例如:
print('hello' + 'world')
输出为:
使用字符串加法拼接字符串时应注意避免类型错误,使用str()函数:
如这个函数直接把int型的age和字符串拼接在一起,出现报错
age=22
message='我今年'
print(message+str(age)+'岁了!')
使用类型转换后,正常运行结果:
2.字符串乘法
在Python中,我们可以用星号(*)来复制当前的字符串。例如:
print('a' * 10)
输出为:
aaaaaaaaaa
3.使用方法修改字符串的大小写
对于字符串,可执行的最简单的操作之一是修改其中的单词的大小写。
这里介绍三种修改字符串的大小写的方法:
title() 以首字母大写的方式显示每个单词,其他字母小写#title以首字母大写的方式显示每个单词
upper() 把每个字符都改成大写
lower() 把每个字符都改成小写
name='zhoU yinG'
'''
name.title() #name不会被改变
print(name) #只有保存到变量中才会保存改变
name=name.title()
'''
print(name.title())#title以首字母大写的方式显示每个单词,其他字母小写#title以首字母大写的方式显示每个单词
print(name.upper())#upper把每个字都改成大写
print(name.lower())#lower把每个字都改成小写
print(name)
4.删除空白
删除空白的三种方法,注意也是非永久性的改变
rstrip() 删除字符串末尾的空白,有几个空白就会删几个的
lstrip() 删除字符串开头的空白,有几个空白就会删几个
strip() 删除字符串两端的空白,不会删除中间的
language=' pyt hon '
print(language.rstrip()) #删除字符串末尾的空白
print(language.lstrip()) #删除字符串开头的空白
print(language.strip()) #删除字符串两端的空白
print(language)
可以注意到结果第二行的光标位置,可以看出字符串末尾的空白是未删除的。
5.字符串的索引和切片
s='abcde'
#索引 0 1 2 3 4
#和列表类似 有负数索引 -5 -4 -3 -2 -1
print(s[0])
#切片 和列表的规则是一样的
#不包含终点值,前面的数字要比后面的小
print(s[0:3])
print(s[-4:-1])
>>>a
abc
bcd
6.字符串的遍历
s='abcde'
for c in s: #遍历字符串s
print(c)
>>>a
b
c
d
e
7.列表和字符串有什么区别
最大的区别在于字符串类型是不允许被修改的
s='abcde'
s[0]=x
>>>NameError: name 'x' is not defined
8.字符串的快速逆置
s='abcde'
print(s[::-1]) #输出完整的逆置字符串,从后向前,按步长为1进行取值
print(s[::-2]) #从最后一个,按步长为2进行取值
#省略了起点和终点索引,也可以自己进行设置
print(s[4:0:-1]) #因为是逆置,所以切片也需要反过来,前面数字大,后面数字小
#最后一个值的绝对值是步长: 负数 从后向前;正数,从前向后
print(s[::2])
>>>edcba
eca
edcb
ace
9.字符串格式化:对字符串进行美化
占位符%s既可以表示字符串str,还可以表示整数int,浮点数float;
占位符%d既可以表示整数int,还可以表示浮点数float(去除整数部分)
占位符%f既可以表示浮点数float,还可以表示整数int(默认保留6位小数)
三种格式化的方法:
name='小红'
age=9
print('大家好,我是'+name+',今年'+str(age)+'岁')
# %
print('大家好,我是%s,今年%d岁'% (name,age))
#format()
print('大家好,我是{},今年{}岁'.format(name,age))
#f-strings
print(f'大家好,我是{name},今年{age}岁')
format()和f-strings的模板字符串占位符中可以通过引导符号“:”进行丰富的格式控制
print('{:=^21}'.format('abc'))
'''
其中:
“21”用于设置格式化后的宽度
“^”用于设置对齐方式
【"<"、"^"、">"分别表示左对齐、居中对齐和右对齐】
“=”用于设置填充字符。
'''
>>>=========abc=========
语句 print('{1}{0}{1}'.format('a', 'b')) 的执行结果为
print('{1}{0}{1}'.format('a', 'b'))
#参数a、b的索引分别是0和1,因此占位符内的索引101对应bab
>>>bab
10.常用字符串的处理方法
除了执行字符串格式化的format()方法之外,Python语言还提供了一系列处理字符串的方法,比如:
#将旧字符串aa替换成ff
s='aabbccddee'
s=s.replace('aa','ff')
print(s)
>>>ffbbccddee
#判断字符串是否以ee开头,ee结尾
s='aabbccddee'
print(s.startswith('ee'))
print(s.endswith('ee'))
>>>False
True
#统计字符串a和aa出现的次数
s='aabbccddee'
print(s.count('a'))
print(s.count('aa'))
>>>2
1
#删除指定字符
s='aabbccddee'
print(s.strip('a'))
print(s.strip('ab'))
>>>bbccddee
ccddee