您的位置:首页 > 编程语言 > Python开发

Python语言基础(模块概述)(day09)

2019-02-02 11:13 120 查看

10.01_Python语言基础(模块概述)(掌握)

  • 模块就好比一个工具包,要想使用这个工具包中的工具(函数),需要导入这个模块

优点:

1.提高代码的可维护性

2.提高代码的复用性,当一个模块定义完毕,可以被多个地方引用

3.引用其他的模块(内置模块,第三方模块)

注意:

避免函数名和变量名的冲突

10.02_Python语言基础(导入模块–import)(掌握)

在python中用关键字import来引入模块,一般放在代码最前面

格式:

import module1,module2....
  • 当解释器遇到import 语句,如果模块在当前的搜索路径就会被导入

    模块调用函数的基本格式:
    模块名.函数名()

思考:

为什么必须加上模块名才能调用?

在多个模块中含有同名的函数,此时如果只是通过函数名来进行调用,解释器就无法知道到底需要调用哪个函数
如果使用import导入模块,在调用的时候必须加上模块名
import math
print(sqrt(2))#错误的
print(math.sqrt(2))

使用from…import,可以只导入模块的一部分

  • 只需要用到模块中的某一个函数,此时只需要引入该函数即可,无需引入模块中的所有函数,浪费内存

    格式:
    from 模块名 import 函数名1,函数名2…
    案例:
    from math import sin,cos
    math.sin()#报错
    sin()
    cos()
    sqrt()#报错

    思考:
    如果想要引入一个math模块中所有的函数
    from math import *

使用from…import * 导入模块所有的内容

from...import*:

把一个模块中所有的内容导入到当前的命名空间

格式:

from  module import *

