模块:

模块,用一砣代码实现了某个功能的代码集合。不同功能,放置在不同模块中,模块就是一个.py文件。避免函数重复写代码。对于相同功能的代码。只需要调用该模块或者该模块里面的函数就可以。增加灵活性,和维护性。事先定义好,其他模块可以来调用该函数。

所以,模块一共三种:

  • python标准库(内置模块):time模块(time.py文件)import time   time.sleep()。python解释器内置,查找顺序最高!!c语言内置
  • 第三方模块                    无法直接调用到,不过可以自己安装外部资源库。可以通过pap命令安装到python内部。
  • 应用程序自定义模块  

import:输入; 进口,导入; 重要性; 意义;  

简单例子

导入模块:import cal.

cal文件

  1. #/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. #保存函数相关的函数
  5. print('ok1')
  6. def add(x,y):
  7. return x+y
  8.  
  9. def sub(x,y):
  10. return x-y
  11. print('ok2')

import之后,发现会先执行一遍要导入的模块。所以在模块里面:只写功能函数,避免写逻辑函数!

  1. ok1
  2. ok2

import的作用:

      1、执行调用模块文件

      2、引入变量名(cal)所以:cal.add(2,3)就可以执行cal模块里面的函数。

调用调用多个模块:import cal,time  两者并列执行。

【***.函数→cal.add(2,3)】简写:

from cal import add  也会执行cal里面的所有代码。然后在找到对应的add函数名。

from cal import add

from cal import *  导入cal模块中的所有函数。避免如此用,过多的导入函数,可能会和当前逻辑中的函数重名,导致只能生效后者。

二、路径

  会把执行文件的路径添加到:sys.path里面。查找模块会到这里面来查找。

所以调用模块时:

如:import cal  :这里里面的cal必须和当前调用的执行文件包含这一路径。后者无法找到:cal文件模块。

所有的import都会从执行文件的目录去找,能找到就执行,不能找到就报错。对于不在该目录下,又要被调用的模块可以通过from来解决

from my_modle(和执行文件同级)import cal   这样就可以导入cal里面的函数变量

解决办法:加载路径;

  

 

跨文件调用:

2.1、修改环境变量---临时的环境变量,

二、package 包

  1⃣️、把功能相关,或者大功能放置在一起,形成一个包。比如:日志相关的包。如此代码更加清晰,微信【支付、聊天、朋友圈区分为不同的包→之后继续往下细分】

  2⃣️、通过包来隔离个个py文件,避免相互之间的名字冲突,因为彼此路径不同。

2.1 包的调用

1⃣️

  1. from web.web1.web3 impprt cal
  2. cal.add(2,6)
  3. >>>
  4. 8

2⃣️

  1. #
  2. from web.web1.web3.cal import add
  3. print(add(2,3) )
  4.  
  5. >>>>
  6. 5
  7.  
  8. #3
  9. from web.web1 import web3 执行web3_init_文件。唯一不支持的调用方式
  10. print(web3.cal.add(2,3))
  11.  
  12. >>>
  13. 报错
  14.  
  15. #
  16. from web.web1 import web3 web3里面的init文件里面写一句:from . import cal
  17. print(web3.cal.add(2,3))
  18.  
  19. >>>
  20. 8

2.2、程序通常与

  if  '__name__'==main:  用于被调用文件的测试。放置在:bin文件中,不像该文件北其他文件调用。避免相互之间的相互调用。避免大坑!!!

     cal.add()

作为主程序运行时:

        变量__name__==main   可以利用相等的特性对模块进行测试。

  当前模块被调用时:__name__是cal.py的路径名字!!。web.web1.web3.cal.这样可以避免被调用时执行测试部分的代码,避免混乱。

三、time模块

在Python中,通常有这几种方式来表示时间:

  • 时间戳(timestamp) :         通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
  • 格式化的时间字符串
  • 元组(struct_time)   :         struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)

3.1、代码例子

当前运行文件的文件名为:time,或者运行文件同级存在time文件。即使重名,任不会报错,依然可以如此调用到内置time模块。

  1. import time
  2. time.sleep(2)
  3. print('ok')

