c语言字符串截取_笔记 | 自学Python 05:数据类型之字符串

57bcef5ad92f3e5fb2e2b4c9b20aeea3.png

1ea05b5402318f58ca69351bd020839d.png

3e4c99b23ec5ac13d1da601f5f6a578f.png


字符串,就是一个个字符组成的有序的序列,是字符的集合,在python中通常使用单引号、双引号和三引号引住的字符序列,由数字、字母、下划线组成。


从以下6个方面来了解:

9526957700b1de24d9eb43f751c0988a.png

99558feee284a440d237e2e4d55e0211.png

①字符串是不可变的
上一期我们介绍过——不可变数据类型:当该数据类型对应变量的值发生变化时,原来内存中的值不变,而是会开辟一块新的内存,变量指向新的内存地址。元组、字符串、整型、浮点型、布尔型都是不可变数据类型。

由此,可得出:字符串的指向永远不变、对象不存在通过索引改变其中的字符

字符串有4种定义方式:a = "hello" a ='hello' a = """hello""" a = str()

②支持使用索引&切片——可以通过下标索引进行访问索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

ea6dcd66dbffa88e372cbf978bdcfccb.png

切片就是通过索引(起始:结束:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

16ca4e7e466266b129db2fa12143072f.png

选取的区间从" 起始 "位开始,到 " 结束 " 位的前一位结束(不包含结束位本身),步长表示选取间隔,默认步长是为1的。 ③有序性
在内存中可以是连续的地址空间,有序的序列④三引号
使用三引号输出一大串带特殊字符的字符串,可以包含换行符、制表符以及其他特殊字符。
当使用三引号将字符串框起来时,就不需要再通过转义字符打很多换行符等符号了,可以直接打换行。
对比如下:

f3928b42a5bec783e64a141069bcaa61.png

这两种输出的结果都是换行的字符串,但是使用单引号时,当转义字符很多时,会很痛苦。

⑤转义字符

7eee2be34f97c00eec1ce02f06e1d493.png

⑥可迭代——用for循环

82b18a395a621dd64d2f742d05526ab7.png

7674c7fb10b10c0a3e029dd91578be36.png

①’+’ 号连接

71c3cee13cb946b61ad284d7f311ae36.png

优点:容易记忆。 缺点:性能较差,因为 Python 中的字符串是不可变类型。用 “+” 号连接就相当于生成一个全新的字符串,生成字符串则需要重新申请内存,那么当用 ” + ” 连接非常多个字符串时,将会很耗费内存,可能造成内存溢出。② ’ , ’连接成 tuple (元组)类型

f19edbe58403a6618c34a7a593abd4f8.png

③%s 占位符连接

442ea178d15de8e77d7cbc84b87e6147.png

这种功能比较强大,借鉴了C语言中 printf 函数的功能。这种方式用符号“%”连接一个字符串和一组变量,字符串中的特殊标记会被自动用右边变量组中的变量替换。

④空格自动连接

1dab07a9120bf1a46903ff7513b6e49d.png

注意:不能直接用参数代替具体的字符串,否则报错

bdb504a7da13f08f5bebcf01afd1d05a.png

⑤’*’ 连接

6b0d1f2abedc6d5ca578352b6e2aa408.png

这种连接方式就是相当于 copy 字符串

⑥join 连接——利用字符串的函数 join

b2e7fef5e625cde30a87bf72793a5069.png

这个函数接受一个列表或元组,然后用字符串依次连接列表中每一个元素。

⑦ 多行字符串拼接 ()
Python 遇到未闭合的小括号,自动将多行拼接为一行,相比三个引号和换行符,这种方式不会把换行符、前导空格当作字符。

bf56f7b7296dab406d24a4b78743f325.png

f241094b98e52454e032028e5920f3eb.png

a6f81a78e4d69679427999010f1c87c6.png

cf8f82a1bc791ad6b08d78ddc76888e1.png

根据功能,我将主要的内建函数分为8类:

b1906105383dcc660a2921995d426c61.png


————————————————功能细分—————————————————

efbcdacd79f4850e6ed3cd2b2ebd2db8.png

c6e21d0804410cbf692ac32d167ff1ef.png

d51f06c908429a0627314ae117f55279.png

a95f7368db36d9ff2719535156e0e90b.png

1、简单运用 ①不限制参数个数

e578a5483ef07aed0c29e84d8179b7d1.png

②设置参数

2cb9d4b6b01f65fe070d71c2f9f1f561.png


2、格式化控制信息
format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式: {<参数序号>: <格式控制标记>}
其中,<格式控制标记>用来控制参数显示时的格式包括:<填充><对齐><宽度>,<.精度><类型>6 个字段,这些字段都是可选的,可以组合使用。

61f510168f325ce0ec07560340a0616c.png


<宽度>
指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充
<对齐>
指参数在<宽度>内输出时的对齐方式,分别使用<、>和^三个符号表示左对齐、右对齐和居中对齐
<填充>
指<宽度>内除了参数外的字符采用什么方式表示,默认采用空格,可以通过<填充>更换。
案例代码:

ff798ba86fd573fc87a35ef01102fadf.png

运行结果:

365f3d5020ee8a8daf1cd45b48bafe19.png


<逗号>
<格式控制标记>中逗号(,)用于显示数字的千位分隔符。
案例代码:

bcaf1e5356fd2088c5bcdca6a4cc329c.png

运行结果:

3b79982e96f9c71db79e84330617312c.png


<.精度>
表示两个含义,由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。
案例代码及运算结果:

9c7a2a07385884ff22768ffd7cfa1f2f.png


<类型>
表示输出整数和浮点数类型的格式规则。对于整数类型,输出格式包括6 种:

7e4a45650503b4548b9356f6855ff8c1.png


案例代码及运算结果:

e6a14970e6ffc0afb374244d69b9ff69.png


对于浮点数类型,输出格式包括4 种:

9469b964a99ab28f0bb2a29eb164d219.png

浮点数输出时尽量使用<.精度>表示小数部分的宽度,有助于更好控制输出格式。数字

e2add6706d35bb86678a88a939ce6a82.png


3、格式化数字

ceba717fa276312b50c0d0fbec37c18e.png

ae26ff61be129b1a5e1de5a3cc56bd73.png


为了方便的处理不同字符集编码的字符之间的相互转化,定义了unicode标准,即将世界上所有的字符统一起来,每个字符都分配一个唯一的id,作为该字符的unicode码值。


在代码中写定字符或者程序输入字符后,可以先将字符转化为unicode"字符",这是“解码”过程;进行一系列操作之后,如果需要显示出原来的字符,则将unicode"字符"转化为对应的字符集中该字符所对应的字节码,然后找到对应的字符,进而显示。


这样,不同字符集编码就通过unicode"字符"联系了起来。
Python 中定义一个 Unicode 字符串和定义一个普通字符串一样简单:

3e1dd43193012d9ceaaea4fe3da10702.png

引号前小写的"u"表示这里创建的是一个Unicode字符串。如果你想加入一个特殊字符,可以使用 Python 的 Unicode-Escape 编码。如下例所示:

74fb4f7b557c68b0e6cad835ee4174c1.png

被替换的 u0020 标识表示在给定位置插入编码值为 0x0020 的 Unicode 字符(空格符)。PS:以上仅为个人知识点总结,具体案例解读可参考:

Python3 字符串 | 菜鸟教程​www.runoob.com

56f6412d76aa576aba1c383cb037cb32.png

f16c7519a64a5217f786670f02ea7846.png
Becky:小白入门python | 学习笔记01​zhuanlan.zhihu.com
3afd01549f583f3b66e542f9cfebd767.png
Becky:小白入门python | 学习笔记02​zhuanlan.zhihu.com
c3a9bdae76f29cf6173c5b3a078bbf64.png
Becky:笔记 | 自学Python 03:运算符​zhuanlan.zhihu.com
c3a9bdae76f29cf6173c5b3a078bbf64.png
Becky:笔记 | 自学Python 04:数据类型之数字​zhuanlan.zhihu.com
c3a9bdae76f29cf6173c5b3a078bbf64.png


持续更新中~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值