1 mport math

2

3 r=5

4 print('半径为5的园面积为:%.2f'%(math.pi*r**2))

5 #保存文件名为import_test.py。在CMD窗口执行如下命令:

6 D:\Pythonworkspace>python import_test.py

7 半径为5的园面积为:78.54

8 #上面的程序使用了import语句。

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

10 >>>import module1[,module2[,...moduleN]]

11 #表示允许一个import导入多个模块,但各个模块间需要用逗号隔开。

12 #当解释器遇到import语句时,如果模块在当前搜索路径就会被导入。搜索路径是一个解释器,会先搜索所有目录的列表。

13 #当我们使用import语句时,Python解释器怎样找到对应的文件呢?这就涉及Python的搜索路径,搜索路径由一系列目录名组成,Python解释器会依次从这些目录中寻找引入的模块。

14 看起来很像环境变量,事实上可以通过定义环境变量的方式确定搜索路径。搜索路径是在Python编译或安装时确定的,被存储在sys模块的path变量中。查看搜索路径的方式如下:

15 import sys

16

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

18 #保存文件为import_sys.py,在cmd窗口执行结果如下:

19 D:\Pythonworkspace>python import_sys.py

20 Python的搜索路径为:['D:\\Pythonworkspace', 'D:\\Python\\python36.zip', 'D:\\Python\\DLLs', 'D:\\Python\\lib', 'D:\\Python', 'D:\\Python\\lib\\site-packages']

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

22 #了解搜索路径的概念后,可以在脚本中修改sys.path引入一下不在搜索路径中的模块。

23 #上面我们初步引入了import语句,除了用import引入模块,还有另一种方式引入模块,示例如下:

24 >>> from math import pi

25 >>> print(pi)

26 3.141592653589793

27 #上面的操作使用了from math import pi 的方式,这是什么意思?

28 #在Python中,from语句可以从模块中导入指定部分到当前命名空间中,语法如下:

29 >>>from modnane import name1[,name2[,...nameN]]

30 #例如,from math import pi 语句就是从math模块导入pi到当前命名空间,该语句不会将math整个模块导入。比如在math模块中还有sin、exp函数,在这个语句里这两个函数都使用不了,而导入整个math模块的语句中可以使用,示例如下:

31 >>> import math

32 >>> print(math.pi) #math.pi可以被输出

33 3.141592653589793

34 >>> print(math.sin(1)) #math.sin(1)可以被输出

35 0.8414709848078965

36 >>> print(math.exp(1)) #math.exp(1)可以被输出

37 2.718281828459045

38 >>> from import math.pi

39 SyntaxError: invalid syntax

40 >>> from math import.pi

41 SyntaxError: invalid syntax

42 >>> from math import pi

43 >>> print(pi) #pi可以被输出

44 3.141592653589793

45 >>> print(math.pi)

46 3.141592653589793

47 >>> print(sin(1)) #sin(1)不可以被输出

48 Traceback (most recent call last):

49 File "", line 1, in

50 print(sin(1)) #sin(1)不可以被输出

51 NameError: name 'sin' is not defined

52 >>> print(exp(1)) #exp(1)不可以被输出

53 Traceback (most recent call last):

54 File "", line 1, in

55 print(exp(1))

56 NameError: name 'exp' is not defined

57 #再例如:

58 >>> from math import pi

59 >>> print(math.exp(1))

60 Traceback (most recent call last):

61 File "", line 1, in

62 print(math.exp(1))

63 NameError: name 'math' is not defined

64 >>> import math

65 >>> print(math.exp(1))

66 2.718281828459045

67 #由以上结果可知,如果导入模块,就会得到模块中所有对象;如果指定导入某个对象,就只能得到该对象。

68 #这样做的好处是什么呢?示例:

69 >>> import math

70 >>> print(math.pi)

71 3.141592653589793

72 >>> print(pi)

73 Traceback (most recent call last):

74 File "", line 1, in

75 print(pi)

76 NameError: name 'pi' is not defined

77 >>> from math import pi

78 >>> print(pi)

79 3.141592653589793

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

81 #如果要访问模块中多个对象,是否需要一个一个导入呢?如果要访问math中的pi和sin,是否要写两个from math import语句呢?例如

82 from math import pi

83 from math import sin

84 #当然不用,可以直接使用如下语句:

85 from math import pi,sin

86 #可以从一个导入语句导入多个函数,多个函数之前用逗号分割。

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

88 from math import*

89 #使用该语句可以将math中所有对象都引入,比如上面几个报错的情况就可以成功输出结果:例如:

90 >>> from math import*

91 >>> print(pi) #pi可以被输出

92 3.141592653589793

93 >>> print(math.pi)

94 Traceback (most recent call last):

95 File "", line 1, in

96 print(math.pi)

97 NameError: name 'math' is not defined

98 >>> print(sin(1)) #sin(1)可以被输出

99 0.8414709848078965

100 >>> print(math.sin(1))

101 Traceback (most recent call last):

102 File "", line 1, in