解释:无论是自己定义、系统内置中,都是到环境变量中去查找(sys.path)

当前:最深路径到:_day21.

附录:关于\脱产三期【工程的路径】,也被加入到路径当众的解释:在系统中执行就没有此路径 。所以是pytharm自己添加上!!

3.2 time模块的方法:

1⃣️、时间模块

时间戳:

在Python中,通常有这几种方式来表示时间:

  • 时间戳(timestamp) :         通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
  • 格式化的时间字符串
  • 元组(struct_time)   :         struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
  1. import time
  2. # 1 time() :返回当前时间的时间戳
  3. time.time() #1473525444.037215
  4.  
  5. #----------------------------------------------------------
  6.  
  7. # 2 localtime([secs])
  8. # 将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准。
  9. time.localtime() #time.struct_time(tm_year=2016, tm_mon=9, tm_mday=11, tm_hour=0,
  10. # tm_min=38, tm_sec=39, tm_wday=6, tm_yday=255, tm_isdst=0)
  11. time.localtime(1473525444.037215)
  12.  
  13. #----------------------------------------------------------
  14.  
  15. # 3 gmtime([secs]) 和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。
  16.  
  17. #----------------------------------------------------------
  18.  
  19. # 4 mktime(t) : 将一个struct_time转化为时间戳。
  20. print(time.mktime(time.localtime()))#1473525749.0
  21.  
  22. #----------------------------------------------------------
  23.  
  24. # 5 asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。
  25. # 如果没有参数,将会将time.localtime()作为参数传入。
  26. print(time.asctime())#Sun Sep 11 00:43:43 2016
  27.  
  28. #----------------------------------------------------------
  29.  
  30. # 6 ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
  31. # None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
  32. print(time.ctime()) # Sun Sep 11 00:46:38 2016
  33.  
  34. print(time.ctime(time.time())) # Sun Sep 11 00:46:38 2016
  35.  
  36. # 7 strftime(format[, t]) : 把一个代表时间的元组或者struct_time(如由time.localtime()和
  37. # time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个
  38. # 元素越界,ValueError的错误将会被抛出。
  39. print(time.strftime("%Y-%m-%d %X", time.localtime()))#2016-09-11 00:49:56
  40.  
  41. # 8 time.strptime(string[, format])
  42. # 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
  43. print(time.strptime('2011-05-05 16:37:06', '%Y-%m-%d %X'))
  44.  
  45. #time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6,
  46. # tm_wday=3, tm_yday=125, tm_isdst=-1)
  47.  
  48. #在这个函数中,format默认为:"%a %b %d %H:%M:%S %Y"。
  49.  
  50. # 9 sleep(secs)
  51. # 线程推迟指定的时间运行,单位为秒。
  52.  
  53. # 10 clock()
  54. # 这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。
  55. # 而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行
  56. # 时间,即两次时间差。

Format string:字符串时间

Timestamp:时间戳

struct_time:结构化时间

  1. print(time.localtime(time.time()))
  2. print(time.gmtime(time.time()))
  3. print(time.mktime(time.localtime()))
  4. print(time.mktime(time.gmtime()))
  5.  
  6. >>>
  7. time.struct_time(tm_year=2016, tm_mon=12, tm_mday=31, tm_hour=21, tm_min=11, tm_sec=20, tm_wday=5, tm_yday=366, tm_isdst=0)
  8. time.struct_time(tm_year=2016, tm_mon=12, tm_mday=31, tm_hour=13, tm_min=11, tm_sec=20, tm_wday=5, tm_yday=366, tm_isdst=0)
  9. 1483189880.0
  10. 1483161080.0
  1. help(time)
  2. help(time.asctime)

模块大全:

random模块(* *)

os模块(* * * *)

sys模块(* * *)

json & pickle(* * * *)

shelve模块(* * *)

xml模块(* *)

configparser模块(* *)

hashlib模块(* *)

subprocess模块(* * * *)

logging模块(* * * * *)

re模块(* * * * *)

