系列文章目录
Python基础学习第一课——python环境的配置及vscode的安装汉化
Python基础第二课——基础知识
Python基础第三课——条件语句和循环语句
python基础第四课——字符串的相关操作(本篇文章)
文章目录
目录
前言
上一篇文章中,我们讲了python的条件语句和循环语句这两个非常重要的语法,这篇文章呢来讲解在python中有关字符串的相关操作。在系列文章目录中列出了我python专栏中的其他文章,如果感兴趣的话呢,可以订阅我的专栏或者在我的主页查看前面发布的文章。
一、字符串是什么?
字符串的特点
字符串的定义:在 Python 中,字符串是用单引号('')、双引号("")或三引号(''' '''或""" """
)括起来的字符序列。这个内容可以是中文、英文、数字、图例等,只要在引号里就叫字符串,字符串英文为 string,简写为 str。
字符串的特点:
(1)字符串不可变类型(这意味着一旦字符串被创建,其内容就不能被修改)
(2)字符串是可迭代对象(简单地说,就是可以用循环逐个访问对象中的元素,字符串的元素就是字符)
(3)字符串支持索引和切片操作,支持操作符(在后面字符串的相关操作中进行具体讲解)
二、字符串的创建
如上所述,在python中创建一个字符串,我们可以用单引号或双引号创建单行的字符串,也可以使用三引号创建多行的字符串。
代码如下(示例):
#使用单引号或双引号来创建字符串:
a="平安"
b='顺遂'
print(a)
print(b)
#输出结果为:平安
# 顺遂
#使用三引号来创建多行字符串:
# 使用三单引号创建一个多行的字符串,常用于记录大段的文本内容,比如一段说明文档
text = '''这是一个多行字符串示例。
它可以跨越多行,
每行的内容都会被完整地保留下来。'''
print(text)
三、字符串的相关操作
1.索引和切片
索引:
索引是对于字符串访问其中元素的一种方式,字符串中的每个字符都有一个索引,索引从0开始。可以通过索引来访问字符串中的单个字符,例如:定义一个字符串str = "hello",str[0]返回 'h',str[3]返回 'l',索引有两种方式,一种从左往右以 0 开始,另一种从右往左以 -1 开始。
在网上找了个逻辑图,感觉画的很清晰,可以用来辅助理解
切片:
切片用于获取字符串的子串。语法是string[start:stop:step],其中start
是起始索引的位置,默认为0,即从第一个元素开始(包含start位置元素),stop
是结束索引的位置,默认为字符串结尾,(不包含stop位置元素)(可以理解为数学上的前闭后开区间),step
是步长,默认为1
来举一个例子,通过代码的运行结果能帮助你更好的了解其用法:
string = 'python'
a = string[1:4]
b = string[::2]
print(a)
print(b)
#首先,代码定义了一个字符串变量 string,其值为 'python'
#语句 a = string[1:4] 进行了切片操作。
#在切片操作中,索引从 0 开始计数,[start:stop]的语法表示从索引 start(包含)开始
#到索引 stop(不包含)结束来获取子串。
#这里 start = 1,stop = 4,也就是会获取字符串string中从第2个字符到第4个字符(不包含第 4 个字符本身)组成的子串。
#语句 b = string[::2] 同样是切片操作
#不过这里使用了完整的切片语法形式 [start:stop:step]
#其中 start 省略时默认从 0 开始,stop 省略时默认到字符串末尾,step 表示步长
#这里 step = 2,意味着每隔 2 个字符取一个字符,从字符串开头到结尾来获取子串
执行上述代码的运行结果为:
2.拼接和长度计算
字符串的拼接:
拼接是一个很简单的操作,我们上面讲字符串的特点的时候提到了,字符串支持操作符,那么我们就可以利用'+'来将两段字符串拼接起来,例如:
a = "Hello_"
b = "python_world"
print(a+b)
这段代码的输出结果就是Hello_python_world
当然,字符串不止支持'+'这一种操作符,我们还可以利用'*'来重复一个字符串,例如:
a = "hello"
print(3*a)
这段代码的输出结果为hellohellohello
字符串的长度计算:
我们怎么获取一个字符串的长度呢,难道需要一个个数其中的元素吗,python比我们想象的要聪明,我们只需要一个函数len(),就可以直接返回字符串的长度,len函数的语法也很简单:len(字符串名)
a = "python"
#可以直接在print里计算
print(len(a))
#也可以先赋值,再打印输出
b = len(a)
print(b)
#两种方式的输出结果都是6
3.字符串的删除、对齐
字符串的删除:
strip 函数用于删除字符串头、尾指定的字符(默认为空格)或字符序列,但只能删除开头或是结尾的字符,不能删除中间部分的字符,语法格式为:字符串名.strip(要指定删除的字符),可以同时指定多个,如果未指定参数,即 str.strip(),则默认会删除空格以及制表符、回车符、换行符等特殊字符;带有参数的时候,删除多个字符时只要原字符串的头、尾有对应其中的某个字符即删除,不考虑顺序,直到遇到第一个不包含在其中的字符为止
举代码为例:
str1 = " 123123123\n\t"
print(str1.strip())
str2 = "******123******"
print(str2.strip("*"))
str3 = "123321213231**123**123321132231"
print(str3.strip("213"))
以上输出结果分别为:
字符串的对齐:
字符串的对齐分为三种:左对齐,右对齐,居中对齐,分别使用三个函数来实现:
(1)ljust 函数:
ljust 函数返回一个原字符串左对齐,并使用指定字符填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
(2)rjust函数:
rjust 函数返回一个原字符串右对齐,并使用指定字符填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
(3)center函数:
center 函数返回一个原字符居中对齐,并使用指定字符填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
三种函数的语法都一样,在这里一起举例吧,通过代码来理解用法:
# ljust函数示例
string1 = "hello"
new_string1 = string1.ljust(10, '*')
print(new_string1)
# rjust函数示例
string2 = "world"
new_string2 = string2.rjust(10, '-')
print(new_string2)
# center函数示例
string3 = "python"
new_string3 = string3.center(12, '$')
print(new_string3)
#三种函数需要填充的参数相同
#第一个参数是指定生成的新字符串的长度
#第二个参数选填,是用于填充的字符,默认为空格
运行结果分别为:
应该还是很好理解的吧
4.字符串的更多方法
-
大小写转换:
-
lower()
方法将字符串中的所有字符转换为小写。例如,string = 'Python',string.lower()
返回 'python'。
string = "PYthon" print(string.lower()) #输出结果为python print(string.upper()) #输出结果为PYTHON
-
upper()
方法将字符串中的所有字符转换为大写。例如,string = 'python',string.upper()
返回 'PYTHON'。
-
-
查找和替换:
-
find()
方法用于查找子串在字符串中的位置。如果找到,返回子串的起始索引;如果找不到,返回 - 1。例如,对于字符串 string = "python programming",string.find('prog')返回 7。 -
replace()
方法用于替换字符串中的子串。例如,string = "python programming",string.replace('python','java') 返回 'java programming'。string = "python programming" print(string.find('prog')) print(string.replace('python','java')) #输出结果分别为:7 # java programming
-
-
分割和连接:
-
split()
方法将字符串按照指定的分隔符分割成一个列表。例如,string = 'apple,banana,cherry',string.split(',') 返回 ['apple', 'banana', 'cherry']。
string = 'apple,banana,cherry' str = string.split(',') print(str) #代码的输出结果为['apple', 'banana', 'cherry']
-
join()
方法是split()
的逆操作,用于将一个列表中的元素连接成一个字符串,使用指定的字符串作为连接符。例如,list1 = ['apple', 'banana', 'cherry'],','.join(list1)返回 'apple,banana,cherry'。
-
list1 = ['apple', 'banana', 'cherry']
list2 = ','.join(list1)
print(list2)
#代码的输出结果为apple,banana,cherry
四、格式化输出
1. % 格式化操作符
基本用法:
% 格式化操作符是 Python 中比较传统的格式化方式。它的基本语法是格式化字符串 % 值。例如,print("我叫 %s,今年 %d岁。" % ("小明", 20))。
其中,%s用于格式化字符串类型的数据,%d用于格式化整数类型的数据。如果有多个格式化占位符,后面的值需要用元组的形式提供,并且顺序要与占位符相对应。
格式代码列表:
%s:字符串(可以是任何类型,在格式化时会自动转换为字符串)。
%d:十进制整数。
%f:浮点数。例如,print("圆周率约为%.2f" % 3.14159),这里的%.2f表示保留两位小数,输出为圆周率约为3.14。
%x或%X:十六进制整数,%x输出小写字母表示,%X输出大写字母表示。例如,print("十六进制表示为%x" % 10),输出为十六进制表示为a。
2.format () 方法
基本用法:
format()方法是一种更灵活的格式化方式。它通过在字符串中使用大括号{}作为占位符来实现格式化。例如,print("我叫 {0},今年 {1}岁。".format("小明", 20))。
占位符中的数字表示参数的索引,从 0 开始。如果省略索引,参数将按照顺序依次填充占位符。例如,print("我叫 {},今年 {}岁。".format("小明", 20))也是正确的。
格式化参数的详细设置:
填充与对齐:
可以使用<(左对齐)、>(右对齐)、^(居中对齐)来设置对齐方式。例如: print("{:>10}".format("python")),这里{:>10}表示将字符串python右对齐,总长度为 10,不足部分用空格填充,输出为 python。
还可以指定填充字符,如print("{:#^10}".format("python")),{:#^10}表示将字符串python居中对齐,总长度为 10,两边用#填充,输出为###python###。
数字格式化:
对于整数,{:d}是基本的整数格式化。可以添加逗号作为千位分隔符,如print("数字: {:,d}".format(1000000)),输出为数字: 1,000,000。
对于浮点数,{:f}是基本的浮点数格式化。可以指定小数位数,如print("浮点数: {:.2f}".format(3.14159)),输出为浮点数: 3.14。
3.f - strings(格式化字符串字面量)#这个很重要
基本用法:
这是 Python 3.6 及以上版本支持的一种简洁的格式化方式。在字符串前面加上f或F,在字符串内部可以直接使用变量和表达式,用花括号{}包裹起来。例如,name = "小明"; age = 20; print(f"我叫 {name},今年 {age}岁。")。
表达式支持:
可以在花括号内放入表达式。例如,a = 3; b = 4; print(f"a和b的和是 {a + b}"),输出为a和b的和是7。
格式化修饰符的使用:
和format()方法类似,可以使用修饰符来控制格式。例如,num = 1234.5678; print(f"数字: {num:.2f}"),输出为数字: 1234.57。
五、转义字符
直接用一张表来说明吧,转义字符用到的不是很多,一般来说应用最广泛的是'\',在说明文件路径是应用,'\t'也很常用,打印表格的时候经常会用到,使输出的格式对齐
总结
以上就是今天要讲的内容了,这篇文章实际整理出来的内容比我预想的要多很多,所以写的时间长了些,发布的比较晚了,希望这篇文章能对你有所帮助
我也在学习一些优质博客,不断优化我的文章内容,使其更有条理性和可观性,如果有什么建议或者对文章哪里不理解的地方,可以打在评论区,我们一起交流
最后,感谢观看,给个三连支持一下吧~
(下一篇文章应该在周末更新)