Python 内置库 - 科学计算
了解 math 函数
math 函数,python 提供的内置数学类函数库,包含了很多数学公式。
比如幂函数运算,三角函数,高等函数运算等。
math 函数操作
- 数字常数
- 数论与表示函数
- 幂对数函数
- 三角对数函数
- 高等特殊函数
数字常量
常数 | 数学表示 | 描述 |
---|---|---|
math.pi | π | 圆周率,值为3.1415926535… |
math.e | e | 自然对数,值为2.7182818… |
math.inf | ∞ | 正无穷大,负无穷-math.inf |
math.nan | NAN | 非数字 NAN(Not a Number) |
数论与表示函数
幂函数与对数函数
三角函数
高等特殊函数
实战练习
- 常量
- 数论与表示函数(ceil, floor)
- 幂函数与对数函数 (pow(), sqrt())
实例
天天向上的力量
一年365天,以第1天的能力值为基数,记为1.0,
当努力学习时,能力值相比前一天提高1%,
当没有学习时能力值相比前一天下降1%。
(每天努力和每天放任,一年下来的能力值相差多少呢? )
import math
# print(math.pi)
# print(math.e)
# print(math.inf)
# print(-math.inf)
# print(math.nan)
# # 向上取整 >4.3 最小的整数 5
# print(math.ceil(4.3))
# # 向上取整 >-4.3 最小的整数 -4
# print(math.ceil(-4.3))
# # 向上取整 >-0.1 最小的整数 0
# print(math.ceil(-0.1))
# # 向下取整 <4.3 最大的整数 4
# print(math.floor(4.3))
#
# # 向下取整 <-4.3 最大的整数 -5
# print(math.floor(-4.3))
# print(math.pow(2, 10))
# print(math.sqrt(16))
print(math.pow((1.0 + 0.01), 365))
print(math.pow((1.0 - 0.01), 365))
Python 日期与时间处理
目录
- 获取当前日期/获取特定时间
- datetime 与 timestamp 时间戳互转
- datetime 与 str 互转
- 实战练习
工作中应用
- 作为日志信息的内容输出
- 计算某个功能的执行时间
- 用日期命名一个日志文件的名称
- 生成随机数(时间是不会重复的)
python 中处理时间的模块
- time
- datetime
- calendar
常见的时间表示形式
- 时间戳
- 格式化的时间字符串
datetime 常用的类
- datetime (from datetime import datetime) 时间日期相关
- timedelta (from datetime import timedelta) 计算两个时间的时间差
- timezone (from datetime import timezone) 时区相关
练习1 - 获取当前日期和时间
import datetime
now = datetime.datetime.now()
练习2 - 字符串与时间互转
s="2021-09-27 06:47:06"
# 将字符串 转换为datetime实例
s1=datetime.datetime.strptime(s,'%Y-%m-%d %H:%M:%S')
# 时间转成字符串
now = datetime.datetime.now()
result = now.strftime('%a, %b %d %H:%M')
# 参考链接:https://docs.python.org/3/library/datetime.html?highlight=strftime
练习3 - 时间戳 与时间互转
import datetime
mtimestamp = 1632725226.129461
# 将时间戳转成时间
s = datetime.datetime.fromtimestamp(mtimestamp)
# 将时间转成时间戳
print(s.timestamp())
import datetime
# 当前日期时间
# nowtime = datetime.datetime.now()
# print(nowtime)
# print(nowtime.day)
# print(nowtime.month)
# print(nowtime.year)
# # 转成时间戳
# print(nowtime.timestamp())
#
# print(datetime.datetime(2021, 10, 10))
# s = "2021-09-27 06:47:06"
# # 将字符串 转换为datetime实例
# s1 = datetime.datetime.strptime(s, '%Y-%m-%d %H:%M:%S')
# print(s1)
# print(type(s1))
# # 时间转成字符串
# result = s1.strftime('%a %b %d %H:%M')
# print(result)
mtimestamp = 1632725226.129461
# 时间戳-> 时间
s = datetime.datetime.fromtimestamp(mtimestamp)
print(s)
# 将时间->时间戳
print(s.timestamp())
实例
写一段代码,生成一个以时间命名的日志文件。
并向日志文件中写入日志数据。
import datetime
# 时间格式
now = datetime.datetime.now()
# 转成字符串
c_time = now.strftime("%Y%m%d_%H%M%S")
print(c_time)
log_name = c_time+'.log'
with open(log_name, 'w+',encoding='utf-8') as f :
# datetime [level] line: 13 this is a log message
message = f"{now} [info] line: 14 this is a log message"
f.write(message)