zoukankan      html  css  js  c++  java
  • 数字类型内置方法一

    数字类型内置方法

    整型和浮点型统称伟数字型

    整型内置方法(int)

    1.用途: 年龄 号码 等级

    2.定义: 可以使用int()方法将纯数字的字符串转为十进的整型

    age = 18  #  age = int(10)
    print(type(age))
    

    <class 'int'>

    x = int('18')
    print(type(x))
    

    <class 'int'>

    x = int('11.1') #报错
    print(x)
    

    3.常规操作+内置方法: 算术运算+比较运算

    长整型

    长整型只在python2中,python3中不存在长整型.

    4.存一个值or多个值: 一个值

    5.有序or无序: 没有有序or无序一说

    可变or不可变

    id不变值可变,即在原值的基础上修改,则为可变数据类型;值变id也变,即重新申请一个空间放入新值,则为不可变数据类型。

    age = 18
    print(id(age))
    age += 1
    print(id(age))
    

    140714622350112
    140714622350144

    6.可变or不可变: 不可变数据类型

    浮点型内置方法(float)

    1.用途: 薪资 身高 体重

    2.定义: 可以使用float()方法将纯数字转为浮点型数字.

    age = 3.1  # age = float(3.1)
    print(type(age))
    <class 'float'>
    x = float('111')
    print(x)
    print(type(x))
    111.0
    <class 'float'>
    x = float('11.1')  # 报错
    print(type(x))
    
    <class 'float'>
    

    3.常用操作+内置方法:算术运算+比较运算

    4.存一个值or多个值:一个值

    5.有序or无序:无有序or无序一说

    salary = 3.1
    print(f'first:{id(salary)}')
    salary = 5.1
    print(f'second:{id(salary)}')
    
    first:4423173584
    second:4423173800
    

    6.可变or不可变:不可变数据类型

    字符串类型内置方法(str)

    1.用途:描述性质的东西,如人的名字、单个爱好、地址、国家等

    2.定义:使用''、""、''''''、""""""包裹的的一串字符

    name = 'kang'
    s1 = str(1.1)
    s2 = str([1,2,3])
    print(name)
    print(s1)
    print(s2)
    

    <class 'str'>
    <class 'str'>
    <class 'str'>

    3.常用操作+内置方法:常用操作和内置方法分为优先掌握(今天必须得记住)、需要掌握(一周内记住)、其他操作(了解)三个部分。

    优先掌握

    1. 按索引取值
    2. 切片
    3. 长度len
    4. 成员运算in|not in
    5. 移除空白strip
    6. 切分split
    7. 循环

    1.按索引取值(只可取不可改变)

    # str索引取值
    name = 'kang kang'
    #       0123456.. #索引序号
    print(name[0])
    print(name[2])
    

    k
    n

    2.切片, (顾头不顾尾, 后可加步长)

    # 索引切片
    name = 'kang kang'
    #       0123456.. #索引序号
    
    print(name[2:])  #切片2到最后
    print(name[2:6]) #切片2到6
    print(name[2:6:2]) #切片2-6步长为2
    # 了解,步长为正从左到右;步长为负从右到左
    print(name[-2:-5:-1]
    

    ng kang
    ng k
    n
    nak

    3.长度len

    # str长度
    name = 'kang kang'
    print(len(name))
    
    

    9

    4.成员运算in和not in

    # str成员运算
    name_lis = ['kang', 'lin', 'wei']
    
    print('lin' in name_lis)
    print('wei' in name_lis)
    print('haha' not in name_lis)
    

    True
    True
    True

    5.移除空白strip()

    # str移除空白strip()
    name = '   kang  kang***'
    
    print(name.strip())# strip()默认为‘ ’,并且不修改原值,新创建空间
    print(name.strip('*'))
    
    # strip()应用场景
    pwd = input('password: ')  # 用户可能会手抖输入空格
    if pwd.strip() == '123':
        print('密码输入成功')
    
    1. 切分split
    # str切分split
    
    info = "***kang male 19***"
    print(info.split()) # 默认以空格切割字符串
    print(info.split('*'))  #以*号切割
    print(info.split('*',2))
    

    ['kang', 'male', '19']
    ['', '', '', 'kang male 19', '', '', '']
    ['', '', 'kang male 19**']

    7.循环

    msg = 'hello kang'
    
    for i in msg:
        print(i)
    

    h
    e
    l
    l
    o

    k
    a
    n
    g

    需要掌握

    1. lstrip&rstrip
    2. lower&upper
    3. startswith&endswith
    4. rsplit
    5. join
    6. replace
    7. isdigit

    1.lstrip()和rstrip()

    name = '**kang**'
    
    print(name.lstrip('*'))
    print(name.rstrip('*'))
    

    kang**
    **kang

    2.lower()和upper()

    #str之lower和upper()
    
    name = 'Kang'
    print(name.lower()) #全变小写
    print(name.upper())  #全变大写
    

    kang
    KANG

    3.rsplit()

    # str之rsplit()
    name = '**kang**'
    
    print(name.rsplit('*',2))
    

    ['**kang', '', '']

    4.startswith()和endswith()

    name = 'Kang Wei'
    
    print(name.startswith('Kang'))
    print(name.endswith('wei'))
    

    True
    False

    5.join()

    lis = ['kang', 'haha', '19']
    print('*'.join(lis)) #以*号进行拼接
    
    kang*haha*19
    

    6.replace()

    # str值的replace
    name = 'kang'
    print(name.replace('n', 'l'))
    

    kalg

    7.isdigit()

    # str值的isdigit()  #判断是否为数字类型
    age = '18'
    print(age.isdigit()) # True  
    
    salary = '111.1'
    print(salary.isdigit()) # False
    
    

    其他操作(要求了解)

    1. find|rfind|index|rindex|count
    2. center|ljust|rjust|zfill
    3. expandtabs
    4. captalize|swapcase|title
    5. is系列

    1.find()、rfind()、index()、rindex()、count()

    # str之find()、rfind()、index()、rindex()、count()
    msg = 'my name is tank, tank shi sb, hha'
    
    print(f"msg.find('tank'): {msg.find('tank')}")  # 找不到返回-1
    print(f"msg.find('tank',0,3): {msg.find('tank',0,3)}")
    print(f"msg.rfind('tank'): {msg.rfind('tank')}")  # 找不到返回-1
    print(f"msg.index('tank'): {msg.index('tank')}")  # 找不到报错
    print(f"msg.rindex('tank'): {msg.rindex('tank')}")  # 找不到报错
          
    
    print(f"msg.count('tank'): {msg.count('tank')}")
    msg.find('tank'): 11
    msg.find('tank',0,3): -1
    msg.rfind('tank'): 17
    msg.index('tank'): 11
    msg.rindex('tank'): 17
    msg.count('tank'): 2
    

    2.center()、ljust()、rjust()、zfill()

    # str之center()、ljust()、rjust()、zfill()
    print(f"'info nick'.center(50,'*'): {'info nick'.center(50,'*')}")
    print(f"'info nick'.ljust(50,'*'): {'info nick'.ljust(50,'*')}")
    print(f"'info nick'.rjust(50,'*'): {'info nick'.rjust(50,'*')}")
    print(f"'info nick'.zfill(50): {'info nick'.zfill(50)}")  # 默认用0填充
    'info nick'.center(50,'*'): ********************info nick*********************
    'info nick'.ljust(50,'*'): info nick*****************************************
    'info nick'.rjust(50,'*'): *****************************************info nick
    'info nick'.zfill(50): 00000000000000000000000000000000000000000info nick
    

    3.expandtabs()

    # str之expandtabs()
    print(f"a\tb\tc: %s"%('a	b	c	'))  # 默认制表符8个空格
    print(f"'a\tb\tc'.expandtabs(32): %s"%('a	b	c	'.expandtabs(32)))
    a	b	c: a  b   c   
    'a	b	c'.expandtabs(32): a                               b                               c                               
    

    4.captalize()、swapcase()、title()

    # str之captalize()、swapcase()、title()
    name = 'nick handsome sWAPCASE'
    
    print(f"name.capitalize(): {name.capitalize()}")
    print(f"name.swapcase(): {name.swapcase()}")  # 大小写互转
    print(f"name.title(): {name.title()}")
    name.capitalize(): Nick handsome swapcase
    name.swapcase(): NICK HANDSOME Swapcase
    name.title(): Nick Handsome Swapcase
    

    5.is数字系列(只是为了告诉你,判断是否为数字时除了中文数字以后使用isdigit()即可)

    • isdecimal(): 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
    • isdigit(): 如果字符串只包含数字则返回True,否则返回False。
    • isnumeric(): 如果字符串中只包含数字字符,则返回True,否则返回False。
    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
    
    #"〇","零","一","壱","二","弐","三","参","四","五","六","七","八","九","十","廿","卅","卌","百","千","万","万","亿"
    

    6.is其他

    • isalnum(): 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
    • isalpha(): 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
    • islower(): 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
    • isspace(): 如果字符串中只包含空白,则返回True,否则返回False
    • isupper(): 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False。
    • istitle(): 如果字符串是标题类型的(见title()),则返回True,否则返回False。

    4.存一个值or多个值:一个值

    5.有序or无序:只要是有索引的,都是有序的,因此字符串是有序的。

    name = 'nick'
    print(f'first:{id(name)}')
    name = 'nick handsome'
    print(f'second:{id(name)}')
    first:4377100160
    second:4377841264
    

    6.可变or不可变:不可变数据类型

  • 相关阅读:
    A Plug for UNIX (最大流 邻接矩阵dinic)POJ
    Dining POJ
    ACM Computer Factory (邻接矩阵 dinic 模板)(最大流+路径输出)POJ
    HDU
    E
    2018 东北赛i 简单dpI
    Coloring Brackets CodeForces
    2019浙江省赛j welcome Party
    D
    Critical Links (UVA
  • 原文地址:https://www.cnblogs.com/kangwy/p/11290934.html
Copyright © 2011-2022 走看看