Python字符串(Python系列11)

  1.字符串的定义

        由一系列字符编码值组成的不可变序列容器

        Python字符串(Python系列11)_第1张图片

        由上图我们可以看见字符串储存在内存空间中的原理,它是将字符转换为编码值,再将编码值转换成二进制保存到内存空间中。那编码值是怎么来的呢?

2.编码

  • 字符集:字符与整数对应关系的集合

        ASCII:包含英文,数字等字符

        GBK:兼容ASCII,包含21886个中文

        Unicode:几乎涵盖全球所有已知字符

  • 编码方式:将字符转换为整数的规则

        ASCII:每个字符占1个字节

        GBK:英文1个字节,中文2个字节

        UTF8:英文1个字节,中文3个字节

3.不可变类型数据为什么不可变

  • 采用按需分配的存储策略,节省内存空间
  • 修改数据时若在原有空间,可能破坏其他数据;所以每次修改都会创建新数据,替换变量中记录的数据地址。

     例如:a = 'a',  a = '谭'   如果不创建新的数据,原来存储字符串a的空间不能存下字符串谭,因为a字符串占一个字节,而谭字符串在GBK编码方式中占2个字节,在UTF8中占3个字节,在Python中它不管你想修改的字符串比原先的大还是小,统一创建新数据。

4.那变量中数据地址发生时,为什么不创建一个新的变量呢?

       因为变量中存储的数据内存地址等大,所以可以在原有空间中改变,大小为八个字节。

5.转义符

        改变原始含义的特殊字符

        \"        \'        \\

        r" " 字符串中没有转义符

        r"C:\newfile\test.py

6.格式化字符串

        占位符 % (变量)

        %s        原样输出

        %.整数f        保留小数的精度

        %.整数d       保留整数的位数

你可能感兴趣的:(python)