Python3入门之——字符串

字符串使用固定不变的str数据类型表示的,其中存放Unicode字符序列。str数据类型可以作为函数进行调用,用于创建字符串对象——参数为空时返回一个空字符串,参数为非字符串类型时返回该参数的字符串形式,参数为字符串时返回该字符串的拷贝。str()函数也可以用作一个转换函数,此时要求第一个参数为字符串或可以转换为字符串的其他数据类型,其后跟随至多两个可选的字符串参数,其中一个用于指定要使用的编码格式,另一个用于指定如何处理编码错误。

text = """A triple quoted string like this can include 'quotes' and "quotes" without formality.""" #三引号
a = "Single 'qutoes' are fine; \"doubles\" must be escaped" #转义
# 跨行
t = "This is not the best way to join two long strings"+\
	"together since it relies on ugly newline escaping"
t = ("This is not the best way to join two long strings"
	"together since it relies on ugly newline escaping")

字符串分片与步距

分片操作:使用数据项存取操作符[]提取子序列,三种语法格式:seq[start]、seq[start:end]、seq[start🔚step]。seq可以是任意序列,比如列表、字符串或元祖。如果实验第二种语法格式,可以忽略任意的整数索引值,默认就为0了;忽略终点索引值,默认就为len(seq);如果忽略两个索引值,则与s[0:len(s)]是等同的,其作用是复制整个序列。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字符串操作符与方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
*操作符提供了字符串复制功能:
在这里插入图片描述
如果成员关系操作符in做边的字符串参数是右边字符串参数的一部分,或者相等,就返回True。字符串也支持%操作符,用于格式化操作,提供该操作符只是为了便于从Python2项Python 3转换。

str.maketrans()方法用于创建字符间映射的转换表,该方法可以接受一个、两个或三个参数。以两个参数举例,第一个参数是一个字符串,该字符串中的字符需要进行转换,第二个参数也是一个字符串,其中包含的字符是转换的目标,这里那个字符串必须具有相同的长度。str.translate()方法以转换表作为一个参数,并返回某个字符串根据该转换表进行转换后的副本。
在这里插入图片描述
上面代码对空字符串调用了str.maketrans方法,因为该方法不关心其针对的具体字符串,而只是对其参数进行处理,并返回一个转换表。

使用str.format()方法进行字符串格式化

str.format()方法会返回一个新字符串,在新字符串中,原字符串的替换字段被适当格式化后的参数所替代。每个替换字段都是由包含在花括号中的字段名标识的。如果字段名是简单的整数,就将被作为传递给str.format方法的一个参数的索引位置。在这种情况下,名为0的字段被第一个参数所替代,名为1的字段被第二个参数替代。
在这里插入图片描述
从Python 3.1开始,可忽略字段名,Python自动进行处理(使用从0开始的数值作为替换字段),比如
在这里插入图片描述
如果需要在格式化字符串中包含花括号,就需要将花括号写两次
在这里插入图片描述
如果试图链接字符串和数字,将产生TypeError异常,但是使用str.format方法可以实现:“{0}{1}”.format("The amount due is $",200)

替换字段

替换字段可以使用如下语法格式:
在这里插入图片描述
字段名:与str.format方法参数对应的整数或某个关键字参数的名称。下面第二个实例混用了位置参数和关键字参数。在参数列表中,关键字参数总是在位置参数之后。
在这里插入图片描述
字段是名可以用用集合数据类型,比如使用列表,下面例子就是使用索引来标识特定的数据项。0应用的是位置参数,{0[1]}是列表stock参数的第二个数据项,{0[2]}是列表stock参数的第三个数据项。第二个例子使用Python字典举例。
在这里插入图片描述
在这里插入图片描述
可以存取命名的属性,比如取math.pi和sys.maxunicode
在这里插入图片描述
在这里插入图片描述

conversion指定符

在作用范围内的局部变量可通过内置的locals函数访问,该函数会返回一个字典,字典的键是局部变量名,字典的值是对变量值的应用。映射拆分操作符**,可将字典映射为一个适合传递给函数键值列表。(允许使用字典的键作为字段名)
在这里插入图片描述

如下代码,第一种展示方式是表象形式(用途是提供一个字符串,该字符串被Python解释时将重建其表示的对象),第二种以字符串形式展示,内置数据类型都知道str.format方法,在作为参数传递给这一方法时,将返回一个适当的字符串来展示自己。
在这里插入图片描述
通过向替换字段中添加conversion指定符,可以重新数据类型的通常行为并强制其提供字符串形式或表象形式。有3个指定符:s,用于强制使用字符串形式;r,用于强制使用表象形式;a,用于强制使用表象形式,但仅限于ASCII字符。
在这里插入图片描述

format_specification

在这里插入图片描述
对于字符串而言,可以控制的包括填充字符、字段内对齐方式以及字段宽度的最小值和最大值。字符串格式规约是使用冒号引入,其后跟随可选的字符对——一个填充字符(可以不是)与一个对齐字符(<用于左对齐,^用于中间对齐,>用于右对齐),之后跟随的是可选的最小宽度(整数)据点后跟随一个整数值。指定了一个填充字符,就必须同时指定对齐字符。以s="The sword of truth"为例。
在这里插入图片描述
同可以使用如下方式设置宽度,第一种方式使用标准的字符串分片,第二种方式使用内部替换字段。
在这里插入图片描述

