• 基本数据类型及内置方法(整型和字符串)


    基本数据类型及内置方法

    一.数字类型int(整型)与float(浮点型)

    有序/无序:有索引的类型都是有序的

    可变/不可变:值变id变为不可变类型;值变id不变为可变类型

    整型

    用途:用来存如年龄 证件号等整数值

    定义方法

    age = 18
    #本质为
    age = int(18)

    常用方法之进制转化

    #二进制转十进制
    print(int('110', 2))
    6
    #八进制转十进制
    print(int('123', 8))
    83
    #十六进制转十进制
    print(int('123', 16))
    291

    #十进制转二进制
    print(bin(123))
    0b1111011 #0b为二进制的标识
    #十进制转八进制
    print(oct(123))
    0o173     #0b为八进制的标识
    #十进制转十六进制
    print(hex(123))
    0x7b      #0b为十六进制的标识

    浮点型

    用途:用来存如身高 体重等小数值

    定义方法

    a = 2.1
    #本质为
    a = float(2.1)
    a = '2.1'
    b = float(a)
    print(type(b))
    c = int(b)
    print(type(c))
    #输出结果
    <class 'float'>
    <class 'int'>

    #注意在浮点型的字符串转化为整型时必须要先转化为浮点型

    总结:整型和浮点型都只能存一个值,是无序的不可变的类型

    常用与算术运算和比较运算

    a = 1
    print(id(a))
    a = 2
    print(id(a))
    #输出结果
    140725937795344
    140725937795376

    字符串(str)

    用途:用于存储一些描述性信息

    定义方式:单引号/双引号/三个单引号/三个双引号

    以上方式没有任何区别,但是不能混用

    r:转义,在字符串前加小写r,将字符串恢复为原本的形式

    字符串嵌套时不能使用同种引号

    personal_information = 'bing is 'a' boy'#错误示范
    print(personal_information)
    #输出结果为
    personal_information = 'bing is 'a' boy'
                                        ^
    SyntaxError: invalid syntax

    personal_information = 'bing is "a" boy'
    print(personal_information)
    #输出结果为
    bing is "a" boy

    personal_information = 'bing is "a" boy'
    #本质为
    personal_information = str'bing is "a" boy'

    常用方法

    重点

    1 索引取值

    pi = 'bing is a boy'
    #从该字符串中取出'a'
    print(pi[8])
    print(pi[-5])
    #输出结果为
    a
    a
    #字符串取值可以正向取 反向取,但只能取不能存

    2 索引切片(截取字符串中的一小段字符)

    pi = 'bing is a boy'
    #从该字符串中取出'is'
    print(pi[4:7])
    #从该字符串中取出'boy'
    print(pi[10:])
    print(pi[-3:])
    #从该字符串中取出'bing'
    print(pi[:4])
    #将该字符串取反
    print(pi[::-1])
    #输出结果为
    is
    boy
    boy
    bing
    yob a si gnib

    3 成员运算(in和not in)

    pi = 'bing is a boy'
    #判断'is'是否在该字符串中
    print('is' in pi)      #in表示存在,如果正确则返回True错误则返回False
    print('is' not in pi)  #not in表示不存在,如果正确则返回True错误则返回False
    #输出结果为
    True
    False

    4 strip():移除字符串首尾指定的字符(默认移除空格)

    #不指定字符默认移除空格
    pi = '       bing is a boy'
    pi1 = pi.strip()
    print(pi1)
    #输出结果为
    bing is a boy

    #strip()移除指定的字符
    pi = '*********bing is a boy****'
    pi1 = pi.strip('*')
    print(pi1)
    #输出结果为
    bing is a boy

    5 split(切分):对字符串进行切分,可以指定切分分割符,返回是一个列表

    #不指定分割符,默认以空格切分
    pi = 'bing is a boy'
    print(pi.split())
    #输出结果为
    ['bing', 'is', 'a', 'boy']

    #指定分割符
    pi = 'bing|is|a|boy'
    print(pi.split('|'))
    #输出结果为
    ['bing', 'is', 'a', 'boy']

    6 len():获取当前数据中元素的个数

    pi = 'bing is a boy'
    print(len(pi))
    #输出结果为
    13

    需要掌握

    1 strip, lstrip, rstrip

    lstrip:去除字符串左边的*号

    rstrip:去除字符串右边的*号

    pi = '***bing is a boy***'
    print(pi.strip('*'))
    print(pi.lstrip('*'))
    print(pi.rstrip('*'))
    #输出的结果为
    bing is a boy
    bing is a boy***
    ***bing is a boy

    2 lower():将英文字符串全部变小写

    upper():将英文字符串全部变大写

    pi = 'bing is A Boy'
    print(pi.upper())
    print(pi.lower())
    #输出结果为
    BING IS A BOY
    bing is a boy

    3 startswith():判断字符串是否以括号内指定的字符开头,结果为布尔值

    endswith():判断字符串是否以括号内指定的字符结尾,结果为布尔值

    pi = 'bing is a boy'
    print(pi.startswith('b'))
    print(pi.endswith('b'))
    True
    False

    4 .格式化输出之format()

    name = 'bing'
    age = '21'
    #类似与占位符%s固定位置的传值
    print('你的名字是:{}, 你的年龄是:{}'.format(name, age))
    #不依赖位置的传值  
    print('你的名字是:{name}, 你的年龄是:{age}'.format(age=age, name=name))
    #利用索引传值
    print('你的名字是:{1}, 你的年龄是:{0}'.format(age, name))
    #输出的结果为
    你的名字是:bing, 你的年龄是:21
    你的名字是:bing, 你的年龄是:21
    你的名字是:bing, 你的年龄是:21

    5 split():按照从左到右的顺序对字符串进行切分,可以指定切割次数

    rsplit():与split的相反,从左往右切割,可以指定切割次数

    pi = 'bing*is*a*boy'
    print(pi.split('*', 2))#从左往右切割,切割2次
    print(pi.rsplit('*', 1))#从有往左切割,切割1次

    6 jion():从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串

    pi = 'bing is a boy'
    print('*'.join(pi))
    #输出结果为
    b*i*n*g* *i*s* *a* *b*o*y

    7 replace():将字符串中的元素进行替换,参数:先老值 后新值

    pi = 'bing is a boy'
    print(pi.replace('bing', 'tom'))
    #指定替换的个数
    print(pi.replace('b', 'a', 1))
    #输出结果为
    tom is a boy
    aing is a boy

    8 isdight():判断当前字符串中的数据是否是一个数字,返回结果为布尔值

    a = '123456'
    print(a.isdigit())
    b = '112c221'
    print(b.isdigit())
    #输出结果为
    True
    False

    了解操作

    # 1.find,rfind,index,rindex,count
    # 1.1 find:从指定范围内查找子字符串的起始索引,找得到则返回数字1,找不到则返回-1
    >>> msg='tony say hello'
    >>> msg.find('o',1,3)  # 在索引为1和2(顾头不顾尾)的字符中查找字符o的索引
    1  
    # 1.2 index:同find,但在找不到时会报错
    >>> msg.index('e',2,4) # 报错ValueError
    # 1.3 rfind与rindex:略
    # 1.4 count:统计字符串在大字符串中出现的次数
    >>> msg = "hello everyone"
    >>> msg.count('e')  # 统计字符串e出现的次数
    4
    >>> msg.count('e',1,6)  # 字符串e在索引1~5范围内出现的次数
    1

    # 2.center,ljust,rjust,zfill
    >>> name='tony'
    >>> name.center(30,'-')  # 总宽度为30,字符串居中显示,不够用-填充
    -------------tony-------------
    >>> name.ljust(30,'*')  # 总宽度为30,字符串左对齐显示,不够用*填充
    tony**************************
    >>> name.rjust(30,'*')  # 总宽度为30,字符串右对齐显示,不够用*填充
    **************************tony
    >>> name.zfill(50)  # 总宽度为50,字符串右对齐显示,不够用0填充
    0000000000000000000000000000000000000000000000tony

    # 3.expandtabs
    >>> name = 'tony hello'  # 表示制表符(tab键)
    >>> name
    tony    hello
    >>> name.expandtabs(1)  # 修改 制表符代表的空格数
    tony hello

    # 4.captalize,swapcase,title
    # 4.1 captalize:首字母大写
    >>> message = 'hello everyone nice to meet you!'
    >>> message.capitalize()
    Hello everyone nice to meet you!  
    # 4.2 swapcase:大小写翻转
    >>> message1 = 'Hi girl, I want make friends with you!'
    >>> message1.swapcase()  
    hI GIRL, i WANT MAKE FRIENDS WITH YOU!  
    #4.3 title:每个单词的首字母大写
    >>> msg = 'dear my friend i miss you very much'
    >>> msg.title()
    Dear My Friend I Miss You Very Much

    # 5.is数字系列
    #在python3中
    num1 = b'4' #bytes
    num2 = u'4' #unicode,python3中无需加u就是unicode
    num3 = '四' #中文数字
    num4 = 'Ⅳ' #罗马数字

    #isdigt:bytes,unicode
    >>> num1.isdigit()
    True
    >>> num2.isdigit()
    True
    >>> num3.isdigit()
    False
    >>> num4.isdigit()
    False

    #isdecimal:uncicode(bytes类型无isdecimal方法)
    >>> num2.isdecimal()
    True
    >>> num3.isdecimal()
    False
    >>> num4.isdecimal()
    False

    #isnumberic:unicode,中文数字,罗马数字(bytes类型无isnumberic方法)
    >>> num2.isnumeric()
    True
    >>> num3.isnumeric()
    True
    >>> num4.isnumeric()
    True

    # 三者不能判断浮点数
    >>> num5 = '4.3'
    >>> num5.isdigit()
    False
    >>> num5.isdecimal()
    False
    >>> num5.isnumeric()
    False

    '''
    总结:
      最常用的是isdigit,可以判断bytes和unicode类型,这也是最常见的数字应用场景
      如果要判断中文数字或罗马数字,则需要用到isnumeric。
    '''

    # 6.is其他
    >>> name = 'tony123'
    >>> name.isalnum() #字符串中既可以包含数字也可以包含字母
    True
    >>> name.isalpha() #字符串中只包含字母
    False
    >>> name.isidentifier()
    True
    >>> name.islower()  # 字符串是否是纯小写
    True
    >>> name.isupper()  # 字符串是否是纯大写
    False
    >>> name.isspace()  # 字符串是否全是空格
    False
    >>> name.istitle()  # 字符串中的单词首字母是否都是大写
    False

     

  • 相关阅读:
    [LeetCode] Exclusive Time of Functions 函数的独家时间
    [LeetCode] Design Log Storage System 设计日志存储系统
    [LeetCode] Find the Derangement of An Array 找数组的错排
    [LeetCode] 632. Smallest Range Covering Elements from K Lists 覆盖K个列表元素的最小区间
    [LeetCode] 633. Sum of Square Numbers 平方数之和
    [LeetCode] Design Excel Sum Formula 设计Excel表格求和公式
    [LeetCode] Delete Operation for Two Strings 两个字符串的删除操作
    [LeetCode] Kill Process 结束进程
    [LeetCode] Course Schedule III 课程清单之三
    [LeetCode] K Inverse Pairs Array K个翻转对数组
  • 原文地址:https://www.cnblogs.com/a736659557/p/11801195.html
Copyright © 2020-2023  润新知