import math在python种中的意思,Python中import使用-程序员宅基地

技术标签: import math在python种中的意思  

import的使用

举例:

#coding:utf-8

import math

r=5

print("半径是5的圆面积是:%.2f"%(math.pi*r**2))

import math的意思为从Python标准库中引入math.py模块,这是Python中定义的引入模块的方法。

import的标准语法如下:import module1[, module2[,… moduleN]]表示允许一个import导入多个模块,但各个模块间需要用逗号隔开。

当我们使用import语句时,Python解释器怎样找到对应的文件呢?这涉及Python的搜索路径,搜索路径由一系列目录名组成,Python解释器会依次从这些目录中寻找引入的模块。看起来很像环境变量,事实上可以通过定义环境变量的方式确定搜索路径。搜索路径是在Python编译或安装时确定的,被存储在sys模块的path变量中。查看搜索路径的方式如下:

import sys

print('python的搜索路径为:%s'% sys.path)

执行结果如下:

python的搜索路径为:['D:\\protect\\python\\python_interface', 'D:\\protect\\python', 'D:\\Python36\\python36.zip', 'D:\\Python36\\DLLs', 'D:\\Python36\\lib', 'D:\\Python36', 'C:\\Users\\Administrator\\AppData\\Roaming\\Python\\Python36\\site-packages', 'D:\\Python36\\lib\\site-packages', 'D:\\Python36\\lib\\site-packages\\win32', 'D:\\Python36\\lib\\site-packages\\win32\\lib', 'D:\\Python36\\lib\\site-packages\\Pythonwin']

由以上输出结果看到,sys.path输出了一个列表,第一项输出的是执行文件所在的目录,即我们执行Python解释器的目录(如果是脚本,就是运行脚本所在的目录)。

除了用import引入模块外,还有另一种方式引入模块,先看交互模式下输入的示例:

from math import pi

print(pi)

在Python中,from语句可以从模块中导入指定部分到当前命名空间中,语法如下:from modname import name1[, name2[, … nameN]]例如,from math import pi语句就是从math模块中导入pi到当前命名空间,该语句不会将math整个模块导入。比如在math模块中还有sin、exp函数,在这个语句里这两个函数都使用不了,而在导入整个math模块的语句中可以使用。

这样做的好处是什么呢?先看如下示例:

78867cad08ec

导入模块、模块中部分函数的区别

由上面的输出结果可知,如果在导入math模块时访问pi对象,需要使用math.pi,直接使用pi访问不了,会报错。使用import语句后,可以直接访问pi对象,不需要加上模块名进行访问。

可以从一个导入语句导入多个函数,多个函数之间用逗号分割。比如:

from math import pi,sin

如果要访问模块中多个对象,是否需要一个一个导入呢?当然不用,可以直接使用如下语句:

from math import *

这是一个简单地将项目中所有模块都导入的方法。在实际开发中,这种声明不建议过多使用,这样不利于编写清晰、简单的代码。只有想从给定模块导入所有功能时才使用这种方式。

除了上述几种方式外,还可以为模块取别名,例如:

78867cad08ec

模块取别名

既然可以为模块取别名,当然也可以为函数取别名,例如:

78867cad08ec

函数取名

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36048947/article/details/115757014

智能推荐

嵌入式JetSon TX2上定位构图与目标检测环境部署(包括RTAB-MAP、Object Detection API、RealSense、IMU、ROS、CUDA、Tensorflow等配置)_e: unable to locate package librealsense2-dkms-程序员宅基地

文章浏览阅读2k次。这周为了项目结题在一块崭新的TX2开发板上复现了去年的定位构图与目标检测环境部署,其实各个部分的内容在博主之前的博客中零零碎碎的都提到过,这里重新写篇博客整体总结一下,因为后面还有两块新的TX2等待博主部署环境......流下了熟练工种的泪水QAQ_e: unable to locate package librealsense2-dkms

网件 设置为ap_如何为Netgear Arlo Pro相机系统编辑或创建自定义模式-程序员宅基地

文章浏览阅读231次。网件 设置为apBy default, Netgear’s Arlo Pro camera system comes with several different modes that you can switch between, depending on whether you’re home or away. However, you may want to customize the se..._arlo pro 本地媒体库不可用

ENC28J60 驱动开发要点_enc28j60 esp32驱动-程序员宅基地