对于整数,通过格式化规约,可以控制填充字符、字段内对齐、符号、最小字段宽度、基数等。整数格式规约以冒号开始,其后可以跟随一个可选的字符对——一个填充字符(可以不是)与一个对齐字符(<用于左对齐,^用于中间对齐,>用于右对齐,=用于在符号与数字之间进行填充),之后跟随的是可选的符号字符:+表示必须输出符号,-表示只输出负号负号,空格表示为整数输出空格;为负数输出符号-。再之后跟随的是可选的最小宽度整数值——其前可以使用字符#引导,以便获取某种基数进制位前缀的输出(对二进制、八进制、十六进制数值),也可以以0引导,以便在对齐时使用0进行填充。如果希望输出其他进制数据,而非十进制数,就必须添加一个类型字符——b用于表示二进制,o用于表示八进制,x用于表示小写十六进制,X用于表示大写十六进制,也可以使用d表示十进制整数。还有两个其他类型字符:c,表示输出整数对应的Unicode字符,n,表示以场所敏感的方式输出数字。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果使用Python 3.1,并在格式规范中使用一个逗号,则整数将使用逗号进行分组。
在这里插入图片描述
最后一个可用于整数(也可用于浮点数)的格式化字符是n。在给定的字符是整数时,其作用与d相同;在给定的字符是浮点数时,其作用与g相同。n的特殊之处在于,充分考虑了当前的场所,并在其产生的输出信息中使用特定的十进制字符与分组字符。默认的场所称为C场所,对这种C场所,十进制字符是一个句点,分组字符是一个空字符。(其实就是本地化)
在这里插入图片描述
如果将空字符串作为场所传递,那么Python会尝试自动确定用户的场所(比如,通过检查LANG环境变量),并以C场所为默认场所。
在这里插入图片描述
虽然n对于整数非常有用,但是对于浮点数的用途有限,因为随着浮点数的增大,就会使用指数形式对其进行输出。

对于浮点数,通过格式规约,可以控制填充字符、字段对齐、符号、最小字段宽度、十进制小数点后的数字个数,以及是以标准形式、指数形式还是以百分数的形式输出数字。用于浮点数的格式规约与用于整数的格式规约是一样的,只是在结尾处有两个差别。在可选的最小宽度后面,通过写一个句点并在其后跟随一个整数,可以指定在小数点后跟随的数字个数。可以在结尾处添加一个类型字符:e表示使用小写字母e的指数形式,E表示使用大写字母E的指数形式,f表示标准的浮点形式,g表示桐城陈格式,和f的作用是相同的,除非数字特别大(在这种情况下与e的作用相同——以及几乎与g等同的G,但总是使用f或E)。另一个可以使用的是%——这会导致数字扩大100倍,产生的数字结果使用f并附加一个%字符的格式输出。
在这里插入图片描述
在这里插入图片描述
第一个实例中最小宽度为12个字符,在十进制小数点之后有2个数字。

在Python 3.0中,decimal.Decimal数值被str.format当作字符串,而不是数值。从Python 3.1开始,decimal.Decimal数值能够被格式化为floats,也能对逗号提供支持。以获得用逗号进行隔离的组。
在这里插入图片描述
如果省略格式字符f或使用格式字符g,则数值将被格式化为’123457E+9’.

Python 3.0并不直接支持复数的格式化,从Python 3.1开始,才对其提供支持。在Python 3.0可以将复数的实数部分与虚数部分分别作为单独的浮点数进行格式化来实现。
在这里插入图片描述
Python 3.1用来格式化复数的语法与用于floats的语法相同,复数的实数和虚部使用的格式化方法完全相同。
在这里插入图片描述

字符编码

Unicode为每个字符分配一个整数,即字元,就像早期编码方式一样,但是Unicode不局限于使用一个字节表示每个字符,因而有能力使用这种编码方式表示每种语言中的每个字符。前127个Unicode字符与7比特ASCII表示的前127个字符是相同的。在内存中,Unicode通常以UCS-2格式(实际上是16比特的无符号整数)表示前65535个字元,或以USC-4格式(32位整数)表示所有的字元。在Python编译时,会设置为使用某一种格式(如果sys.maxunicode为65535,Python编译时就使用UCS-2)。
在这里插入图片描述
在这里插入图片描述
str.encode方法可以返回一个字节序列——实际上是一个bytes对象。在引号之前使用字母b,表示使用的是字节字面值,而非字符串字面值。方法的第一个参数,即编码名称是大小写不敏感的,连字符和下划线是等同的。因此,us-acii和US_ASCII是相同的。第二个参数是整蛊渡边纲错误处理方式。
在这里插入图片描述
对于的函数是bytes.decode()或bytearray.decode(),该方法将返回一个字符串,其中使用给定的编码格式对字节进行解码。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值