版权声明:本文为博主原创文章,未经博主允许不得转载。
一、单选题
二、多选题
1.X
- A .
- B .
- C .
- D .
三、练习题
3.1 Python 模块与包
3.1.1 基础代码
1、目录结构
2、【Cat 】→【Action】
def roar():
return 'cat roar'
def dump():
return 'cat dump'
def run():
return 'cat running'
3、【Dog】→【Action】
def roar():
return 'dog roar'
def dump():
return 'dog dump'
def run():
return 'dog running'
4、【Animal】→ 【init.py】
def animal_test():
return 'animal test'
5、与【Animal】同级的 Test_01.py
def Test_01():
return 'Test_01'
3.1.2 导包方式:函数导入
3.1.2.1 import package
1. 【方式一】导入主包
>>> import Animal
>>> Animal.animal_test()
'animal test'
import Test_01
>>> result = Test_01.Test_01()
>>> result
'Test_01'
3.1.2.2 from package import module
2. 【方式二】导入子包中的模块
(1)函数名被覆盖
from Animal.Cat import Action
>>> Action.run()
'cat running'
>>> from Animal.Dog import Action # Action 覆盖了以上Action
>>> Action.run()
'dog running'
(2)不用担心重名问题
>>> from Animal.Cat import Action as cat_Action
>>> from Animal.Dog import Action as dog_Action
>>> cat_Action.run()
'cat running'
>>> dog_Action.run()
'dog running'
3. 【方式三】导入子包中的模块中的函数
(1) from 包名.子包名.模块名 import 函数名
>>> from Animal.Cat.Action import run
>>> run()
'cat running'
from Animal.Dog.Action import run as dog_run # 避免函数重名被覆盖
>>> dog_run()
'dog running'
(2)更改【Animal】→ 【init.py】 的代码
在一个包的环境下,如果想在 init.py 中导入其他的包或者是模块 只需要在 [要导入的] 包名前面加 .
1)方式一
from .Cat import Action
>>> from Animal import Action
>>> Action.run()
'cat running'
2)方式二
from .Cat.Action import run
>>> from Animal import run
>>> run()
'cat running'
3)方式三
__ init __.py 文件
from .Cat.Action import run as cat_run
from .Dog.Action import run as dog_run
在 Test_01.py文件中调用 【注意】此时 Animal 与 Test_01.py 在同一文件夹下(同级),如果不在同一文件夹下会报错
from Animal import cat_run
from Animal import dog_run
# from Animal import cat_run, dog_run # 也可以放入一行导入
cat_run_result = cat_run()
dog_run_result = dog_run()
print(cat_run_result)
print(dog_run_result)
4. 【方式四】导入主包中的模块
与【Animal】同级的【main.py】
def animal():
return 'I am animal module function'
1)方式一不推荐使用
>>> import Animal.main
>>> Animal.main.animal()
'I am animal module function'
2)方式二推荐使用
>>> from Animal import main
>>> main.animal()
'I am animal module function'
3.1.3 导包方式:变量名导入
【Cat】→ 【Action.py】
cat_name = '米粒儿'
【Test_01.py】
from Animal.Cat.Action import cat_name
print(cat_name)
3.1.4 导包方式:类名导入
3.2 Python 第三方包的使用
3.2.1 时间包:datetime
一、获取当前时间
from datetime import datetime
now = datetime.now()
print(now, type(now))
import datetime
print(datetime.datetime.now()) # 返回当前年月日时分秒毫秒的datetime对象
二、获取时间间隔
from datetime import datetime
# timedelta:是函数名
# 原因:(1)timedelta 函数写在 __init__.py 文件中 (2)timedelta写在其他模块下,在__init__.py文件中被导入
from datetime import timedelta
three_days = timedelta(days=3)
# 获取3天以后的时间
after_three_day = datetime.now() + three_days
print(after_three_day)
# 获取3天以前的时间
before_three_day = datetime.now() - three_days
print(before_three_day)
# 获取1个小时以前的时间
one_hour = timedelta(hours=1)
before_one_hour = datetime.now() - one_hour
print(before_one_hour)
补充:函数参数介绍
time_obj = timedelta(days=0, seconds=0,microseconds=0, milliseconds=0,minutes=0,hours=0,weeks=0)
# days=0 间隔天数
# seconds=0 间隔秒数
# microseconds=0 间隔微秒;百万分之一秒,
# milliseconds=0 毫秒;千分之一秒,
# minutes=0 间隔分钟数
# hours=0 间隔小时数
# weeks=0 间隔周数; 参数为1表示七天
三、时间对象转时间字符串:strftime
# 获取时间对象
from datetime import datetime
now = datetime.now()
# 时间转字符串
# format:'%Y-%m-%d %H:%M:%S'
date_str_01 = now.strftime('%Y-%m-%d %H:%M:%S')
date_str_02 = now.strftime('%Y/%m/%d %H:%M:%S')
date_str_03 = now.strftime('%Y/%m/%d')
date_str_04 = now.strftime('%H:%M:%S')
print(date_str_01, type(date_str_01))
print(date_str_02, type(date_str_02))
print(date_str_03, type(date_str_03))
print(date_str_04, type(date_str_04))
四、时间字符串转时间类型:strptime
# 获取时间模块
from datetime import datetime
str_date = '2021-10-10 13:13:13'
# 时间字符串转时间类型
date_obj = datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S')
print(date_obj, type(date_obj))
对三进行转换
# 时间字符串转时间类型
now_obj_01 = datetime.strptime(date_str_01, '%Y-%m-%d %H:%M:%S')
print(now_obj_01, type(now_obj_01))
new_obj_02 = datetime.strptime(date_str_02, '%Y/%m/%d %H:%M:%S')
print(new_obj_02, type(new_obj_02))
new_obj_03 = datetime.strptime(date_str_03, '%Y/%m/%d')
print(new_obj_03, type(new_obj_03))
new_obj_04 = datetime.strptime(date_str_04, '%H:%M:%S')
print(new_obj_04, type(new_obj_04))
五、日期对象转时间戳
import datetime
now = datetime.datetime.now()
now_timestamp = datetime.datetime.timestamp(now)
print(now_timestamp) # 秒级时间戳 浮点类型
六、时间戳转日期对象
#import datetime
#now = datetime.datetime.now()
#now_timestamp = datetime.datetime.timestamp(now)
datetime_obj = datetime.datetime.fromtimestamp(now_timestamp)
print(datetime_obj)
3.2.2 时间模块:time
一、获取当前时间戳
import time
now = time.time()
print(now, type(now))
二、时间戳类型转本地时间
t_obj = time.localtime(now)
print(t_obj, type(t_obj))
三、修改时间戳:获取100000秒以前的时间 → 再转本地时间
before = now - 100000
before_t_obj = time.localtime(before)
print(before_t_obj, type(before_t_obj))
四、时间戳(秒级)转换成 毫秒级
print(time.time() * 1000)
print(time.time()) # 对比作用
3.2.2.1 时间模块:localtime
一、获取本地时间函数:localtime
import time
t = time.localtime()
print(t)
3.2.2.2 暂停函数:sleep
一、循环
for i in range(10):
print(i)
time.sleep(1)
二、区分时间戳与本地时间
now = time.time()
print(now)
time.sleep(5)
t = time.localtime()
print(t)
3.2.2.3 时间对象转时间字符串:strftime
import time
str_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(str_time)
3.2.2.4 时间字符串转时间类型:strptime
import time
time_obj = time.strptime('2021-12-12', '%Y-%m-%d')
print(time_obj)
3.2.3 内置包:os
import os
# 返回当前路径
current_path = os.getcwd()
print(current_path)
# 创建文件夹:一
new_path = '%s/Test_01'%current_path
# os.makedirs(new_path)
# 返回指定目录下的所有文件或文件夹
data = os.listdir(current_path)
print(data)
# 创建文件夹:二、多层文件夹
new_path_02 = '%s/Test_02/ABC'%current_path
# os.makedirs(new_path_02)
# 创建文件夹:三、
# os.makedirs('Test_03') # 相对路径:默认创建在 执行脚本 所在的目录下
# 删除文件夹
# os.removedirs('Test_02/ABC') # 相对路径
# 修改文件夹名
# os.rename('Test_03', 'Test_03_New')
# 修改文件名
# os.rename('Test_01.py', 'Test_01_New.py')
# 只能删除空文件夹
# os.rmdir('%s/Test_03_New' % current_path)
3.2.3.1 os.path模块
import os
import os.path
# 返回当前路径
current_path = os.getcwd()
print(current_path)
print(os.path.isabs(current_path))
print(os.path.isabs('Animal'))
# 创建文件夹:一
new_path = '%s/Test_01' % current_path
if not os.path.exists(new_path):
os.makedirs(new_path)
# 创建文件夹:二、多层文件夹
# new_path_02 = '%s/Test_02/ABC' % current_path
new_path_02 = os.path.join(current_path, 'Test_02', 'ABC')
print(new_path_02)
if not os.path.exists(new_path_02):
os.makedirs(new_path_02)
# 创建文件夹:三、
if not os.path.exists('Test_03'):
os.makedirs('Test_03')
# 删除文件夹
if os.path.exists('Test_02/ABC'):
os.removedirs('Test_02/ABC') # 相对路径
# 修改文件夹名
if os.path.exists('Test_03'):
os.rename('Test_03', 'Test_03_New')
# 修改文件名
# if os.path.exists('Test_01.py'):
# os.rename('Test_01.py', 'Test_01_New.py')
# 只能删除空文件夹
if os.path.exists('%s/Test_03_New' % current_path):
os.rmdir('%s/Test_03_New' % current_path)
# if os.path.exists('Test_01'):
# os.rmdir('Test_01')
# 路径切割
current_path = current_path + '/Test_01.py'
print(os.path.isfile(current_path))
print(os.path.split(current_path))
print(os.path.isdir(current_path)) # 最后一处有(.py文件),所以不是路径,返回False
print(dir(os.path))
3.2.4 内置包:sys
import sys
# Py启东时加载的模块
modules = sys.modules
print(modules)
# 返回当前Py的环境路径
path = sys.path
print(path)
# 退出程序
# sys.exit(0) # 后面的代码不会再被执行 与在调试模式中使用exit()是有区别的
# 获取编码格式
code = sys.getdefaultencoding()
print(code)
# 获取当前系统平台
print(sys.platform)
# 获取Python版本
print(sys.version)
# 程序外部获取参数
print(sys.argv) # 与run运行后返回结果不同
command = sys.argv[1] # 0索引:Python脚本的名称 1索引:第一个命令
if command == 'modules':
modules = sys.modules
print(modules)
elif command == 'path':
path = sys.path
print(path)
elif command == 'encoding':
code = sys.getdefaultencoding()
print(code)
elif command == 'platform':
print(sys.platform)
elif command == 'version':
print(sys.version)
else:
print('not command')
[Terminal]中运行:
python 内置库_sys模块.py version
四、编程题
4.1 获取当前日期时间
1、要求
使用from…import…导入datetime模块中的datetime对象,并根据任务要求书写代码。
2、任务
- 1、使用两种方法获得当前日期时间,并输出到控制台
- 2、在控制台上分别对日期和时间进行输出
- 3、使用-拼接年月日得到当前日期
3、任务提示
1、使用format格式化输出得到的当前年份、当前月份、当前日,并用“-”进行连接
4、代码
from datetime import datetime
# 得到当前日期时间(两种方法)
# 得到当前日期
# 得到当前时间
# 得到当前年份用year_变量接收
# 得到当前月份用month_变量接收
# 得到当前天用day_变量接收
# 使用-拼接年月日得到当前日期
4.2 时间字符串转时间类型:strptime
4.2 时间对象转时间字符串:strftime
1、要求
使用from…import…导入datetime模块中的datetime对象,根据任务要求书写代码
2、任务
- 1、定义一个str_字符串为2019-09-10 8:10:56
- 2、将str_转换为时间类型2019-09-10 08:10:56,使用str_date变量接收
- 3、定义now_变量接收当前的日期时间
- 4、将当前日期时间格式化为——四位的年份/月/日 时:分:秒,使用date_str接收
3、任务提示
- 1、%Y:代表四位的年份
- 2、%m:代表月份
- 3、%d:代表这个月的第几天
- 4、%H:%M:%S:代表 时:分:秒
4、代码
from datetime import datetime
# 定义一个str_字符串为2019-09-10 8:10:56
str_=
# 将str_转换为日期函数2019-09-10 8:10:56
str_date=
print(str_date)
# 定义now_变量接收当前的日期时间
# 将当前日期时间格式化为——四位的年份/月/日 时:分:秒
date_str=
print(date_str)
4.3 获取时间间隔
1、要求
使用from…import…导入datetime模块中的datetime,timedelta对象,根据任务要求书写代码。
2、任务
- 1、定义now_变量接收当前日期时间
- 2、使用now_before接收当前日期时间3天6小时12分钟之前的日期时间
- 3、使用now_after接收当前日期时间10天之后的日期时间
3、代码实现
from datetime import datetime, timedelta
# 定义now_变量接收当前日期时间
now_=
# 计算当前日期时间3天6小时12分钟之前的日期时间
now_before=
# 计算当前日期时间10天之后的日期时间
now_after=
print(now_before)
print(now_after)
版权声明:本文为博主原创文章,未经博主允许不得转载。