【python入门】day17:模块化编程、math库常见函数

什么叫模块

在这里插入图片描述

模块的导入

导入所有:import 模块名称
导入指定:from 模块名称 import 函数/变量/类

python的math库

什么是math库

Python的math库是Python的内建库之一,它提供了许多数学函数,包括三角函数、对数函数、幂函数等,以及一些数学常量如圆周率(pi)和自然对数的底(e)。这个库主要用于处理基础数学运算和数学函数的计算。

Python的math库是Python的内置模块,它提供了许多数学函数和常量,可以帮助我们进行数学运算。

math库的使用

由于math库是python的内置库,所以我们只需要导入它即可正常使用。导入的方法非常简单:
import math

math库的常见函数和常量

常量

以下是一些常见的:

math.pi:表示圆周率π,大约等于3.141592653589793。

math.e:表示自然常数e,即自然对数的底数,大约等于2.718281828459045。

math.tau:表示数学常数τ,它等于2π,大约等于6.283185307179586。这个常量在Python 3.6版本中被添加。
math.inf:表示正无穷大。例如,对于所有的x(除了math.nan),math.inf > x都为真。
math.nan:表示一个特殊的浮点数“NaN”(Not a Number)。对于所有的x,math.nan != x都为真,包括math.nan != math.nan。

基本数学函数

以下是一些常见的:

math.fabs(x): 返回x的绝对值。

math.ceil(x): 返回大于或等于x的最小整数。

math.floor(x): 返回小于或等于x的最大整数。

math.exp(x): 返回e的x次幂。

math.log(x[, base]): 返回x的自然对数,如果给出了base,那么返回以base为底的x的对数。

math.pow(x, y): 返回x的y次幂。

math.sqrt(x): 返回x的平方根。

math.sin(x): 返回x的正弦值。

math.cos(x): 返回x的余弦值。

math.tan(x): 返回x的正切值。

math.asin(x): 返回x的反正弦值。

math.acos(x): 返回x的反余弦值。

math.atan(x): 返回x的反正切值。

math.radians(x): 把角度x转换为弧度。

math.degrees(x): 把弧度x转换为角度。

幂和对数函数

以下是一些常见的:

math.pow(x, y): 返回x的y次幂。这和使用内建的运算符略有不同,math.pow()总是返回一个浮点数,而运算符会返回整数类型,如果两个操作数都是整数。

math.sqrt(x): 返回x的平方根。等同于math.pow(x, 0.5)。

math.exp(x): 返回e的x次幂。这个函数在计算较大的x时比math.pow(math.e, x)更精确。

math.log(x[, base]): 如果没有提供base,返回x的自然对数(以e为底)。如果提供了base,返回以base为底x的对数。

math.log1p(x): 返回1+x的自然对数(以e为底)。对于很小的x,这个函数比math.log(1+x)更精确。

math.log2(x): 返回以2为底x的对数。

math.log10(x): 返回以10为底x的对数。

三角函数

三角函数

math.sin(x): 返回x的正弦值。

math.cos(x): 返回x的余弦值。

math.tan(x): 返回x的正切值。

反三角函数

math.asin(x): 返回x的反正弦值。x的范围必须在-1到1之间。

math.acos(x): 返回x的反余弦值。x的范围必须在-1到1之间。

math.atan(x): 返回x的反正切值。

math.atan2(y, x): 返回y/x的反正切值,考虑了值的符号,所以可用于确定坐标系中点(y, x)的角度。返回值范围为-π至π。

角度和弧度转换函数

math.radians(x): 将角度x转换为弧度。

math.degrees(x): 将弧度x转换为角度。

高级函数

组合和排列

math.comb(n, k): 返回n个物品中取k个的组合数。只在Python 3.8及以上版本可用。

math.perm(n, k): 返回n个物品中取k个的排列数。只在Python 3.8及以上版本可用。

指数和对数函数

math.expm1(x): 返回e的x次幂减1。对于很小的x,这个函数比math.exp(x)-1更精确。

math.log1p(x): 返回1+x的自然对数。对于很小的x,这个函数比math.log(1+x)更精确。

双曲函数和反双曲函数

math.sinh(x): 返回x的双曲正弦。

math.cosh(x): 返回x的双曲余弦。

math.tanh(x): 返回x的双曲正切。

math.asinh(x): 返回x的反双曲正弦。

math.acosh(x): 返回x的反双曲余弦。

math.atanh(x): 返回x的反双曲正切。

特殊函数

math.gamma(x): 返回x的Gamma函数值。Gamma函数是阶乘函数的扩展,可以接受实数或复数输入。

