在python中,我们可以把一些功能模块化,就有一点类似于java中,把一些功能相关或者相同的代码放到一起,这样我们需要用的时候,就可以直接调用了

这样做的好处:

  1,只要写好了一个功能模块,就可以在以后调用,代码的重用就可以体现出来了

  2,功能写好了以后,不会发生错误。如果一个相同的功能,我们在一个模块中写了一遍,在另外的模块中又写了一遍......这样我们难免保证我们在写的过程中不发生错误。

    但是我们如果能够写一个功能模块写好了以后,就把他用在很多地方,其一,用起来方便,其二,可以保证其正确性

  3,代码共享

说了这么多,还是来点实际的比较好!!!

我们新建一个文件:fibo.py(当然这个名字可以随个人意愿)

 #Modules

 def fib(n):       # write Fibonacci series up to n
a,b = 0,1
while b < n:
print(b,end=' ')
a,b = b, a + b
print() def fib2(n): # return Fibonacci series up to n
result = []
a,b = 0,1
while b < n:
result.append(b)
a,b = b, a + b
return result def add(numberA,numberB): #定义加法
return numberA + numberB def sub(numberA,numberB): #定义减法
return numberA - numberB def mul(numberA,numberB): #定义乘法
return numberA*numberB def div(numberA,numberB): #定义除法
if numberB != 0:
return numberA//numberB
else:
return 'Error'

上面就是我们自定义的一个简单的功能模块,里面定义了一些方法。

我们需要在:test_modules.py(和fibo.py文件在同一个目录的另一个文件)文件中调用fibo.py中的方法:

 import fibo

 fibo.fib(1000)
result = fibo.fib2(1000)
print(result)

运行效果:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
>>>

现在我们又定义了一个文件:

test_modules1.py调用fibo.py中的部分方法

 from fibo import fib,fib2

 #这里是可以直接使用以上两个方法的
fib(100) result = fib2(1000)
print(result)

上面描述的是,我们应用了fibo.py文件中的fib,fib2两个方法

运行效果:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
1 1 2 3 5 8 13 21 34 55 89
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]
>>>

如果我们要应用fibo.py中的所有方法,我们可以这样做:

 #应用fibo.py中所有的方法
#有一点类似于java中的引入包的形式
from fibo import * #这里可以使用fibo中的所用方法 fib(1000) print(fib2(100))
numberA = 20
numberB = 5 print('加法计算:',numberA,'+',numberB,'=',add(numberA,numberB))
print('减法计算:',numberA,'-',numberB,'=',sub(numberA,numberB))
print('乘法计算:',numberA,'*',numberB,'=',mul(numberA,numberB))
print('除法计算:',numberA,'/',numberB,'=',div(numberA,numberB))

运行效果:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
加法计算: 20 + 5 = 25
减法计算: 20 - 5 = 15
乘法计算: 20 * 5 = 100
除法计算: 20 / 5 = 4
>>>

python开发_python中的module的更多相关文章

  1. python开发_python中的函数定义

    下面是我做的几个用列: #python中的函数定义,使用和传参 def_str = '''\ python中的函数以如下形式声明: def 函数名称([参数1,参数2,参数3......]): 执行语 ...

  2. python开发_python中字符串string操作

    在python中,对于字符串string的操作,我们有必要了解一下,这样在我们的以后的开发中会给我们带来很多方便 下面是我学习的笔记: #python-string #python中的字符串用单引号' ...

  3. python开发_python中的list操作

    对python中list的操作,大家可以参考: Python list 操作 以下是我个人的笔记: ============================================ Add b ...

  4. python开发_python中str.format()

    格式化一个字符串的输出结果,我们在很多地方都可以看到,如:c/c++中都有见过 下面看看python中的字符串格式函数str.format(): 1 #使用str.format()函数 2 3 #使用 ...

  5. python开发_python中的Boolean运算和真假值

    python中的真假值: Truth Value Testing Any object can be tested for truth value, for use in an if or while ...

  6. python开发_python中的range()函数

    python中的range()函数的功能hen强大,所以我觉得很有必要和大家分享一下 就好像其API中所描述的: If you do need to iterate over a sequence o ...

  7. python开发_python中的变量:全局变量和局部变量

    如果你在为python中的变量:全局变量和局部变量头疼,我想这篇blog会给你帮助 运行效果: 代码部分: #Python中的变量:全局变量和局部变量 #在很多语言中,在声明全局变量的时候,都喜欢把全 ...

  8. python开发_python中for循环操作

    如果你对python中的for循环不是很清楚,请看看这篇文章:”for循环控制语句——菜鸟的Python笔记“ 下面是我做的一些学习记录供大家参考: #基本的for循环语句 test_list = [ ...

  9. python开发_python关键字

    python3.3.2中的关键字如下: The following identifiers are used as reserved words, or keywords of the languag ...

随机推荐

  1. Objective C - 1 - 实现一个MessageBox.Show

    @interface K3ViewController : UIViewController<UIAlertViewDelegate> @end #import "K3ViewC ...

  2. ubuntu 搜狗输入法成功安装

    第一次成功安装这个破玩意,心里万分高兴啊! 几个条件: 1 ubuntu14.04 2 对的教程 参考文献:http://jingyan.baidu.com/article/ad310e80ae6d9 ...

  3. 2018秋C语言程序设计(初级)作业- 第3次作业

    7-1 找出最小值 #include<stdio.h> int main() { int min,i,n,count; scanf("%d",&n); for( ...

  4. html5大纲算法(目录树)

    看了<CSS那些事儿>我一直遵循着给每个板块写一个h标签,并保持层次,比如导航条.焦点图我都写了一个缩进隐藏的h标签.这种规范一般人根本看不出来,即使是行内的大多数人也觉得没有必要.可是我 ...

  5. BZOJ3489 A simple rmq problem 【可持久化树套树】*

    BZOJ3489 A simple rmq problem Description 因为是OJ上的题,就简单点好了.给出一个长度为n的序列,给出M个询问:在[l,r]之间找到一个在这个区间里只出现过一 ...

  6. altium常用快捷键记录

    选中一个网络的点和线ctrl+h: 翻转器件的层 鼠标拖动+L: 镜像器件 鼠标拖动+x: 查看单一层shift+s: 隐藏/查看某些器件ctrl+d:

  7. CSU1632Repeated Substrings(后缀数组/最长公共前缀)

    题意就是求一个字符串的重复出现(出现次数>=2)的不同子串的个数. 标准解法是后缀数组.最长公共前缀的应用,对于样例aabaab,先将所有后缀排序: aab 3    aabaab 1    a ...

  8. bzoj 5120 [2017国家集训队测试]无限之环——网络流

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5120 旋转的话相当于去掉一个插头.新增一个插头,所以在这两个插头之间连边并带上费用即可. 网 ...

  9. hyperledger fabric共识组件分析 --背书策略

    在fabric中,共识过程意味着多个节点对于某一批交易的发生顺序.合法性以及它们对账本状态的更新结构达成一致的观点.满足共识则意味着多个节点可以始终保证相同的状态,对于以同样顺序到达的交易可以进行一致 ...

  10. Unix网络编程 3.9 readline函数

    其实看APUE时就想试着写些简单的stdio函数了,但是一直没实践,看到这里时发现书上写得不完整,便敲代码试了下. 第1个readline速度非常慢原因在于每次读取字符都执行了系统调用read(),而 ...