我是靠谱客的博主 细腻手套,最近开发中收集的这篇文章主要介绍第五章 字符串,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

5.1 基本概念

字符串:是Python的六大数据结构之一,是一个不可变类型

判定一个变量是否是字符串,需要使用isinstance****函数,例如:

>>> testString = "ts"
>>> isinstance(testString, str)
True

字符串的声明:将一串字符使用单引号或者双引号包裹起来,被引号包裹的内容称为“字符串字面量”。

“长字符串”:使用三重引号来表示一个多行字符串。

5.2 字符串的索引和切片

5.2.1 字符串的索引

字符串的索引可以分为两种:正向索引**(****符合阅读习惯)**和反向索引

正向索引中所有的索引值都是正数或****0,反向索引所有的索引值都是负数

当需要修改字符串索引值为n的字符时,基本步骤如下:

(1)求出字符串的长度m;

(2)如果m<n,那么返回失败;

(3)取出索引值为0至n-1的字符串,记为leftString;

(4)取出索引值为n+1至m-1的字符串,记为rightString;

(5)把leftString、修改后的字符和rightString拼接为一个新的字符串newString;

(6)输出newString。

5.2.2 字符串的切片

切片操作的基本方法如下:

1)返回[m,n)的子串.aString[m:n]。

2)若m和n分别指的是字符串的开头或者结尾,那么就可以不写。aString[:]。

3)切片的第三种写法是aString[m::n],用于从字符串的索引值为m(即第m+1个字符)开始,每n个字符取出一次的情况。

下面根据n为正、n为负、不写n以及不写m与n等四种情况分别说明:

①如果n为,则查询方向为正向索引的方向。

②如果n为,则查询的方向为反向索引的方向。

③如果不写n,则视为aString[m::1]。

④如果n和m都不写,则视为aString[0::1],结果就是字符串本身。

特别地,如果n为0,则系统会返回一个错误。

5.3 字符串的拼接

字符串拼接主要包括加号连接、%连接、join函数、format函数和格式化字符串等方法。

1.“加号连接”:是指直接将两个字符串使用加号连接在一起

>>> prefix = "py"
>>> result = prefix + "thon"
>>> result

缺点:会消耗内存空间。

2.%连接:只需要申请一次内存空间。

>>> prefix = "py"
>>> result = "**%s**thon" **%** prefix
>>> result 
Eg.要显示一个进度值为40%的滚动条,就需要使用如下方法显示:
	>>> bar = "u2589"
	>>> print("4/10:[" + bar * 4 + "--" * 6 + "] = 40%")
		4/10:[▉▉▉▉------------] = 40%
注:乘号表示一个字符串出现若干次,“u2589”代表一个黑色的方块

3.join函数,可以将一个列表拼接为一个字符串

 >>> ",".join(["Hello", "World", "Python"])
	'Hello,World,Python'
#在Python中,可以直接将多个字符串字面量连续书写,从而将其自动连接
	>>> "Py"'thon'
		'Python'

5.4特殊字符和字符转义

在这里插入图片描述

5.5原始字符串和格式化字符串

5.5.1 原始字符串

“原始字符串”:是指在字符串前加入先导符**“r”(也可以是大写的“R”),字符串里的所有内容都不会被转义**

>>> aString = r"c:desktoppythonhomework.py"
>>> print(aString)
	c:desktoppythonhomework.py

(1)如果字面量只用到一种引号,显然只需要包裹时用另一种引号就可以;

(2)如果字面量同时用两种引号,那么可以在原始字符串中使用三连引号;

(3)如果字面量里同时出现两种三连引号,就只能放弃使用原始字符串,而改为使用普通的需要转义的字符串。

5.5.2 格式化字符串

>>> aString = "{0:>4}:{1:.2f}".format("价格", 10)
>>> aString
	' 价格:10.00'

“格式规格迷你语言”:被花括号“{}”包裹的部分

基本规则如下:
	{参数编号:格式化规则}

a参数编号如果写为0,则对应着format函数的第一个参数,如果写1,则对应着第2个参数。每个参数可以使用多次。

b 格式化规则的书写方法如下:

[对齐方式][符号显示规则][#][0][填充宽度][千分位分隔符][.<小数精度>][显示类型]

书写规则时,必须严格按照上述顺序。“<”才代表对齐方式,#和0都是规则中的对应符号,5代表填写宽度,其它使用默认值。

(1)“****对齐方式”**:指的是文本是居中、居左还是居右,空白部分使用什么字符填充。

填充规则是:填充文本

>>> aString = "{0:+>20}".format("价格", 10)
>>> aString    
 '++++++++++++++++++价格'

(2)**“****符号显示规则”????*只适用于数字,对于字符串是不生效并且会提示错误的

(a)取值在默认情况下是****“-”,即表示只有负数才显示符号,正数不显示。

(b)取值为“+”时,表示无论正数还是负数都显示符号。

©取值为“空格符”时,表示正数在符号位显示一个空格,负数显示负号。

>>> "{0:< 5}{0:<-5}{0:<+5}{0:<5}".format(10)

'1010+1010'

(3)“#”:表示如果是以2进制显示数字,则显示前导符“0b”.

以8进制显示数字,则显示前导符“0o”,

以16进制显示数字,则显示前导符“0x”。

如果不是上述情况,就没有任何效果

(4)0:其含义等价于将填充字符修改为0

(5)填写宽度:其值是一个数字值,表示填充内容占多少的宽度。

(6)千分位分隔符:只有两种取值,即“,”和“_”5.6字符串的编码

(7)小数精度:也就是显示的小数位数,不足的部分会用0补齐。

(8)显示类型:指的是数据如何呈现,根据输入数据的类型.

分成三类,即字符串类型、整数类型和小数类型

#“格式化字符串字面量”,也可以称为“f-string”:在字符串前加入前导符**“f”**或者“F”。

>>> price = 10
>>> amount = 5
>>> f"价格:{price * amount:.2f}"
	'价格:50.00'

5.6 字符串的编码

“美国信息互换标准代码”,即ASCII码:分为控制字符和显示字符两部分

ASCII 码的可显示字符

在这里插入图片描述

1.在Python中,可以使用chr****函数将一个ASCII码可显示字符转换为其对应的数字,也可以使用ord****函数进行反向转换

>>> chr(97)          >>> ord('a')

'a'                   97

2.Python规定,字节串字面量只能保存ASCII码中存在的字符(包括控制字符和显示字符)以及十六进制码。书写时,需要在字符串前加字母****“b”(大小写都可以)。具体实例如下:

>>> string = b"bytes literal"
>>> type(string)
	<class 'bytes'>

>>> string[0]
	98 

可以直接使用ASCII码书写字符串中的每一个字符。具体实例如下:

>>> string = "x61x62x63"
>>> string
	'abc’ 

##中文编码:GB2312码(1980年制定)包含ASCII码,GBK码(1995年制定)包含GB2312码,每一个字符用16位表示

**encode()**是编码函数,它将源字符串按照一定的编码规则转换为字节串字面量

decode()****为“****解码函数”,作用是把字节按照编码规则反向地转换为对应字符.

5.7 常用操作

字符串的常用操作可以分为两种,即类型转换函数和字符串操作函数。

(1)类型转换函数int、long、float、complex、tuple、list、chr、ord、unichr、hex和oct。根据函数名就可以判断出函数的作用.

>>> list("I'm fine, thank you")
	['I', "'", 'm', ' ', 'f', 'i', 'n', 'e', ',', ' ', 't', 'h', 'a', 'n', 'k', ' ', 'y', 'o', 'u‘]

(2)表达式转换函数eval()

>>> price = 50
>>> amount = 12
>>> eval("price * amount")  600 

(3)长度计算函数len()

>>> len("price * amount")
	14

(4)大小写转换函数**lower()**和upper()

>>> print("my python lesson".upper())
	MY PYTHON LESSON

>>> print("My 1st Python Lesson".lower())
	my 1st python lesson

(5)查询函数find()

>>> "It's python".find("yt", 2, 5)
	-1

注:第一个参数是待查询的字符串。第二个参数是查询的开始位置,不写就是0,第三个参数是查询的结束位置,不写就是字符串的总长。查询的结果,如果有包含,则返回第一个字符在字符串中的位置,如果不包含,则返回-1。

(6)字符串分解函数split()

>>> print("email_address@domain".split("@"))
	['email_address', 'domain‘]

注:第一个参数表示分隔符。第二个参数是切割次数

最后

以上就是细腻手套为你收集整理的第五章 字符串的全部内容,希望文章能够帮你解决第五章 字符串所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部