math.lgamma(x): 返回x的Gamma函数的自然对数的绝对值。

math.erf(x):返回x的误差函数值。

复数运算

虽然复数运算主要在cmath模块中进行,但math模块也提供了一些处理复数的函数:

math.isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0):判断两个数是否接近。rel_tol是相对容差,abs_tol是绝对容差。这是一种更为科学的比较浮点数的方法。

math.isfinite(x):如果x是正无穷大、负无穷大或NaN,则返回False,否则返回True。

math.isinf(x):如果x是正无穷大或负无穷大,则返回True,否则返回False。

math.isnan(x):如果x是NaN,则返回True,否则返回False。

取整函数

math.floor(x): 返回小于或等于x的最大整数。换句话说,对x向下取整。

math.ceil(x): 返回大于或等于x的最小整数。换句话说,对x向上取整。

math.trunc(x): 返回x的整数部分。它的行为类似于向0取整,也就是说,如果x是正数,它的行为类似于math.floor(x),如果x是负数,它的行为类似于math.ceil(x)。

math.modf(x): 返回x的小数部分和整数部分。返回值是一个元组,第一个元素是x的小数部分,第二个元素是x的整数部分。
————————————————
这些函数在统计学和物理学等领域有着广泛的应用。

希望这些信息能帮助你更深入的理解Python的math模块。官方文档(https://docs.python.org/3/library/math.html)是学习math模块最好的资源,其中包含了所有函数的详细说明和示例。

在这里插入图片描述

以主程序方式运行

在每个模块的定义中都包括一个记录块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,那么它可能在解释器的顶级模块中执行。顶级模块的__name__变量的值为__main__
在这里插入图片描述
在Python中,解释器的顶级模块是指在一个脚本或交互式会话中执行的代码的最高级别模块。当你运行一个Python脚本或在交互式解释器中输入代码时,解释器会从脚本或输入的代码开始执行,并将其视为顶级模块。

在顶级模块中,你可以定义变量、函数和类,并执行任何你想要的操作。它是代码执行的起点,可以初始化和执行整个程序。

在一个Python脚本中,通常把一些常见的操作放在顶级模块中,例如导入其他模块,定义全局变量,设置配置参数等。

下面是一个示例的Python脚本,其中顶级模块包含了一些常见的操作:

import mathPI = 3.14159def calculate_area(radius):return PI * math.pow(radius, 2)print("计算圆的面积")
r = float(input("请输入半径:"))
area = calculate_area(r)
print("圆的面积为:", area)

在这个示例中, import math 是一个顶级模块中的导入语句,而 PI 和 calculate_area 是顶级模块中定义的全局变量和函数。最后,通过 print 函数输出计算得到的圆的面积。

总结来说,顶级模块是Python解释器执行代码的起点,并且可以用来定义变量、函数和类等。

python中的包

导入带有包的模块时注意事项
[ ] 使用import方式进行导入时,只能跟包名或模块名
[ ] 使用from…import可以导入包,模块,函数,变量
在这里插入图片描述

能正常运行,但是包名为什么显示红色线
可能是pycharm不能正常识别,但是python解释器可以正常识别,可以不用管,不影响正常运行。

常用的内置模块

在这里插入图片描述
import 包名.模块 as xx
from 包名 as 模块
#python中常用的 内置模块
‘’’
sys:与python解释器及环境操作相关的标准库
time:提供与时间相关的各种函数标准库
os:提供了访问操作系统服务功能的标准库
calendar:提供与日期相关的各种函数的标准库
urllib:用于读取来自网上(服务器)的数据标准库
json:用于使用JSON序列化和反序列化对象
re:用于在字符串中执行正则表达式匹配富替换
math:提供标准算数运算函数的标准库
decimal:用于进行精准控制运算精度、有效位数和四舍五入的十进制操作
logging:提供了灵活的记录事件、错误、警告和调试信息等日志信息功能

第三方模块的安装与使用

'''
import sys
print(sys.getsizeof(24))
import time
print(time.time())
print(time.localtime(time.time()))
#第三方模块的安装
'''
pip install 模块名
schedule模块 (计划模块)
在线安装步骤:打开命令-->输入pip install schedule安装-->import 库名(没有报错表示安装成功)
pycharm中不能使用安装的库解决办法-->设置-->python解释器-->+-->搜索要安装的库名-->选择版本-->install package(下载安装)
'''
import schedule
import time
def job():print('哈哈----')
schedule.every(3).seconds.do(job)
while True:schedule.run_pending()time.sleep(1)
#总结
#模块与包:模块:1、避免函数名/变量名重名
#2、自定义模块-->一个 .py的文件成为一个模块
#3、第三方模块:1、安装pip install 模块名
#2、使用:from...import 模块名
#包:避免模块名重名
#包含_init_.py的文件

常见问题

执行程序时报错为:未找到schedule模块
解决办法:在cmd里面敲 where python 找到Python的安装路径,然后把pycharm中的解释器换成刚才的路径
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/319237.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成式AI在自动化新时代中重塑RPA

生成式AI的兴起正在推动行业的深刻变革,其与RPA技术的结合,标志着自动化领域新时代的到来。这种创新性结合极大地提升了系统的适应性,同时也推动了高级自动化解决方案的发展,为下一代RPA的诞生奠定了坚实的基础。 核心RPA技术专注…

Intel SGX -- The Life Cycle of an SGX Enclave

文章目录 前言一、The Life Cycle of an SGX Enclave1.1 Creation1.2 Loading1.3 Initialization1.4 Teardown 二、The Life Cycle of an SGX Thread2.1 Synchronous Enclave Entry2.2 Synchronous Enclave Exit2.3 Asynchronous Enclave Exit (AEX)2.4 Recovering from an Asy…

一个基于SpringBoot+Thymeleaf渲染的图书管理系统

功能: 用户: a.预约图书 b.查看预约记录 c.还书 管理员: a.添加图书 b.处理预约(借书) c.查看借阅记录 另: 1.当用户过了还书日期仍旧未还书时会发邮件通知 2.当有书被还时发邮件通知预约书的用户到图书馆进行借书

介绍十五种Go语言开发的IDE

当涉及到Go语言开发的IDE时,以下是几种常用的选择: Goland:这是由JetBrains公司开发的一款商业IDE,旨在为Go开发者提供符合人体工程学的开发环境。Goland整合了IntelliJ平台,提供了针对Go语言的编码辅助和工具集成&am…

【MATLAB第88期】基于MATLAB的6种神经网络(ANN、FFNN、CFNN、RNN、GRNN、PNN)多分类预测模型对比含交叉验证

【MATLAB第88期】基于MATLAB的6种神经网络(ANN、FFNN、CFNN、RNN、GRNN、PNN)多分类预测模型对比含交叉验证 前言 本文介绍六种类型的神经网络分类预测模型 1.模型选择 前馈神经网络 (FFNN) 人工神经网络 (ANN) 级联前向神经网络 (CFNN) 循环神经网…

每日一道算法题day-one(备战蓝桥杯)

从今天开始博主会每天做一道算法题备战蓝桥杯,并分享博主做题的思路,有兴趣就加入我把! 算法题目: 有一个长度为 N 的字符串 S ,其中的每个字符要么是 B,要么是 E。 我们规定 S 的价值等于其中包含的子…

Spark---RDD介绍

文章目录 1.Spark核心编程2.RDD介绍2.1.RDD基本原理2.2 RDD特点1.弹性2.分布式 :数据存储在大数据集群的不同节点上3.数据集 :RDD封装了计算逻辑,并不保存数据4.数据抽象 :RDD是一个抽象类,具体实现由子类来实现5. 不可…

使用jieba库进行中文分词和去除停用词

jieba.lcut jieba.lcut()和jieba.lcut_for_search()是jieba库中的两个分词函数,它们的功能和参数略有不同。 jieba.lcut()方法接受三个参数:需要分词的字符串,是否使用全模式(默认为False)以及是否使用HMM模型&…

Python----matplotlib库

目录 plt库的字体: plt的操作绘图函数: plt.figure(figsizeNone, facecolorNone): plt.subplot(nrows, ncols, plot_number): plt.axes(rect): plt.subplots_adjust(): plt的读取和显示相关函数: plt库的基础图…

c++语言基础17-判断集合成员

题目描述 请你编写一个程序&#xff0c;判断给定的整数 n 是否存在于给定的集合中。 输入描述 有多组测试数据&#xff0c;第一行有一个整数 k&#xff0c;代表有 k 组测试数据。 每组数据第一行首先是一个正整数 m&#xff0c;表示集合中元素的数量&#xff08;1 < m &…

Java学习,一文掌握Java之SpringBoot框架学习文集(3)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

【Qt第三方库】QXlsx库——对 Excel 文件进行相关操作

0 前言 关键词&#xff1a;Qt&#xff1b;Excel&#xff1b;QXlsx&#xff1b;QInt 简介&#xff1a; QXlsx 是第三方开源的库&#xff0c;能够对 Excel 文件进行相关操作&#xff08;读写等&#xff09; 地址&#xff1a; QXlsx官网 QXlsx的Github主页 1 快速上手 对于第一次…