文章浏览阅读2.2k次。摘要:在嵌入式系统中,以太网控制器通常也是研究热点之一,MicroChip公司的ENC28J60在嵌入式系统中应用价值较高,该芯片集成了MAC控制器和PHY,使用SPI接口,适合在引脚资源比较紧张的嵌入式系统中加入以太网连接功能,本文主要介绍了MicroChip公司的ENC28J60控制器的初始化及其编程相关的注意和要点,并针对开发中可能遇到的一些问题进行了探讨。关键字: ENC28J60编程_enc28j60 esp32驱动

element ui 表格中的字太长,想要把多余的字变成...解决方法,一个属性即可_element ui table文字变多转换...-程序员宅基地

文章浏览阅读3.4k次,点赞5次,收藏4次。问题描述如下相应代码段 <el-table style="width: 100%" height="330px" :data="tableData" border stripe> <el-table-column align="center" type="index" label="#"></el-table-column> <el-table-column align="center" label="社团编号" prop="a_element ui table文字变多转换...

详解Java泛型机制-程序员宅基地

文章浏览阅读598次,点赞29次,收藏13次。分享一份自己整理好的Java面试手册,还有一些面试题pdf。

DOCTYPE的作用,常见声明,删除<!DOCTYPE>发生什么?严格模式和混杂模式_<!doctype>-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏10次。在HTML文档首部往往会有这样一行代码:<!DOCTYPE html>由于常见而且一般可能自己使用编辑器设置了默认模板(包含这一句代码),可能很多时候我们会忽略它的存在,不知道它的作用以及重要性。实际上,这行代码是一个声明, 其作用是告诉浏览器按照哪一种HTML文档规范解析HTML文档。Web 世界中存在许多不同的文档。只有了解文档的类型,浏览器才能正确地显示文档。HTML 也有多个不同的版本,只有完全明白页面中使用的确切 HTML 版本,浏览器才能完全正确地显示出 HTML 页面。H_

随便推点

optimizer.step()代表什么意思-程序员宅基地

文章浏览阅读5.8k次,点赞20次,收藏49次。`optimizer.step()`是PyTorch中优化器对象的一个方法,用于更新模型的参数。在训练深度神经网络的过程中,我们需要通过反向传播算法计算每一个参数对损失函数的梯度,然后使用优化器更新参数,使得损失函数最小化。而`optimizer.step()`方法就是用于执行参数更新的。_optimizer.step()

iOS 9.3.5 越狱_use privded iffsets-程序员宅基地

文章浏览阅读4.5k次。1. 下载impactor;地址:https://cydia.ooo/cydia-impactor/2. 下载Phoenix.ipa;3. 运行impactor ,安装Phoenix.ipa 到手机上;4. 运行Phoenix. 点击prepare for jailbreak. 然后点Accept. 接着点击Dismiss. 点击下面的Proceed with jai..._use privded iffsets

高并发下接口幂等性解决方案_高并发接口-程序员宅基地

文章浏览阅读303次。现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能在服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这样请求有多次,那么处理数据的结果是否要统一呢?那是肯定的!尤其在支付场景。_高并发接口

hadoop mysql中文乱码_Hive元数据存于mysql中文乱码解决-程序员宅基地

文章浏览阅读144次。最近在搭一套Hive测试环境,使用mysql存储hive的元数据,然而当执行一个带有中文注释的建表文件时,出现了中文乱码的问题。实验过程中发现把整个数据库编码改成latin1或者Utf8都不行,只有把整个数据库设定为latin1而把要存储中文的数据表的编码设定为UTF8才能够解决。出现问题:执行hive -f "createtable.sql"时说中文乱码不认识。尝试1失败:将meta datab..._create database hadoop_test character set utf-8;为什么会报错?

mysql开启日志占cpu不_MySQL占用CPU过高 查找原因及解决 多种方式-程序员宅基地

文章浏览阅读810次。MySQL占用CPU过高 查找原因及解决 多种方式一、排查有没有地方占用SQL资源过多1、排查方法:>mysql-uroot-p#登陆数据库>********#输入数据库密码2、查看数据库show databases;3、use 数据库名; #切换到常用数据库4、show processlist; #显..._打印mysql日志占用cpu吗

【Trino实战】Hive connector功能性文档_trino文档-程序员宅基地

文章浏览阅读1k次。Hive connector 相关_trino文档