## 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
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))