Python入门到高级【第五章】
预计更新
第一章. Python 简介
- Python 简介和历史
- Python 特点和优势
- 安装 Python
第二章. 变量和数据类型
- 变量和标识符
- 基本数据类型:数字、字符串、布尔值等
- 字符串操作
- 列表、元组和字典
第三章. 控制语句和函数
- 分支结构:if/else 语句
- 循环结构:for 和 while 循环
- 函数
- 参数传递与返回值
- Lambda 表达式
第四章. 模块和文件 IO
- 模块的概念
- 导入模块
- 文件 IO
- 序列化和反序列化
第五章. 异常处理
- 异常简介
- try/except 语句
- 自定义异常
第六章. 面向对象编程
- 类和对象
- 继承和多态
- 属性和方法
- 抽象类和接口
第七章. 正则表达式
- 正则表达式概述
- 匹配和搜索
- 替换和分割
第八章. 并发编程
- 多线程
- 多进程
- 协程和异步编程
第九章. 数据库编程
- 关系型数据库介绍
- 使用 SQLite 数据库
- 使用 MySQL 数据库
- 使用 PostgreSQL 数据库
第十章. 网络编程
- Socket 编程简介
- TCP Socket 编程
- UDP Socket 编程
- HTTP 编程
第十一章. Web 开发框架 Flask
- Flask 简介
- 安装 Flask
- 路由和视图函数
- 模板和静态文件
第十二章. 数据分析和科学计算
- NumPy 基础
- Pandas 基础
- Matplotlib 基础
第十三章 机器学习入门
- 机器学习概述
- 监督学习和非监督学习
- Scikit-Learn 简介
- 利用 Scikit-Learn 进行数据预处理和模型训练
第十四章. 自然语言处理
- 自然语言处理概述
- 中文分词和处理
- 文本分类和情感分析
第十五章. 游戏开发与 Pygame
- Pygame 简介
- Pygame 基础
- 开发一个简单的游戏
第五章. 异常处理- 异常简介- try/except 语句- 自定义异常
异常简介
在Python编程中,异常处理是一种常见的编程技巧,可以帮助我们在程序运行过程中发现和解决各种错误和异常情况。Python提供了多种内置异常和异常处理机制,使得我们可以快速定位和处理程序出现的异常,从而提高程序的可靠性和健壮性。本文将介绍Python中异常的基本概念、类型、异常处理机制及其相关的应用场景。
一、异常的基本概念
- 什么是异常?
在计算机科学中,异常是指在程序运行过程中出现的错误或意外情况。通常情况下,异常会导致程序崩溃、数据丢失、系统瘫痪等问题,因此需要及时进行处理和修复。
在Python编程中,异常是一种特殊类型的对象,它表示与程序执行相关的异常情况。当程序出现异常时,Python会通过抛出异常对象的方式来通知程序员,并暂停程序的执行,直到异常得到处理。
- 异常的类型
在Python中,异常分为多种不同的类型,每种类型都代表一种特定的异常情况。以下是Python中常见的异常类型及其描述:
- BaseException: 所有异常的基类
- SystemExit: 解释器请求退出
- KeyboardInterrupt: 用户中断执行
- GeneratorExit: generator关闭时发生
- Exception: 常规错误的基类
- StopIteration: 迭代器没有更多的值
- ArithmeticError: 数值计算错误,如除数为0或无穷大
- AssertionError: 断言语句失败
- AttributeError: 对象没有属性
- EOFError: 输入的结束符号未被检测到
- ImportError: 无法导入模块/对象
- LookupError: 无效数据查询
- IndexError: 索引超出范围
- KeyError: 映射中没有这个键
- NameError: 未声明/初始化对象(没有属性)
- OSError: 操作系统错误
- SyntaxError: 语法错误
- TypeError: 不同类型间的操作错误
- ValueError: 传递给函数的参数类型不正确
- ZeroDivisionError: 除数为0
需要注意的是,Python异常类型之间存在继承关系,例如ArithmeticError是Exception的子类,ZeroDivisionError是ArithmeticError的子类。
- 异常处理机制
在Python编程中,异常处理机制指的是程序员对异常情况的捕获、处理和响应的过程。通常情况下,我们会使用try-except语句来进行异常处理,其基本语法如下:
try:# 可能会抛出异常的代码
except ExceptionType1:# 处理特定类型的异常
except ExceptionType2:# 处理特定类型的异常
else:# 如果没有异常发生,则执行该语句块
finally:# 无论是否有异常发生,都执行该语句块
在上述代码中,try语句块包含了可能会抛出异常的代码,当程序在try语句块中遇到异常时,就会停止执行并跳转到对应的except语句块进行处理。如果没有遇到异常,则继续执行else语句块中的代码。无论是否遇到异常,finally语句块中的代码都会被执行。
需要注意的是,except子句可以指定特定的异常类型来捕获和处理异常,也可以省略异常类型来捕获所有类型的异常。同时,在Python中,我们可以使用raise语句来手动抛出异常,并将其传递给父级调用栈或其他处理机制。
二、实际应用场景
异常处理是Python编程中不可或缺的一部分,下面将介绍一些实际应用场景及其相关的异常处理技巧。
- 文件操作
在Python编程中,文件操作是一种常见的任务,如读写文本、CSV、JSON、XML等格式的文件。在文件操作过程中,可能会遇到文件不存在、文件损坏、权限不足等异常情况,需要进行相应的异常处理。
以下示例演示了如何使用try-except语句来处理文件读取异常:
try:with open('test.txt', 'r') as file:data = file.read()
except FileNotFoundError:print('File not found!')
except PermissionError:print('Permission denied!')
else:print(data)
在上述代码中,我们使用with语句打开一个名为“test.txt”的文件,并尝试读取其中的数据。如果文件不存在,则抛出FileNotFoundError异常;如果没有读取权限,则抛出PermissionError异常。否则,我们就可以安全地使用获取到的数据。
- 网络通信
在Python编程中,网络通信是一种常见的任务,如使用socket、requests等库进行HTTP、TCP/IP等协议的通信。在这个过程中,可能会遇到网络连接失败、超时、请求被拒绝等异常情况,需要进行相应的异常处理。
以下示例演示了如何使用try-except语句来处理网络连接异常:
import sockettry:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('localhost', 8000))client.send(b'Hello World!')
except socket.error as e:print('Network error:', e)
else:data = client.recv(1024)print(data.decode('utf-8'))
finally:client.close()
在上述代码中,我们创建一个socket对象,并尝试连接到“localhost:8000”的服务器。如果连接失败,则抛出socket.error异常并打印错误信息;否则,我们就可以安全地使用send()方法发送数据,并使用recv()方法接收响应数据。
需要注意的是,在网络通信过程中,我们需要注意数据格式和类型的一致性,否则可能会导致通信失败或数据解析错误等问题。
- 数据处理
在Python编程中,数据处理是一种常见的任务,如对列表、字典、字符串等数据结构进行排序、过滤、转换等操作。在这个过程中,可能会遇到数据类型不匹配、键值不存在、索引越界等异常情况,需要进行相应的异常处理。
以下示例演示了如何使用try-except语句来处理列表索引异常:
data = [1, 2, 3]try:value = data[3]
except IndexError:print('Index out of range!')
else:print(value)
在上述代码中,我们定义一个名为“data”的列表,并尝试获取其中索引为3的元素。由于该索引超出列表范围,因此会抛出IndexError异常,并打印错误信息“Index out of range!”。
需要注意的是,在数据处理中,我们需要使用合适的库和算法,并遵守数据类型和格式规范,以确保数据的一致性和有效性。
总结
本文介绍了Python中异常的基本概念、类型、异常处理机制及其相关的应用场景。在实际编程中,我们需要根据具体需求和情况选择合适的异常类型和处理方法,并注意数据的一致性、安全性和有效性等方面的问题。同时,我们也需要养成良好的异常处理习惯,以提高程序的可靠性和健壮性。
try/except 语句
try/except语句是Python中异常处理机制的核心,它用于捕获和处理程序中可能出现的异常情况,从而提高程序的可靠性和健壮性。本文将详细介绍Python中try/except语句的基本语法、应用场景、常见问题及其解决方法等内容,希望能够为读者提供实用的指导和帮助。
一、基本语法
try/except语句的基本语法如下:
try:# 可能会抛出异常的代码
except ExceptionType1:# 处理特定类型的异常
except ExceptionType2:# 处理特定类型的异常
else:# 如果没有异常发生,则执行该语句块
finally:# 无论是否有异常发生,都执行该语句块
在上述代码中,try语句块包含了可能会抛出异常的代码,当程序在try语句块中遇到异常时,就会停止执行并跳转到对应的except语句块进行处理。如果没有遇到异常,则继续执行else语句块中的代码。无论是否遇到异常,finally语句块中的代码都会被执行。
需要注意的是,except子句可以指定特定的异常类型来捕获和处理异常,也可以省略异常类型来捕获所有类型的异常。同时,在Python中,我们可以使用raise语句来手动抛出异常,并将其传递给父级调用栈或其他处理机制。
以下是一个简单的示例,演示了如何使用try/except语句来处理除法运算中可能出现的异常情况:
try:a = 1 / 0
except ZeroDivisionError as e:print('Error:', e)
else:print(a)
finally:print('Done!')
在上述代码中,我们尝试对1进行0的除法运算,由于除数为0,因此会抛出ZeroDivisionError异常。然后,我们使用except子句捕获该异常,并打印错误信息“Error: division by zero”。最后,我们使用finally子句打印一条结束语句“Done!”,以表示程序已经执行完毕。
二、应用场景
try/except语句广泛应用于Python编程中的各个领域和场景,例如文件操作、网络通信、数据处理等。下面将分别介绍这些场景下的应用方法及相应的示例代码。
- 文件操作
在Python编程中,文件操作是一种常见的任务,如读写文本、CSV、JSON、XML等格式的文件。在文件操作过程中,可能会遇到文件不存在、文件损坏、权限不足等异常情况,需要进行相应的异常处理。
以下示例演示了如何使用try/except语句来处理文件读取异常:
try:with open('test.txt', 'r') as file:data = file.read()
except FileNotFoundError:print('File not found!')
except PermissionError:print('Permission denied!')
else:print(data)
在上述代码中,我们使用with语句打开一个名为“test.txt”的文件,并尝试读取其中的数据。如果文件不存在,则抛出FileNotFoundError异常;如果没有读取权限,则抛出PermissionError异常。否则,我们就可以安全地使用获取到的数据。
- 网络通信
在Python编程中,网络通信是一种常见的任务,如使用socket、requests等库进行HTTP、TCP/IP等协议的通信。在这个过程中,可能会遇到网络连接失败、超时、请求被拒绝等异常情况,需要进行相应的异常处理。
以下示例演示了如何使用try/except语句来处理网络连接异常:
import sockettry:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('localhost', 8000))client.send(b'Hello World!')
except socket.error as e:print('Network error:', e)
else:data = client.recv(1024)print(data.decode('utf-8'))
finally:client.close()
```在上述代码中,我们创建一个socket对象,并尝试连接到“localhost:8000”的服务器。如果连接失败,则抛出socket.error异常并打印错误信息;否则,我们就可以安全地使用send()方法发送数据,并使用recv()方法接收响应数据。需要注意的是,在网络通信过程中,我们需要注意数据格式和类型的一致性,否则可能会导致通信失败或数据解析错误等问题。3. 数据处理在Python编程中,数据处理是一种常见的任务,如对列表、字典、字符串等数据结构进行排序、过滤、转换等操作。在这个过程中,可能会遇到数据类型不匹配、键值不存在、索引越界等异常情况,需要进行相应的异常处理。以下示例演示了如何使用try/except语句来处理列表索引异常:```
data = [1, 2, 3]try:value = data[3]
except IndexError:print('Index out of range!')
else:print(value)
```在上述代码中,我们定义一个名为“data”的列表,并尝试获取其中索引为3的元素。由于该索引超出列表范围,因此会抛出IndexError异常,并打印错误信息“Index out of range!”。需要注意的是,在数据处理中,我们需要使用合适的库和算法,并遵守数据类型和格式规范,以确保数据的一致性和有效性。三、常见问题及解决方法在使用try/except语句时,可能会遇到一些常见问题和错误,例如:1. 未正确捕获特定类型的异常。在处理异常时,我们应该根据具体情况选择合适的异常类型,并使用except子句来捕获和处理相应的异常。如果没有正确指定异常类型,可能会导致程序无法正确处理异常情况,从而影响程序的正常运行。以下示例演示了如何同时捕获多个异常类型:```
try:# 可能会抛出多种类型的异常
except (ExceptionType1, ExceptionType2) as e:# 处理多种类型的异常
```2. 没有正确使用else语句块。在try/except语句中,else语句块用于处理没有异常发生时的代码逻辑,如果没有正确使用else语句块,可能会导致程序在没有异常发生时出现错误或产生不必要的副作用。以下示例演示了如何使用else语句块来处理没有异常发生时的代码逻辑:```
try:# 可能会抛出异常的代码
except ExceptionType:# 处理特定类型的异常
else:# 如果没有异常发生,则执行该语句块
```3. 没有正确使用finally语句块。在try/except语句中,finally语句块用于处理无论是否有异常发生都需要执行的代码逻辑,如果没有正确使用finally语句块,可能会导致程序在异常情况下无法正确处理资源的释放、关闭等问题。以下示例演示了如何使用finally语句块来处理无论是否有异常发生都需要执行的代码逻辑:```
try:# 可能会抛出异常的代码
except ExceptionType:# 处理特定类型的异常
else:# 如果没有异常发生,则执行该语句块
finally:# 无论是否有异常发生,都执行该语句块
`` 4. 没有正确使用raise语句抛出异常。在Python中,我们可以使用raise语句手动抛出异常,并将其传递给父级调用栈或其他处理机制。如果没有正确使用raise语句抛出异常,可能会导致程序无法正确处理错误情况。以下示例演示了如何使用raise语句抛出自定义异常:```
class MyException(Exception):passtry:raise MyException('Something went wrong!')
except MyException as e:print(e)
```在上述代码中,我们定义了一个名为“MyException”的自定义异常类,并尝试使用raise语句抛出该异常,并传递错误信息“Something went wrong!”给异常对象。然后,我们使用except子句捕获该异常,并打印错误信息。需要注意的是,在使用raise语句时,我们应该选择合适的异常类型,并传递必要的错误信息,以便于程序能够正确诊断和处理错误情况。5. 没有正确处理异常的返回值。在处理异常时,我们应该遵守函数或方法的规范,正确处理异常的返回值,从而保证程序的正确性和可靠性。如果没有正确处理异常的返回值,可能会导致程序出现意外行为或其他问题。以下示例演示了如何正确处理异常的返回值:```
def divide(a, b):try:result = a / bexcept ZeroDivisionError:return Noneelse:return resultprint(divide(4, 2))
print(divide(1, 0))
```在上述代码中,我们定义了一个名为“divide”的函数,该函数尝试对两个参数进行除法运算,并正确处理除数为0的情况。如果遇到除数为0的情况,则返回None;否则,返回计算结果。需要注意的是,在处理异常的返回值时,我们应该根据具体情况选择合适的返回值类型和形式,并尽可能保持简洁、明确和一致。四、总结try/except语句是Python中异常处理机制的核心,它可以有效地捕获和处理程序中可能出现的异常情况,从而提高程序的可靠性和健壮性。在使用try/except语句时,我们应该熟悉其基本语法和应用场景,选择合适的异常类型和处理方式,并遵守异常处理的最佳实践和规范,以确保程序的正确性和可维护性。```
自定义异常
```在Python中,我们可以通过自定义异常来扩展和增强异常处理的能力。自定义异常允许我们创建新的异常类型,并为其指定特定的错误信息和处理方式,从而使程序能够更加灵活和可靠地处理不同类型的异常情况。本文将详细介绍Python中自定义异常的基本概念、语法、应用场景及常见问题等内容,希望能够为读者提供实用的指导和帮助。一、基本概念在Python中,异常是指程序中可能出现的错误或异常情况,如文件不存在、网络连接失败、除数为0等。当程序遇到这些异常情况时,会抛出相应的异常对象,并将其传递给调用栈或其他处理机制。Python中的异常类都是派生自内置的Exception类或其他异常类,包括但不限于BaseException、SystemExit、KeyboardInterrupt、GeneratorExit、Exception、StandardError、Warning等。每个异常类都有相应的错误信息和处理方式,可以通过try/except语句来捕获和处理异常对象。除了内置的异常类外,我们还可以自定义异常类,并为其指定特定的错误信息和处理方式。自定义异常类可以继承自任意异常类,并可以添加新的属性和方法,以满足程序特定的需求和要求。二、语法在Python中,我们可以使用class语句来定义自定义异常类,并可以在类中添加必要的属性和方法,以实现特定的异常处理逻辑。以下是一个简单的自定义异常类的示例:```
class MyException(Exception):def __init__(self, message):self.message = messagetry:raise MyException('Something went wrong!')
except MyException as e:print(e.message)
```在上述代码中,我们使用class语句定义了一个名为“MyException”的自定义异常类,该类继承自内置的Exception类,表示程序中可能出现的一种新的异常情况。然后,我们在MyException类中定义了一个名为“__init__”的构造函数,用于初始化异常对象的错误信息。最后,我们使用raise语句抛出MyException异常,并传递错误信息“Something went wrong!”给该异常对象。在try/except语句中,我们捕获并打印该异常对象的错误信息。需要注意的是,CustomException类不仅可以用于try/except语句中的异常处理,还可以在程序的其他部分中使用,以实现更加全面和灵活的异常处理机制。三、应用场景自定义异常在Python编程中有着广泛的应用场景,例如:1. 文件操作在文件操作过程中,可能会遇到文件不存在、文件内容损坏、没有读写权限等异常情况,需要进行相应的异常处理。通过定义自定义异常类,我们可以更加精确地判断和处理这些异常情况,从而提高程序的可靠性和健壮性。以下示例演示了如何使用自定义异常类来处理文件操作异常:```
class FileNotFoundError(Exception):passtry:with open('test.txt', 'r') as file:data = file.read()
except FileNotFoundError:print('File not found!')
except PermissionError:print('Permission denied!')
else:print(data)
```在上述代码中,我们定义了一个名为“FileNotFoundError”的自定义异常类,并使用try/except语句来捕获可能会抛出的该异常类型。如果遇到文件不存在的情况,则抛出该异常并打印错误信息“File not found!”;否则,我们可以安全地读取文件内容并进行其他操作。2. 网络通信在网络通信过程中,可能会遇到服务器连接失败、数据传输超时、请求被拒绝等异常情况,需要进行相应的异常处理。通过定义自定义异常类,我们可以更加灵活和全面地处理这些异常情况,从而提高网络通信的可靠性和健壮性。以下示例演示了如何使用自定义异常类来处理网络通信异常:```
import socketclass NetworkError(Exception):passtry:client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('localhost', 8000))client.send(b'Hello World!')
except socket.error:raise NetworkError('Network error occurred!')
else:data = client.recv(1024)print(data.decode('utf-8'))
finally:client.close()
```在上述代码中,我们定义了一个名为“NetworkError”的自定义异常类,并使用try/except语句来捕获可能会抛出的socket.error异常。如果遇到网络错误,则抛出NetworkError异常并传递错误信息“Network error occurred!”给该异常对象;否则,我们可以安全地发送和接收网络数据,并进行其他操作。3. 数据处理在Python编程中,数据处理是一种常见的任务,如对列表、字典、字符串等数据结构进行排序、过滤、转换等操作。在这个过程中,可能会遇到数据类型不匹配、键值不存在、索引越界等异常情况,需要进行相应的异常处理。通过定义自定义异常类,我们可以更加精确地识别和处理不同类型的数据异常情况,从而增强数据处理的可靠性和健壮性。以下示例演示了如何使用自定义异常类来处理数据处理异常:```
class InvalidDataError(Exception):passdef process_data(data):if not isinstance(data, list):raise InvalidDataError('Invalid data type!')if len(data) == 0:raise InvalidDataError('Data is empty!')# other data processing logictry:process_data({})
except InvalidDataError as e:print(e)
```在上述代码中,我们定义了一个名为“InvalidDataError”的自定义异常类,并使用process_data()函数来处理数据。如果遇到数据类型不匹配或数据为空的情况,则抛出InvalidDataError异常并传递相应的错误信息给该异常对象;否则,我们可以安全地处理数据并进行其他操作。需要注意的是,在使用自定义异常类时,我们应该选择合适的异常类型,并传递必要的错误信息,以便于程序能够正确诊断和处理异常情况。四、常见问题及解决方法在使用自定义异常类时,可能会遇到一些常见的问题和错误,例如:1. 自定义异常类没有继承自Exception类。在定义自定义异常类时,我们应该确保其继承自内置的Exception类或其他异常类,否则可能会导致程序无法正确识别和处理该异常类型。以下示例演示了如何定义继承自Exception类的自定义异常类:```
class MyException(Exception):pass
```2. 自定义异常类没有指定错误信息。在抛出自定义异常时,我们应该传递相应的错误信息给异常对象,以便于程序能够正确诊断和处理异常情况。如果没有指定错误信息,可能会导致程序无法正确处理异常情况。以下示例演示了如何在自定义异常类中使用构造函数来指定错误信息:```
class MyException(Exception):def __init__(self, message):self.message = messagetry:raise MyException('Something went wrong!')
except MyException as e:print(e.message)
```3. 自定义异常类没有正确使用raise语句抛出异常。在抛出自定义异常时,我们应该使用raise语句手动抛出异常,并将其传递给父级调用栈或其他处理机制。如果没有正确使用raise语句抛出异常,可能会导致程序无法正确处理错误情况。以下示例演示了如何在自定义异常类中使用raise语句抛出异常:```
class MyException(Exception):passtry:raise MyException('Something went wrong!')
except MyException as e:print(e)
```4. 自定义异常类没有正确处理异常的返回值。在处理自定义异常时,我们应该遵守函数或方法的规范,正确处理异常的返回值,从而保证程序的正确性和可靠性。如果没有正确处理异常的返回值,可能会导致程序出现意外行为或其他问题。以下示例演示了如何正确处理自定义异常的返回值:```
class MyException(Exception):passdef divide(a, b):try:result = a / bexcept ZeroDivisionError:raise MyException('Divisor cannot be zero!')else:return resulttry:print(divide(4, 2))print(divide(1, 0))
except MyException as e:print(e)
```在上述代码中,我们定义了一个名为“MyException”的自定义异常类,并在divide()函数中处理除数为0的异常情况。如果遇到除数为0的情况,则抛出MyException异常并传递错误信息“Divisor cannot be zero!”给该异常对象;否则,返回计算结果。在try/except语句中,我们捕获并打印MyException异常的错误信息。需要注意的是,在处理自定义异常的返回值时,我们应该根据具体情况选择合适的返回值类型和形式,并尽可能保持简洁、明确和一致。五、总结自定义异常是Python编程中重要的一环,它可以扩展和增强程序的异常处理能力,提高程序的可靠性和健壮性。在使用自定义异常时,我们应该熟悉其基本概念、语法和应用场景,遵循最佳实践和规范,以保证程序的正确性和可维护性。同时,我们也应该注意常见问题和错误,并及时查找和解决相关问题。
相关文章:

Python入门到高级【第五章】
预计更新第一章. Python 简介 Python 简介和历史Python 特点和优势安装 Python 第二章. 变量和数据类型 变量和标识符基本数据类型:数字、字符串、布尔值等字符串操作列表、元组和字典 第三章. 控制语句和函数 分支结构:if/else 语句循环结构&#…...

C语言中(i++)+ (i++)真的每次都等于3吗?
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言结论证明首先,登场的是我们的VC6.0(还有Linux)最后一位,我使用了小熊猫C(还有Clion)请添加…...

Cursor,程序员的 AI 代码编辑助手
相信大家都或多或少地听说过、了解过 chatGPT ,半个月前发布的 GPT-4 ,可谓是 AI 赛道上的一个王炸 那么今天咸鱼给大家分享一个开源的 AI 代码编辑器——Cursor,让各位程序员在编程之路上一骑绝尘 😃 介绍 Cursor 是一个人工智…...

基于XML的自动装配~
基于XML的自动装配之场景模拟: 自动装配:根据指定的策略,在IOC容器中匹配某一个bean,自动为指定的bean中所依赖的类类型或者接口类型赋值 之前我们学过的依赖注入,我们在为不同属性赋值时,例如类类型的属性…...

完全二叉树的4种遍历方式
一张二叉树的图 1,二叉树的特点 每个点p的左儿子是p*2,右儿子是p*21,可以分别表示为p<<1与p<<1|1节点的序号是从左到右,从上到下增加的每个点至多2个儿子(屁话(bushi)) 2ÿ…...

