Python关键字之旅:一步步掌握Python的奥秘

文章目录

  • 一、前言
  • 二、关键字
    • 1.总表(共35个)
    • 2.拆分
      • 2.1 False None True
      • 2.2 and not or
      • 2.3 as from import
      • 2.4 assert
      • 2.5 async await
      • 2.6 break continue
      • 2.7 class def
      • 2.8 del
      • 2.9 if elif else
      • 2.10 try except finally raise
      • 2.11 for in while
      • 2.12 global nonlocal
      • 2.13 is
      • 2.14 lambda
      • 2.15 pass
      • 2.16 return
      • 2.17 with
      • 2.18 yield
  • 三、总结


一、前言

Python 的保留字,也称为关键字(keywords),是指在编程语言中具有特殊含义并被用于特定目的的单词或标识符。这些保留字在 Python 中有特殊的语法和用途,不能被用作普通的变量名或函数名。

Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

在这里插入图片描述

这些保留字大致可以分为几类:

控制流语句:如if、for、while等,用于控制程序的执行流程。
循环和条件表达式:如break、continue、pass等,用于控制循环或条件表达式的行为。
异常处理:如try、except、finally等,用于处理程序中的异常情况。
函数定义:如def、return等,用于定义函数和指定函数的返回值。
类定义:如class等,用于定义新的类。
模块和导入:如import、from…import等,用于导入模块或特定的函数或类。
变量和类型声明:如global、nonlocal、assert等,用于声明全局变量、非局部变量、断言等。
其他:如with、yield等,用于实现特定的功能,如上下文管理器、生成器等。


二、关键字

1.总表(共35个)

FalseNoneTrueandas
assertasyncawaitbreakclass
continuedefdelelifelse
exceptfinallyforfromglobal
ifimportinislambda
nonlocalnotorpassraise
returntrywhilewithyield
  1. False:布尔值,表示“假”。在布尔运算中用作False值。
  2. None:表示空值或无值。常用于表示变量没有指向任何对象。
  3. True:布尔值,表示“真”。在布尔运算中用作True值。
  4. and:逻辑运算符,用于将两个条件组合在一起。如果两个条件都为真,则返回True。
  5. as:用于类型别名,通常在导入模块或使用函数时使用。
  6. assert:断言关键字,用于测试代码中的某个条件是否为真。如果条件为假,则会引发AssertionError异常。
  7. async:用于定义异步函数。异步函数允许在等待某些操作(如I/O操作)完成时执行其他代码。
  8. await:用于在异步函数内部等待另一个异步操作完成。通常与asyncio库中的事件循环一起使用。
  9. break:跳出当前循环。
  10. class:定义一个类。
  11. continue:跳过当前循环的剩余部分,进入下一次循环。
  12. def:定义一个函数。
  13. del:删除一个对象或变量。
  14. elif:条件语句的一部分,用于在if语句中添加更多的条件。
  15. else:条件语句的另一部分,用于在if语句中添加一个默认情况。
  16. except:异常处理的一部分,用于捕获和处理异常。
  17. finally:异常处理的一部分,无论是否发生异常都会执行。
  18. for:循环关键字,用于遍历序列或迭代器中的元素。
  19. from:导入模块或从模块中导入特定的函数或变量。
  20. global:声明一个变量为全局变量,即该变量可以在函数外部访问和修改。
  21. if:条件语句的关键字,用于根据条件执行不同的代码块。
  22. import:导入模块或库,以便在代码中使用其函数和类。
  23. in:成员关系测试运算符,用于检查一个元素是否存在于序列中。
  24. is:身份运算符,用于比较两个对象是否引用相同的内存地址。这与使用“==”运算符检查值是否相等不同。
  25. lambda:定义匿名函数的关键字。匿名函数是一种没有名称的简单函数,通常用于一次性的短小操作。
  26. nonlocal:声明一个变量为非局部变量,即该变量可以在函数内部访问和修改,但只能在当前函数内部访问和修改。
  27. not:逻辑运算符,用于将条件取反。
  28. or:逻辑运算符,用于将两个条件组合在一起。如果两个条件中有一个为真,则返回True。
  29. pass:空操作符,用于表示一个无操作的状态。
  30. raise:引发一个异常。
  31. return:从函数中返回一个值或对象。
  32. try:异常处理的一部分,用于捕获和处理异常。
  33. while:循环关键字,用于重复执行一段代码直到条件不再满足。
  34. with:上下文管理关键字,用于确保代码块在执行完毕后正确地清理资源或执行其他操作。
  35. yield:生成器关键字,用于从函数中返回一个生成器对象。

