计算机字符串介绍
树图思维导图提供 第五章 字符串 在线思维导图免费制作,点击“编辑”按钮,可对 第五章 字符串 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:abdb7b347483f375a8511d42fafb0d38
第五章 字符串思维导图模板大纲
字符串是一个不可变类型,即声明之后,其中的所有字符都不能再修改。
判断一个变量是不是字符串----用isinstance(需判断的变量本身,str)
在python中无论哪种引号包裹的都是字符串,引号必须配对使用,但在字符中间就不需要配对使用
"\"转义字符,意味着本行结尾的换行符不计入输出
字符串的本质是字符的组合,在一个字符中,每一个组成部分都称为一个字符。每个字符所在的位置称为“字符的偏移量”。
在实际的使用环境下,“索引值”指的就是偏移量
字符串的索引
正向索引
其开始点是字符串的左边第一个字符,索引值是0,之后每个字符的索引值依次增加1【即所有的索引值都是正数或0】
反向索引
按照从右至左的顺序编号,由于索引值0已经被正向索引使用,为了不产生分歧,即从-1开始,从右至左依次减一【也就是说所有的索引值都是负数】
注意事项
1.数学上的-0、+0、0都指的是同一个数字0
2.索引的结果是一个只读的值,故不能通过改变索引对应值的方法修改字符串,否则会报错
需要修改字符串中索引值为n的字符时,其步骤为
1.求出字符串的长度
2.如果m<n,那么返回失败
3.取出索引值为0至n-1的字符串,记为leftstring
4.取出索引值为n+1至m-1的字符串,记为rightstring
5.把leftstring、修改后的字符和rightstring拼接为一个新的字符串newstring
6.输出newstring
切片操作的基本方法
1.返[m,n]的子串,可以使用astring[m:n]这种写法。【注:m必须小于n,同时返回的值包含m而不包含n】
2.如果m和n分别指的是字符串的开头和结尾,那么就可以不写
3.切片的第三种写法是astring[m::n],用于从字符串中索引值为m的字符(即第m+1个字符)开始,每n个字符取出一次的情况。分为以下四种情况:
1)如果n为正,则查询方向为正向索引方向
2)如果n为负,则查询的方向为反向索引方向
3)如果不写n,则视为astring[m::1]
4)如果n和m都不写,则视为astring[0::1],特别指出如果n为0,则系统会返回一个错误
加号连接--“+”
直接将两个字符串用加号连接在一起。虽然方法简单明了,但是效率不高
%连接
%连接可以解决加号连接的问题,且只需要申请一次内存空间,但是已经被淘汰了
join()函数
可以将一个列表拼接为一个字符串,这种方式广泛地用于生成参数表
format()函数
格式化字符串【如“&”、“\”等】
常用的转义字符----参考书75页
特殊字符----在字符串的实际使用过程中,存在着一些无法直接显示的字符,如换行符(\n)、水平制表符(\t)等这些字符
如果在双引号包裹的字符串中必须使用双引号,那么这种情况下双引号也是一种“特殊字符”
“\ooo”代表着最多只能使用一个3位的八进制数
“\xhh”指的是只能使用2位的十六进制数
单引号和双引号的转义字符注意事项
1.无论包裹字符串使用的是哪种引号,将引号转义肯定不会错
2.如果包裹的引号和字符串中使用的引号不一样,那么引号可以不转义
在三引号的长字符串中,如果需要表达另一个三引号,那么只需要将其中任一个引号转义就行
原始字符串----在字符串前加先导符“r”(也可以是大写的“R”),之后字符串里的所有内容都不会被转义
首先使用了原始字符串,然后又使用了转义方式,那么“\”已经没有了转义的作用,那么在这个字符串中如果需要使用引号,该如何处理?
1.如果字面量只用到一种引号,显然只需要包裹时用另一种引号就可以
2.如果字面量同时用两种引号,那么可以在原始字符串中使用三连引号
3.如果字面量里同时出现两种三引号,就只能放弃使用原始字符串,而改为使用普通的需要转义的字符串
格式化字符串----调用format()函数的对象
格式规格迷你语言----被花括号包裹的部分
基本规则----{参数编号:格式化语言}
如果参数编号为0,则对应着format()函数的第一个参数,如果是1,则是第二个参数。每个参数可以使用多次,格式化规则的书写方法----[对齐方式] [符号显示规则] [#] [0] [填充宽度] [千分位分隔符] [.<小数精度>] [显示类型]
书写格式化规则时,除非对应部分不出现,否则就必须严格按照上述顺序,绝对不能修改
对齐方式是指文本居中、居左还是居右,空白部分使用什么字符填充----“<”左对齐、“>”右对齐、“^”居中对齐、“=”只能用在数字上,表示填充时把填充文本放在正负号的右边,一般要书写填充文本0,专门用于显示-000010这样的文本
符号显示规则----一般默认情况是取值“-”,表示只有负数才显示符号,正数不显示符号;取值“+”表示无论是正数还是负数都显示符号。符号显示规则为“空格符”时表示正数在符号位显示一个空格,负数显示负号
符号显示规则后的“#”表示如果以二进制数显示数字,则显示前导符“0b”,八进制“0o”,十六进制“0x”。如果不是这些情况,则无任何效果
绝不能把“#”写到数字后面,会报错,如果要加上符号显示规则,就必须写成“{0:<+#8b}”,“+”和“#”位置不能对调
在格式化规则中,“#”后面的0(如{0:<+#08x}等价于{0:0<+#8x}),其含义等价于将填充字符修改为0,在0之后输入的是填充宽度,其值是一个数字值,表示填充内容占的宽度
千分位分隔符之后是“小数精度”,也就是显示的小数位数,不足的部分以0补齐【注:在有小数位时,必须指定这个参数是一个浮点数】
显示类型指的是数据如何呈现,根据输入类型可分为三类----字符串类型、整数类型和小数类型,其可用形式参考书80页
在使用格式化字符串时,每次写一个format()函数比较麻烦,所以现在有一个更简单的写法----格式化字符串字面量(也可以称为“f-string”)
特点是在字符串前加前导符“f”或“F”。使用时,将格式规格迷你语言的第一部分换成变量名或者是表达式即可
计算机是不能直接保存字符的,只能保存二进制数,哪怕写成字节的形式,也只是一个0~255的数字
早期更适合计算机处理和显示的字符集----ASCII码
可显示字符(参考书82页)
在python中可以使用chr()函数将一个ASCII码可显示字符转化为其对应的数字,使用ord()函数进行反向转换【注意ord()函数一次只能转换一个字符】
字节串的字面量----将一个字符串转换为若干个字节,其中每一个字节对应一个字符。【注:只能保存ASCII码中存在的字符,以及十六进制码。书写时,需要在字符串前加字母b(大小写都可)】
控制字符
我国自行研发两种更适合中文的字符集----GB2312码(包含ASCII码)和GBK码(包含GB2312码)
在ASCII码中,每一个字符用7位表示,而在GB2312码和GBK码中,每一个字符用16位表示,所以,采用GBK码或GB2312码保存的文件,使用ASCII码方式打开时都会显示乱码
encode()是编码函数,作用是将源字符串按照一定的编码规则转换为字节串字面量
decode()是编码函数的反函数,作用是把字节按照编码规则反向地转换为对应字符。故称为“解码函数”
Unicode字符集是ASCII码的扩展形式,包含了世界上大多数语言所需要用到的字符。分为UTF-8、UTF-16和UTF-32
ASCII码和Unicode都是字符集,都是为每一个字符分配一个码位,而UTF-8、UTF-16等都是针对Unicode字符集的“编码规则”,也就是将每一个“码位”转换为字节序列的规则
与ASCII码相同,在字符串中也可以直接使用Unicode码书写字符,这是需要使用转义字符“\u579D”,其中,“\u”后面接的4个十六进制字符代表2个字节
再次强调,Unicode码与保存到文件中的、使用UTF-8转换过的二进制位是不一样的,一定要注意区分【编码规则----“UTF-8”,码表或者字符集----“Unicode”】
1.类型转换函数
包括int()、long()、float()、complex()、tuple()、list()、chr()、ord()、unichr()、hex()和oct()----根据函数名就可以判断出函数的作用
2.表达式转换函数eval()---该函数的参数是一个表达式,也就是说可以有变量
3.长度计算函数len()
4.大小写转换函数lower()和upper()----把字符串里的英文字母转换为对应的小写字符或者大写字符,对非英文字母不起作用
5.查询函数find()----第一个参数是待查询的字符串,第二个参数是查询开始的位置,不写就是0。执行查询,如果包含,则返回第一个字符在字符串中的位置,如果不包含,则返回-1
6.字符串分解函数split()----在使用过程中,需要注意一下它的参数,第一个参数表示分隔符,第二个参数是切割的次数
树图思维导图提供 第五章 在线思维导图免费制作,点击“编辑”按钮,可对 第五章 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:6f6a0d03f765faada73875b1cd64cad0
树图思维导图提供 第五章 电路参数的测量 在线思维导图免费制作,点击“编辑”按钮,可对 第五章 电路参数的测量 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:1ea047931c78454420b4c2689ec0bbb9