1.前言
隔离日记day8
2.学习内容
1.什么叫模块-模块化编程的好处
?def fun:
? ? pass
?def fun2:
? ? pass
??
?class Student:
? ? native_place='吉林'#类属性
? ? def eat(self,name,age):#实例方法
? ? ? ? self.name=name#实例属性
? ? ? ? self.age=age
??
? ? @classmethod#类方法
? ? def cm(cls):
? ? ? ? pass0
? ? @staticmethod#静态方法
? ? def sm():
? ? ? ? pass
?a=10
?b=20
?print(a+b)
2.模块的导入
?import math#导入math模块 关于数学运算
?print(id(math))#
?print(type(math))#<class 'module'>模块类
?print(math)
?print(math.pi)#3.14159265358979
?print('--------------------------')
?print(dir(math))
?print(math.pow(2,3),type(math.pow(2,3)))#8.0 ? <class 'float'> 计算2的三次方
?print(math.ceil(9.001))#10 天花板
?print(math.floor(9.999))#9 地板
?from math import pi
?import math
?print(pi)#3.141592653589793
?print(pow(2,3))#8
?print(math.pow(2,3))#8.0
calc是自己创建的一个模块
?#calc模块
?def add(a,b):
? ? return a+b
?def div(a,b):
? ? return a/b
?from calc import add
?print(add(10,20))
?#在这里导入calc自定义模块使用
?import calc
?print(calc.add(20,30))
?print(calc.div(10,2)
注意第二个程序与第三个程序的区别,都是调用calc模块进行运算
3.以主程序方式运行
这个程序是calc2模块
?def add(a,b):
? ? return a+b
??
?if __name__ =='__main__':
? ? print(add(10,20))#只有当点击运行calc2时,才会执行运算
这个是主程序
?import calc2
?print(calc2.add(100,200))
当calc2模块中不写calc2中的if name =='main':时,主程序运行时不仅会调用calc2模块定义的add函数,还会将calc2模块中的 print(add(10,20))执行(即calc2程序全部执行),当写了if name =='main':后,就只会调用add函数。符合我们的预期。即 以主程序方式运行
4.python中的包
#包package 当中包含__init__.py文件
#目录directory 当中不包含__init__.py文件叫
先建立一个名为package1的包。包自动生成init.py文件。再在该包下新建两个模块
module_A
a=10
module_B
b=100
#在本模块中导入package1包
#在本模块中导入package1包
import package1.module_A as ma #ma是package1.module_A这个模块的别名 import 包名.模块名
#print(package1.module_A.a)
print(ma.a)
print(ma.a)就是输出ma模块中的a
注意以下程序的异同
#再导入带有包的模块时注意事项
import package1
import calc
#使用import方式进行导入时,只能跟包名和模块名
from package1 import module_A
from package1.module_A import a
#使用from import可以导入包,模块,函数,变量
5.python中的常用模块
import sys#目标所占的内存大小
import time
import urllib.request
import math
print(sys.getsizeof(24))#28
print(sys.getsizeof(45))#28
print(sys.getsizeof(True))#28
print(sys.getsizeof(False))#24 内存大小
print(time.time())
print(time.localtime(time.time()))#显示当前时间
print(urllib.request.urlopen('http://www.baidu.com').read())#获取百度里的东西
print(math.pi)
6.第三方模块的安装与使用
import schedule
import time
def job():
print('哈哈----------')
schedule.every(3).seconds.dog(job)#每三秒执行一次job
while True:
schedule.run_pending()#开始
time.sleep(1)#休眠一秒
pip install 模块名----第三方模块的安装
7.编码格式的介绍
#encoding=gbk
# 编写人:邓琨升
# 开发时间;2021/10/28 16:50
print('你好,中国')
#最上面可以修改py文件的编码格式 不写默认UTF-8格式 不同编码格式占用的磁盘空间大小不同
8.文件读写的原理--读取磁盘中的内容
file=open('a.txt','r')#r代表读 w代表写
print(file.readlines())
file.close()
9.常用文件的打开模式
file=open('b.txt','w')#w代表写 b不存在 所以创建文件 若b存在,则覆盖内容
file.write('python')#将python写入b文件,在此文件修改内容,b文件内容也相应修改
file.close()
file=open('b.txt','a')#a是追加内容
file.write('python')
file.close()
src_file=open('IMG_5881.JPG','rb')#rb代表读二进制文件 读取IMG_5881.JPG源文件
target_file=open('copyIMG_5881.JPG','wb')#向copyIMG_5881.JPG文件中写入
target_file.write(src_file.read())#将源文件中的内容写入目标文件
target_file.close()#最后一点要关闭文件
src_file.close()
10.对象文件的常用方法
file=open('a.txt','r')
#print(file.read(2))#读取文件中2字符(中国),若不写 默认读全部
#print(file.readline())
print(file.readlines())#['中国\n', '美丽'] 输出的结果是一个列表,把文件中每一行的内容都放到列表中
file.close()
file=open('c.txt','a')#新建一个c.txt文件
file.write('hello')#向c中写入hello
lst=['java','go','python']
file.writelines(lst)#向c中写入列表中的元素
file.close()
file=open('b.txt','r')
file.seek(2)#跳过两字节(一个汉字),再读
print(file.read())
print(file.tell())#返回文件指针当前位置
file=open('d.txt','a')
file.write('hello')
file.flush()#flush是个缓冲区 资源会先到缓冲区再写 flush之后可以继续写内容,但是closed之后不能了
file.write('world')
file.close()
3.结束语
后天解除隔离!
|