2.拆分

2.1 False None True

  1. False:布尔值,表示“假”。在布尔运算中用作False值。
  2. None:表示空值或无值。常用于表示变量没有指向任何对象。
  3. True:布尔值,表示“真”。在布尔运算中用作True值。

代码如下(示例):

def analyze_booleans():  

    # 定义一个布尔变量  
    False_valid = False  	
  
    # 判断并输出结果  
    if False_valid:  
        print("False_valid is True")  
    else:  
        print("False_valid is False")  
	
    # 定义一个可能为None的变量  
    None_value = None  
  
    # 检查变量是否为None  
    if None_value is None:  
        print("None_value is None")  
    else:  
        print("None_value is not None")  
		
    # 定义一个布尔变量  
    True_valid = True  	
  
    # 判断并输出结果  
    if True_valid:  
        print("True_valid is True")  
    else:  
        print("True_valid is False")  		
  
# 调用函数进行分析  
analyze_booleans()
  1. True 和 False 在这里用作条件判断。在第一个条件中,如果 False_valid 为 True,则输出 “False_valid is True”,否则输出 “False_valid is False”。这里使用了 if-else 语句来根据布尔值进行判断。
  2. None 在这里用于表示一个变量没有指向任何对象。在第二个条件中,我们检查 None_value 是否为 None。如果是,则输出 “None_value is None”,否则输出 “None_value is not None”。这里使用了 is 运算符来检查变量是否为 None。
  3. 第三个条件同第一个条件,如果 True_valid 为 True,则输出 “True_valid is True”,否则输出 “True_valid is False”。

输出结果:
在这里插入图片描述

2.2 and not or

这3个关键字都是逻辑运算符,放在一起讲。

  1. and:逻辑运算符,用于将两个条件组合在一起。如果两个条件都为真,则返回True。
  2. not:逻辑运算符,用于将条件取反。
  3. or:逻辑运算符,用于将两个条件组合在一起。如果两个条件中有一个为真,则返回True。

代码如下(示例):

# 定义两个变量
x = 5
y = 3

# 使用 and 进行逻辑与判断
if x > 3 and y > 2:
    print("x大于3并且y大于2")
else:
    print("x不大于3或者y不大于2")

# 使用 or 进行逻辑或判断
if x > 3 or y > 5:
    print("x大于3或者y大于5")
else:
    print("x不大于3并且y不大于5")

# 使用 not 进行逻辑非判断
if not x > 5:
    print("x不大于5")
else:
    print("x大于5")

在这个例子中,我们定义了两个变量 x 和 y,然后分别使用 and、or 和 not 进行逻辑判断。具体作用如下:

and:当 and 连接两个条件时,只有当两个条件都为真时,整个表达式才为真。
or:当 or 连接两个条件时,只要有一个条件为真,整个表达式就为真。
not:not 用于对一个条件进行取反,如果条件为真,则取反后为假;如果条件为假,则取反后为真。

通过这个例子,我们可以清晰地看到这三个关键字在逻辑判断中的作用。

输出结果:

在这里插入图片描述

