• 不同数据类型的处理函数(一)


    紫色部分使用率是非常高的,尽量掌握。以下例程以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 首字母必须大写!!!否则不识别!!!

  • 相关阅读:
    linux权限补充:rwt rwT rws rwS 特殊权限
    关于Linux操作系统下文件特殊权限的解释
    Java学习笔记——Java程序运行超时后退出或进行其他操作的实现
    Java实现 蓝桥杯 算法提高 判断名次
    Java实现 蓝桥杯 算法提高 判断名次
    Java实现 蓝桥杯 算法提高 日期计算
    Java实现 蓝桥杯 算法提高 日期计算
    Java实现 蓝桥杯 算法提高 概率计算
    Java实现 蓝桥杯 算法提高 概率计算
    Java实现 蓝桥杯 算法提高 复数四则运算
  • 原文地址:https://www.cnblogs.com/lgwdx/p/9572792.html
Copyright © 2020-2023  润新知