103 print(math.sin(1))

104 NameError: name 'math' is not defined

105 >>> print(exp(1)) #exp(1)可以被输出

106 2.718281828459045

107 #由输出结果看到,pi、sin、exp等函数都可以被正确输出了,这是一个简单的将项目中所有模块都导入的方法。在实际操作过程中,这种声明不建议过多使用,这样不利于编写清晰、简单的代码。只有想从给定模块导入所有功能时才使用这种方式。

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

109 >>> import math as m

110 >>> m.pi

111 3.141592653589793

112 #由输出结果看到,给模块取别名的方式为:在导出模块的语句末尾增加一个as子句,as后面跟上别名名称。

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

114 >>> from math import pi as p

115 >>> p

116 3.141592653589793

117 #由输出结果可知,我们为pi取了别名为p,为函数取别名的方式和为模块取别名的方式类似,也是在语句后面加上as,as后面跟上别名名称。

python import math报错_import语句相关推荐

  1. python import requests报错_import requests 出错,搜了很多,没解决,求教.

    requests 依赖的库都已经安装了. Requirement not upgraded as not directly required: chardet<3.1.0,>=3.0.2 ...

  2. python导入requests报错_import requests报错

    参考:https://blog.csdn.net/weixin_42342979/article/details/81751124 import requests报错 requests的安装我尝试了两 ...

  3. python import xlrd 报错_python读取excel(xlrd)

    一.安装xlrd模块: 1.mac下打开终端输入命令: pip install xlrd 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 import xlr ...

  4. python import random 报错_Python import random报错处理办法

    python安装失败:make的时候报错: /usr/include/tkDecls.h:1542: error: expected ')' before '*' token /usr/include ...

  5. python import random 报错_导致python中import错误的原因是什么

    Python程序可以调用一组基本的函数(即内建函数),比如print().input()和len()等函数.Python本身也内置一组模块(即标准库).每个模块都是一个Python程序,且包含了一组相 ...

  6. python import pandas报错找不到_扎心!“我学了半年 Python,还是找不到工作”

    在编程界,Python是一种神奇的存在.有人认为,只有用Python才能优雅写代码,提高代码效率:但另一部分人恨不能把Python喷成筛子.那么,Python到底有没有用,为什么用Python找不到工 ...

  7. Python与机器视觉(x)windows下import cv2报错dll

    pip install 直接安装opencv_python 有时会与windows中的python版本不匹配,造成import 错误 import cv2 报错 ImportError: DLL lo ...

  8. python里import bs4是什么意思_from bs4 import BeautifulSoup报错

    Windows下安装BeautifulSoup4完后,from bs4 import BeautifulSoup报错: >>> from  bs4 import BeautifulS ...

  9. python导入模块报错syntaxerror_python import错误 SyntaxError: invalid syntax

    Python 3.6print 出现 SyntaxError: invalid syntax 开始使用sublime学习python,编写代码如图 Ctrl+B运行以后,报错   SyntaxErro ...

最新文章

  1. opencv用java完成的例子_SpringBoot整合OpenCV的实现示例
  2. apply_async进程不执行_c/c++面试精选题(八)简单回答,进程和线程关系及区别...
  3. 2020\Simulation_1\2.约数个数
  4. oracle进程瞬间暴增,oracle goldengate ogg 源段传输进程lag延迟不断增加的原因?
  5. java操作sql数据库_java-JDBC连接数据库并进行SQL操作
  6. 给你的数据来一个顶层设计
  7. can connect mysql not server_MySQL -- 配置文件my.cnf 的详细说明
  8. Swagger注解-@ApiImplicitParams 和 @ApiImplicitParam
  9. 想开公司没钱租用办公地,注册地址怎么办?
  10. ibm笔记本电脑电池_笔记本电脑是一直插着电源好,还是拔了电源好?
  11. Linux学习笔记一:vmware安装Ubuntu虚拟机并进行联网设置
  12. 用unity协程写的发牌程序
  13. 80.共享内存实现进程通信
  14. Windows7系统如果安装升级IE11浏览器
  15. ubuntu18.04LTS搭建hackrf+limesdr软件无线电开发环境,并下载Gnuradio。
  16. TI DSP C64X 优化基本方法
  17. Netflow、Netstream、sflow
  18. c语言作业参考文献,c语言外文参考文献_数学类的文献 外文翻译_c 语言与面向对象的设计 习题及参考解答...
  19. OpenStack裸金属使用总结
  20. linux connect 超时时间,Linux下connect超时处理【总结】

热门文章

  1. 慎用System.out.println!!!
  2. 面向对象和面向过程两种编程方式的比较
  3. 大模型基础之词表示和语言模型
  4. OpenCV 3.4.0安装教程
  5. 学习笔记 python取余
  6. webpack externals键值研究
  7. sqlilabs—less5
  8. 微信语音识别和语义理解接口
  9. 知乎刷爆朋友圈的H5,回答了周源年初提出的几个问题
  10. uni-app自定义导航栏右侧做增加按钮并跳转链接