7、Python使用外部库

导入、运算符重载以及冒险进入外部库世界的生存技巧!

在本教程中,您将了解 Python 中的Imports,获得一些使用不熟悉的库(以及它们返回的对象)的技巧,并深入研究运算符重载

文章目录

  • 1.导入(Imports)
    • 其他导入语法
    • 子模块
    • 哦,你将去的地方,哦,你将看到的对象
    • 了解奇怪对象的三种工具
  • 2.运算符重载
    • 什么时候 1 + 1 不等于 2?
    • 好奇这一切是怎么运作的吗?

1.导入(Imports)

到目前为止,我们已经讨论了python语言中内置的类型和函数。

但 是关于 Python 最好的一点之一(特别是对于数据科学家而言)是为其编写的大量高质量的自定义库。

其中一些库位于“标准库”,这意味着你可以在运行 Python 的任何地方找到它们。其他库可以很容易地添加,即使它们并不总是与 Python 一起提供。

无论哪种方式,我们都将使用导入Imports来访问这些代码。

我们将从标准库中导入 math 开始我们的示例。

In [1]:

import mathprint("It's math! It has type {}".format(type(math)))
It's math! It has type <class 'module'>

math是个模块。模块只是由其他人定义的变量(如果愿意,可以称之为命名空间)的集合。我们可以使用内置函数 dir ()查看math中的所有名称。

In [2]:

print(dir(math))
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

我们可以使用点语法来访问这些变量,其中一些引用了简单的值,比如 math.pi:

In [3]:

print("pi to 4 significant digits = {:.4}".format(math.pi))
pi to 4 significant digits = 3.142

但是我们在这个模块中发现的大部分都是函数,比如 math.log:

In [4]:

math.log(32, 2)

Out[4]:

5.0

当然,如果我们不知道 math.log 是做什么的,我们可以在它上面调用 help () :

In [5]:

help(math.log)
Help on built-in function log in module math:log(...)log(x, [base=math.e])Return the logarithm of x to the given base.If the base not specified, returns the natural logarithm (base e) of x.

我们还可以对模块本身调用 help()。这将为我们提供模块中所有函数和值的组合文档(以及模块的高级描述)。点击 “output” 按钮查看完整的 math 帮助页面。

In [6]:

help(math)

output

Help on module math:NAMEmathMODULE REFERENCEhttps://docs.python.org/3.7/library/mathThe following documentation is automatically generated from the Pythonsource files.  It may be incomplete, incorrect or include features thatare considered implementation detail and may vary between Pythonimplementations.  When in doubt, consult the module reference at thelocation listed above.DESCRIPTIONThis module provides access to the mathematical functionsdefined by the C standard.FUNCTIONSacos(x, /)Return the arc cosine (measured in radians) of x.acosh(x, /)Return the inverse hyperbolic cosine of x.asin(x, /)Return the arc sine (measured in radians) of x.asinh(x, /)Return the inverse hyperbolic sine of x.atan(x, /)Return the arc tangent (measured in radians) of x.atan2(y, x, /)Return the arc tangent (measured in radians) of y/x.Unlike atan(y/x), the signs of both x and y are considered.atanh(x, /)Return the inverse hyperbolic tangent of x.ceil(x, /)Return the ceiling of x as an Integral.This is the smallest integer >= x.copysign(x, y, /)Return a float with the magnitude (absolute value) of x but the sign of y.On platforms that support signed zeros, copysign(1.0, -0.0)returns -1.0.cos(x, /)Return the cosine of x (measured in radians).cosh(x, /)Return the hyperbolic cosine of x.degrees(x, /)Convert angle x from radians to degrees.erf(x, /)Error function at x.erfc(x, /)Complementary error function at x.exp(x, /)Return e raised to the power of x.expm1(x, /)Return exp(x)-1.This function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for small x.fabs(x, /)Return the absolute value of the flo

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

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

相关文章

【现代密码学】笔记9-10.3-- 公钥(非对称加密)、混合加密理论《introduction to modern cryphtography》

【现代密码学】笔记9-10.3-- 公钥&#xff08;非对称加密&#xff09;、混合加密理论《introduction to modern cryphtography》 写在最前面8.1 公钥加密理论随机预言机模型&#xff08;Random Oracle Model&#xff0c;ROM&#xff09; 写在最前面 主要在 哈工大密码学课程 张…

深入vue响应式原理

当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项&#xff0c;Vue 将遍历此对象所有的 property&#xff0c;并使用 Object.defineProperty 把这些 property 全部转为 getter/setter。 这些 getter/setter 对用户来说是不可见的&#xff0c;但是在内部它们让 Vue …

Docker 47 个常见故障的原因和解决方法

本文针对Docker容器部署、维护过程中&#xff0c;产生的问题和故障&#xff0c;做出有针对性的说明和解决方案&#xff0c;希望可以帮助到大家去快速定位和解决类似问题故障。 Docker是一种相对使用较简单的容器&#xff0c;我们可以通过以下几种方式获取信息&#xff1a; 1、…

简单理解自动驾驶-看这篇够了!

本文主要介绍自动驾驶技术的整体框架&#xff0c;旨在从宏观理解自动驾驶技术。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;自动驾驶技术 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a…

第6章 现代通信技术

文章目录 6.1 图像与多媒体通信6.1.1 图像通信6.1.2 多媒体通信技术1、多媒体通信概念2、多媒体通信的组成3、多媒体通信的业务分类4、实用化的多媒体通信系统类型5、多媒体通信应用系统&#xff08;1&#xff09;多媒体会议电视系统&#xff08;2&#xff09;IPTV 6.2 移动通信…

【机器学习300问】12、为什么要进行特征归一化?