day21、模块的更多相关文章

  1. day21.模块和包

    博客整理来源:http://www.cnblogs.com/Eva-J/articles/7292109.html 模块 1.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文件 ...

  2. day21 模块 异常处理

    常用模块:http://www.cnblogs.com/Eva-J/articles/7228075.html 今日概要: #time # —— 时间:时间戳 字符串 结构化时间 #collectio ...

  3. Python day21模块介绍4(logging模块,configparser模块)

    1.日志等级从上往下依次降低 logging.basicConfig(#日志报错打印的基础配置 level=logging.DEBUG, filename="logger.log" ...

  4. day21 模块

    目录 模块 import 与 from...import 循环导入问题 解决方案一 解决方案二 Python文件的两种用途 从普通的面条型代码,到函数型代码,其实是在做什么? 封装代码,一个函数差不多 ...

  5. day21 模块与包+软件开发目录规范

    目录 一.导入模块的两种方式 二.模块搜索的路径的优先级 三.循环导入 四.区分py文件的两种用途 五.编写一个规范的模板 五.包 1 什么是包 2 为什么要有包 3 包的相关使用 3.1 在当前文件 ...

  6. python的内置模块xml模块方法 xml解析 详解以及使用

    一.XML介绍 xml是实现不同语言或程序直接进行数据交换的协议,跟json差不多,单json使用起来更简单,不过现在还有很多传统公司的接口主要还是xml xml跟html都属于是标签语言 我们主要学 ...

  7. python之常用模块4

    pyinotify模块 pip3 install pyinotify pyinotify提供的事件: 事件标志 事件含义 IN_ACCESS 被监控项目或者被监控目录中的文件被访问,比如一个文件被读取 ...

  8. python的内置模块之os模块方法详解以及使用

    1.getcwd() 获取当前工作路径 import os print(os.getcwd()) C:\python35\python3.exe D:/pyproject/day21模块/os模块.p ...

  9. python的内置模块random随机模块方法详解以及使用案例(五位数随机验证码的实现)

    1.random(self): Get the next random number in the range [0.0, 1.0) 取0到1直接的随机浮点数 import random print( ...

  10. python的内置模块time和datetime的方法详解以及使用(python内的time和datetime时间格式)

    time内置模块的方法 1.time() 时间戳 time() -> floating point number  浮点数 Return the current time in seconds ...

随机推荐

  1. 【转】slice,substr和substring的区别

    首先,他们都接收两个参数,slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度.直接看下面例子: var test = ' ...

  2. 【LeetCode OJ】Recover Binary Search Tree

    Problem Link: https://oj.leetcode.com/problems/recover-binary-search-tree/ We know that the inorder ...

  3. B样条基函数(cubic spline basis)

    B样条基函数用作权重 reference http://blog.csdn.net/tuqu

  4. C#使用QQ邮箱发送邮件

    首先要开通QQ邮箱的STMP服务.QQ邮箱——设置——账户——开启SMTP服务. 需要引用: using System.Net; using System.Net.Mail; using System ...

  5. 《HP大规模敏捷开发实践》读书笔记

    读这本书的心得,敏捷是实践出来的,哪怕不懂srcum**等方法,只要坚持心中的价值观,朝一个方向改进,哪怕不能“任何时候都拥有符合发布要求的代码”,今天比昨天好,也是成功.     通过业务分析确定开 ...

  6. 使用SqlLocalDB命令行管理LocalDB

    SqlLocalDB.exe start v11.0 SqlLocalDB.exe info v11.0 SQL Server Management Stdio添加管道连接实例 默认实例名(local ...

  7. FreeBSD 配置

    FreeBSD 配置 1. FreeBSD源代码下载站点:

  8. iOS Orientation bug

    Every September means pain for iOS developers- you need to make sure your old apps/code run on the n ...

  9. 更新系统没有mac dashboard 问题解决

    今天更新了mac的系统到EL Capitan,结果出来以后发现平时经常使用的mac dashboard没了,就是这玩意: 找了半天方法,终于知道了这个叫“dashboard” (md之前完全不知道,无 ...

  10. yii accessRules用法

    访问控制过滤器(Access Control Filter)访问控制过滤器是检查当前用户是否能执行访问的controller action的初步授权模式. 这种授权模式基于用户名,客户IP地址和访问类 ...