2.3 as from import

  1. as:用于类型别名,通常在导入模块或使用函数时使用。
  2. from:导入模块或从模块中导入特定的函数或变量。
  3. import:导入模块或库,以便在代码中使用其函数和类。

代码如下(示例):

import turtle as tu # 导入turtle 模块,并将其命名为 tu
form random import randint,uniform,choice # 从random库中导入randint、uniform、choice 函数

在上面的示例中,import 和 as 在这个例子中的作用是将 turtle 模块导入当前代码中,并将其起一个别名 tu,以便在后续的代码中使用这个别名来代替 turtle 模块的名称。from random import randint, uniform, choice 表示从 Python 标准库中的 random 模块中导入了 randint、uniform 和 choice 这三个函数,因此在后续的代码中,你可以直接使用这三个函数,而不需要输入 random.randint()、random.uniform() 或 random.choice()。

在这里插入图片描述

2.4 assert

assert:断言关键字,用于测试代码中的某个条件是否为真。如果条件为假,则会引发AssertionError异常。

代码如下(示例):

def divide(x, y):
    assert y != 0, "除数不能为0"
    return x / y

print(divide(6, 2))  # 正常情况,输出3.0
print(divide(6, 0))  # 会触发 AssertionError,输出"除数不能为0"

在上面的代码中,assert y != 0, “除数不能为0” 表示断言 y != 0 必须为真,否则会触发 AssertionError 异常,并且异常的描述信息为 “除数不能为0”。在第二次调用 divide 函数时,由于除数为 0,触发了 AssertionError 异常。

输出结果:

在这里插入图片描述

2.5 async await

  1. async:用于定义异步函数。异步函数允许在等待某些操作(如I/O操作)完成时执行其他代码。
  2. await:用于在异步函数内部等待另一个异步操作完成。通常与asyncio库中的事件循环一起使用

代码如下(示例):

import asyncio  
  
async def say_hello():  
    print("Hello, world!")  
    await asyncio.sleep(1)  
    print("One second later...")  
  
# 运行异步函数  
asyncio.run(say_hello())

这段代码定义了一个异步函数 say_hello,该函数首先打印 “Hello, world!”,然后使用 await asyncio.sleep(1) 来等待 1 秒,最后再打印 “One second later…”。在主程序中使用 asyncio.run(say_hello()) 来运行这个异步函数。

  1. async def say_hello(): 中的 async 关键字用来定义这是一个异步函数。这使得函数内部可以包含 await 表达式,并且在函数外部调用时,需要通过异步事件循环来执行。
  2. 在 say_hello 函数内部,await asyncio.sleep(1) 用于暂停当前的异步函数,等待 1 秒后再继续执行。这里的 await 关键字用于等待一个异步操作的完成,而不会阻塞整个事件循环。

输出结果:

在这里插入图片描述

2.6 break continue

  1. break:跳出当前循环。
  2. continue:跳过当前循环的剩余部分,进入下一次循环。
    代码如下(示例):

continue、break主要用在for循环和while循环中,代码如下(示例):

numbers = [1, 2, 3, 4, 5] # 第二种输出结果需更改为numbers = [5, 4, 3, 2, 1]

for num in numbers:
    if num == 3:
        continue  # 如果数字等于 3,则跳过本次循环,继续下一次循环
    if num == 5:
        break  # 如果数字等于 5,则跳出循环
    print(num)

print("Loop ends")
  1. 当 num 的值为 3 时,continue 关键字会使程序跳过当前循环,直接进入下一次循环,因此数字 3 不会被打印出来。
  2. 当 num 的值为 5 时,break 关键字会立即退出循环,整个循环结构终止执行,因此后面的数字也不会被打印出来。

因此,整个程序的功能是遍历列表 numbers 中的元素,并打印出每个数字,但在遇到数字 3 时跳过,遇到数字 5 时终止循环。最后输出 “Loop ends” 表示循环结束。

输出结果:

在这里插入图片描述

2.7 class def

  1. class:定义一个类。
  2. def:定义一个函数。

