2.标准数据类型--字符串

一、字符串:

           在python中,字符由单引号,双引号,引起来的形式,称之为字符串。python不支持单字符类型,单个字符在python中也被认为是字符串。

           python字符串是不可变的。

         在所有编程语言中,字符串几乎无所不在,编程的本质就是对数据的加工处理,对字符串处理的能力是编程最重要的能力之一。

二、字符串形式:

'abc345'    "897*!"   r'a\bcde' u'abc123'

三、字符串使用场景:

                  给班里同学作一份通讯录  我们就可以把同学名当作变量,手机号,住址当成值:

四、字符串操作格式:

tmpstr = ''
tmpstr = ""
str(object='')
tmpstr = '18801118888-Shanghai'
tmpstr = 'To Live or diE, tHat Is a question'

 

五、格式化   

capitalize() :使首字母大写,其它字母小写
title() :每单词的首字母大写,其它字母小写
lower() :将字符串全部变成小写
upper() :将字符串全部变成大写
swapcase() :大写字母变小写,小写字线变大写
center() :设置输出长度,并将字符串居中显示,center(100)
ljust() :设置输出长度,并将字符串居左,ljust(100)
rjust() :设置输出长度,并将字符串居右,rjust(100)
zfill() :设置输出长度,如果字符串小于长度值,则左侧用'0'补充。
expandtabs() :将tab键转换为空格,默认一个tab转换成8个空格
translate() :将字符串按按照,一定的映射关系进行替换
tmptable = str.maketrans('abcde','12345') 生成映射关系表
tmpstr.translate(tmptable) 根据映射关系表生成字符串

  1.format :格式化输出

'Hi {} ,age {}'.format('Tom',18)
'Hi {1} ,age {0} {0}'.format('Tom',18)
'Hi {name},age {age}'.format(name='Tom',age=20)

  2.:[填充字符][对齐方式 <^>][宽度]

'{0:*>10}'.format(88)
'{0:*<10}'.format(88)
'{0:*^10}'.format(88)

  3.精度与进制

'{0:.3f}'.format(1/6)
'{0:b}'.format(11) 二进制
'{0:o}'.format(11) 八进制
'{0:x}'.format(11) 十六进制
'{0:,}'.format(123456789) 千分位格式化

  4.字典列表参数

tmpdict = {'name':'Tom','age':20}
'my name is {name},age is {age}'.format(**tmpdict)
tmplist = ['Tom',22]
'my name is {0[0]},age is {0[1]}'.format(tmplist)

 六、判断方法:

islower() :判断字母是不是全为小写
isupper() :判断字母是不是全为大写
isalnum() :判断字符串仅有字母数字组成
isalpha() :判断字符串仅有字母组成
isdigit() :判断字符串仅有自然数组成(正数和0)
isspace() :判断字符串仅有空字符组成,' \t\f\v\n\r '.isspace()
istitle() :判断字符串是不是标题形式(每个单词首字母大写,其它字母小写)
startswith() :判断字符串开始部分
endswith() :判断字符串结束部分  

 七、切割查找:

count() :查询某一字符出现在次数
strip() :删除字符串两端的空字符
              同时也可以删除指定的字符,字符没有顺序只要在两端即可。
              'li bail'.strip('li') ==> ' ba'
lstrip() :删除字符串左端的空字符
rstrip() :删除字符串右端的空字符
split() :从左侧开始按某些分隔符分隔字符,默认为空字符,返回列表
rsplit() :从右侧开始按某些分隔符分隔字符,默认为空字符,返回列表
splitlines():用换行符分隔字符串
partition() :从左侧开始按某些分隔符分隔字符,返回含有分割符的列表,切割一次
rpartition():从右侧开始按某些分隔符分隔字符,返回含有分割符的列表,切割一次
join() :用某一字符将某列表连接成字符串。'+'.join(tmpstr.splitlines())
find() :从左侧查找某一字符是不是在字符串中,在则返回索引值 ,不在则返回-1
rfind() :从右侧查找某一字符是不是在字符串中,在则返回索引值 ,不在则返回-1
index() :从左侧查找某一字符的索引,存在则返回索引值 ,不在抛出异常
rindex() :从右侧查找某一字符的索引,存在则返回索引值 ,不在抛出异常
replace() :将匹配的字符换成其它字符

 八、序列操作:

        在python中我们将由多个独立的对象或元素构成的新对象,称之为序列。python为序中每一个独立的对象或元素从0开始编上序号,这种序号我们称之为索引。

       Python包含 6 中内建的序列,包括列表、元组、字符串、Unicode字符串、buffer对和range对象。序列操作是通用的,本节就以字符串为例讲解序列操作。

       1.索引操作:S = 'LIBai,dufu,baijuyi'

 

按照元素位置索引值取元素,编号依次为 0 1 2 3 ……。也可以从右向左依次为 -1 -2   -3 .....
tmpstr[0]
tmpstr[3]
tmpstr[-1]

 

  2.切片操作:

获取一定索引范围的元素,也可以设置步长,即每隔几个元素取一次元素
tmpstr[2:5] tmpstr[2:5:2]
tmpstr[:] tmpstr[::3]
tmpstr[-3:-1] tmpstr[-3:-1:2] tmpstr[-1:-3:-1] tmpstr[::-1]

 3.加法 乘法操作:

加法是将多个序列合并成一个;乘法是指对序列重复输出的次数
      tmpstr + 'ABC'
      tmpstr * 3
成员资格操作:
    'XY' in tmpstr
    'XY' not in tmpstr
序列内建函数:
  求序列长度len(); 求序列中最大值 max(); 求序列中最小值 min()
      len(tmpstr)
      max(tmpstr)
      min(tmpstr)

九、编码与解码:

        内存里的字符 → 内存里的 unicode → 字体文件中的 gid 序列 → 字体文件中的矢量图序列 → 点阵化送显示屏

                 字节、字符、字符集、字符码、字符编码

      1.字节

             字节(Byte)是计算机中数据存储的基本单元,一字节等于一个8位的比特,计算机中的所有数据,不论是保存在磁盘文件上的还是网络上传输的数据(文字、图片、视频、音频文件)都是由字节组成的。

      2.字符

           你正在阅读的这篇文章就是由很多个字符(Character)构成的,字符一个信息单位,它是各种文字和符号的统称,比如一个英文字母是一个字符,一个汉字是一个字符,一个标点符号也是一个字符。

      3.字符集

            字符集(Character Set)就是某个范围内字符的集合,不同的字符集规定了字符的个数,比如 ASCII 字符集总共有128个字符,包含了英文字母、阿拉伯数字、标点符号和控制符。而 GB2312 字符集定义了7445个字符,包含了绝大部分汉字字符。

     4.字符码

          字符码(Code Point)指的是字符集中每个字符的数字编号,例如 ASCII 字符集用 0-127连续的128个数字分别表示128个字符,例如 "A" 的字符码编号就是65。

     5.字符编码

         字符编码(Character Encoding)是将字符集中的字符码映射为字节流的一种具体实现方案,常见的字符编码有 ASCII 编码、UTF-8 编码、GBK 编码等。某种意义上来说,字符集与字符编码有种对应关系,例如 ASCII 字符集对应 有 ASCII 编码。

         ASCII 字符编码规定使用单字节中低位的7个比特去编码所有的字符。例如"A" 的编号是65,用单字节表示就是0×41,因此写入存储设备的时候就是b'01000001'。

     6.编码、解码

          编码的过程是将字符转换成字节流,解码的过程是将字节流解析为字符。

 

posted @ 2020-05-02 17:04  coisini-1  阅读(370)  评论(0编辑  收藏  举报