【vue2】使用elementUI进行表单验证实操(附源码)
🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:vue使用elementUI进行表单验证实操(附源码) 【前言】我们在构建一…...

JUC之阻塞队列解读(BlockingQueue)
目录 BlockingQueue 简介 BlockingQueue 核心方法 1.放入数据 2.获取数据 入门代码案例 常见的 BlockingQueue ArrayBlockingQueue(常用) LinkedBlockingQueue(常用) PriorityBlockingQueue SynchronousQueue LinkedTransferQueue LinkedBlockingDeque 小结 Bloc…...

LCHub:ChatGPT4和低代码来临,程序员面临下岗?
一个网友吐槽道: “ 建站出来了,你们说程序员会失业。 低代码出来了,你们说程序员会失业。 Copilot出来了,你们说程序员会失业。 Chatgpt出来了,你们说程序员会失业 虽然这只是网友的吐槽,但却引起了小编的好奇。为何程序员那么容易被新技术取代?今天小编打算跟大家…...

【Node.js】Express框架的基本使用
✍️ 作者简介: 前端新手学习中。 💂 作者主页: 作者主页查看更多前端教学 🎓 专栏分享:css重难点教学 Node.js教学 从头开始学习 目录 初识Express Express简介 什么是Express 进一步理解 Express Express能做什么 Express的基本使用 …...

