黑马python九、十章

黑马python九、十章

程序异常

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
32
33
34
35
try:

    # 可能要发生异常的语句

    result = 10 / 0  

except ZeroDivisionError as e:

    # 出现异常的准备手段,这里捕获除零异常并打印错误信息

    print(f"捕获到异常: {e}")

else:

    # 未出现异常时应做

    print("没有异常发生,一切正常")

finally:

    # 不管出不出现异常都会做

    print("这是finally块,总会执行")



# 捕获所有异常的方式

try:

    another_result = 5 / 0  

except:

    print("捕获到了所有异常")

其中,except:可以替换为except Exception:,也可以捕获所有异常。
异常具有传递性。

导入代码块

示例一:直接导入整个模块

1
2
3
4
5

import math

print(math.sqrt(9))  

使用 import math 导入了Python的内置模块 math,然后可以通过 模块名.函数名 的方式(如 math.sqrt)来使用模块中的函数。

示例二:从模块中导入特定函数或变量

1
2
3
4
5

from math import sqrt

print(sqrt(9))  

这里使用 from math import sqrtmath 模块中导入了 sqrt 函数,这样就可以直接使用 sqrt 函数而无需加上模块名前缀。

示例三:导入模块并使用别名

1
2
3
4
5

import math as m

print(m.sqrt(9))  

通过 import math as mmath 模块起了一个别名 m,之后就可以用 m 来代替 math 使用模块中的内容。
示例四:从模块中导入所有内容(不建议)

1
2
3
4
5

from math import *

print(sqrt(9))  

from math import * 会将 math 模块中的所有内容导入到当前命名空间,这样可以直接使用模块中的函数和变量,但可能会导致命名冲突,所以一般不建议这样使用。
当从不同的模块中导入同名的功能时,后导入的覆盖先导入的。

自定义模块导入

__main__的用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def my_function():

    print("这是一个函数")



if __name__ == "__main__":

    print("程序直接执行,进入if内部")

    my_function()

else:

    print("程序被导入,不进入if内部")
1
2
程序直接执行,进入if内部
这是一个函数

__all__的用法

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
# 在module3.py中定义

__all__ = ['function1']



def function1():

    print("这是function1")



def function2():

    print("这是function2")



# 在另一个文件中

from module3 import *

function1()  

# function2()  # 由于module3中__all__只包含function1,所以这里如果取消注释会报错,但是若像下列代码导入,也可以正常使用,因为*对应的就是__all__,不阻止其他功能导入

from module3 import function2

function2()
  • __init__.py文件:
    • 包创建时自动生成,标识文件夹为Python包,可空或含初始化代码,导入包时执行。
  • __all__变量:
    • 在包的__init__.py中定义,控制from 包名 import *时导入的内容,使导入更清晰可控。
  • package.module.function的形式来导入。

JSON

  • 概念:轻量数据交互格式,类似字符串,Python中可与字典或列表无缝转换。
  • 转化
    • json.dumps(data):Python转JSON,含中文加ensure_ascii=False
    • json.loads(data):JSON转Python列表或字典。

pyecharts包可以处理图表,可以查看官方画廊。


黑马python九、十章
https://blakehansen130.github.io/2025/01/19/黑马python九、十章/
发布于
2025年1月19日
许可协议