zoukankan      html  css  js  c++  java
  • 不同数据类型的处理函数(一)

    紫色部分使用率是非常高的,尽量掌握。以下例程以python3为例,2.x略有差别。
    python中处理数据函数有很多很多种,作为使用者没有必要完全掌握,掌握一个原则:“会用就行”,一些不常见的函数能够随时“学会使用”就可以了。

    1.处理数字的函数非常多,但是一般情况下数字只是用于计算,只需要掌握.bit_length()就可以。
    x.bit_length() 功能:用于计算x转换为二进制后的位数,x为int型
    v1=3 
    v2=v1.bit_length()
    print(v2)  #3换成二进制是11,所以输出是2
    v3=4
    v4=v3.bit_length()  #4换成二进制是100,所以输出是3
    print(v4)
    v5=255  #255换成二进制是1111 1111,所以输出是8
    v6=v5.bit_length()
    print(v6)

    输出:

    2

    3

    8

    注意:若x为str型,报错

    2.处理字符串函数。

    x.capitalize()  功能:将首字母大写
    v1="abc"
    v2=v1.capitalize()
    print(v2)

    输出:Abc

    注意:若x为int型,结果不报错,但是没有任何意义。



    x.casefold() 功能:将x中所有的大写字母小写
    v1="AbC"
    v2=v1.casefold()
    print(v2)

    输出:

    abc



    .center() 作用:按照设定的总长度居中,并且可用任意字符补充其余位置,缺省值默认为空格。
    原形为:center(self, *args, **kwargs)。括号中第一部分可以忽略,第二部分为总长度,不能缺省,第三部分为填充其余位置的字符,缺省值默认为空格。
    v1="AbC"
    v2=v1.center(20,"#")
    print(v2)
    v3="AbC"
    v4=v3.center(20)
    print(v4)

    输出:

    ########AbC#########
              AbC

    注意:第三部分必须是一个字符,如果是大于一个字符,提示报错The fill character must be exactly one character long
    ,意思是所占位置必须是一个字符长度。在python中,没有“字符”的定义,一个字符也是字符串,这里为了方便理解,称为字符。

    x.ljust() 作用:字符串左居中,总长度须设定,空余位置用设定字符补齐。
    v1="abc"
    v2=v1.ljust(10,"*")
    print(v2)
    输出:abc*******
    x.rjust()  作用:字符串右居中,总长度须设定,空余位置用设定字符补齐。
    x.zfill() 作用:字符串右居中,总长度须设定,其余位置强制0补齐。


    x.casefold()
    x.lower()
    作用:将x中所有字符小写。
    
    
    v1="AbC"
    v2=v1.casefold()
    print(v2)
    v3="AbC"
    v4=v3.lower()
    print(v4)

    输出:

    abc
    abc

    虽然两者作用看似相同,但是作用范围略有区别。casefold()作用范围更广,可以将大写英文字母之外的其他字符也转为小写,比如希腊字符等。lower()是将大写英文字母转为小写字母。所以,日常使用,我们只需要记住casefold()即可。

    x.upper() 作用:将x中所有字符转为大写。

     

    x.swapcase() 作用:将字符串中所有大写转小写,小写转大写,其他字符不变。

    v1="_abC"
    v2=v1.swapcase()
    print(v2)

    输出:

    _ABc

    x.count() 功能:寻找子序列出现的次数。(计算x中某一个或几个连续字符出现的次数。)

    函数原形:count(self, sub, start=None, end=None) 后两项可以省略。

    v1="AbCAbCAbC"
    v2=v1.count("Ab")  #Ab出现了3次,所以输出为3
    print(v2)
    v1="AbC"
    v2=v1.count("AC")  #AC虽然出现了3次,但是AC并不连续,所以输出为0
    print(v2)

    输出:

    3
    0

    v1="AbCAbCAbC"
    v2=v1.count("Ab",3)
    print(v2)
    v1="AbCAbCAbC"
    v2=v1.count("Ab",4)
    print(v2)

    输出:

    2
    1

    start的意思是起始位置,start=3时,重复次数是2,start=4时重复次数是4,说明第一个A的位置不是0,而是1。

    v1="AbCAbCAbC"
    v2=v1.count("Ab",3,7)
    print(v2)
    v1="AbCAbCAbC"
    v2=v1.count("Ab",3,8)
    print(v2)

    输出:

    1

    2

    end是结束位置,end=7时,重复1次,end=8时重复2次。7的位置是第三个b,8的位置是第三个C,所以起始位置包含start,不包含end。可以理解为高中所学的“区间”概念,左闭右开。

    注意:类似的,在原型中有=none的都是可以省略的。

    x.endswitch()  作用:检测是否以某一个字符串结束,返回值是布尔型,即true false。

    v1="ABC"
    v2=v1.endswith("C")
    print(v2)
    v1="ABC"
    v2=v1.endswith("D")
    print(v2)
    v1="ABCDE"
    v2=v1.endswith("CE") #CE不连续,所以输出是false
    print(v2)

    输出:

    True
    False

    False

    x.startswitch()  作用:检测是否以某一个字符串开始,返回值是布尔型,即true false。和x.endswitch() 用法一致。

     

    x.find()作用:寻找子序列是否存在。如果不存在,返回值为-1;如果存在,返回值是所在位置。第一个位置是0

    v1='abcabc'
    v2=v1.find('bc')
    print(v2)
    v1='abcabc'
    v2=v1.find('ca')
    print(v2)

    输出:

    1

    2

    x.find()函数还可以设置查找启示和停止位置。同样遵循左闭右开的原则。

    v1='abcabc'
    v2=v1.find('bc',1,2)   
    print(v2)  # 输出: -1
    v1='abcabc'
    v2=v1.find('bc',1,3)
    print(v2)  # 输出: 1

    index函数和find()函数功能一样,都是寻找;但是当找不到时,find()的返回值是-1,index()报错。

    x.format 作用:替换指定字符

    v1="{XXX}棒棒哒 每天{age}岁"
    print(v1)
    v2=v1.format(XXX="王栋轩",age="18")
    print(v2)
    

     输出:

    {XXX}棒棒哒 每天{age}岁
    王栋轩棒棒哒 每天18岁

    在v1中,需要代替的字符串用大括号{},括起来。也可以不用写“XXX”和“age”,用占位符表示,从0开始。

    v1="{0}棒棒哒 每天{1}岁"
    print(v1)
    v2=v1.format("王栋轩","18")
    print(v2)  #输出:王栋轩棒棒哒 每天18岁
    

    另外一种书写方式:

    v1="{xxx}棒棒哒 每天{age}岁"
    print(v1)
    v2=v1.format_map({"xxx":"王栋轩","age":"18"})
    print(v2)

    不同的是,传入的值是{"xxx":"王栋轩","age":"18"}

    另外一个替换的函数是replace()

    v1="XXX棒棒哒,XXX美美哒"
    v2=v1.replace('XXX',"王栋轩")
    v3=v1.replace('XXX',"王栋轩",1)
    v4=v1.replace('XXX',"王栋轩",2)
    print(v2,v3,v4)

    输出:王栋轩棒棒哒,王栋轩美美哒 王栋轩棒棒哒,XXX美美哒 王栋轩棒棒哒,王栋轩美美哒

     

    x.isalnum() 作用:判断字符串中是否只包含数字和字母;如果只包含数字和字符串,返回值是true;否则,false

    v1="123abc-+"
    v2=v1.isalnum()
    print(v2)
    v1="123abc"
    v2=v1.isalnum()
    print(v2)

    输出:

    False
    True

    x.isalpha()作用是判断字符串中是否只含有英文字母。是,返回true,不是,返回false。
    x.isdecimal()、x.isnumeric()和x.isdigit()用来判定是否只有数字,但是x.isdecimal()只能判定十进制的数字,x.isdigit()可以判定比较生僻的数字,比如②



    x.expandtabs()   作用:将转义字符 转为空格,空格数量为()中内容,缺省值为8。

    v1="12345679	1	23456	"
    v2=v1.expandtabs()
    print(v1)
    print(v2)

    输出

    x.isidentifier() 作用:检测字符串是否符合标识符命名规则。在python中,标识符命名规则为:只包含数字、字母和下划线,开头不能是字母。符合规则返回true,不符合返回false。
    x.islower 作用:检测字符串中是否都是小写字母,如果是,返回true,如果不是,返回false
    x.isprintable() 作用:检测字符串中是否含有不能打印的字符。例如转义字符, 等,这些都不能打印出来。如果含有,返回false,如果不含有,返回true
    x.isspace() 作用:检测字符串是否全部是空格(空字符串),是,返回true,不是,返回false
    x.istitle() 作用:检测字符串是否是标题,也就是每个单词首字母大写。
    x.title() 作用:将字符串转为标题,也就是每个单词首字母大写。
    x.islower() 作用:判断字符串中所有字符是不是小写字母,是,返回true,否,返回false
    x.isupper() 作用:判断字符串中所有字符是不是大写字母,是,返回true,否,返回false


    x.join()  作用:在原字符串中,每隔一个字符,插入一个新的字符。开头和结尾不加。
    v1="床前明月光"
    v2='  '
    v3=v2.join(v1)
    print(v3)

    输出:

    床_前_明_月_光

    x.strip()、x.rstrip()和x.lstrip()  作用:去掉字符串中的指定子序列,缺省值默认为去掉空格或

    v1="123456789"
    v2=v1.lstrip("236")
    v3=v1.rstrip("abc98a")
    v4=v1.strip("1")
    print(v2)
    print(v3)
    print(v4)

    输出:

    123456789
    1234567
    23456789

    从结果中可以看出,必须从“头”开始,如v2=v1.lstrip("236")中,v1的左侧“1”没有去掉,后边的所有字符不可能去掉。

    v1="  abc  "
    v2=v1.lstrip()
    v3=v1.rstrip()
    v4=v1.strip()
    print(v2)
    print(v3)
    print(v4)

    输出:

    x.translate() 作用:替换字符串中的部分字符

    v1='1383838438'
    m=str.maketrans('123456','abcdef') #maketrans()的作用是将两个字符串联系起来,为后边的替换做铺垫
    new_v1=v1.translate(m)
    print(new_v1)

    输出:

     ac8c8c8dc8

    x.partition()和x.rpartition()  作用:前者从左侧开始分割,后者从右侧开始分割,两者都只能分割成三部分

    v1='1383838438'
    v2=v1.partition('3')
    v3=v1.rpartition('3')
    print(v2,v3)

    输出:

    ('1', '3', '83838438') ('13838384', '3', '8')

    x.split()和x.rsplit()  作用:前者从左侧开始分割,后者从右侧开始分割,与partition()不同的是,可以分割成任意部分,而且弊端是分割的标志不再作为分割的结果。例如下面例子中的“3”不会出现在分割结果中。split()括号中缺省时,默认为分割成数量最多的部分,即碰到相同字符就分割。

    v1='1383838438'
    v2=v1.split('3',2)
    v3=v1.rsplit('3',2)
    print(v2,v3)

    输出:

    ['1', '8', '838438'] ['13838', '84', '8']

    x.splitlines()  作用:对换行符 进行分割。()中的参数是布尔值,true,false。true代表保留换行 ,false不保留 (这里的 不再是换行的意思,就是普通字符而已)。

    v1="张三
    李四
    王五"
    v2=v1.splitlines(True)
    v3=v1.splitlines(False)
    print(v2,v3)

    输出:['张三 ', '李四 ', '王五'] ['张三', '李四', '王五']

    注意:True or False 首字母必须大写!!!否则不识别!!!

  • 相关阅读:
    .net程序员书单
    脱敏小软件
    .NET处理HTTP请求
    WPF 按名称查找控件
    软件工程现行国标汇集
    企业应用架构模式读书笔记 第一章 分层
    mysql远程访问
    知道二叉树的先序和中序遍历,重建该二叉树
    微信小程序地图模块
    微信小程序蓝牙模块
  • 原文地址:https://www.cnblogs.com/lgwdx/p/9572792.html
Copyright © 2011-2022 走看看