代码如下(示例):

class Circle:
    def __init__(self, radius):
        self.radius = radius

    def calculate_area(self):
        return 3.14 * self.radius ** 2

circle1 = Circle(5)
area = circle1.calculate_area()

print("Area:", area)

这个程序的功能是定义一个 Circle 类,用于表示圆形,该类有一个属性 radius 表示圆的半径,并且有calculate_area() 用于计算圆的面积。

输出结果:

在这里插入图片描述

2.8 del

  1. del:删除一个对象或变量。

代码如下(示例):

# 定义一个列表  
my_list = [1, 2, 3, 4, 5]  
  
# 输出原始列表  
print("原始列表:", my_list)  
  
# 使用del关键字删除索引为2的元素(即数字3)  
del my_list[2]  
  
# 输出修改后的列表  
print("修改后的列表:", my_list)

输出结果:

在这里插入图片描述

2.9 if elif else

  1. if:条件语句的关键字,用于根据条件执行不同的代码块。
  2. elif:条件语句的一部分,用于在if语句中添加更多的条件。
  3. else:条件语句的另一部分,用于在if语句中添加一个默认情况。

代码如下(示例):

x = 10  
if x > 5:  
    print("x 大于 5")  
elif x == 5:  
    print("x 等于 5")  
else:  
    print("x 小于 5")

输出结果:

在这里插入图片描述

2.10 try except finally raise

  1. try:用于尝试执行一段代码,如果出现异常,可以通过后续的代码进行捕获和处理。
  2. except:用于捕获try代码块中抛出的异常。可以指定捕获特定类型的异常,也可以捕获所有类型的异常。
  3. finally:无论try代码块中是否抛出异常,finally代码块中的代码都会被执行。这对于需要清理资源的场景非常有用。
  4. raise:用于手动抛出一个异常。可以在except代码块中使用raise关键字重新抛出捕获到的异常,或者在需要的地方抛出新的异常。

代码如下(示例):

try:  
    # 尝试执行一段代码  
    x = 10 / 2  
    y = x / 0  # 这将触发 ZeroDivisionError 异常  
except ZeroDivisionError:  
    # 捕获除零错误并打印错误信息  
    print("捕获到除零错误!")  
    raise  # 重新抛出捕获到的异常  
finally:  
    # 无论是否发生异常,都会执行这段代码  
    print("finally 代码块被执行")

首先,我们通过除法将10除以2,得到5。然后,我们尝试将5除以0,这将触发ZeroDivisionError异常。我们使用except关键字捕获这个异常,并打印出错误信息。在except代码块中,我们还使用raise关键字重新抛出捕获到的异常。最后,我们使用finally关键字确保无论是否发生异常,都会执行一段代码。

输出结果:

在这里插入图片描述

2.11 for in while

  1. for:循环关键字,用于遍历序列或迭代器中的元素。
  2. in:成员关系测试运算符,用于检查一个元素是否存在于序列中。
  3. while:循环关键字,用于重复执行一段代码直到条件不再满足。

代码如下(示例):

for i in range(5):  
    print(i)
	
i = 0  
while i < 5:  
    print(i)  
    i += 1

这段代码的作用就是依次打印出0到4这5个数字,每个数字占一行,打印两次。

输出结果:

在这里插入图片描述

2.12 global nonlocal

  1. global:声明一个变量为全局变量,即该变量可以在函数外部访问和修改。
  2. nonlocal:声明一个变量为非局部变量,即该变量可以在函数内部访问和修改,但只能在当前函数内部访问和修改。

代码如下(示例):

# 定义全局变量
global_variable = "Hello"

# 定义函数
def outer():
    outer_variable = "World"

    # 定义内部函数
    def inner():
        nonlocal outer_variable
        outer_variable = "Python"
        print(f"inner: {outer_variable}")  # 输出 inner: Python

    # 调用内部函数
    inner()

