课程7.1什么是模块
7.1.1python概念层级
表达式:1对象创建(a=xxx)2各种对象处理
语句:包含表达式
逻辑单元:1函数 2类 由语句构成
模块:.py代码文件
包:一个文件夹,里面是一组有关系的文件或模块,且包内必含有__ init _ _.py文件
程序:若干包+若干文件
7.1.2调用一个自定义模块两种方法(test.py)
法一:查看现有包所在路径,将自己创建的包存入该路径
a.首先查看现有包的路径
b写好自定义模块test1.py并将其移动到现有包路径
c import此模块并调用
扫描二维码关注公众号,回复:
6750990 查看本文章
法二:加载sys包,把新建的test2模块所在路径添加上
路径不用包含test2.py文件名
课程7.2 模块创建及import指令运用
'''
【课程7.2】 模块创建及import指令运用
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句
'''
'\n【课程7.2】 模块创建及import指令运用\n\nPython 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句\n\n'
# 创建一个模块,包含一个阶乘函数f1(n)、一个列表删值函数f2(lst,x),一个等差数列求和函数f3(a,d,n)
def f1(n):
y=1
for i in range(1,n+1):#注python在index范围都是左闭右开,所以右边要+1
y=y*i #出现自我迭代 y=f(y)必须先给y定初始值 如果不出现自我迭代 y=f(x)可以直接赋值
return y
def f2(lst,n):
while(n in lst):
lst.remove(n)
return lst
def f3(a,d,n):
an=a
s=0
for i in range(n-1):
an+=d
s+=an
return s
# 模块路径问题
#如上总结有两种方法,此处采用第二种,testmode.py文件放在桌面上
# 法一查看现有包所在路径,将自己创建的包存入改路径
import pandas
print(pandas.__file__)
# 法二加载sys包,把新建的testmodel所在路径添加上
import sys
sys.path.append(r'C:\Users\HASEE\Desktop')#注意\三种处理方法
C:\ProgramData\Anaconda3\lib\site-packages\pandas\__init__.py
# 调用模块语句:import
import testmode
print(testmode.f1(5))
print(testmode.f2([2,3,6,2,5,2,6,2,8,41,8,1,8,2,9,2,9,9,5],9))
print(testmode.f3(2,3,5))
120
[2, 3, 6, 2, 5, 2, 6, 2, 8, 41, 8, 1, 8, 2, 2, 5]
38
# 简化模块名:import...as...
import testmode as tm
print(tm.f1(5))
120
# 调用部分模块(函数)语句:From…import 语句
from testmode import f2
print(f2([5,65,9,59,59,59526,2,95,26,52,6,59,2,92,3,2,5,5],5))
# 单独导入模块的部分功能,但无法使用其他未导入模块功能
#print(f3(10,2,5))
[65, 9, 59, 59, 59526, 2, 95, 26, 52, 6, 59, 2, 92, 3, 2]
# python常用标准模块介绍 —— random随机数
import random
# random.random()随机生成一个[0:1)的随机数
x=random.random()
y = random.random()
print(x,y*10)
# random.randint()随机生成一个[a,b}的整数 注意是左闭右闭
m=random.randint(5,6)
print(m)
# random.choice()随机获取()中的一个元素,()种必须是一个有序类型 str tuple list
st1=random.choice('小闫最帅')
st2=random.choice([2,5,96,6,2])
st3=random.choice((5,6,8))
print(st1,st2,st3)
# random.sample(a,b)随机获取a(str lst tup)中指定b长度的片段,不会改变原序列
lst=list(range(2,580,58))
lst2=random.sample(lst,4)
print(lst2)
# random.shuffle(list)将一个列表自身内的元素打乱
lst=[1,2,3,4,5,6]
random.shuffle(lst)
print(lst)
0.7146980045351659 4.2528465140241725
6
帅 6 5
[350, 524, 176, 292]
[1, 6, 5, 2, 4, 3]
# python常用标准模块介绍 —— time时间模块
import time
#time.sleep()程序休息()秒 注意python时间单位是s 其他语言多是ms
for i in range(2):
print('hello')
time.sleep(0.5)
# time.ctime()将当前时间current time转换为一个字符串
print(time.ctime())
print(type(time.ctime()))
# time.localtime()将当前时间转为当前时区的struct_time封装结构--即时间戳
# wday 0-6表示周日到周六
# ydat 1-366 一年中的第几天
# isdst 是否为夏令时,默认为-1
print(time.localtime())
print(type(time.localtime()))
#time.strftime(a,b)
#a为格式化字符串格式 string format time
#b为时间戳,一般用localtime()
print(time.strftime('%Y year %m %d %H %M %S',time.localtime()))
hello
hello
Sat Jun 22 10:27:52 2019
<class 'str'>
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=22, tm_hour=10, tm_min=27, tm_sec=52, tm_wday=5, tm_yday=173, tm_isdst=0)
<class 'time.struct_time'>
2019 year 06 22 10 27 52
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
课程7.3 pip package管理工具
包的概念:含有多个模块(.py)文件的文件夹,文件夹中一定含有(init.py)文件
pip操作方式
cmd中输入pip可以查看pip常用方法
如
pip install packagename 安装package
pip uinstall packagename 卸载package
课程7.4 在windows cmd执行python文件
当然可以在ide如spyder或pycharm里运行.py文件 但以下介绍如何在cmd里执行.py文件
step1 cmd用cd命令打开.py文件所在文件夹路径
注如果当前cmd路径和py文件路径不在一个硬盘还要多加一步 e: (e是py文件所在硬盘)
step2 python xxx.py
finished!表示成功
有时如果没有按照相关支持package会提示出错,用pip install该package即可