字符串
1.掌握字符串的输⼊和输出
2. 掌握字符串的下标访问和切⽚
3. 熟悉字符串的常⻅操作
一、字符串的介绍
字符串是 Python 中最常⽤的数据类型。我们⼀般使⽤引号来创建字符 串。创建字符串很简单,只要为变量分配⼀个值即可。
a = 'hello world'
b = "abcdefg"
print(type(a))
print(type(b))
注意:控制台显示结果为 , 即数据类型为str(字符 串)。
字符串特征
⼀对引号字符串
name1 = 'Tom'
name2 = "Rose"
三引号字符串
name3 = ''' Tom '''
name4 = """ Rose """
a = ''' i am Tom,
nice to meet you! '''
b = """ i am Rose,
nice to meet you! """
注意:三引号形式的字符串⽀持换⾏,双引号或者单引号中的数据,就是字符串.
字符串输出
1.格式化操作符
name = '君哥'
position = '讲师'
address = '北京市'
print('------------------------------------------------
print("姓名:%s" % name)
print("职位:%s" % position)
print("公司地址:%s" % address)
print('------------------------------------------------
2.f-strings
f-strings 提供⼀种简洁易读的⽅式, 可以在字符串中包含 Python 表达式. fstrings 以字⺟ 'f' 或 'F' 为前缀, 格式化字符串使⽤⼀对单引号、双引号、 三单引号、三双引号. 格式化字符串中
name = '君哥'
age = 33
format_string1 = f'我的名字是 {name}, 我的年龄是 {age}'
format_string2 = f"我的名字是 {name}, 我的年龄是 {age}"
format_string3 = F'''我的名字是 {name}, 我的年龄是 {age}'''
format_string4 = F"""我的名字是 {name}, 我的年龄是 {age}"""
format_string5 = f'3 + 5 = {3 + 5}'
a = 10
b = 20
format_string6 = f'3 + 5 = {a + b}'
# 两个花括号会被替换为⼀个花括号, 注意{{}} 不表示表达式
format_string7 = F'我的名字是 {{name}}, 我的年龄是 {{age}}'
print(format_string1)
print(format_string2)
print(format_string3)
print(format_string4)
print(format_string5)
print(format_string6)
print(format_string7)
字符串输⼊
之前在学习input的时候,通过它能够完成从键盘获取数据,然后保存到指 定的变量中;
注意:input获取的数据,都以字符串的⽅式进⾏保存,即使输⼊的是数字,那么也是以字符串⽅式保存
userName = input('请输⼊⽤户名:')
print("⽤户名为:%s" % userName)
password = input('请输⼊密码:')
print("密码为:%s" % password)
下标和切⽚
下标索引
所谓 “下标” ,就是编号,就好⽐超市中的存储柜的编号,通过这个编号 就能找到相应的存储空间
列表与元组⽀持下标索引好理解,字符串实际上就是字符的数组,所 以也⽀持下标索引。
注意python中 下标从 0 开始
name = 'abcdef'
print(name[0])
print(name[1])
print(name[2])
切⽚
切⽚是指对操作的对象截取其中⼀部分的操作。字符串、列表、元组都⽀ 持切⽚操作。
切⽚的语法:[起始:结束:步⻓]
注意:选取的区间从"起始"位开始,到"结束"位的前⼀位结束(不包含结 束位本身),步⻓表示选取间隔。步长是选取区间,正负整数均可,默认步长为1.
name = 'abcdef'
print(name[0:3]) # 取 下标0~2 的字符
name = 'abcdef'
print(name[2:]) # 取 下标为2开始到最后的字符
name = 'abcdef'
print(name[1:-1]) # 取下标为1开始到最后第2个之间的字符
字符串常⻅操作
1.find
检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
语法:
字符串序列.find(⼦串, 开始位置下标, 结束位置下标)
2.index
跟find()⽅法⼀样,只不过如果str不在 mystr中会报⼀个异常.
语法:
字符串序列.index(⼦串, 开始位置下标, 结束位置下标)
3.count
返回 str在start和end之间 在 mystr⾥⾯出现的次数
语法:
字符串序列.count(⼦串, 开始位置下标, 结束位置下标)
4.replace
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
语法:
字符串序列.replace(旧⼦串, 新⼦串, 替换次数)
5.split
以 指定分割字符为分隔符切⽚字符串序列,如果指定分割次数num,则按指定次数num分割,如不指定次数则分割至末尾。
语法:
字符串序列.split(分割字符, num)
say="aa ww aa ww dd aa"
a = say.split(" ")
print(a)
6.join
语法:
字符串.join(多字符串组成的序列)
在多字符串组成的序列中的每个子序列后添加字符串
7.capitalize
把字符串的第⼀个字符⼤写
语法:
mystr.capitalize()
say="aa ww aa ww dd aa"
qw = say.capitalize()
print(qw)
8.title
把字符串的每个单词⾸字⺟⼤写
语法:
str.title()
say="aa ww aa ww dd aa"
a = say.title()
print(a)
9.lower
转换 mystr 中所有⼤写字符为⼩写
语法:
mystr.lower()
10.upper
转换 mystr 中的⼩写字⺟为⼤写
语法:
mystr.upper()
11.lstrip
删除 mystr 左边的空⽩字符
语法:
mystr.lstrip()
12.rstrip
删除 mystr 字符串末尾的空⽩字符
语法:
mystr.rstrip()
13.strip
删除mystr字符串两端的空⽩字符
语法:
mystr.strip()
14.ljust
返回⼀个原字符串左对⻬,并使⽤空格填充⾄⻓度 为width 的新字符串
语法:
mystr.ljust(width)
say="aawer"
a = say.ljust(12)
print(a)
15.rjust
返回⼀个原字符串右对⻬,并使⽤空格填充⾄⻓度 width 的新字符串
语法:
wystr.rjust(width)
16.center
返回⼀个原字符串居中,并使⽤空格填充⾄⻓度 width 的新字符串
语法:
mystr.center(width)
17.startswith
检查字符串是否是以 str 开头, 是则返回 True,否则返回 False
语法:
字符串序列.startswith(str, 开始位置下标, 结束位置下标)
18.endswith
检查字符串是否以obj结束,如果是返回True,否则返回 False.
语法:
字符串序列.endtswith(str, 开始位置下标, 结束位置下标)
19.isalpha
如果 mystr 所有字符都是字⺟ 则返回 True,否则返回 False
语法:
mystr.isalpha()
20.isdigit
如果 mystr 只包含数字则返回 True 否则返回 False.
语法:
mystr.isdigit()
21.isalnum
如果 mystr 所有字符都是字⺟或数字则返回 True,否则返回 False
mystr.isalnum()
22.isspace
如果 mystr 中只包含空格,则返回 True,否则返回 False.
mystr.isspace()
23.rfind
类似于 find()函数,不过是从右边开始查找
mystr.rfind(str, start=0,end=len(mystr) )
24.rindex
类似于 index(),不过是从右边开始.
mystr.rindex( str, start=0,end=len(mystr))
25.partition
把mystr以str分割成三部分,str前,str和str后
mystr.partition(str)
26.rpartition
类似于 partition()函数,不过是从右边开始.
mystr.rpartition(str)
27.splitlines
按照⾏分隔,返回⼀个包含各⾏作为元素的列表
mystr.splitlines()