再多学一点吧

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Python语法3

模块

Python程序架构

Python源代码文件:*.py
一个py文件是一个模块(module) 多个模块可以组成一个包(package)

第三方工具包:

创建packet包


创建的每一个packet包中会自带一个_init_.py模块,而且这个模块在import这个包时,会自动加载出现

模块导入方式

packet1下的module1代码:

i = 1

def func():
    print("func1")

# 这里在导入模块时会自动导入
# 不想被自动导入的话,可以将代码放入main方法中
if __name__ == '__main__':
    print("module会自动导入")
    func()

实现代码:

from packet1 import module1
# 取别名,防止出现模块重名
from packet1 import module1 as m1
# 直接导入模块中的方法和变量
from packet1.module1 import i, func
# 直接导入
import packet1.module1 as mm1

print(module1.i)
module1.func()

异常处理

六种典型异常

1.除零错误(ZeroDivisionError):除数为0
2.名称错误(NameError):变量使用前未进行申明或者初始化
3.类型错误(TypeError):某些函数或者方法只适用于特定的数据类型,如果 对数据类型的操作不当,就会产生类型错误
4.数值错误(ValueError):在输入类型正确的情况下,具体输入值错误
5.索引错误(IndexError):超出序列长度的索引操作
6.属性错误(AttributeError):方法或者属性不适用该对象

异常处理

try:
    print(10 / 0)
    print("上面异常发生,这不会执行")
except ZeroDivisionError as e:
    print(e)
    print("发生除零异常")
except NameError as e:
    print(e)
    print("NameError异常")
else:
    print("没有异常")
finally:
    print("不管发生什么都会执行")


division by zero
发生除零异常
不管发生什么都会执行

自定义异常

# 自定义异常
class AlienError(Exception):
    def __init__(self):
        super(AlienError, self).__init__("error")


age = int(input("请输入年龄"))
try:
    if age < 0:
        raise AlienError
    else:
        print("age is %d" % age)
except AlienError as e:
    print(e)

请输入年龄-1
error

posted on   糟糟张  阅读(41)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示