![e61f11de837f2415a0e9e29e9559d5a0.png](https://img-blog.csdnimg.cn/img_convert/e61f11de837f2415a0e9e29e9559d5a0.png)
![3ec91f211658fbb1654dcb6bb47ab77d.png](https://img-blog.csdnimg.cn/img_convert/3ec91f211658fbb1654dcb6bb47ab77d.png)
![2473886c3efe74cbc831a72232007400.png](https://img-blog.csdnimg.cn/img_convert/2473886c3efe74cbc831a72232007400.png)
字符串,就是一个个字符组成的有序的序列,是字符的集合,在python中通常使用单引号、双引号和三引号引住的字符序列,由数字、字母、下划线组成。
从以下6个方面来了解:
![d8e50727b761efbeb51b7395be72b794.png](https://img-blog.csdnimg.cn/img_convert/d8e50727b761efbeb51b7395be72b794.png)
![3b98bdad8a81134bc0a151c8522d4543.png](https://img-blog.csdnimg.cn/img_convert/3b98bdad8a81134bc0a151c8522d4543.png)
①字符串是不可变的
上一期我们介绍过——不可变数据类型:当该数据类型对应变量的值发生变化时,原来内存中的值不变,而是会开辟一块新的内存,变量指向新的内存地址。元组、字符串、整型、浮点型、布尔型都是不可变数据类型。
由此,可得出:字符串的指向永远不变、对象不存在通过索引改变其中的字符 。
字符串有4种定义方式:a = "hello" a ='hello' a = """hello""" a = str()
②支持使用索引&切片——可以通过下标索引进行访问索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
![fc604f2296e5c6c28eba2924986fa0b1.png](https://img-blog.csdnimg.cn/img_convert/fc604f2296e5c6c28eba2924986fa0b1.png)
切片就是通过索引(起始:结束:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。
![7a7f200ed7c3e4e0f6677a18d614686a.png](https://img-blog.csdnimg.cn/img_convert/7a7f200ed7c3e4e0f6677a18d614686a.png)
选取的区间从" 起始 "位开始,到 " 结束 " 位的前一位结束(不包含结束位本身),步长表示选取间隔,默认步长是为1的。 ③有序性
在内存中可以是连续的地址空间,有序的序列④三引号
使用三引号输出一大串带特殊字符的字符串,可以包含换行符、制表符以及其他特殊字符。
当使用三引号将字符串框起来时,就不需要再通过转义字符打很多换行符等符号了,可以直接打换行。
对比如下:
![70a883ddc7a434aaa9b148381ef1e5d4.png](https://img-blog.csdnimg.cn/img_convert/70a883ddc7a434aaa9b148381ef1e5d4.png)
这两种输出的结果都是换行的字符串,但是使用单引号时,当转义字符很多时,会很痛苦。
⑤转义字符
![7190565c95406d2be349b59b779749cd.png](https://img-blog.csdnimg.cn/img_convert/7190565c95406d2be349b59b779749cd.png)
⑥可迭代——用for循环
![6afad6538f7b81de74f4e2df4bc2ac4c.png](https://img-blog.csdnimg.cn/img_convert/6afad6538f7b81de74f4e2df4bc2ac4c.png)
![5afb1bcf590389b4f58a4eac1c179113.png](https://img-blog.csdnimg.cn/img_convert/5afb1bcf590389b4f58a4eac1c179113.png)
①’+’ 号连接
![cd17b23ad64f35f8b8d7050e6581b91f.png](https://img-blog.csdnimg.cn/img_convert/cd17b23ad64f35f8b8d7050e6581b91f.png)
优点:容易记忆。 缺点:性能较差,因为 Python 中的字符串是不可变类型。用 “+” 号连接就相当于生成一个全新的字符串,生成字符串则需要重新申请内存,那么当用 ” + ” 连接非常多个字符串时,将会很耗费内存,可能造成内存溢出。② ’ , ’连接成 tuple (元组)类型
![05614ee2948f7bbc9f436ab3278a710e.png](https://img-blog.csdnimg.cn/img_convert/05614ee2948f7bbc9f436ab3278a710e.png)
③%s 占位符连接
![edb6a4f28e933036a7d66f545092a541.png](https://img-blog.csdnimg.cn/img_convert/edb6a4f28e933036a7d66f545092a541.png)
这种功能比较强大,借鉴了C语言中 printf 函数的功能。这种方式用符号“%”连接一个字符串和一组变量,字符串中的特殊标记会被自动用右边变量组中的变量替换。
④空格自动连接
![6373dc859a1577dfa2c83bf1644d039d.png](https://img-blog.csdnimg.cn/img_convert/6373dc859a1577dfa2c83bf1644d039d.png)
注意:不能直接用参数代替具体的字符串,否则报错
![8a6792852c4034247f92104bf94c52df.png](https://img-blog.csdnimg.cn/img_convert/8a6792852c4034247f92104bf94c52df.png)
⑤’*’ 连接
![3039bb3d6ffd93ce593294e6fd7c81e5.png](https://img-blog.csdnimg.cn/img_convert/3039bb3d6ffd93ce593294e6fd7c81e5.png)
这种连接方式就是相当于 copy 字符串
⑥join 连接——利用字符串的函数 join
![d4cc8d461355efebaab13dd4db009b46.png](https://img-blog.csdnimg.cn/img_convert/d4cc8d461355efebaab13dd4db009b46.png)
这个函数接受一个列表或元组,然后用字符串依次连接列表中每一个元素。
⑦ 多行字符串拼接 ()
Python 遇到未闭合的小括号,自动将多行拼接为一行,相比三个引号和换行符,这种方式不会把换行符、前导空格当作字符。
![653723678b0ce814354f0e384984064e.png](https://img-blog.csdnimg.cn/img_convert/653723678b0ce814354f0e384984064e.png)
![19d4f131aee920f90688bc00e1b34629.png](https://img-blog.csdnimg.cn/img_convert/19d4f131aee920f90688bc00e1b34629.png)
![5e833019fea9e2e5d4b3e6e4d68a4c2c.png](https://img-blog.csdnimg.cn/img_convert/5e833019fea9e2e5d4b3e6e4d68a4c2c.png)
![994083f83f2f5f7076df06a8eb40c25e.png](https://img-blog.csdnimg.cn/img_convert/994083f83f2f5f7076df06a8eb40c25e.png)
根据功能,我将主要的内建函数分为8类:
![4364219c851987da8e396e3516b9da3d.png](https://img-blog.csdnimg.cn/img_convert/4364219c851987da8e396e3516b9da3d.png)
————————————————功能细分—————————————————
![7e3f4994f81470f9c5ca8993700a770c.png](https://img-blog.csdnimg.cn/img_convert/7e3f4994f81470f9c5ca8993700a770c.png)
![d073497196317f57c7eaf9a41a6b3ae3.png](https://img-blog.csdnimg.cn/img_convert/d073497196317f57c7eaf9a41a6b3ae3.png)
![d8938aa6d5ca3f1715d8ebd2bebb4ce4.png](https://img-blog.csdnimg.cn/img_convert/d8938aa6d5ca3f1715d8ebd2bebb4ce4.png)
![17c09dadad3717b1ad646e5250cb29ef.png](https://img-blog.csdnimg.cn/img_convert/17c09dadad3717b1ad646e5250cb29ef.png)
1、简单运用 ①不限制参数个数
![615be8b15e3942f86f335c25de71497b.png](https://img-blog.csdnimg.cn/img_convert/615be8b15e3942f86f335c25de71497b.png)
②设置参数
![c9a053736d07360119cb81327c7c37ba.png](https://img-blog.csdnimg.cn/img_convert/c9a053736d07360119cb81327c7c37ba.png)
2、格式化控制信息
format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式: {<参数序号>: <格式控制标记>}
其中,<格式控制标记>用来控制参数显示时的格式包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,这些字段都是可选的,可以组合使用。
![7f0fbfbace05b816bcb4f86fcc801984.png](https://img-blog.csdnimg.cn/img_convert/7f0fbfbace05b816bcb4f86fcc801984.png)
<宽度>
指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充。
<对齐>
指参数在<宽度>内输出时的对齐方式,分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐。
<填充>
指<宽度>内除了参数外的字符采用什么方式表示,默认采用空格,可以通过<填充>更换。
案例代码:
![eb2e24f18e2dfe16d04580fd6a100e33.png](https://img-blog.csdnimg.cn/img_convert/eb2e24f18e2dfe16d04580fd6a100e33.png)
运行结果:
![76e5479cdd4c2bf2462a4c1fb52ddb91.png](https://img-blog.csdnimg.cn/img_convert/76e5479cdd4c2bf2462a4c1fb52ddb91.png)
<逗号>
<格式控制标记>中逗号(,)用于显示数字的千位分隔符。
案例代码:
![4f8a14a499ad59ba71c2a4814a83d500.png](https://img-blog.csdnimg.cn/img_convert/4f8a14a499ad59ba71c2a4814a83d500.png)
运行结果:
![bc3378e04a324aa170597c22d0cffcbc.png](https://img-blog.csdnimg.cn/img_convert/bc3378e04a324aa170597c22d0cffcbc.png)
<.精度>
表示两个含义,由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。
案例代码及运算结果:
![efd89eefa0c64678fb2884b4b7e67a16.png](https://img-blog.csdnimg.cn/img_convert/efd89eefa0c64678fb2884b4b7e67a16.png)
<类型>
表示输出整数和浮点数类型的格式规则。对于整数类型,输出格式包括6 种:
![edf8f7b5084abdd7f9c216d5d55c1d47.png](https://img-blog.csdnimg.cn/img_convert/edf8f7b5084abdd7f9c216d5d55c1d47.png)
案例代码及运算结果:
![7430d14ce49941681bc20ca0e5c73fac.png](https://img-blog.csdnimg.cn/img_convert/7430d14ce49941681bc20ca0e5c73fac.png)
对于浮点数类型,输出格式包括4 种:
![0cfc8fbd41c2430322232549506b9b20.png](https://img-blog.csdnimg.cn/img_convert/0cfc8fbd41c2430322232549506b9b20.png)
浮点数输出时尽量使用<.精度>表示小数部分的宽度,有助于更好控制输出格式。数字
![096827462f739a5887fd9093894a523d.png](https://img-blog.csdnimg.cn/img_convert/096827462f739a5887fd9093894a523d.png)
3、格式化数字
![cf092c6ecc1c1764cff8cb2636a66a78.png](https://img-blog.csdnimg.cn/img_convert/cf092c6ecc1c1764cff8cb2636a66a78.png)
![820d0fce91658da1e72c7f9e800bac4c.png](https://img-blog.csdnimg.cn/img_convert/820d0fce91658da1e72c7f9e800bac4c.png)
为了方便的处理不同字符集编码的字符之间的相互转化,定义了unicode标准,即将世界上所有的字符统一起来,每个字符都分配一个唯一的id,作为该字符的unicode码值。
在代码中写定字符或者程序输入字符后,可以先将字符转化为unicode"字符",这是“解码”过程;进行一系列操作之后,如果需要显示出原来的字符,则将unicode"字符"转化为对应的字符集中该字符所对应的字节码,然后找到对应的字符,进而显示。
这样,不同字符集编码就通过unicode"字符"联系了起来。
Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:
![0a9a7e29aace6b619ee367209ddb44b2.png](https://img-blog.csdnimg.cn/img_convert/0a9a7e29aace6b619ee367209ddb44b2.png)
引号前小写的"u"表示这里创建的是一个Unicode字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:
![af8de0aac4b938f785c4f538d85663c2.png](https://img-blog.csdnimg.cn/img_convert/af8de0aac4b938f785c4f538d85663c2.png)
被替换的 u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。PS:以上仅为个人知识点总结,具体案例解读可参考:
Python3 字符串 | 菜鸟教程www.runoob.com![640651360a9b213a190071fa10166e1f.png](https://img-blog.csdnimg.cn/img_convert/640651360a9b213a190071fa10166e1f.png)
![5fee21c3c2b2ebb1cd4b53e100ea434b.png](https://img-blog.csdnimg.cn/img_convert/5fee21c3c2b2ebb1cd4b53e100ea434b.png)
![843a084fc210070e3260ad8ec8528bf4.png](https://img-blog.csdnimg.cn/img_convert/843a084fc210070e3260ad8ec8528bf4.png)
![96946ed2bd3f1ab79706c1c796900c34.png](https://img-blog.csdnimg.cn/img_convert/96946ed2bd3f1ab79706c1c796900c34.png)
![96946ed2bd3f1ab79706c1c796900c34.png](https://img-blog.csdnimg.cn/img_convert/96946ed2bd3f1ab79706c1c796900c34.png)
![96946ed2bd3f1ab79706c1c796900c34.png](https://img-blog.csdnimg.cn/img_convert/96946ed2bd3f1ab79706c1c796900c34.png)
持续更新中~~~~