当线性回归模型的特征量变多之后&#xff0c;会出现不同的特征量&#xff0c;然而对于那些同是数值型的特征量为什么要做归一化处理呢&#xff1f; 一、为了消除数据特征之间的量纲影响 使得不同指标之间具有可比性。例如&#xff0c;分析一个人的身高和体重对健康的影响&…

每日一题——LeetCode1252.奇数值单元格的数目

进阶&#xff1a;你可以设计一个时间复杂度为 O(n m indices.length) 且仅用 O(n m) 额外空间的算法来解决此问题吗&#xff1f; 方法一 直接模拟&#xff1a; 创建一个n x m的矩阵&#xff0c;初始化所有元素为0&#xff0c;对于indices中的每一对[ri,ci]&#xff0c;将矩…

多色女童家居服,柔软细腻超舒适

柔软细腻到不想脱下来的 优可丝面料家居服来啦 精挑细选的可爱印花图案 让宝贝能够更快乐的进入梦乡 长度也是刚刚好合适 春夏交替的季节&#xff0c;建议多入几件换着穿

【新书推荐】Web3.0应用开发实战(从Web 2.0到Web 3.0)

第一部分 Flask简介 第1章 安装 1.1 创建应用目录 1.2 虚拟环境 1.2.1 创建虚拟环境 1.2.2 使用虚拟环境 1.3 使用pip安装Python包 1.4 使用pipregs输出包 1.5 使用requirements.txt 1.6 使用pipenv管理包 第2章 应用的基本结构 2.1 网页显示过程 2.2 初始化 2.3 路由和视图函数…

【C语言基础考研向】06运算符与表达式

文章目录 1.运算符分类 2.算术运算符及表达式 3.关系运算符与关系表达式 4.c语言运算级优先级表 课后习题自测 1.运算符分类 语言提供了13种类型的运算符,如下所示. (1)算术运算符( - * / %) . (2)关系运算符(>< >< l) . (3)逻辑运算符(l && ll) . (4)位…

一文了解【完全合作关系】下的【多智能体强化学习】

处于完全合作关系的多智能体的利益一致&#xff0c;获得的奖励相同&#xff0c;有共同的目标。比如多个工业机器人协同装配汽车&#xff0c;他们的目标是相同的&#xff0c;都希望把汽车装好。 在多智能体系统中&#xff0c;一个智能体未必能观测到全局状态 S。设第 i 号智能体…

c语言:用一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。

题目 用一个宏&#xff0c;可以将一个整数的二进制位的奇数位和偶数位交换。 如&#xff1a;01&#xff0c;是1&#xff0c;交换完是10&#xff0c;是2. 思路 1.分别取出奇数位上的数字和偶数位上的数字 举个例子&#xff1a;1001 0110 1001 0110 奇…

javaScript设计模式-工厂

它的好处是消除对象间的耦合度&#xff0c;在派生子类时提供了更大的灵活性。但盲目的把普通的构造函数扔在一边&#xff0c;并不值得提倡。如果要采一不可能另外换用一个类&#xff0c;或都不需要在运行期间在一系列可互换的类中进行选择&#xff0c;就不应该使用。这样在后期…

基于android的违章处理APP 前后端服务 -毕业设计

基于android的违章处理APP 该项目是基于android版本的违章处理APP&#xff0c;系统包含前端android服务和后端web服务&#xff0c;内容和技术都是目前比较流行的架构。 技术介绍 前端android端&#xff1a; jdk17 gradle8.0 android studio 采用2023版本 后端web端&#xff…

layui 监听checkbox,checkbox全选,反选,日期使用,select赋值,图片预览上传

1、checkbox 使用 form.render(checkbox) //再次渲染&#xff0c;不能选的时候需要再次渲染使用2、全选&#xff0c;反选 form.on(checkbox(product_checkbox_all), function (data) {if( data.elem.checked) {//判断选中//全选$("input[namearticle[]]").each(funct…

手动添加测试用例配置输入参数和期望值

1.选中函数&#xff0c;点击右键选择插入测试用例。这里所选择的插入测试用例区别于之前的测试用例的地方在于&#xff0c;这里插入测试用例是手动配置的&#xff0c;之前的是自动生成的。手动配置可以自定义选择输入参数和期望值。 2.添加测试用例后&#xff0c;点击测试用例&…

FTP文件传输与vsftpd配置

一 存储类型 直连式存储DAS 适用于那些数据量不大&#xff0c;对磁盘访问速度要求较高的中小企业 存储区域网络SAN 用来存储非结构化数据&#xff0c;虽然受限于以太网的速度&#xff0c;但是部署灵活&#xff0c;成本低 网络附加存储NAS 适用于大型应用或数据库系统&…

进程间通信之利用命名管道进行通信

文章目录 什么是命名管道命名管道的作用有什么命名管道的特点和用法是什么命名管道与匿名管道有什么区别匿名管道相较于命名管道的局限性 命名管道如何使用代码 什么是命名管道 命名管道&#xff08;Named Pipe&#xff09;&#xff0c;也被称为FIFO&#xff08;First In, Fir…

中移(苏州)软件技术有限公司面试问题与解答(0)—— 面试感悟与问题记录

刚刚参加完中移&#xff08;苏州&#xff09;软件技术有限公司的线上面试&#xff0c;可以说是颇受打击。之前一直认为自己的Linux内核水平还可以&#xff0c;文章读了很多、书也没少看、也写过文章、做过知识分享。但这次和高手即一直做这块的人过招&#xff0c;完败。才知道自…

宝藏排序1

题目 冒泡排序 import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();sc.nextLine();int[] res new int[n];for(int i0;i<n;i)res[i] sc.nextInt()…