python标准库math中用来计算平方根的函数是,python标准库和第三方库区别
该模块现在知道如何通过导入从外部模块获取函数:
例如,导入数学
那么如何编写自己的模块呢?
是一个模块程序。任何Python程序都可以作为模块导入。
假设您在/root目录中编写hello.py,内容如下:
# hello.py
打印“Hello”进入python解释器:
导入系统
sys.path.append(/root )
导入模块后,将出现一个新文件:
-rw-r-r-1 root root 24 Jul 16 17:29 hello . py
-RW-R-R-1 Root Root Root 110 jul 16 17:30 hello . pyc此文件的扩展名为。pyc已编译。如果再次导入同一个模块,Python将导入。pyc文件,而不是。py文件。
导入模块主要用于定义,比如导入变量、函数、类等。你只需要定义这些东西一次,所以多次导入和一次导入效果一样。
模块用于定义1。在模块中定义函数。
#你好. py
def hello():
打印“Hello2”运行:
导入hello2
2.你好()2。在模块中添加测试代码。
如果您想确保hello函数正常工作,您可以将hello2重写为一个新模块(仍称为hello2):
#你好. py
def hello():
打印“Hello2”
#测试
你好()运行:
导入hello2
Hello2
2.hello2.hello()这可能不是想要的结果。我们必须区分将模块作为程序运行还是导入其他程序。为此,您需要使用__name__变量:
__姓名_ _
__main__
你好。__姓名_ _
Hello2 在主程序中(包括解释器的交互提示),变量__name__是__main__而在导入的模块中,是模块的名称。因此,我这样修改hello2:
#你好. py
def hello():
打印“Hello2”
#测试
定义测试():
你好()
if __name__==__main__ :
测试()运行:
[root @ instance-54lh 4 cfv ~]# python hello 2 . py
Hello2
[root @ instance-54lh 4 cfv ~]# python
Python 2.7.5(默认,2019年4月9日14:30:50)
linux2上的[GCC 4 . 8 . 5 2015 06 23(Red Hat 4 . 8 . 5-36)]
有关详细信息,请键入“帮助”、“版权”、“配额”或“许可证”。
Import2如果作为程序运行,将执行hello函数。当作为模块导入时,它不会被执行。
使您的模块在前面的示例中可用,并通过修改sys.path告诉解释器在哪里可以找到该模块。通常您不希望每次都这样做,因此有两种方法可以做到这一点:
将模块放在适当的位置;告诉解释器在哪里可以找到需要的模块。
1.将模块放在正确的位置:
导入系统,pprint
Pprint.pprint(sys.path) #提供更智能的打印输出
[,
/usr/lib64/python27.zip ,
/usr/lib64/python2.7 ,
/usr/lib 64/python 2.7/plat-Linux 2 ,
/usr/lib64/python2.7/lib-tk ,
/usr/lib64/python2.7/lib-old ,
/usr/lib 64/python 2.7/lib-dyn load ,
/usr/lib 64/python 2.7/site-packages ,
/usr/lib 64/python 2.7/site-packages/GTK-2.0 ,
/usr/lib/python 2.7/site-packages ]解释器可以从这些路径中找到模块,site-packages目录是最佳选择。把hello2.py放在这个目录里就行了。
2.告诉编译器去哪里找
如果我们想把模块放在其他地方,我们可以采用这种方案。
是模块通常包含在PYTHONPATH环境变量中的目录。
3.命名模块
包含模块代码的文件名应该与模块名相同。
为了更好地组织模块,可以将包分组为包。包是另一种模块,它可以包含其他模块。其实就是模块的目录。
为了让python把它当作一个包,它必须包含一个名为__init__py的文件。
例如,有一个名为drawing的包,其中包含名为shapes和colors的模块。
参考代码:
导入绘图#此时绘图中__init__模块的内容可用。
导入drawing.colors #此时颜色模块可用,但它只能由drawing.colors的全名使用。
从绘图导入shapes#此时,shapes模块是可用的,并且你只能使用shapes来使用标准库。标准库将与Python解释器一起安装在您的计算机中。它是Python不可或缺的一部分。这些标准库就是Python为你准备的利器,可以让编程更有效。
以下是一些常见的标准库。
Sys可以通过这个模块访问与python解释器密切相关的变量和函数:
函数/变量
形容
参数
命令行参数,包括脚本名称
退出([arg])
退出当前程序。
模块
将模块名映射到加载该模块的字典。
小路
找到模块所在目录的目录名列表。
平台
平台标识符
标准输入设备
标准输入流
标准输出
标准输出流
标准错误
标准流程
我们为徐帆实现了一个脚本来打印命令行参数:
导入系统
args=sys.argv[1:] #argv[0]是文件名
args.reverse()
打印“”。join(args)执行并添加一些参数:
[root @ root ~]# python reverse args . py这是一个测试
Testos提供对多种操作系统服务的访问。
函数/变量
形容
包围
映射环境变量
系统(命令)
在子外壳中执行操作系统命令
九月
路径中的分隔符
pathsep
用于分离路径的分离器
linesep
行分隔符
铀
返回N字节加密的强随机数据。
这个模块允许你轻松的遍历一个文件的所有行。
功能
形容
输入([文件[,就地[,备份]]
遍历多个输入流中的行
文件名()
返回当前文件的名称。
行号()
返回当前累积的行数。
关闭()
关闭文件链
通过给代码编号的脚本演示此模块的使用:
导入文件输入
对于文件input.input中的行(inplace=true): # true就地处理,即直接修改原文件。
Line=line.rstrip()#删除行尾的空格
Num=fileinput.lineno()#获取行号
Print %-40s # %2i% (line,num) #重写格式内容#行号如果运行:python number lines . py number lines . py
输入文件输入# 1
对于文件input.input中的行(inplace=True): # 2
line=line.rstrip() # 3
num=fileinput.lineno() # 4
打印 %-40s # %2i %(行,编号)# 5
# 6以上脚本中的中文注释是我后来加上的。
小心地将inplace设置为True,因为它很容易破坏文件。
以及deque heap,这是一种优先级队列。python中没有独立的堆类型,只有一个包含一些堆操作函数的模块—— heapq,包括6个函数:
功能
形容
堆,x
x到堆中
堆
弹出堆中最小的元素(原来是一个小的顶堆)
堆积
按列表构建堆
heapreplace(堆,x)
弹出堆中最小的元素,同时将X放入堆中。
nlargest(n,iter)
返回iter中第n个最大的元素。
n最小(n,iter)
返回iter中第n个最小的元素
前四个与堆操作直接相关,列表必须视为堆对象本身(堆可以用数组实现,这里可以理解为用列表实现)。
从heapq导入*
从随机导入洗牌
数据=范围(10)
随机播放(数据)
数据
[9, 8, 1, 0, 3, 4, 7, 6, 5, 2]
Heapify(data) #你可以直接从列表中构建一个堆。
数据
[0, 2, 1, 5, 3, 4, 7, 6, 8, 9]
Heappush(data,0.5) # heap 0.5。
数据
[0, 0.5, 1, 5, 2, 4, 7, 6, 8, 9, 3]
Heappop(data) #弹出三个最小元素。
0
heappop(数据)
0.5
heappop(数据)
1堆的性质请参考Java二进制堆。虽然是用Java语言描述的,但应该不妨碍理解。
Deque也可以由iterable对象创建:
从集合导入队列
q=德克(范围(5))
q
德克([0,1,2,3,4])
q .追加(5)
q.appendleft(6)
q
德克([6,0,1,2,3,4,5])
q .波普()
五
q.popleft()
六
q .旋转(3)
q
德克([2,3,4,0,1])
q .旋转(-1)
q
Deque([3,4,0,1,2])双端意味着可以在两端添加和删除元素。
旋转(n=1)是将它们向左或向右移动,使头部和尾部连接起来。当N为正时,意味着从左向右循环移动N位。当N为负时,表示从右向左循环移动N位。例如,deq.rotate(1)等效于deq.appendleft(deq.pop())。
时间模块可以获取当前时间、操作时间和日期,从字符串中读取时间,并将时间格式化为字符串。
许多Python函数使用由一个元素组装的9组数字处理时间:
导入时间
本地时间=时间.本地时间(时间.时间())
打印“本地时间是:”,本地时间
当地时间是:时间。struct _ time (TM _ year=2019,TM _ mon=7,TM _ mday=17,TM _ hour=17,TM _ min=43,TM _ sec=34,TM _ wday=2,TM _ yday=198)
local time=time . ASC time(time . local time(time . time()))
地方时间
Wed Jul 17 17:44:13 2019random包含返回随机数的函数
功能
形容
随机()
返回一个介于0 n=1之间的随机实数n
制服(甲、乙)
返回一个随机数n,其中a=n b
rand range([开始],停止,[步进])
返回范围内的随机数(开始、停止、步进)
选择(顺序)
从序列seq中返回随机元素
无序播放(顺序[,随机])
打乱(打乱)原位序列seq
原创作品来自愤怒的可乐,的博主,转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。