# 调用外部函数
outer()

print(f"global: {global_variable}")  # 输出 global: Hello

输出结果:

在这里插入图片描述

2.13 is

is:身份运算符,用于比较两个对象是否引用相同的内存地址。这与使用“==”运算符检查值是否相等不同。

代码如下(示例):

a = [1, 2, 3]  
b = a
print(a is b)  

a = [1, 2, 3]  
b = [1, 2, 3]
print(a is b)  

在这个例子中,第一个a和b都引用同一个列表对象,所以a is b返回True。
第二个a和b的内容相同,但它们是不同的对象,所以a is b返回False。
需要注意的是,is运算符比较的是对象的身份(即内存地址),而不是它们的内容。

输出结果:

在这里插入图片描述

2.14 lambda

lambda:定义匿名函数的关键字。匿名函数是一种没有名称的简单函数,通常用于一次性的短小操作。

代码如下(示例):

# 使用 lambda 关键字定义匿名函数
add_numbers = lambda x, y: x + y

# 调用匿名函数
result = add_numbers(3, 5)

# 输出结果
print(result)  # 输出 8

当涉及到简单的操作或者函数表达式时,可以使用 Python 中的lambda来定义匿名函数。

输出结果:

在这里插入图片描述

2.15 pass

pass:空操作符,用于表示一个无操作的状态。

代码如下(示例):

def my_function():  
    # 这里没有任何操作,只是一个空操作  
    pass  
  
# 调用函数  
my_function()

当我们调用这个函数时,实际上没有任何事情发生,因为pass关键字就是一个空操作符。

2.16 return

return:从函数中返回一个值或对象。

代码如下(示例):

def add_numbers(a, b):  
    # 将两个数字相加,并返回结果  
    result = a + b  
    return result  
  
# 调用函数并打印结果  
result = add_numbers(5, 4)  
print(result)  # 输出: 9

输出结果:

在这里插入图片描述

2.17 with

with:上下文管理关键字,用于确保代码块在执行完毕后正确地清理资源或执行其他操作。

代码如下(示例):

with open('text.txt', 'w') as f:
    f.write('Hello, World!')

这个程序的功能是打开一个名为 text.txt 的文件,将字符串 ‘Hello, World!’ 写入文件中,然后自动关闭文件句柄。

2.18 yield

yield:生成器关键字,用于从函数中返回一个生成器对象。

代码如下(示例):

# 定义一个生成器函数
def simple_generator():
    yield 1
    yield 2
    yield 3

# 使用生成器
gen = simple_generator()

# 通过迭代获取生成器的值
print(next(gen))  # 输出 1
print(next(gen))  # 输出 2
print(next(gen))  # 输出 3

在上述示例中,我们首先定义了一个名为 simple_generator 的生成器函数。在函数体内,我们使用 yield 关键字分别产生了整数 1、2 和 3。当生成器函数被调用时,它并不会立即执行,而是返回一个生成器对象。
接着,我们将生成器对象赋值给变量 gen。通过调用 next() 函数,我们可以逐个获取生成器产生的值。每次调用 next() 函数,生成器函数会从上一次 yield 语句的位置继续执行,直到遇到下一个 yield 或者函数结束。
在示例中,分别调用了 next(gen) 三次,分别输出了生成器产生的值 1、2 和 3。

输出结果:

在这里插入图片描述


三、总结

今天,深入解析python的35个关键字的含义与用法。

感谢你的观看,谢谢!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/274913.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业计算机服务器中了360后缀勒索病毒如何处理,勒索病毒应对步骤

网络技术的应用与发展&#xff0c;为企业的生产运营提供了有力保障&#xff0c;但也为网络安全威胁埋下隐患。近期&#xff0c;网络上的勒索病毒非常嚣张&#xff0c;严重影响了企业的生产运营。近日&#xff0c;云天数据恢复中心接到很多企业的求助&#xff0c;企业的计算机服…

