python入门基础(15)--模块和python中数学、日期、时间类模块。

这篇具有很好参考价值的文章主要介绍了python入门基础(15)--模块和python中数学、日期、时间类模块。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接上篇,当我们创建了很多类,比如  图书馆里的藏书,分社会科学类,艺术类、生活类、农业类、工业类等,而工业类又分为轻工业、重工业、信息工业,然后再细分。当分的越来越细时,程序就会越来越大。如何管理,便成了程序开发过程中一个重要的环节。于是可以按照图书馆分类管理的思想,对程序代码进行管理。

 将一个应用程序,按照代码的功能或其他标准,分别放入不同的文件。这些文件就是不同的模块。这样方便管理和维护代码。

同样,也可以将不同的功能代码放到不同的文件夹中,并让他们能相互引用,这就是包。

模块和包都是复杂程序的一种组织方式。

一  、模块

python中模块是包含函数或类的python程序,以".py"为后缀名,用作模块的python程序与其他程序并无多大区别。

要使用模块,python中有三个方法可以导入模块或模块中的函数

import 模块名    这是将整个模块全部导入,使用函数时,先用模块名+"."+函数名,如  import numpy     numpy.mat()

import 模块名 as new_name(给模块取个新名字)  这是给导入模块重新命名,使用函数,用新名+“.”+函数名  如 import numpy as np    np.mat()

from 模块名 import 函数名      这个是直接导入函数,在该模块中,只能使用该函数,如 from numpy import mat      则在该模块下,numpy的其他函数不能被使用,只能用mat()函数。 当然,如果用“*”代替函数名,则numpy的所有函数均可使用。

下面通过最常见的math函数来观察一下。

import math
from math import sqrt
import math as calc

print("调用math.sqrt:\t",math.sqrt(3))
print("直接调用sqrt:\t",sqrt(5))
print("新函数名调用sqrt:\t",calc.sqrt(4))

运行结果:

python入门基础(15)--模块和python中数学、日期、时间类模块。

 上述例子,是直接导入了系统现在有的模块或包,那么自己应该怎么处理呢?自己编写模块和平时写程序一样,既可以是解决某个问题的独立程序,也可以是几个函数构成(如math函数),模块名就是代码保存的文件名。

前面例子中,有一个Calc的类,里面有加、减、乘、除四则运算,那可不可以把它设置为一个模块呢?上文说过,几个函数也可以构成模块。那我们把定义类的“class Calc:”去掉试,就让这四个函数在一起(注意,把四个函数中的self去掉),实例化等放到另一个模块中。

修改名称为clac.py,其中代码如下:

def calcadd(x,y):
    return x+y
    
def calcreduce(x,y):
    return x-y
    
def calcmultiply(x,y):
    return x*y
    
def calcdeviate(x,y):
    return x/y

上述导入math模块的文件,命名为newtest.py,将原打印加、减、乘、除的四个语句,拷贝过来并修改,代码如下:

import math
from math import sqrt
import math as calcper

import calc as new_calc

print("调用math.sqrt:\t",math.sqrt(3))  #前一例子调用math模块
print("直接调用sqrt:\t",sqrt(5))
print("新函数名调用sqrt:\t",calcper.sqrt(4))
    
print("相加的结果是:%s"%new_calc.calcadd(20,50))
print("相乘的结果是:%s"%new_calc.calcmultiply(23,50))
print("相除的结果是:%s"%new_calc.calcdeviate(30,50))
print("相减的结果是:%s"%new_calc.calcreduce(20,50))

运行结果:

python入门基础(15)--模块和python中数学、日期、时间类模块。

重点注意一下:calc.py和newtest.py必须在同一目录下。模块的其他见https://www.cnblogs.com/codingchen/p/16157832.html 中的介绍。

二、部分常见模块功能

1、math和random

前述导入的math模块,主要是数学函数,比如常见的对数函数、三角函数、反三角函数等,还有一些常量,如圆周率pi、自然数e等

 random则包含了常见的随机函数,如random、randint ,按概率生成的函数如gauss(),还有像shuffle(乱序表),choice(随机选择)等。

对上述代码进行适当修改,完成演示:将上述代码中固定的数字,用随机数,choice等完成。在calc.py文件不变的情况下,将newtest.py文件进行修改如下:

import calc as new_calc
import math
import random

m=float(random.random())
n=float(random.choice([5,7,9,13,15,11,13]))  #注意choice()中用的是[1,2,3],而不是(1,2,3)

print("%s"%m)
print("%s"%n)   
print("相加的结果是:%s"%new_calc.calcadd(m,n))
print("相乘的结果是:%s"%new_calc.calcmultiply(m,n))
print("相除的结果是:%s"%new_calc.calcdeviate(n,m))  #m、n位置不一样
print("相减的结果是:%s"%new_calc.calcreduce(m,n))

u=math.sin(m)
v=math.cos(n)
print("%s"%u)
print("%s"%v)   
print("相加的结果是:%s"%new_calc.calcadd(u,v))
print("相乘的结果是:%s"%new_calc.calcmultiply(u,n))  #n没有变化
print("相除的结果是:%s"%new_calc.calcdeviate(n,u))
print("相减的结果是:%s"%new_calc.calcreduce(v,n))    #n没有变化

