我学的贼溜

Python日常学习笔记

2020-08-14  本文已影响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中仅包含可以转化成数值的字符串)
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中可以包含一切能转成字符串的对象)
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
上一篇 下一篇

猜你喜欢

热点阅读