Python基础-14

day13回顾
闭包 closure
 
装饰器
  def 装饰器函数名(参数):
      语句块
      return 函数对象
  # 用来装饰其它函数时:
  @装饰器函数名
  def 函数名(参数列表):
      语句块
函数的文档字符串:
  def xxxx():
      "这是一个文档字符串"

  xxxx.__doc__ = "这是一个文档字符串"

模块 Module
  
模块的导入语句:
  import 语句     模块名.函数名
  from import 语句    函数名
  from import * 语句  函数名
dir() 函数
 
数学模块 math

day14 笔记:
时间模块 time
详见 :
  python_base_docs_html/时间模块time_180407222007.html
练习:
  1. 写一个程序,以电子时钟的格式显示时间:
    HH:MM:SS
  2. 写一个程序,输入你的生日,
    1) 计算出你出生的那天是星期几?
    2)计算出你已经出生了多少天?
系统模块 sys
  运行时系统相关的信息和函数
详见:
   python_base_docs_html/系统模块sys_180407222006.html
自定义模块
  示例见:
    mymod.py  # 被导入模块
    test.py  # 主模块
导入模块时的路径索引顺序:
   1. 索引程序的运行时路径(当前路径)
   2. 搜索 sys.path里提供的路径
   3. 搜索内置模块
模块化编程的优点:
  1. 有利于多人合作开发
  2. 使代码更加易于维护
  3. 提高代码的复用率
  4. 模块化编程有助于解决函数名和变量名冲突(重名)问题,模块内的变量的作用域为模块内全局

模块的加载过程
  1. 在模块导入时,模块的所有语句都会执行
  2. 如果一个模块已经导入,则再次导入时不会重新执行模块内的语句
模块的重新加载:
  import imp
  imp.reload(mymod)  # 重新加载已经加载过的mymod模块
模块被导入和执行的过程:
  1. 先搜索相关路径找模块(.py)
  2. 判断是否有此模块对应的.pyc文件,如果没有此文件,则用.py文件 生成相应的.pyc文件再进行加载
  3. 如果文件已经存在,则判断.pyc文件和.py文件的修改时间,再决定是否重新生成.pyc文件
模块的编译 compile
              编译             解释执行
   mymod.py   --->>  mymod.pyc  ---> python3
模块的文档字符串 :
  模块内第一行没有赋值给任何变量的字符串为文档字符
  此文档字符串可以用help函数查看
示例见:
  mymod2.py
  说明:
    模块的文档字符串被绑定在模块的 __doc__属性上
__file__属性
  用来绑定模块对应的文件路径名
  示例:
    import mymod2
    print(mymod2.__file__)
模块的 __name__ 属性:
  用来记录模块自身的名字
  作用:
    1. 记录模块名
    2. 用来判断是否为主模块
  __name__ 说明:
  1. 当此模块作为主模块(也就是第一个运行的模块)运行时,__name__绑定'__main__'
  2. 当此模块不是主模块时,模块为名文件名去掉'.py'
模块的 __all__列表
  模块中的__all__列表是一个用来存放可导出属性的字符串列表
  作用:
    当用from import * 语句导入模块时,只导入 __all__ 列表内的属性
  示例:
   见: mymod4.py

模块的隐藏属性:
  模块中以'_' 开头的属性,在from import * 语句导入时,将不会导入,通常称这些属性为隐藏属性
 
  示例见:
    mymod5.py
标准库模块:
随机模块 random
  作用:
    用于模拟或生成随机数的模块
  模块函数说明见:
    /python_base_docs_html/随机模块random_xxxx.html
练习:
  1. 假设可以作为密码的字符有:
     A-Z
     a-z
     0_9
     下划线
  写一个程序,随机生成六位密码
  8z_A63

包(模块包) package
  包是将模块以文件夹的组织形式进行分组管理的方法
  作用:
    1. 将一系列模块进行分类管理,有利于防止命名冲突
    2. 可以在需要时加载一个或部分模块而不是全部模块
  包示例:
    mypack/
        __init__.py
        menu.py
        games/
            __init__.py
            contra.py      # 魂斗罗
            supermario.py  # 超级玛丽
            tanks.py       # 坦克大战
        office/
            __init__.py
            excel.py
            word.py
            powerpoint.py
  包的导入语法:
    import 包名 [as 包别名]
    import 包名.模块名 [as 模块新名]
    import 包名.子包名.模块名 [as 模块新名]
    from 包名 import 模块名 as 模块新名
    from 包名.子包名 import 模块名 [as 模块新名]
    from 包名.子包名.模块名 import 属性名[as 属性新名]
    from 包名 import *
    from 包名.模块名 import *

练习:
  1. 编写一个闹钟程序,启动时设置定时时间(小时和分钟)
      到时间后打印"时间到....." 然后退出程序
  2. 模拟斗地主发牌,扑克牌共54张:
    花色:
      黑桃('\u2660'), 梅花('\u2663'), 方块('\u2665'), 红桃('\u2666')
    数值:
      A2-10JQK
    大小王
    三个人,每人发17张牌,底牌留三张:
      输入回车,打印第1个人的17张牌
      输入回车,打印第2个人的17张牌
      输入回车,打印第3个人的17张牌
      再输入回车,打印出三张底牌
  3. 继续完成学生信息管理项目



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值