zoukankan      html  css  js  c++  java
  • python基础(二)- 字符串

    一、运算符

    1、结果是值:

    算术运算

    赋值运算

    2、结果是布尔值:

    比较运算:>   <   ==    >=   <=  !=  <>

    逻辑运算:and  or  not

    成员运算:in

    身份运算:用于比较连个对象的存储单元(内存地址),

      is      判断两个标识符是否引用自一个对象,如果相同则为True ==>  id(a) == id(b)

      

    a = "abc"
    b = "abc"
    a is b  ==> True
    
    a=12
    b=12
    a is b ==> True
    
    ==============
    
    a = [1,2,3]
    b = [1,2,3]
    a is b ==> False
    #逻辑运算

    #
    没有括号 按照顺序从左往右运算 #and运算 左右为真结果才为真;左面为真,结果取决于右面,最终结果取右面值; # or 运算 左右一个值为真结果为真;左面为真,结果就为真,值取左值即可;左面为假,不管右面值真假,都取右面值

    # 混合运算 and优先

    位运算:二进制

    二、基本数据类型

    1、数字   int

    - int
    #将字符串转换为数字
    a = "123"
    print(type(a),a)

    b = int(a)
    print(type(b),b)

    num = "0011"
    v = int(num, base=16)
    print(v)

    - bit_lenght
    # 当前数字的二进制位数,至少用n位表示
    r = age.bit_length()

    2、字符串  str

    方法:

    # test = "aLex"
    # 首字母大写
    # v = test.capitalize()
    # print(v)

    # 所有变小写,casefold更牛逼,很多未知的对相应变小写
    # v1 = test.casefold()
    # print(v1)
    # v2 = test.lower()
    # print(v2)

    # 设置宽度,并将内容居中
    # 20 代指总长度
    # * 空白未知填充,一个字符,可有可无
    # v = test.center(20,"中")
    # print(v)

    # 去字符串中寻找,寻找子序列的出现次数
    # test = "aLexalexr"
    # v = test.count('ex')
    # print(v)

    # test = "aLexalexr"
    # v = test.count('ex',5,6)
    # print(v)

    # 以什么什么结尾
    # 以什么什么开始
    # test = "alex"
    # v = test.endswith('ex')
    # v = test.startswith('ex')
    # print(v)

    # 从开始往后找,找到第一个之后,获取其未知
    # > 或 >=
    # test = "alexalex"
    # 未找到 -1
    # v = test.find('ex')
    # print(v)

    # index找不到,报错 忽略
    # test = "alexalex"
    # v = test.index('8')
    # print(v)

    def split(self, sep=None, maxsplit=-1): # real signature unknown; restored from __doc__
            """
        S.split(sep=None, maxsplit=-1) -> list of strings
        sep为分割标记,maxsplit为分割次数,结果为列表,不包含分割符       
            
    print('abcaac'.split('c',1))  
    ['ab', 'aac']
    
    print('abcaac'.split('d',1))
    #['abcaac']
    
    -------------------------
    
    def partition(self, sep): # real signature unknown; restored from __doc__
            """
            以sep为分割,将S分成head,sep,tail三部分
    
            S.partition(sep) -> (head, sep, tail)
    
            Search for the separator sep in S, and return the part before it,
            the separator itself, and the part after it.  If the separator is not
            found, return S and two empty strings.
           没找到分割符,返回两个空字符串    
            """
            pass
    
    print('abcaac'.partition('a'))
    # ('', 'a', 'bcaac')
    print('abcaac'.partition('d'))
    # ('abcaac', '', '')
    split partiton
            格式化输出
           
            形式一.
            >>> print('{0}{1}{0}'.format('a','b'))
            aba
    
            形式二:(必须一一对应)
            >>> print('{}{}{}'.format('a','b'))
            Traceback (most recent call last):
              File "<input>", line 1, in <module>
            IndexError: tuple index out of range
            >>> print('{}{}'.format('a','b'))
            ab
    
            形式三:
            >>> print('{name}--{age}'.format(age=12,name='lhf'))
            lhf--12
    
            S.format(*args, **kwargs) -> str
    format
    def replace(self, old, new, count=None): # real signature unknown; restored from __doc__
            """
            S.replace(old, new[, count]) -> str
    
            Return a copy of S with all occurrences of substring
            old replaced by new.  If the optional argument count is
            given, only the first count occurrences are replaced.
            """
            return ""
    
    print('aaaaa'.replace('a','1',2))
    #11aaa
    replace
    def join(self, iterable): # real signature unknown; restored from __doc__
            """
            S.join(iterable) -> str
    
            Return a string which is the concatenation of the strings in the
            iterable.  The separator between elements is S.
            """
            return ""
    
            #对序列进行操作(分别使用' '与':'作为分隔符)
            >>> seq1 = ['hello','good','boy','doiido']
            >>> print ' '.join(seq1)
            hello good boy doiido
            >>> print ':'.join(seq1)
            hello:good:boy:doiido
    
    
            #对字符串进行操作
    
            >>> seq2 = "hello good boy doiido"
            >>> print ':'.join(seq2)
            h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o
    
    
            #对元组进行操作
    
            >>> seq3 = ('hello','good','boy','doiido')
            >>> print ':'.join(seq3)
            hello:good:boy:doiido
    
    
            #对字典进行操作
    
            >>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}
            >>> print ':'.join(seq4)
            boy:good:doiido:hello
    join
    num = "1"  #unicode
    num.isdigit()   # True
    num.isdecimal() # True
    num.isnumeric() # True
    
    num = "1" # 全角
    num.isdigit()   # True
    num.isdecimal() # True
    num.isnumeric() # True
    
    num = b"1" # byte
    num.isdigit()   # True
    num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
    num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'
    
    num = "IV" # 罗马数字
    num.isdigit()   # True
    num.isdecimal() # False
    num.isnumeric() # True
    
    num = "" # 汉字
    num.isdigit()   # False
    num.isdecimal() # False
    num.isnumeric() # True
    
    ===================
    isdigit()
    True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
    False: 汉字数字
    Error: 无
    
    isdecimal()
    True: Unicode数字,,全角数字(双字节)
    False: 罗马数字,汉字数字
    Error: byte数字(单字节)
    
    isnumeric()
    True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
    False: 无
    Error: byte数字(单字节)
    
    ================
    import unicodedata
    
    unicodedata.digit("2")   # 2
    unicodedata.decimal("2") # 2
    unicodedata.numeric("2") # 2.0
    
    unicodedata.digit("2")   # 2
    unicodedata.decimal("2") # 2
    unicodedata.numeric("2") # 2.0
    
    unicodedata.digit(b"3")   # TypeError: must be str, not bytes
    unicodedata.decimal(b"3") # TypeError: must be str, not bytes
    unicodedata.numeric(b"3") # TypeError: must be str, not bytes
    
    unicodedata.digit("")   # ValueError: not a digit
    unicodedata.decimal("") # ValueError: not a decimal
    unicodedata.numeric("") # 8.0
    
    unicodedata.digit("")   # ValueError: not a digit
    unicodedata.decimal("") # ValueError: not a decimal
    unicodedata.numeric("") # 4.0
    
    #"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","万","亿"
    
    python中str函数isdigit、isdecimal、isnumeric的区别
    isdigit() isdecimal() isnumeric()


    # 格式化,将一个字符串中的占位符替换为指定的值
    # test = 'i am {name}, age {a}'
    # print(test)
    # v = test.format(name='alex',a=19)
    # print(v)

    # test = 'i am {0}, age {1}'
    # print(test)
    # v = test.format('alex',19)
    # print(v)

    # 格式化,传入的值 {"name": 'alex', "a": 19}
    # test = 'i am {name}, age {a}'
    # v1 = test.format(name='df',a=10)
    # v2 = test.format_map({"name": 'alex', "a": 19})

    # 字符串中是否只包含 字母和数字
    # test = "123"
    # v = test.isalnum()
    # print(v)

  • 相关阅读:
    fastlane
    OSI 模型
    iOS面试—0、技术点
    Git 提交规范
    iOS Aggregate 合并静态库
    iOS 应用分发平台
    json 转swift的工具
    敏捷开发
    mac 打包dmg
    iOS 获取素材
  • 原文地址:https://www.cnblogs.com/chenzhuo-/p/6092470.html
Copyright © 2011-2022 走看看