进程互斥的硬件实现方法-第二十五天

目录 中断屏蔽方法 TestAndSet&#xff08;TS指令/TSL指令&#xff09; Swap指令&#xff08;XCHG指令&#xff09; 本节思维导图 中断屏蔽方法 概念&#xff1a;利用“开/关中断指令”实现&#xff08;与原语的实现思想相同&#xff0c;即在某进程开始访问临界区到结束访…

Kubernetes 学习总结(42)—— Kubernetes 之 pod 健康检查详解

Kubernetes 入门 回想 2017 年刚开始接触 Kubernetes 时&#xff0c;碰到 Pod一直起不来的情况&#xff0c;就开始抓瞎。后来渐渐地掌握了一些排查方法之后&#xff0c;这种情况才得以缓解。随着时间推移&#xff0c;又碰到了问题。有一天在部署某个 springboot 微服务时&…

[排序算法]:归并排序(Merge Sort)

概念: 归并排序&#xff0c;是创建在归并操作上的一种有效的排序算法。算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用&#xff0c;且各层分治递归可以同时进行。归并排序思路简单&#xff0c;速度仅次于快速排序&#xff0c;为稳定排序算法…

Golang 通用代码生成器仙童发布 2.4.0 电音仙女尝鲜版二,改进三大部分生成功能群

Golang 通用代码生成器仙童发布 2.4.0 电音仙女尝鲜版二&#xff0c;改进三大部分生成功能群 Golang 通用代码生成器仙童已发布 2.4.0 电音仙女尝鲜版二及其介绍视频。尝鲜版二改进了三大部分生成功能群。 视频请见&#xff1a; https://www.bilibili.com/video/BV1Q64y1H75…

【开源】基于JAVA语言的独居老人物资配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询社区4.2 新增物资4.3 查询物资4.4 查询物资配送4.5 新增物资配送 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的独居老人物资配送系统&#xff0c;包含了社区档案、…

QT helloword

打开QT Creator, 点击File 创建好后的界面&#xff1a; 对应的文件夹内容&#xff1a; 工程文件夹结构&#xff1a; 双击mainwindow.ui 将组件面板的Display Widgets分组里&#xff0c;将一个Label组件拖放到设计的窗体上面&#xff0c;双击刚放置的Label组件&#xff0c;可以…

Pytorch的讲解及实战·MNIST数据集手写数字识别

目录 一、前言与pytorch的下载 1、前言 2、下载pytorch ①创建虚拟环境 ②下载pytorch&#xff08;cpu版&#xff09; ③测试pytorch是否下载成功 ④使用jupyter notebook 但是使用不了torch的解决方法 二、pytorch的使用 1、Tensor的数据类型 ①torch.FloatTensor …

2023年,写博客带给我的收获与成长

文章目录 前言写博客的心路历程膜拜写博客大佬博客大佬带来的诱惑尝试写博客坚持写博客 决定写博客的原因2023年写博客的成就博客的创作粉丝的增长博客专家成就商务合作 2024年对技术写作的展望 前言 没错&#xff0c;我就是那个考试睡大觉、作文空白交卷的王二蛋。面对写作&a…

在matlab中对hsv进行均匀量化和非均匀量化

首先&#xff0c;进行非均匀量化&#xff0c;H,S,V三通道分别量化为16,4,4级&#xff0c;返回一个向量。量化依据如下表&#xff1a; function vec getHsvHist(Image) [M,N,O] size(Image); if O~ 3error(3 components are needed for histogram); end [h,s,v] rgb2hsv(Imag…

启明智显开源项目分享|基于Model 3c芯片的86中控面板ZX3D95CM20S-V11项目软硬件全开源

