• Python 异常 导入模块


    1. 体验异常

    # 异常的 语法格式
    
    '''
    try:
        可能出现错误的语句
    except:
        出现错误后执行的语句
    '''
    
    try:
        info_print()
    except:
    
        def info_print():
            print('出现错误会被执行的程序')
    
        info_print()
    

    2. 捕获所有异常

    # Exception 捕获所有异常
    try:
        print(num)
    except Exception as result:
        print(result) # name 'num' is not defined
    

    3. 异常中的else 异常中的finally

    # 捕获所有异常
    try:
        print(1/0)  # 被除数不能为 0
    except Exception as result:
        print(result)
    else:
        print(f'没有异常执行的 语句')
    finally:
        print(f'有无异常都会执行的 命令 finally')
    

    4. 异常的传递

    import time
    
    try:
        print(1)
    
        try:
            i = 0
    
            while i < 6:
    
                time.sleep(2) # 等待两秒后执行
    
                print(f'循环到了第{i}次')
    
                i += 1
        except:
            print(f'程序异常执行的命令2')
    except:
        print(f'程序异常执行的命令1')
    

    5. 自定义异常

    # 创造一个异常的 类
    class A(Exception):
    
        def __init__(self, lenght, min_len):
            # 密码的长度
            self.lenght = lenght
            # 系统要求的最小长度
            self.min_len = min_len
    
        def __str__(self):
            return f'你的密码长度为{self.lenght}, 密码长度不能小于{self.min_len}'
    
    def main():
        try:
            password = input('请输入你的密码:')
    
            if len(password) < 3:
                # 抛出 异常
                raise A(len(password), 3)
        # 捕获异常
        except Exception as result:
            print(result)
        else:
            print('密码输入完成, 设置密码成功')
    
    main()
    

    6. 导入模块

    # 方法一
    # import math
    
    # print(math.sqrt(16)) # 谁的平方是 16
    # Python 中关于除法的运算都会带小数点(也就是浮点数)
    
    
    # 方法二
    # from math import sqrt
    
    # print(sqrt(16))
    
    
    # 方法三
    # from math import *
    
    # print(sqrt(16))
    
    # 模块别名
    # import time as tt  # 起别名后只能使用别名, 之前的名字就不能用了
    
    # tt.sleep(2)
    # print('等待2秒后出现')
    
    from time import sleep as sl
    
    sl(2)
    print('等待2秒后出现')
    

    7. my_module1 和 调用函数模块

    # my_module1
    
    def test(a, b):
    
        print(a * b)
    
    # 1.  __name__ 是系统变量, 只有在自己的py文件中才会是 __main__
    # 2.  在其他py文件中调用, __name__ 是 py 文件名
    print(__name__)
    
    # 只有在本文件中运行,才会执行测试方法
    if __name__ == '__main__':
        test(3, 3)
    
    # 调用模块
    
    import my_module1
    
    my_module1.test(4, 4)
    

    8. 模块定位顺序注意点



    9. __all__列表

    # my_module1
    # __all__ 列表
    __all__ = ['testA']
    
    def testA():
        print('testA')
    
    def testB():
        print('testB')
    
    # __all__ 列表
    from my_module1 import *
    
    testA()
    
    # 1. 用 from my_module1 import * 导入时
    # 2. __all__列表只能调用[]列表里面的
    testB() # 会报错
    

    10. 导入包 的两种方法




  • 相关阅读:
    多项式回归学习笔记
    线性回归学习笔记
    CentOS6.9下安装python notebook
    CentOS 6.9下安装PostgreSQL
    区块链共识机制及其迭代
    比特币的区块结构解析
    区块链学习路线
    应用缓存的常见问题及解决
    阿里巴巴开源技术体系
    工程师进阶推荐十本书
  • 原文地址:https://www.cnblogs.com/wuqxblog/p/16521546.html
Copyright © 2020-2023  润新知