zoukankan      html  css  js  c++  java
  • Python_003(字符串的神操作)

    一.编码问题

      1.编码:计算机最早是ACSII码,美国人创造的,包含了英文字母(大写字母,小写字母)数字,标点等特殊符号;

        :共有7位0和1组成,表示128个ACSII码,但是计算机对7这个数字不敏感,所以在每一个ACSII码前面加了一个0

        所以补充到8位(bit)比特,8位构成一个字节(byte)

      2.GBK:国标码,由于计算机的传播,ACSII只有256个位置,所以国标码设置成了2个字节,有16位

      3.Unicode:万国码,升级到了32位,有4个字节,造成了浪费

      4.utf-8:根据文字内容进行具体编码:英文:一个字节;欧洲文字:16位,2byte;中文:32位:3byte,24位

    二.数据类型

      1.int:简要操作:a = 3 print(a.bit_length())主要是看3占多少位二进制位  输出结果为 2  因为3用二进制表示为11;

      2.bool:转换时,Ture = 1 ,False = 0

        int转换bool类型时,0表示False, 1表示True;   所以在写循环时:while True = while 1

        str转换bool类型时,空的为False(None也是空,深坑请留意),非空为True;

      3.str:一些常用操作:

        3.1 str索引和切片

          索引:就是下标(从0开始,深坑请留意) s = "***"  print(s[count])就会直接打印下标为count的字符;

            如果count为负值,代表从后往前找,-1代表最后一个;

          多个字符截取:s = "***" print(s[起始位置:结束位置:步长])  如果没有步长,代表步长为1,截取字符串中的起始位置和结束位置-1

          内的所有字符,这叫顾头不顾腚!   如果有步长,步长为n,每n位截取一个,截取的是第一位

          如果步长为负:起始位置>结束位置,并且从右往左截取! 若下标超出字符串长度时,会报错!

        3.2 str常用操作字母大小写

          s1 = s.capitalize()首位字母大写,其他字母全小写

          s1 = s.upper/lower()全部变成大写/小写  s1 = s.swapcase()大小写互相转换

          s1 = s.title()每个被特殊字符隔开的字母首字母大写,中文也算是特殊字符!

        3.3 str常用操作对字符的切割

          s1 = "字符串" newstr = s1.center(拉长到几位,"填充元素")

          s1 = "  字符串 " newstr = s1.strip()(去除字符串两边的元素)lstrip:去左边的元素; rstrip:去右边的元素;

            (如果你的字符串是这样的"aaaaaa哈哈哈aaaaaaaaaaaaaa",s1.strip("a")输出结果为:哈哈哈,会一直消除,它只管两边),也可以消制表符( )换行符( )

          s1 = " 字符串  " s1 = s1.replace("字符串","替换字符串",替换个数)(这里等号左边的s1是被赋值成了一个新字符串返回,

            而不是在原字符串上添加了进行了操作!)

          s1 = "字符串" s1 = s1.split("用什么来切") 你用什么切,什么就没有了.切完之后变成了一个列表,

          (如果你的刀切在边缘,你会得到一个空字符,并不是什么都没有了,深坑请留意)

        4. 字符串查找

          s1 = "字符串" newstr = s1.startswith/endswith("元素")判断是不是以元素开头/结尾

          s1 = "字符串" newstr = s1.count("元素")查找字符串中有几个"元素"

          s1 = "字符串" newstr = s1.find("元素",起始位置,结束位置)查找"元素"出现的位置,如果没有,返回-1;可以切片找

            例:s1 = "欢迎来到英雄联盟" newstr = s1.find("英雄")这里它查找时是按两位为一位查找的(欢迎:0! 迎来:1! 来到:2!...)结果为4

          s1 = "字符串" newstr = s1.index("元素")这个查找不到,会报错!

        5. 遍历

          for循环:for c in s: print(c)意思是把s中的每一个字符交给前面的c循环,这个c是一个自定义的变量,从s中取出什么c就为什么

          缺点:没有索引,c只能代表从s取出来的字符,赋值给变量c,不是索引!

          语法: for 变量 in 可迭代对象:  循环体

    注意:字符串的一切操作对原字符串无影响,只有重新赋值,变成新字符串,而列表是在原列表的基础上进行的操作

  • 相关阅读:
    SpringBoot整合jsp
    SpringBoot常用application.properties配置
    SpringBoot入门
    vue cli创建vue项目
    vue 指令
    vue hello
    pytest doc
    atom
    java csvutil
    Django uuidfield 实现自动生成唯一列,并设置为主键
  • 原文地址:https://www.cnblogs.com/0627zhou/p/9263818.html
Copyright © 2011-2022 走看看