使用docker 和 kubnernetes 部署单节点/多节点 kafka 环境
参考资料 https://kafka.apachecn.org/documentation.html#configuration kafka的broker有三个核心配置 broker.idlog.dirszookeeper.connect docker启动单节点kafka环境 启动zookeeper 可配置的环境变量,https://gallery.ecr.aws/bitnami/zookeeper $ docker …...

Linux使用:环境变量指南和CPU和GPU利用情况查看
Linux使用:环境变量指南和CPU和GPU利用情况查看Linux环境变量初始化与对应文件的生效顺序Linux的变量种类设置环境变量直接运行export命令定义变量修改系统环境变量修改用户环境变量修改环境变量配置文件环境配置文件的区别profile、 bashrc、.bash_profile、 .bash…...

深入浅出 SSL/CA 证书及其相关证书文件(pem、crt、cer、key、csr)
互联网是虚拟的,通过互联网我们无法正确获取对方真实身份。数字证书是网络世界中的身份证,数字证书为实现双方安全通信提供了电子认证。数字证书中含有密钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。数字证书可…...

Compose(1/N) - 概念 基本使用
一、概念 1.1 解决的问题 APP展示的数据绝大多数不是静态数据而是会实时更新,传统的命令式UI写法更新界面繁琐且容易同步错误。1.2 Compose优势 由一个个可组合的Composable函数(可看作是一个Layout布局)拼成界面,方便维护和复用…...

