Python模块、包、异常、文件(案例)

时间:2021-03-07 19:13:37

Python模块、包、异常、文件(案例)

python.py

#模块
# Python中的模块(Module),是一个Python文件,以.py文件结尾,包含了Python对象定义和Python语句,
# 类似Java中的多个单独的Java文件,把相关的代码分配到一个模块中可以实现代码的重用。模块中可以定义函数、类、变量,也可以包含可执行的代码
#可执行语句

print("我是模块中的打印语句")

#函数

def eat(what):

    print("正在吃:",what)

#函数

def sleep(time):

    print(f"在{time}时间睡觉")

#变量

name="张三"

age=22

#

class Person:

    def playDD(self):

        print("打豆豆")

 

test.py

#一模块
# Python中的模块(Module),是一个Python文件,以.py文件结尾,包含了Python对象定义和Python语句,
# 类似Java中的多个单独的Java文件,把相关的代码分配到一个模块中可以实现代码的重用。模块中可以定义函数、类、变量,也可以包含可执行的代码

# 导入模块,也就是说,在一个Python文件中想要使用另外一个Python文件中的函数或者变量,则需要导入模块,导入模块有三种方式:
#第一种:import 模块名
import Python

#调用python模块中的变量
print(Python.name)        #张三

#调用python模块中的函数
Python.eat("水果    ")        #正在吃: 水果

Python.sleep("12:30")    #在12:30时间睡觉

#定义python中的类
person=Python.Person()
person.playDD()        #打豆豆

# 注意:该种方式导入的模块,在调用模块中的函数、变量、类时,必须前面加上模块名
# 模块名.函数名

#第二种:from 模块名 import 函数名
#导入模块中的某一个函数
from Python import eat
#调用python模块中的eat函数
eat("午餐")    #正在吃: 午餐
#调用python模块中的变量
print(Python.age)    #22

#注意:该种方式导入的模块,在调用模块中的函数时,可以直接使用函数名即可,不需要跟着模块名

#第三种:import 模块名 as 别名
import Python as p
#调用python模块中的变量
print(p.name)    #张三
p.eat("鸡腿")    #正在吃: 鸡腿

#注意:该方式导入的模块,在调用模块中的函数时,可以使用别名

#无论执行了多少次import,一个模块只会被导入一次

#二包
# 在实际的开发中,一个大型的系统有成千上万的Python模块是很正常的事情。
# 单单用模块定义Python的功能显然还不够,如果都放在一起显然不好管理并且有命名冲突的可能,
# 因此Python中也出现了包的概念,和Java语言中的包Package是一样的,也就是说把模块分门别类的存放在不同的文件夹

#创建包的步骤
    # (1)创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字;
    # (2)在文件夹中创建一个_ _init_ _.py的模块文件,内容可以为空;【注意:必须要创建该文件,用来告诉python将该目录当成一个包来处理】
    # (3)将相关的模块放入到文件夹中


# 三异常

# 处理异常
# 1.try-except语句
# try-except语法格式:
# try:
#     代码块【可能出会错的代码】
# except  Exception[as reason]:
#     出现异常的处理方式

try:
    a=10/0
    print(f"结果为{a}")
except Exception:
    print("出错了")

#2.针对不同异常设置多个except
# 多个except语法格式:
    # try:
    #     代码块【可能出会错的代码】
    # except  异常1:
    #     出现异常1的处理方式
    # except  异常2:
    #     出现异常2的处理方式

try:
    a=10/2
    print(f"结果为{a}")
    b=1+"1"
    print(f"结果为{b}")
except ZeroDivisionError:
    print("除数不能为0")
except TypeError:
    print("类型错误")

#3.对多个异常统一处理
# except后边还可以跟着多个异常,然后对这些异常进行统一处理,语法格式:
    # try:
    #      代码块【可能出会错的代码】
    # except (异常1,异常2):
    #     出现异常的处理方式

try:
    a=10/2
    print(f"结果为{a}")
    b=1+"1"
    print(f"结果为{b}")
except (ZeroDivisionError,TypeError):
    print("出错了")


#4.捕获所有异常
# 如果你无法确定要对哪一类异常进行处理,只是希望在try语句块中一旦出现任何异常,可以给用户一个“看得懂”的提醒,语法格式:
    # try:
    #      代码块【可能出会错的代码】
    # except:
    #     出现异常的处理方式

try:
    a=10/0
    print(f"结果为{a}")
    b=1+"1"
    print(f"结果为{b}")
except:
    print("出错了")


#5.try-finally语句
# 语法格式:
    # try:
    #      代码块【可能出会错的代码】
    # except:
    #     出现异常的处理方式
    # finally:
    #     有没有异常都会执行

try:
    a=10/0
    print(f"结果为{a}")
    b=1+"1"
    print(f"结果为{b}")
except:
    print("出错了")
finally:
    print("aaa")

#6.丰富的else语句
# 在Python中,else语句不仅能跟if语句搭,构成“要么怎么样,要么不怎么样”的句式;它还能跟循环语句(for语句或者while语句),
# 构成“干完了怎么样,干不完怎么样”的句式;和异常处理进行搭配,构成“没有问题?那就干吧”的句式。
# 语法:
    # try:
    #      代码块【可能出会错的代码】
    # except:
    #     出现异常的处理方式
    # else:
    #     没有异常的处理方式

try:
    a=10/2
    print(f"结果为{a}")
    b=1+"1"
    print(f"结果为{b}")
except:
    print("出错了")
else:
    print("没有错误")
finally:
    print("计算完成")

#四、文件
# 在编程中,需要将部分数据永久保存到文件中,或者将文件中的内容读取出来,就需要学习Python中的文件操作。
#1.打开文件
    # 在Python中,使用open()函数打开文件并返回文件对象,语法:
    # file=open(file,mode=‘’)

# f=open("test.txt")

#2.文件关闭
#如果对文件进行了写入操作,那么应该在完成写入之后关闭文件,因为Python可能会缓存你写入的数据,
# 如果途中发生类似断电之类的事故,那些缓存的数据根本就不会写入到文件中。

# f.close()

#3.文件读取
#打开文件test.txt,编码格式为GBK
f=open("test.txt",encoding="GBK")
#读取所有文件内容
# content=f.read()
# print(content)    #啊啊啊 这是一行新的数据 这是一行新的数据
#读取一行
# content=f.readline()
# print(content)    #啊啊啊
#将读取的结果存放到list列表中
# l=list(f)
# print(l)    #['啊啊啊\n', '这是一行新的数据\n', '这是一行新的数据']

#4.文件的写入
#如果要写入文件,请确保之前的打开模式有“w”或者“a”,否则会报错。注意,如果使用“w”模式写入文件,之前的文件内容将会全部删除
# 选中一个模板,出现的黑色方框标志着选中的范围
# 插入新模板、收藏、复制,都是针对黑色方框进行操作。方法:
# f.write(“数据”)

# f=open("test.txt","a",encoding="GBK",)
# f.write("\n")
# f.write("这是一行新的数据")
# print("完成")

text.txt

 

啊啊啊
这是一行新的数据
这是一行新的数据

 

今天的测试就到这里了,谢谢大家的支持!

如果大家想浏览我的下一篇文章,请留言