注意一下:choice()的用法,choice()中用的是[1,2,3]的序列,而不是(1,2,3)。运行结果如下:

python入门基础(15)--模块和python中数学、日期、时间类模块。

 2)日期与时间类

此类标准库有calendar 、datetime和time三个模块,通过下面的例子,先了解一下datetime 和time这两个模块,代码如下(仔细阅读一下注释):

import datetime
import time
import calendar 

print(datetime.datetime.now())
print(time.time())
aa =  datetime.datetime.now()  #定义一个aa,将当前时间赋值给aa
bb = datetime.datetime(2023,9,23,21,56,35,120129) #定义一个bb,将当前时间赋值给bb
cc = aa-bb #将aa-bb的差赋值给cc

print("%s\n"%cc) #打印出cc

aaa=datetime.timedelta(days=5,hours=10)
bbb=datetime.timedelta(hours=6.5)
ccc=aaa+bbb
print("%s\n"%ccc.days)
print("%s\n"%ccc.seconds)
print("%s\n"%ccc.total_seconds())

print(aa+datetime.timedelta(minutes=20))
print("\n")
#闰年的处理,datetime会自动处理闰年
a=datetime.datetime(2020,3,1)
b=datetime.datetime(2020,2,28)
print("%s\n"%(a-b).days)

ab=datetime.datetime(2023,3,1)
ba=datetime.datetime(2023,2,28)
print("%s"%(ab-ba).days)

运行结果如下:

python入门基础(15)--模块和python中数学、日期、时间类模块。

 

 

翻译

搜索

复制文章来源地址https://www.toymoban.com/news/detail-710257.html

到了这里,关于python入门基础(15)--模块和python中数学、日期、时间类模块。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模学习笔记(15)时间序列分析

    时间序列的概念 :也称为动态序列,是指将某种现象的指标值按照时间顺序排列而成的数值序列。 时间序列的组成要素 :时间要素、数值要素。 时间序列的分类 : 时期时间序列 :数值要素反应现象在一定时期内的发展的结果; 时点时间序列 :数值要素反映现象在一定时

    2024年02月01日
    浏览(38)
  • layui(4)——内置模块日期与时间选择

    通过核心方法: laydate.render(options) 来设置基础参数,也可以通过方法: laydate.set(options) 来设定全局基础参数. 类型: String/DOM ,默认值: 无 必填项,用于绑定执行日期渲染的元素,值一般为选择器,或DOM对象 类型: String ,默认值: date 用于单独提供不同的选择器类型,可

    2024年02月10日
    浏览(57)
  • 自学 --day9---js中的数学操作和时间日期

    圆周率 生成随机数 生成的是0~1之间的随机小数,通常在实际项目中需要获取到一个范围内的随机整数,利用这个随机小数封装一个获取范围内的随机整数的函数: 向上取整 向上取整的含义是一个数字的小数部分不够1,将他处理成1。例如:10条数据每页展示3条,前3页都能放

    2024年02月05日
    浏览(44)
  • MySQL基础入门上篇

    具备数据库一定的设计能力和操作数据的能力。 数据库设计DDL 定义 操作 显示所有数据库 创建数据库 数据库名唯一,不能重复。 查询是否创建成功 加入一些判断语句 存在不会报错,也会不再创建,如果不存就会创建 连接数据库 删除数据库 这里可以加入条件判断 小结 图

    2024年04月15日
    浏览(20)
  • 深入理解Python中的math和decimal模块:数学基础与高精度计算实战【第104篇—math和decimal模块】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在Python中, math 和 decimal 模块是处理数学运算的重要工具。 math 提供了一系列常见的数学函数,而 decimal 则专注于高精度的浮点数运算。本文

    2024年03月19日
    浏览(52)
  • 【Python 零基础入门】Numpy 常用函数 数组操作 & 数学运算

    Numpy (Numerical Python) 是 Python 编程语言的一个扩展程序库, 支持大量的维度数组与矩阵运算, 并提供了大量的数学函数库. Numpy 利用了多线程数组来存储和处理大型数据集, 从而提供了一个高效的方式来进行数值计算, 特别是对于矩阵预算和线性代数. np.assarray 可以将输入转换为

    2024年02月05日
    浏览(49)
  • 【零基础入门学习Python---Python函数和模块】

    🚀 Python 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验

    2024年02月11日
    浏览(43)
  • Python零基础入门(十)——模块与包

    个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!😊😊😊 欢迎来到本系列的第十篇文章!在前面的学习中,

    2024年02月14日
    浏览(36)
  • 【Python基础入门篇】基本函数——os与sys模块

    os模块和sys模块 os模块负责程序与操作系统交互,提供访问操作系统的接口 sys模块负责程序与Python解释器交互,用于操控Python运行环境 待完善

    2024年01月25日
    浏览(45)
  • 多线程基础入门【Linux之旅】——上篇【线程控制,线程互斥,线程安全】

    目录 前文 回望页表 一,什么是线程 二,使用 pthread_create (线程创建) 三,线程控制 1 ,线程共享进程数据,但也拥有自己的一部分数据: 2, 线程  VS 进程优点 3,pthread_join(等待线程) 4,pthread_exit (线程终止) 5, pthread_cancel (线程取消) 6. pthread_t 类型 7.  pthread_detac

    2024年01月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包