美文网首页我学的贼溜
Python日常学习笔记

Python日常学习笔记

作者: 花酒石 | 来源:发表于2020-08-14 17:06 被阅读0次

    数据类型转换

    基本数据类型转换

    转换方向 转换函数 说明
    string->int int(str_value) 将字符串str_value转成一个整数,str_value也可为long/float
    num->string str(num_value) 将一个数(int/long/float)num_value转成字符串
    x->float float(x) x转换为一个浮点数
    x->long long(x) x转换为一个长整数
    s->tuple tuple(s) 将序列s转化成元组tuple
    s->list list(s) 将序列s转化成列表list
    s->set set(s) 将序列s转化成可变集合 set
    char->num ord(c) 将一个字符转化成其整数值(ASCII码值)
    num->char chr(c) 将一个整数(ASCII码值)转化成其对应的字符
    num->hex hex(x) 将一个整数值转化为其对应的十六进制字符串
    num->oct oct(x) 将一个整数值转化成其对应的八进制字符串

    特殊转换方法

    1. list中的字符串全部转化成数值(list中仅包含可以转化成数值的字符串)
    • list(map(int, a))
    a = ['123', '432', '31']
    b = ['12.43', '54.6754', '12.453']
    c = list(map(int, a))
    d = list(map(float, a))
    print(c)
    print(d)
    
    # 运行结果
    [123, 432, 31]
    [12.43, 54.6754, 12.453]
    
    1. list中的数值全部转化成字符串(list中可以包含一切能转成字符串的对象)
    • list(map(str, a))
    e = [12.43, 54.6754, 12.453, '123']
    f = list(map(str, e))
    print(f)
    
    # 运行结果
    ['12.43', '54.6754', '12.453', '123']
    

    数值 nan 的处理

    判断一个值是否是 nan

    1. 使用nunpy进行判断
    import numpy as np
    
    #若要判断变量Number是不是nan
    np.isnan(number)
    
    1. 使用math
    import math
    math.isnan(number)
    
    1. 自己定义判别函数
    # 自己定义一个判断nan的函数
    def isNan(num):
        return num != num
    

    示例

    import math
    import numpy as np
    a = float('nan')
    b = 10
    # 自己定义一个判断nan的函数
    def isNan(num):
        return num != num
    print("a is {}".format(a))
    print("b is {}".format(b))
    print("{} --> {} is nan: {}".format('isNan', a, isNan(a)))
    print("{} --> {} is nan: {}".format('isNan', b, isNan(b)))
    print("{}  --> {} is nan: {}".format('math', a, math.isnan(a)))
    print("{}  --> {} is nan: {}".format('math', b, math.isnan(b)))
    print("{} --> {} is nan: {}".format('numpy', a, np.isnan(a)))
    print("{} --> {} is nan: {}".format('numpy', b, np.isnan(b)))
    
    # 输出
    a is nan
    b is 10
    isNan --> nan is nan: True
    isNan --> 10 is nan: False
    math  --> nan is nan: True
    math  --> 10 is nan: False
    numpy --> nan is nan: True
    numpy --> 10 is nan: False
    

    nan 转化成数值

    1. 利用numpy的nan_to_num函数实现:
    a = float('nan')
    b = 10
    print(np.nan_to_num(a, nan=100))
    print(np.nan_to_num(a))
    print(np.nan_to_num(b))
    
    # 输出
    100.0
    0.0
    10
    
    1. 根据nan判断函数,自己写转换函数

    日期处理

    使用datetime模块处理日期:

    >>> import datetime
    >>> d1 = datetime.datetime(2018,10,31)   # 第一个日期
    >>> d2 = datetime.datetime(2019,2,2)   # 第二个日期
    >>> interval = d2 - d1                   # 两日期差距
    >>> interval.days                        # 具体的天数                     
    94
    >>> interval.seconds                     # 具体的秒数
    0
    

    datetime.datetime()常用模块有:

    >>> filter(lambda x: not x.startswith("_"), dir(interval))
    ['days', 'max', 'microseconds', 'min', 'resolution', 'seconds', 'total_seconds']
    

    如果是两个日期还是带时,分,秒的话,同样可以算出两者的相距天数及秒数.

    >>> import datetime
    >>> d1 = datetime.datetime(2018,10,31,10,30,00)
    >>> d2 = datetime.datetime(2018,11,1,10,40,30)
    >>> interval = d2 - d1
    >>> interval                   # 第一项是天数,相距1天
    datetime.timedelta(1, 630)
    >>> interval.days              # 具体天数
    1
    >>> interval.seconds           # 额外秒数
    630
    >>> interval.total_seconds()   # 相差总秒数  
    87030.0
    

    相关文章

      网友评论

        本文标题:Python日常学习笔记

        本文链接:https://www.haomeiwen.com/subject/bvagdktx.html