2023高质量Java面试题集锦:高级Java工程师面试八股汇总
人人都想进大厂,当然我也不例外。早在春招的时候我就有向某某某大厂投岗了不少简历,可惜了,疫情期间都是远程面试,加上那时自身也有问题,导致屡投屡败。突然也意识到自己肚子里没啥货,问个啥都是卡卡卡卡&a…...

MySQL多表查询 子查询效率(DQL语句)
多表关系 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: 一对多(多…...

Linux中 ps命令详解
一、基础概念 指令: ps 作用:查看系统进程,比如正在运行的进程有哪些,什么时候开始运行的,哪个用户运行的,占用了多少资源。 参数: -e 显示所有进程-f 显示所有字段(UID&…...

【Python语言基础】——Python 关键字
Python语言基础——Python 关键字 文章目录Python语言基础——Python 关键字一、Python 关键字一、Python 关键字 Python 有一组关键字,这些关键字是保留字,不能用作变量名、函数名或任何其他标识符: 关键字 描述 and 逻辑运算符。 as 创建别…...

Java SE 基础(8)关键字和保留字
关键字 定义:被Java 语言赋予了特殊含义,用做专门用途的字符串(单词) 特点: 关键字中所有字母都为小写 用于定义数据类型的关键字 class、interface、 enum 、byte 、short、 int 、long、 float、 double、 char 、…...

Thinkphp 6.0响应输出和重定向
本节课我们来学习一下响应操作,响应输出和重定向。 一.响应操作 1. 响应输出,有好几种:包括 return、json()和 view()等等; 2. 默认输出方式是以 html 格式输出,如果你发起 json 请求,则输出 js…...

Centos html 中文 显示为乱码
0 : CentOS发布静态网页 之 httpd开启 https://blog.csdn.net/weixin_39689870/article/details/118146160 #yum install -y httpd #systemctl start httpd.service/etc/httpd/conf:该目录存放Apache服务器的配置文件 /var/www/html:该目录是…...

Helm学习笔记
文章目录概念定义helm组件helm的工作流程helm安装helm仓库helm部署应用helm应用的更新或回退或卸载概念 定义 学习helm首先得了解helm是什么,我们先来看一下helm的定义:helm是将kubernetes的各种资源对象打包,类似于Linux中的yum工具&#…...

深入学习JavaScript系列(二)——作用域和作用域链
本篇为第二篇,本系列文章会在后续学习后持续更新。 第一篇:#深入学习JavaScript系列(一)—— ES6中的JS执行上下文 第二篇:# 深入学习JavaScript系列(二)——作用域和作用域链 第三篇&#x…...

【计算机视觉 | 目标检测】DETR风格的目标检测框架解读
文章目录一、前言二、理解2.1 DETR的理解2.2 DETR的细致理解2.2.1 Backbone2.2.2 Transformer encoder2.2.3 Transformer decoder2.2.4 Prediction feed-forward networks (FFNs)2.2.5 Auxiliary decoding losses2.3 更具体的结构2.4 编码器的原理和作用2.5 解码器的原理和作用…...

【LeetCode】剑指 Offer 41. 数据流中的中位数 p214 -- Java Version
题目链接:https://leetcode.cn/problems/shu-ju-liu-zhong-de-zhong-wei-shu-lcof 1. 题目介绍(41. 数据流中的中位数) 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位…...

CSS3 知识总结
1,什么是CSS 用于定义网页的样式,包括不同设备和屏幕尺寸的设计、布局和显示变化。 2,CSS的作用优点 CSS 描述 HTML 元素如何在屏幕、纸张或其他媒体上显示 CSS 节省了大量工作。它可以一次控制多个网页的布局 3,css构成 CSS 规…...

回溯算法37:解数独
主要是我自己刷题的一些记录过程。如果有错可以指出哦,大家一起进步。 转载代码随想录 原文链接: 代码随想录 leetcode链接:37. 解数独 题目: 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则…...

【蓝桥杯-筑基篇】动态规划
🍓系列专栏:蓝桥杯 🍉个人主页:个人主页 目录 1.最大连续子段和 2.LCS 最大公共子序列 3.LIS 最长上升子序列 4.数塔 5.最大子矩阵和 6.背包问题 ①01背包问题 ②完全背包 1.最大连续子段和 这段代码是一个求最大子数组和的算法,使用…...

Unity利用Photon PUN2框架快速实现多人在线游戏实例分享
简介 Photon 是一个泛用性的 ScoketServer 套装软件,可用于多人在线游戏、聊天室、大厅游戏,并同时支持 Windows、Unity3D、iOS、Android、Flash 等平台。Photon 包含两个部分,一部分是 Socket 服务器,另一部分是其针对各个平台编写的 SDK,Unity3D 平台对应的 SDK 为 Pho…...

ChatGPT直出1.5w字论文查重率才30% - 基于物联网技术的智能家居控制系统设计与实现
文章目录ChatGPT直出1.5w字论文查重率才30% - 基于物联网技术的智能家居控制系统设计与实现一、绪论1.1 研究背景与意义1.2 国内外研究现状分析1.3 研究内容与目标1.4 研究方向和思路二、物联网技术与智能家居概述2.1 物联网技术原理与应用2.2 智能家居的概念与发展历程2.3 智能…...

特斯拉的操作系统是用什么语言编写的?
总目录链接>> AutoSAR入门和实战系列总目录 文章目录特斯拉车辆操作系统特斯拉GitHub中使用的语言Ruby和GoPythonSwift 和 Objective CQt我们知道操作系统至少需要一些非常低级的代码,这些代码在系统首次启动时运行,必须使用接近硬件的语言编写。…...