目录
学习目标
1.掌握字符串的定义格式
2.掌握字符串格式化
3.熟悉字符串的常见操作
一、字符串介绍
字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。
Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。使用反斜杠“\”转义。例如,在字符串中的引号前添加“\”,此时Python解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号。
一些普通字符与反斜杠组合后将失去原有意义,产生新的含义。类似这样的由“\”和而成的、具有特殊意义的字符就是转义字符。转移字符通常用于表示一些无法显示的字符,例如空格、回车等等。
二、格式化字符串
1.使用%格式化字符串
格式化字符串是指将指定的字符串转换为想要的格式。Python字符串可通过%格式符格式化输出。
format % values #format为字符串 values为真实数据
不同的占位符为不同类型的变量预留位置,常见的占位符如下所示。
2.format()格式化字符串
str.format(values) #str为字符串 values为真实数据
3.f-string格式化字符串
f('{变量名}')
F('{变量名}')
三、字符串的常见操作
1.字符串的查找与替换
find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1。
word = 't'
string = 'Python'
result = string.find(word)
print(result) #此时输出结果为 2
replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。
string = 'He said, "you have to go forward, ' \
'Then turn left, Then go forward, and Then turn right."'
# 指定替换两次
new_string = string.replace("Then", "then",2)
print(new_string)
输出的结果为:
He said, "you have to go forward, then turn left, then go forward, and Then turn right."
2.字符串的分隔与拼接
split()方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表。
string= "Hello, my name is Huang Hao"
# 以空格作为分割符,并分割2次
print(string.split(' ', 2))
输出的结果为:
['Hello,', 'my', 'name is Huang Hao']
join()方法使用指定的字符连接字符串并生成一个新的字符串。
symbol = '*'
world = 'Python'
print(symbol.join(world))
输出的结果为:
P*y*t*h*o*n
在Python中还可以用 "+" 拼接字符串。
例: "Py" + "thon" 得到的结果为 "Python"
3.删除字符串中的指定字符
Python中的strip()、lstrip()和rstrip()方法可以删除字符串中的指定字符。(常用于删除空格)
4.转化字符串中的指定字符的大小写
Python中支持字母大小写转换的方法有upper()、lower()、capitalize()和title()。
5.字符串的对齐
Python有center()、ljust()、rjust()这3个方法来设置字符串的对齐方式。
章节例题
1.
一段DNA序列,每3个字符作为一个整体,放入一个列表中,若最后不够3个,则剩下的作为一个整体。
例如:
dna = "GATGGAACTTGACTACGTAAATT"
结果为:
['GAT', 'GGA', 'ACT', 'TGA', 'CTA', 'CGT', 'AAA', 'TT']
代码如下:
dna='GATGGAACTTGACTACGTAAATT'
t=0
l=[]
for index in range(0, len(dna), 3):
t=dna[index:index+3]
l.append(t)
print(l)
输出的结果为:
['GAT', 'GGA', 'ACT', 'TGA', 'CTA', 'CGT', 'AAA', 'TT']
2.
已知字符串 a = “aAsmr3idd4bgs7Dlsf9eAF”,要求如下
2.1 请将a字符串的大写改为小写,小写改为大写
2.2请将a字符串的数字取出,并输出成一个新的字符串。
#提示:a = '2345',a.isdigit()
2.3 请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典。 例 {‘a’:4,’b’:2}
#提示:c = 'aasdebbcaa',c.count('a')
2.4 请去除a字符串多次出现的字母,仅留最先出现的一个。例 ‘abcabb’,经过去除后,输出 ‘abc’
2. 5去除a字符串内的数字后,请将该字符串里的单词重新排序(a-z),并且重新输出一个排序后的字符 串。
# (保留大小写,a与A的顺序关系为:A在a前面。例:AaBb)
代码如下:
a='aAsmr3idd4bgs7Dlsf9eAF'
#2.1
print(a.swapcase())
#2.2
import re
a = ''.join(re.findall("\d+",a))
print(a)
#2.3
print(dict([(x,a.count(x)) for x in set(a)]))
#2.4
a_list=list(a)
# print(set(a_list)) #set 去重 无序 字典和集合不可排序
set_list=list(set(a_list)) #去重以后转化为list
set_list.sort(key=a_list.index)#对去重后按照list原来排序
print(''.join(set_list)) #拼接成字符串
# 2.5
l = sorted(a)
# print l sort排序结果:字母数字分开排序
a_upper_list = [] # 声明大写list
a_lower_list = [] # 声明小写list
for x in l: # 遍历排序过的list 将大小写分别存在两个list中
if x.isupper():
a_upper_list.append(x)
elif x.islower():
a_lower_list.append(x)
else:
pass
for y in a_upper_list: # 遍历大写list
y_lower = y.lower()
if y_lower in a_lower_list:
a_lower_list.insert(a_lower_list.index(y_lower), y) # 把大写list中的字母插入到 原来这个位置是该字母小写的位置 不覆盖 顺延 index定位
# print a_lower_list
print(''.join(a_lower_list)) # 拼接成字符串输出
总结
本章主要讲解了Python字符串的相关知识,包括什么是字符串、格式化字符串、字符串的常见操作,并结合精彩实例演示了字符串的使用。 通过本章的学习,希望读者能够掌握字符串的使用。