50万数据生成6位数不重复字符串_笔记 | 自学Python 05:数据类型之字符串

e61f11de837f2415a0e9e29e9559d5a0.png

3ec91f211658fbb1654dcb6bb47ab77d.png

2473886c3efe74cbc831a72232007400.png


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


从以下6个方面来了解:

d8e50727b761efbeb51b7395be72b794.png

3b98bdad8a81134bc0a151c8522d4543.png

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

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

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

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

fc604f2296e5c6c28eba2924986fa0b1.png

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

7a7f200ed7c3e4e0f6677a18d614686a.png

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

70a883ddc7a434aaa9b148381ef1e5d4.png

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

⑤转义字符

7190565c95406d2be349b59b779749cd.png

⑥可迭代——用for循环

6afad6538f7b81de74f4e2df4bc2ac4c.png

5afb1bcf590389b4f58a4eac1c179113.png

①’+’ 号连接

cd17b23ad64f35f8b8d7050e6581b91f.png

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

05614ee2948f7bbc9f436ab3278a710e.png

③%s 占位符连接

edb6a4f28e933036a7d66f545092a541.png

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

④空格自动连接

6373dc859a1577dfa2c83bf1644d039d.png

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

8a6792852c4034247f92104bf94c52df.png

⑤’*’ 连接

3039bb3d6ffd93ce593294e6fd7c81e5.png

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

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

d4cc8d461355efebaab13dd4db009b46.png

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

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

653723678b0ce814354f0e384984064e.png

19d4f131aee920f90688bc00e1b34629.png

5e833019fea9e2e5d4b3e6e4d68a4c2c.png

994083f83f2f5f7076df06a8eb40c25e.png

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

4364219c851987da8e396e3516b9da3d.png


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

7e3f4994f81470f9c5ca8993700a770c.png

d073497196317f57c7eaf9a41a6b3ae3.png

d8938aa6d5ca3f1715d8ebd2bebb4ce4.png

17c09dadad3717b1ad646e5250cb29ef.png

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

615be8b15e3942f86f335c25de71497b.png

②设置参数

c9a053736d07360119cb81327c7c37ba.png


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

7f0fbfbace05b816bcb4f86fcc801984.png


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

eb2e24f18e2dfe16d04580fd6a100e33.png

运行结果:

76e5479cdd4c2bf2462a4c1fb52ddb91.png


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

4f8a14a499ad59ba71c2a4814a83d500.png

运行结果:

bc3378e04a324aa170597c22d0cffcbc.png


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

efd89eefa0c64678fb2884b4b7e67a16.png


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

edf8f7b5084abdd7f9c216d5d55c1d47.png


案例代码及运算结果:

7430d14ce49941681bc20ca0e5c73fac.png


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

0cfc8fbd41c2430322232549506b9b20.png

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

096827462f739a5887fd9093894a523d.png


3、格式化数字

cf092c6ecc1c1764cff8cb2636a66a78.png

820d0fce91658da1e72c7f9e800bac4c.png


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


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


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

0a9a7e29aace6b619ee367209ddb44b2.png

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

af8de0aac4b938f785c4f538d85663c2.png

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

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

640651360a9b213a190071fa10166e1f.png

5fee21c3c2b2ebb1cd4b53e100ea434b.png
Becky:小白入门python | 学习笔记01​zhuanlan.zhihu.com
843a084fc210070e3260ad8ec8528bf4.png
Becky:小白入门python | 学习笔记02​zhuanlan.zhihu.com
96946ed2bd3f1ab79706c1c796900c34.png
Becky:笔记 | 自学Python 03:运算符​zhuanlan.zhihu.com
96946ed2bd3f1ab79706c1c796900c34.png
Becky:笔记 | 自学Python 04:数据类型之数字​zhuanlan.zhihu.com
96946ed2bd3f1ab79706c1c796900c34.png


持续更新中~~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值