zoukankan      html  css  js  c++  java
  • Python模块、包、异常、文件(案例)

    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)    #['啊啊啊
    ', '这是一行新的数据
    ', '这是一行新的数据']
    
    #4.文件的写入
    #如果要写入文件,请确保之前的打开模式有“w”或者“a”,否则会报错。注意,如果使用“w”模式写入文件,之前的文件内容将会全部删除
    # 选中一个模板,出现的黑色方框标志着选中的范围
    # 插入新模板、收藏、复制,都是针对黑色方框进行操作。方法:
    # f.write(“数据”)
    
    # f=open("test.txt","a",encoding="GBK",)
    # f.write("
    ")
    # f.write("这是一行新的数据")
    # print("完成")

    text.txt

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

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

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

  • 相关阅读:
    【Lucene4.8教程之五】Luke
    【Tika基础教程之一】Tika基础教程
    【Lucene4.8教程之四】分析
    【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象
    【Lucene4.8教程之三】搜索
    Java路径问题最终解决方案—可定位所有资源的相对路径寻址
    java.util.logging.Logger基础教程
    【Lucene4.8教程之二】索引
    【Lucene4.8教程之一】使用Lucene4.8进行索引及搜索的基本操作
    【Heritrix基础教程之4】开始一个爬虫抓取的全流程代码分析
  • 原文地址:https://www.cnblogs.com/liuyongqi2332826438/p/9778967.html
Copyright © 2011-2022 走看看