前言&#xff1a; 本文为4寸 480*480 RGB接口IPS全面触屏的86中控面板&#xff08;RT-ThreadLVGL&#xff09;软硬件开源干货内容&#xff0c;该项目是综合性非常强的RTOS系列项目&#xff01;项目主控芯片使用 Model 3c&#xff0c;整体实现了简化版本的86中控面板的功能需求…

交换域系数的选择:图像处理与编码的关键策略

在图像处理和编码领域&#xff0c;选择适当的交换域系数对于实现高效的图像处理和编码至关重要。交换域系数是指在特定的数学变换下产生的频域系数。通过选择合适的交换域系数&#xff0c;可以实现图像的压缩、增强和重构。本文将深入探讨交换域系数的选择在图像处理和编码中的…

HPCC:高精度拥塞控制

HPCC&#xff1a;高精度拥塞控制 文章目录 HPCC&#xff1a;高精度拥塞控制摘要1 引言1.1 背景1.2 现有CC的局限性1.3 HPCC的提出 2 研究动机2.1 大型RDMA部署2.2 RDMA目标2.3 当前RDMA CC中的权衡DCQCNTIMELY 2.4 下一代高速CC 3 技术方案3.1 INT3.2 HPCC设计3.3 HPPC的参数 4…

改进YOLO系列 | YOLOv5/v7 引入高效的混合特征编码器 AIFI

论文地址:https://arxiv.org/abs/2304.08069 代码地址:https://github.com/PaddlePaddle/PaddleDetection 中文翻译:https://blog.csdn.net/weixin_43694096/article/details/131353118 注意!这个模块需要 torch>=1.9 才能使用 源代码 import torch import torch.nn …

深入探究Protostuff枚举类型的序列化

背景&#xff1a; 有一天突然被一个群组排查线上问题&#xff0c;说是一个场景划线价和商品原价一模一样。看到问题时&#xff0c;我的内心毫无波澜&#xff0c;因为经常处理线上类似的问题&#xff0c;但了解业务后发现是上个版本经我手对接的新客弹窗商品算价&#xff0c;内心…

C# MVC +Layui侧边导航栏的收缩及展开

目录 1、头部代码 2、侧边栏&#xff08;例子只写了一级导航&#xff0c;需要多级可自行添加&#xff09; 3、body内容填充 4、 JS 1、头部代码 <div class"layui-layout layui-layout-admin"> <div class"layui-header"> …

MySQL 核心模块揭秘 |《发刊词》

1. 为什么要写专栏&#xff1f; 我还在做业务系统研发的时候&#xff0c;有一段时间&#xff0c;系统不稳定&#xff0c;慢 SQL 很多。我们团队花了很长时间持续优化 SQL。 我们有一个表格&#xff0c;从慢查询日志里整理出了很多慢 SQL。其中一些 SQL&#xff0c;按照我们的…

大华NVR和IPC通过主动注册协议方式接入AS-V1000视频监控平台的步骤

最近有人经常用到有的型号的大华网路摄像机&#xff0c;不支持国标GB28181标准&#xff0c;问我们能否接入到在公网的AS-V1000平台 &#xff1f; 我们早期就开发了大华的主动注册协议SDK&#xff0c;能够支持大华的NVR和IPC接入到AS-V1000平台。 今天就直接讲解如何一步步的把局…

人工智能 机器学习 深度学习:概念,关系,及区别说明

如果过去几年&#xff0c;您读过科技主题的文章&#xff0c;您可能会遇到一些新词汇&#xff0c;如人工智能&#xff08;Artificial Intelligence&#xff09;、机器学习&#xff08;Machine Learning&#xff09;和深度学习&#xff08;Deep Learning&#xff09;等。这三个词…

关于使用Selenium获取网页控制台的数据

背景&#xff1a; 需要获取网页的控制台的数据&#xff0c;如下图 在此文章将使用到 Pycharm 和 Selenium4 Pycharm安装 Selenium安装 from selenium import webdriver from selenium.webdriver.common.by import By import time# 创建浏览器对象 browser webdriver.Chro…