10.03_Python语言基础(模块重命名import…as)(掌握)

  • as 理解为重命名,将原有的名称替换成一个新的名字
  • 作用:
    有时候导入的模块的名字很长或者很难记住简洁

    格式:
    import modName as newName
    import math as aa(#aa表示math)
    import math as aa
    math#报错
    aa.sin()
    aa.ceil()

注意:如果使用as将原有的模块名重命名,原先的将不可用

10.04_Python语言基础(定位模块–搜索路径)(了解)

当你导入一个模块,python的解释器对模块位置的搜索的顺序:

*	当前目录

*	如果不再当前的目录,python则搜索在shell变量的PYTHONPATH的每一个目录

*	模块的搜索路径存储在system模块的sys.path模块中变量,变量中包含当前的目录,

python path和由安装过程决定的默认的目录

pythonpath 变量----》环境变量

10.05_Python语言基础(标准函数库中的模块)(熟练)

  • math
  • random,
  • os
  • 其他python中自带的标准函数库中的模块

10.06_Python语言基础(使用自定义模块)(重点)

有些时候,Python自带的模块不能很好的解决我们遇到的问题,我们需要自定义一些具有独特功能的模块来完成代码的编写

"""

求和函数

需要传递两个参数:

a:int

b : int

返回a+b的和的结果

"""

def add(a,b):

return a + b

10.07_Python语言基础(调用自定义模块)(掌握)

import test
test.add(1,2)

测试模块

"""

求和函数

需要传递两个参数:

a:int

b : int

返回a+b的和的结果

"""

def add(a,b):
return a - b

ret = add(1,-0)
print(ret)

为了解决测试的问题,python在执行一个文件时有个变量name

如果直接在test.py模块中可以将print进行修改

print()

if name == "main":

执行语句

10.08_Python语言基础(包)(掌握)

  • 定义: 包-----》python中的python package------>文件夹----》容器
  • 问题1:
      为什么需要引入包? 将有练习的模块放到一起(便于查找归纳整理)
  • 问题2:
      如何将有关系的模块联系到一起----》将其放入同一个文件夹
  • 问题3:

      放入到同一个文件夹后如何去导入?

      方式1:
      使用import关键字导入
      格式:
      import 文件.模块
      import day09.test
      # day09.test.add(1,2)
      day09.test.add(1,2)

    方式2:
    
    使用from 文件夹 import 模块
    
    格式:
    
    from 文件夹的名字 import 文件名
    
    from day09 import test
    
    test.add(1,2)

    包使用总结:

    总结:
    
    包将有联系的模块组织在一起,放到同一个文件夹下,
    
    在创建文件夹的时候会自动创建一个init.py文件,======》包

    想一想

    1. init.py文件有什么用?
    
    init.py控制着包的导入的行为
    
    2.init.py文件为空?
    
    仅仅是把包导入,不会导入该包中的模块

    10.09_Python语言基础(安装第三方模块)(掌握)

    • https://pypi.org/
    • 不同系统的安装方式: mac-------》无需安装
    • Linux------》无需安装
    • Windows–》pip
  • 比如:pygame 非常强大的游戏开发库

    格式:
    打开命令提示符
    DOS命令
    pip install 第三方的模块名(前提都是要求联网下载)
  • pip的安装:

    pip的安装:
    
    1.到https://pypi.python.org/pypi/pip   下载pip版本tar.gz,下载完成直接到本地解压
    
    2.在DOS命令行进入pip解压的目录,输入python setup.py install进行安装
    
    3.如果安装完成  提示finished
    
    4.如果出现问题提示pip没有找到该命令,可以将python/Script目录配置到path环境变量中

    安装PTL

    10.10_Python语言基础(时间相关的模块)(熟练)

    • time import time
      datetime
    • import datetime
  • calendar
      import calendar

    在python中表示时间的方式:

    时间戳(timestamp):
    
    时间戳表示的是从1970年1月1日00:00:00,按秒计算偏移量
    
    clock(),time()
    
    print(type(time.time()))	#返回的是float
    print(time.time())
    print(time.clock())

    格式化的时间字符串(了解):

    %a	本地简化的星期的名称
    
    %A	完整的星期的名称
    
    %b	简化的月份的名称
    
    %B	完整的月份的名称
    
    %c	本地对应的日期表示和时间表示
    
    %d	月内中的天数(0~31)
    
    %H	24小时制小时数(0~23)
    
    %m	月份(01~12)
    
    %M	分钟数(00~59)
    
    %w	星期(0~6) 星期天开始

    元组:共有9中元素,返回的是struct_time的函数主要有gmtime(),localtime(),strptime()

    索引   属性         	值
    
    0     tm_year(年)      2018
    
    1     tm_mon(月)       1~12
    
    2     tm_mday(日)      0~31
    
    3     tm_hour(时)      0~23
    
    4     tm_min(分钟)     0~59
    
    5     tm_sec(秒)       0~61
    
    6     tm_wday(weekday)   0~6(0表示周日)
    
    7     tm_yday(一年中的第几天)   1~366
    
    8     tm_isdst(是否是夏令时)   默认为-1
    
    import time
    t = (2009, 2, 17, 17, 3, 38, 1, 48, 0)
    t = time.mktime(t)
    print time.strftime("%b %d %Y %H:%M:%S", time.gmtime(t))
    
    UTC :世界协调时间  格林威治天文时间  世界标准时间
    在中国UTC+8
    
    #localtime():获取当前时间,返回struct_time格式返回
    #获取当前的时间
    
    # print(time.localtime())

    获取当天的时间和日期

    # 获取当天的时间
    
    print(datetime.datetime.now())
    
    # 当前的日期
    
    print(datetime.date.today())
    
    # 获取昨天的时间
    def getYesterday():
    today = datetime.date.today()
    oneday = datetime.timedelta(days=1)
    yesterday = today - oneday
    print(type(today))
    print(type(yesterday))
    return yesterday
    yesterday = getYesterday()
    print(yesterday)
    
    #获取日历相关的信息
    
    #获取某个月的日历
    # 格式:calendar.month(x,y)x:显示的年份,y
    # 显示的月份
    cal = calendar.month(2015,12)
    print(cal)
    #设置日历的第一天
    calendar.setfirstweekday(calendar.SUNDAY)
    cal = calendar.month(2015,12)
    print(cal)
    
    #获取某一年的日历:
    cal = calendar.calendar(2015)#参数为具体的年份
    print(cal)
    cal = calendar.HTMLCalendar(calendar.MONDAY)
    print(cal.formatmonth(2015,12))
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: