码迷,mamicode.com
首页 > 编程语言 > 详细

Python-模块

时间:2018-03-27 20:51:55      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:注意   splay   结构   AC   文件中   结构化   cloc   arm   多层   

一、模块:

  Python中的模块,就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包好可执行的代码。

  文件名就是模块名加上后缀.py,在模块内部,模块名存储在全局变量__name__中,是一个string,可以直接在模块中通过__name__引用到模块名。

  模块分为三类:

    -- 自定义模块

    -- 内置模块

    -- 第三方模块

  导入模块:

    -- import:使导入者以一个整体获取一个模块

    -- from:使导入者从一个模块文件中获取特定的变量名

    -- reload:在不终止Python程序的情况下,提供了一个重新载入模块文件代码的方法

  导入模块的方法:

 1 import module # 会先把module执行一遍(如果里边有可执行程序)
 2 from module.xxx.xxx import xx
 3 from module.xxx.xxx import xx as rename
 4 from module.xxx.xxx import *   # 不推荐使用,因为里边可能有一些代码,跟执行文件里自定义的可执行代码重复,导致覆盖
 5 
 6 
 7 正确的调用方式:
 8 
 9 import cal #当前目录直接调用模块
10 
11 from my_module import cal  # 二层目录调用
12 
13 from web1.web2.web3 import cal  # 多层目录调用
14 
15 from web1.web2.web3.cal import add # 只调用某个方法
16 
17 
18 
19 注意:不支持的调用方式  (调用包就是执行包下的__init__.py文件)
20 from web1.web2 import web3  #这样是执行web3的__init__文件,唯一不支持的调用方式
21 print(web3.cal.add(2,6))

 

  获取模块的路径:

 1 import sys
 2 print(sys.path)
 3 
 4 添加路径:
 5 
 6 import sys
 7 import os
 8 # project_path=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 9 # sys.path.append(project_path)
10 print(os.path.abspath(__file__)) # 是获取的文件名,路径是pycharm加上的
11 print(os.path.dirname(os.path.abspath(__file__))) # 获取文件的路径
12 print(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) #获取上一层目录

 

  第三方模块:

技术分享图片
 1 #先安装 gcc 编译和 python 开发环境
 2 yum install gcc
 3 yum install python-devel
 4  5 apt-get python-dev
 6  
 7 #安装方式(安装成功后,模块会自动安装到 sys.path 中的某个目录中)
 8 yum
 9 pip
10 apt-get
11 ...
12 #进入python环境,导入模块检查是否安装成功
第三方模块(linux)

 

二、包(package)

  如果不同的人编写的代码模块名相同怎么办?为了避免冲突,Python引入了按目录来组织模块的方法,称为包。

  技术分享图片

  如图所示,两个cal.py冲突了,但是功能不同,所以给两个模块选择一个顶层包(不能重名),在调用就不会冲突了。

  --注--:

    请注意:每个包目录下来都会有一个__init__.py的文件,这个文件必须是存在的,否则,Python就不把这个目录当成普通目录,而不是一个包,__init__.py可以是空文件,也可以有python代码,__init__.py本身就是一个文件,它的模块名就是对应的包名,它一般由于做接口文件。

    调用包就是执行包下的__init__.py文件

三、time模块  

1 时间有三种表达方式:
2 
3 时间戳: unix元年到现在------>time.time()
4 格式化的字符串:如:2016-12-12 10:10------->time.strftime(‘%Y-%m-%d‘)
5 结构化时间:元组 ------>time.struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)    即:time.localtime()

 

  

 1 import time
 2 
 3 # 1、时间戳
 4 print(time.time())
 5 
 6 # 2、localtime()
 7 print(time.localtime())  # 空参
 8 ##time.struct_time(tm_year=2016, tm_mon=9, tm_mday=11, tm_hour=0, tm_min=38, tm_sec=39, tm_wday=6, tm_yday=255, tm_isdst=0)
 9 
10 print(time.localtime(1422222222)) # 指定时间戳
11 
12 # 3、gmtime()
13 print(time.gmtime()) # gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。
14 
15 
16 # 4、mktime()
17 print(time.mktime(time.loacltime())) #将结构化时间转换为时间戳
18 
19 # 5、asctime()
20 print(time.asctime()) # 将结构化时间转变为:‘Sun Jun 20 23:21:05 1993‘
21 默认参数是time.localtime()
22 
23 # 6、ctime()
24 print(timectime()) #将时间戳转化为:‘Sun Jun 20 23:21:05 1993‘
25 默认参数是time.time()
26 
27 # 7、strftime()
28 print(time.strftime(format[,t])) #结构化时间转化为 字符串时间
29 默认参数time.localtime()
30 print(time.strftime(%Y-%m-%d %X,time.localtime())) # 2018-03-26 19:11:36
31 
32 # 8、strptime()
33 print(time.strptime())# 字符串时间转化为结构化时间
34 print(time.strptime(2016:12:23:17:20:20,%Y:%m:%d:%X)) # time.struct_time(tm_year=2016, tm_mon=12, tm_mday=23, tm_hour=17, tm_min=20, tm_sec=20, tm_wday=4, tm_yday=358, tm_isdst=-1)
35 
36 # 9、sleep()
37 
38 # 10、clock()
39 这个需要注意,在不同的系统上含义不同。
40 在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。
41 而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间,即两次时间差

 

        记住如下图即可:

技术分享图片技术分享图片

 

    ---注---    

1 import datetime
2 print(datetime.datetime.now())
3 ##2018-03-27 17:47:07.211182

四、random模块  

  随机数模块:

 1 import random
 2  
 3 print(random.random())          #用于生成一个0到1的随机符点数: 0 <= n < 1.0
 4 print(random.randint(1,2))      #用于生成一个指定范围内的整数 [1,2]
 5 print(random.randrange(1,10))   #从指定范围内,按指定基数递增的集合中获取一个随机数 [1,10)
 6 print(random.uniform(1,10))     #用于生成一个指定范围内的随机符点数 9.49909962942907
 7 print(random.choice(nick))    #从序列中获取一个随机元素 c
 8 li = [nick,jenny,car,]
 9 random.shuffle(li)              #用于将一个列表中的元素打乱
10 print(li)
11 li_new = random.sample(li,2)    #从指定序列中随机获取指定长度的片断(从li中随机获取2个元素,作为一个片断返回)
12 print(li_new)

 

Python-模块

标签:注意   splay   结构   AC   文件中   结构化   cloc   arm   多层   

原文地址:https://www.cnblogs.com/JerryZao/p/8659018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!