[Python学习日记-35] Python 中的内置函数(上)

news2024/10/2 9:26:48

[Python学习日记-35] Python 中的内置函数(上)

简介

内置函数详解(A-E)

简介

        在 Python 中有很多内置函数,例如 len(),这些函数是 Python 解释器自带的,可以直接使用。本篇将介绍 A-H 的内置函数,下图是官方给出的所有 Python 解释器自带的函数

内置函数官方详解:Built-in Functions — Python 3.12.6 documentation

内置函数详解(A-E)

一、abs()

         求绝对值,该方法将会返回一个数字的绝对值,演示代码如下

abs(-1)

代码输出如下:

二、aiter()

        在 Python 中,aiter() 是一个异步迭代器。它可以用来创建一个异步可迭代对象,该对象可以在异步代码中进行迭代。等同于调用 x.__aiter__()。

        注意:与 iter() 不同的是 aiter() 并没有两个参数的版本。

三、all()

        用于判断给定的可迭代对象(如列表、元组等)的所有元素是否都为真(即非零、非空、非 None 等)。它的语法如下

all(iterable)

参数:

  • iterable:表示一个可迭代对象,比如列表、元组、集合、字典、字符串等。

all() 函数返回一个布尔值:

  • 如果可迭代对象中所有元素都为 True,则返回 True
  • 如果可迭代对象中有任何一个元素为 False 或等价于 False 的值(如空字符串、0、空列表等),则返回 False

演示代码如下

my_list = [True, False, True]
result = all(my_list)
print(result) # 输出 False

my_tuple = (1, 2, 3)
result = all(my_tuple)
print(result) # 输出 True

my_string = "Hello"
result = all(my_string)
print(result) # 输出 True

代码输出如下:

在使用 all() 函数时,需要注意以下几点:

  • 如果可迭代对象为空,则 all() 返回 True
  • 对于空字符串、空列表、空元组等可迭代对象,all() 返回 True
  • 可迭代对象中的元素为零、空、None 等情况时,all() 返回 False
  • 可以使用列表推导式或生成器表达式来生成可迭代对象进行判断

四、anext()

         在 Python 中,anext() 是一个异步生成器函数的内置函数。它用于获取异步生成器的下一个值。与普通的迭代器中的 next() 函数类似,anext() 函数在每次调用时都会返回异步生成器产生的下一个值。

        anext() 有一个参数的版本和两个参数的版本,两种版本的语法如下

anext(async_iterator)

anext(async_iteratordefault)

参数:

  • async_iterator:表示异步迭代器对象。
  • default:可选参数,表示当异步迭代器没有更多的值时,返回的默认值。

        anext() 函数会返回一个表示异步迭代器的awaitable对象。可以使用 await 语句来调用 anext() 函数,从而等待异步迭代器生成下一个值。 

五、any()

         在 Python 中,any() 函数用于判断可迭代对象中是否存在至少一个为 True 的元素。它的语法如下

any(iterable)

参数:

  • iterable:表示一个可迭代对象,比如列表、元组、集合、字典、字符串等

any() 函数返回一个布尔值:

  • 如果可迭代对象中至少有一个元素为 True,则返回 True
  • 如果可迭代对象为空,返回 False

演示代码如下

# 判断列表中是否有大于10的元素
my_list = [5, 8, 12, 3, 7]
result = any(x > 10 for x in my_list)
print(result)  # 输出True

# 判断字符串中是否有小写字母
my_string = "Hello World"
result = any(x.islower() for x in my_string)
print(result)  # 输出True

# 判断集合中是否有负数
my_set = {1, 2, 3, -4, 5}
result = any(x < 0 for x in my_set)
print(result)  # 输出True

# 判断字典中是否有值为True的元素
my_dict = {"a": False, "b": True, "c": False}
result = any(my_dict.values())
print(result)  # 输出True

# 判断空列表是否有元素
empty_list = []
result = any(empty_list)
print(result)  # 输出False
 

代码输出如下:

六、ascii()

        在 Python 中,ascii() 函数用于返回一个字符串的 ASCII 表示。它的语法如下

ascii(object)

参数:

  • object:表示要转换为 ASCII 表示的对象,可以是字符串、整数等

        ascii() 函数返回一个字符串,其中包含了给定对象的 ASCII 表示。如果对象有 __repr__() 方法,则该方法将被调用来获取对象的字符串表示,然后将其转换为 ASCII 表示。如果对象没有 __repr__() 方法,则将使用默认的 __repr__() 方法来获取对象的字符串表示。

演示代码如下

# 将字符串转换为 ASCII 表示
my_string = "Hello, World!"
ascii_string = ascii(my_string)
print(ascii_string)  # 输出 'Hello, World!'

# 将整数 65 转换为 ASCII 表示
my_int = 65
ascii_int = ascii(my_int)
print(ascii_int)  # 输出 '65'

# 将特殊字符转换为 ASCII 表示
special_char = "@#$%^&*"
ascii_special_char = ascii(special_char)
print(ascii_special_char)  # 输出 '@#$%^&*'

# 将中文字符转换为 ASCII 表示
chinese_char = "你好"
ascii_chinese_char = ascii(chinese_char)
print(ascii_chinese_char)  # 输出 '\u4f60\u597d'

代码输出如下:

        值得注意的是,对于非 ASCII 字符,ascii() 函数会使用 Unicode 转义序列来表示它们。

七、bin()

        在 Python 中,bin() 函数用于将整数转换为二进制字符串表示。它的语法如下

bin(x)

参数:

  • x:要转换为二进制的整数

bin() 函数返回一个字符串,表示给定整数的二进制表示。返回的二进制字符串以前缀“0b”开头,表示它是一个二进制数。

演示代码如下

# 将整数转换为二进制字符串
my_int = 10
binary_string = bin(my_int)
print(binary_string)  # 输出 '0b1010'

# 将负数转换为二进制字符串
negative_int = -5
binary_negative = bin(negative_int)
print(binary_negative)  # 输出 '-0b101'

# 将小数转换为二进制字符串
my_float = 3.5
binary_float = bin(my_float)
print(binary_float)  # 抛出 TypeError: 'float' object cannot be interpreted as an integer

代码输出如下:

注意:bin() 函数只能用于整数,如果尝试将浮点数转换为二进制字符串,则会引发一个 TypeError 异常。

八、bool()

        在Python中,bool() 函数用于将给定的值转换为布尔值。它的语法如下

bool(x)

参数:

  • x:要转换为布尔值的值

bool() 函数返回一个布尔值,表示给定值的真假。

演示代码如下

# 将整数转换为布尔值
print(bool(0))     # 输出 False
print(bool(10))    # 输出 True

# 将浮点数转换为布尔值
print(bool(0.0))   # 输出 False
print(bool(3.14))  # 输出 True

# 将字符串转换为布尔值
print(bool(''))       # 输出 False
print(bool('Hello'))  # 输出 True

# 将列表转换为布尔值
print(bool([]))       # 输出 False
print(bool([1, 2, 3]))  # 输出 True

# 将字典转换为布尔值
print(bool({}))       # 输出 False
print(bool({'a': 1}))  # 输出 True

代码输出如下:

        根据 Python 的定义,0、空值(None)、空的序列(如空字符串、空列表、空元组等)、空的映射(如空字典)会被视为 False。其他值都被视为True。

九、breakpoint()

        在 Python 中,breakpoint() 是一个内置函数,用于在代码中设置断点。断点是在调试程序时,在程序执行到指定位置时暂停程序的一种方法。当程序执行到 breakpoint() 函数时,会暂停执行并进入调试模式。在调试模式下,可以查看变量的值、执行单行代码、跟踪函数调用等。要使用 breakpoint() 函数,需要在代码中将其放置在希望设置断点的位置。演示代码如下

def my_function():
    print("some code")
    
    breakpoint()  # 设置断点
    
    print("more code")

my_function()

代码输出如下:

 

        值得注意的是,breakpoint() 函数只在 Python 3.7 及以上版本中可用。在 Python 3.6 及以下版本中,可以使用 pdb 工具来实现类似的效果代码如下

import pdb

def my_function():
    print("some code")
    
    pdb.set_trace()  # 设置断点
    
    print("more code")

my_function()

代码输出如下:

十、bytearray()

        在 Python 中,bytearray() 是一个用于创建一个可变的字节数组对象。字节数组是一种类似于列表的数据类型,它可以存储一系列的字节值。与普通的字符串不同,字节数组中的每一个元素是一个范围为0-255的整数,表示一个字节的值。如图所示

        bytearray() 函数可以接受多种参数,用于初始化字节数组对象。具体用法如下:

1、不带参数的情况下,创建一个空的字节数组对象,代码如下

empty_bytearray = bytearray()

代码输出如下:

2、传入一个可迭代对象作为参数,将其转换为字节数组,代码如下

values = [65, 66, 67]  # ASCII码值
byte_array = bytearray(values)
print(byte_array)

代码输出如下:

3、传入一个指定大小的整数作为参数,创建一个指定大小的空字节数组对象,代码如下

size = 5
byte_array = bytearray(size)
print(byte_array)

代码输出如下:

4、传入一个指定大小和初始值的元组作为参数,创建一个指定大小,每个元素都是初始值的字节数组对象,代码如下

size = 3
value = 1
byte_array = bytearray((value,)) * size
print(byte_array)

代码输出如下:

        前面学习字符串的时候提到,字符串是一堆字符组成的字符元组,是不可变的,但是这也不是必然的,我们可以使用创建字节数组对象来通过索引和切片操作来访问和修改其中的元素。还可以使用字节数组对象的方法,如 append()、extend()、insert() 等对字节数组进行操作和修改。下面我们来看其中一种修改演示

        可以看出,对一个字节数值进行了修改后再重新进行解码,字符已经发生了改变。值得注意的是,字节数组对象是可变的,而字节串对象(bytes)是不可变的。因此,如果需要一个不可变的字节序列,应该使用 bytes 类型而不是 bytearray 类型。

十一、bytes()

        bytes() 用于创建一个不可变的字节串对象与上面所提到的 bytearray() 函数形成对比。

        bytes() 函数可以接受多种参数,用于初始化字节串对象。具体用法如下:

1、不带参数的情况下,创建一个空的字节串对象,代码如下

empty_bytes = bytes()
print(empty_bytes)

代码输出如下: 

2、传入一个可迭代对象作为参数,将其转换为字节串,代码如下

values = [65, 66, 67]  # ASCII码值
byte_string = bytes(values)
print(byte_string)

代码输出如下:  

3、传入一个字符串和编码方式作为参数,将字符串转换为字节串,代码如下

string = "Hello"
encoding = "utf-8"
byte_string = bytes(string, encoding)
print(byte_string)

代码输出如下:  

4、通过字面量表示法创建字节串对象,代码如下

byte_string = b'hello'
print(byte_string)

代码输出如下:  

        创建了字节串对象,它的元素是不可变的,无法直接修改。但是可以通过索引和切片操作来访问其中的元素。字节串对象与字符串对象之间可以相互转换,可以使用 encode() 方法将字符串编码为字节串,使用 decode() 方法将字节串解码为字符串,也可以使用 hex() 方法将字节串转换为十六进制。

十二、callable()

        callable() 用于检查对象是否可调用。可调用对象指的是可以像函数一样被调用的对象,包括函数、方法、类以及实现了 __call__() 方法的对象,这个主要用于后面学到的面向对象当中。

        callable() 函数接受一个参数,即需要检查的对象,返回一个布尔值表示对象是否是可调用的。具体用法如下:

1、检查函数是否可调用,代码如下

def my_func():
    print("Hello")

result = callable(my_func)
print(result)  # 输出True

代码输出如下:

2、检查类下的函数是否可调用,代码如下

class MyClass:
    def my_method(self):
        print("Hello")

instance = MyClass()
result = callable(instance.my_method)
print(result)  # 输出True

代码输出如下: 

3、检查类是否可调用(即可以作为构造函数调用),代码如下

class MyClass:
    pass

result = callable(MyClass)
print(result)  # 输出True

代码输出如下: 

4、检查对象是否可调用(是否实现了 __call__() 方法),代码如下

class MyCallable:
    def __call__(self):
        print("Hello")

instance = MyCallable()
result = callable(instance)
print(result)  # 输出True

代码输出如下:

        值得注意的是,callable() 函数只会检查对象本身是否可调用,不会执行对象。

十三、chr()

        chr() 用于将 Unicode 编码转换为对应的字符。

        chr() 函数接收一个整数作为参数,并返回一个代表该整数对应字符的字符串。整数必须是0到1114111(十六进制为0x10FFFF)之间的有效 Unicode 编码。具体用法如下:

1、将整数转换为对应的字符,代码如下

unicode_code = 65
character = chr(unicode_code)
print(character)  # 'A'

代码输出如下:

2、结合循环使用chr()函数,将一系列整数转换为对应的字符,代码如下

unicode_codes = [65, 66, 67]
characters = [chr(code) for code in unicode_codes]
print(characters)  # ['A', 'B', 'C']

代码输出如下: 

        值得注意的是,chr() 函数只能用于将整数转换为单个字符,如果整数超出了有效的 Unicode 编码范围,会抛出 ValueError 异常,如下图所示

十四、classmethod()

        classmethod() 用于定义类方法。类方法是绑定到类而不是实例的方法。可以通过类本身调用,也可以通过类的实例调用。类方法的第一个参数通常被命名为 cls,用于引用类本身。使用 classmethod() 装饰器可以将一个普通的方法转换为类方法。在定义方法时,将 @classmethod 放在方法的上方即可。代码如下

class MyClass:
    x = 10
    
    @classmethod
    def class_method(cls):
        print("This is a class method")
        print(cls.x)  # 使用cls引用类属性

# 调用类方法
MyClass.class_method()

代码输出如下:

        在上面的代码中,class_method() 被定义为类方法。通过使用 @classmethod 装饰器(后面的篇章将会讲到),将其转换为类方法,然后可以通过类本身调用该方法。值得注意的是,类方法可以访问类本身的属性和方法,但不能直接访问实例属性和方法,如果需要在类方法中访问实例属性和方法,可以通过传递一个实例作为参数来实现。

十五、compile()

        compile() 用于将一个字符串或一个代码对象编译为可执行的代码或者一个代码对象。在源码中 compile() 函数的形参有 source、filename、mode、flags(默认为0)、dont_inherit(默认为False)、optimize(默认为-1)参数解释如下

  • source:要编译的源代码,可以是一个字符串或者一个代码对象。如果是字符串,使用 mode 参数指定的模式进行编译
  • filename:编译代码的文件名。如果代码不是从文件中读取的,可以使用一个虚拟的文件名
  • mode:指定编译的模式。可以是以下之一:
    • 'exec':用于编译包含顶层代码(如模块、脚本)的字符串或代码对象
    • 'eval':用于编译包含一个表达式的字符串或代码对象
    • 'single':用于编译包含一系列交互式命令的字符串或代码对象
  • flags:可选参数,用于指定编译时的标志和调优选项
  • dont_inherit:可选参数,控制是否继承来自外部源代码的编译器标志和设置
  • optimize:可选参数,用于控制编译优化级别。默认值为 -1,表示使用默认优化级别

注意:compile() 函数返回一个代码对象。如果编译出错,会抛出一个 SyntaxError 异常。

演示代码如下

source_code = """
def say_hello(name):
    print(f"Hello, {name}!")

say_hello("Python")
"""

compiled_code = compile(source_code, filename="<string>", mode="exec")
exec(compiled_code)    # exec() 函数后面会讲到

代码输出如下:


十六、complex()

        complex() 用于创建一个复数对象。它的语法如下

complex(real, imag)

参数:

  • real:表示复数的实部,可以是一个数值或一个字符串
  • imag:表示复数的虚部,可以是一个数值或一个字符串

        其中,real 和 imag 都是可选参数,默认值为0。如果省略其中一个参数,则使用默认值0。complex() 函数返回一个表示复数的对象。

演示代码如下

z1 = complex(2, 3)
print(z1)  # 输出: (2+3j)

z2 = complex(4)
print(z2)  # 输出: (4+0j)

z3 = complex("5-2j")
print(z3)  # 输出: (5-2j)

z4 = complex("-1.5")
print(z4)  # 输出: (-1.5+0j)

代码输出如下:

        值得注意的是,复数对象在 Python 中可以进行各种数学运算,如加法、减法、乘法、除法等。可以使用复数对象的属性和方法来获取和操作实部和虚部的值。一般人用不到。

十七、delattr()

        delattr() 用于删除对象的属性,会从对象的命名空间中删除指定的属性。它的语法如下

delattr(object, name)

参数:

  • object:表示要删除属性的对象
  • name:表示要删除的属性名

演示代码如下

class MyClass:
    def __init__(self):
        self.x = 1
        self.y = 2

obj = MyClass()
print(obj.x)  # 输出: 1

delattr(obj, 'x')
print(obj.x)  # 报错 AttributeError: 'MyClass' object has no attribute 'x'

代码输出如下:

        上面的输出可以看出,在使用 delattr(obj, 'x') 删除了 obj 的属性x。再次打印 obj.x 时,会报 AttributeError 错误,因为这个属性已经被删除了。需要注意的是,如果要删除的属性不存在,delattr() 函数会报 AttributeError 错误。另外,delattr() 函数只能删除对象的属性,不能删除对象的方法。

十八、dict()

        dict() 用于创建一个字典对象。具体用法如下

1、创建一个空字典,代码如下

d = dict()
print(d)

代码输出如下:

2、通过可迭代对象创建字典

        其中这个可迭代对象可以是一个包含键值对的序列(如列表或元组),或者是一个包含可迭代对象(比如一个列表或元组)的序列。

通过传递一个包含键值对的列表,创建了一个字典,代码如下

d = dict([('a', 1), ('b', 2), ('c', 3)])
print(d)   # 输出: {'a': 1, 'b': 2, 'c': 3}

代码输出如下:

除了传递包含键值对的列表外,还传递了一些关键字参数,代码如下

d = dict([('a', 1), ('b', 2), ('c', 3)], x=4, y=5)
print(d)   # 输出: {'a': 1, 'b': 2, 'c': 3, 'x': 4, 'y': 5}

 代码输出如下:

3、通过关键字参数创建字典,代码如下

d = dict(x=1, y=2, z=3)
print(d)   # 输出: {'x': 1, 'y': 2, 'z': 3}

代码输出如下:

        另外,dict() 函数还可以用来进行字典的浅拷贝,例如 d2 = dict(d1)。

十九、dir()

        dir() 用于返回一个对象的所有属性和方法的列表。dir() 函数可以用于任何类型的对象,例如模块、类、实例对象等。它返回的列表包含了对象的所有可访问的属性、方法和特殊方法(以双下划线开头和结尾的方法名)。具体用法如下

1、对于模块和内置对象,可以直接调用 dir() 函数来查看其属性和方法的列表,代码如下

import math
print(dir(math))  # 显示 math 模块的属性和方法列表

print(dir(list))  # 显示列表对象的属性和方法列表

代码输出如下:

2、对于自定义的类,可以调用 dir() 函数来查看类的属性和方法列表,代码如下

class MyClass:
    def __init__(self):
        self.x = 10

    def my_method(self):
        print("This is a method.")

obj = MyClass()
print(dir(obj))  # 显示 obj 对象的属性和方法列表

代码输出如下:

        值得注意的是,dir() 函数只返回对象的可访问属性和方法的名称列表,而不会提供它们的具体值或实现细节。如果想要查看属性和方法的具体信息,可以通过其他方式,例如使用 help() 函数。

二十、divmod()

        divmod() 用于同时执行除法和取模运算,返回一个包含商和余数的元组。divmod(a, b) 接受两个参数 a 和 b,并返回一个包含 a 除以 b 的商和余数的元组(quotient, remainder)。

演示代码如下

result = divmod(10, 3)
print(result)  # 输出 (3, 1),10 除以 3 的商是 3,余数是 1

result = divmod(25, 7)
print(result)  # 输出 (3, 4),25 除以 7 的商是 3,余数是 4

result = divmod(100, 10)
print(result)  # 输出 (10, 0),100 除以 10 的商是 10,余数是 0

代码输出如下:

        值得注意的是,divmod() 函数对整数和浮点数都适用。如果参数是浮点数,则返回结果也将是浮点数。另外,如果除数为零,则会引发 ZeroDivisionError 异常,如下图所示

二十一、enumerate()

enumerate() 用于在迭代时同时获取元素的索引和值。它的语法如下

enumerate(iterable, start)

参数:

  •  iterable:可迭代对象
  • start:可选的起始索引,默认为0

该函数将返回一个迭代器,迭代器返回的每个元素都是一个包含索引和对应值的元组 (index, value)。

演示代码如下

fruits = ['apple', 'banana', 'cherry']

for index, fruit in enumerate(fruits):
    print(index, fruit)

# 输出:
# 0 apple
# 1 banana
# 2 cherry

# 可以指定起始索引
for index, fruit in enumerate(fruits, start=1):
    print(index, fruit)

# 输出:
# 1 apple
# 2 banana
# 3 cherry

代码输出如下:

        enumerate() 函数常用于遍历列表、元组、字符串等可迭代对象,同时获取元素的索引和值,方便在循环过程中进行操作和处理。

二十二、eval()

        eval() 可以把字符串形式的 list、dict、set、tuple,再转换成其原有的数据类型。它的语法如下

eval(expression, globals, locals)

参数:

  •  expression:接受一个字符串形式的表达式作为参数
  • globals:可选地接受一个字典形式的全局变量,默认为 None
  • locals:可选地接受一个字典形式的局部变量,默认为 None

         该内置函数是 Python 编译器自己使用的,而我们编译好的代码通常都是存储在硬盘当中的,如果需要保存像列表这种可变的数据类型时 Python 会如何操作呢?代码如下

a = [1,2,3,4,5]
f = open("str_list","w")
f.write(a)    # Python 中的数据类型无法直接存入到硬盘当中,需要先转换为字符串再存入
f.close()

        列表直接写入是无法写入的,并且会报 TypeError 的错误,那我们应该如何保存我们已经写好的列表呢?我们可以先把列表转换为字符串后再写入就可以了,代码如下

a = [1,2,3,4,5]
f = open("str_list","w")
f.write(str(a))
f.close()

f = open("str_list","r")
s = f.read()
print(s,":",type(s))
print(s[0])
print(s[1])
print(s[2])
f.close()

代码输出如下:

        从输出来看,重新读取后的代码并不像预想那样 s[0] 为1,s[1] 为2,s[2] 为3,而是变成了  s[0] 为[,s[1] 为1,s[2] 为“,”,这是因为重新读取的列表代码是以字符串形式读取的,我们都知道字符串其实就是有字符组成的字符元组,那自然而然下标为0的就是[,下标为1的就是1,这个时候我们就需要使用 eval() 函数了,代码如下

a = [1,2,3,4,5]
f = open("str_list","w")
f.write(str(a))
f.close()

f = open("str_list","r")
s = eval(f.read())
print(s,":",type(s))
print(s[0])
print(s[1])
print(s[2])
f.close()

代码输出如下:

        eval() 函数在某些情况下非常有用,例如当需要在运行时根据字符串构建动态表达式时。但需要注意的是,eval() 函数具有执行任意代码的能力,因此在使用时应确保输入的字符串是可信的,以避免潜在的安全风险。

二十三、exec()

exec() 是把字符串格式的代码,进行解义并执行,例如 exec("print('helworld')”) ,会解义里面的字符串并执行。它的语法如下

exec(object, globals, locals)

 参数:

  • object:接受一个字符串形式的代码块作为参数,可以是任何合法的 Python 代码,如函数定义、类定义、赋值语句等
  • globals:可选地接受一个字典形式的全局变量,默认为 None
  • locals:可选地接受一个字典形式的局部变量,默认为 None

演示代码如下

# 执行简单的赋值语句
x = 5
exec("y = x + 1")
print(y)
# 输出:6

# 执行函数定义
def hello(name):
    print("Hello, " + name)
    
code = '''
hello("John")
'''
exec(code)
# 输出:Hello, John

# 使用 globals 和 locals 参数
globals_dict = {}
locals_dict = {}
code = '''
x = 10
'''
exec(code, globals_dict, locals_dict)
print(globals_dict)
# 输出:{'x': 10}
print(locals_dict)
# 输出:{}

代码输出如下:

 与 eval() 相同 exec() 函数在某些情况下非常有用,例如在运行时动态执行代码块或者执行一段动态生成的代码。并且 exec() 函数也具有执行任意代码的能力,因此在使用时应确保输入的代码是可信的,以避免潜在的安全风险。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Springboot+Vue的《计算机基础》网上考试系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…

YOLOv11:重新定义实时目标检测的未来

YOLO 版本发布历史回顾 YOLO (You Only Look Once), a popular object detection and image segmentation model, was developed by Joseph Redmon and Ali Farhadi at the University of Washington. Launched in 2015, YOLO quickly gained popularity for its high speed a…

vulnhub-mrRobot靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、渗透网页 3、Getshell 4、提权 四、结论 一、测试环境 1、系统环境 渗透机&#xff1a;kali2021.1(192.168.202.134) 靶 机&#xff1a;linux 3.13.0-55-generic #94-…

复习HTML(基础)

目录 HTML含义 HTML作用 HTML的常用元素 元素的特点 元素的分类 1 是否嵌套关系 2 是否独占一行 块元素&#xff1a;独占一行 行内元素&#xff1a;共享一行 行内元素与块级元素的转换 3是否有结束标签 常用标签 1 标题标签&#xff1a;有六级 我们用h1 ~h6 表…

国产化系统/鸿蒙开发足浴店收银源码-收缩左侧———未来之窗行业应用跨平台架构

一、左侧展开后 二、代码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head><title></title><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><style t…

PHP安装后Apache无法运行的问题

问题 按照网上教程php安装点击跳转教程&#xff0c;然后修改Apache的httpd.conf文件&#xff0c;本来可以运行的Apache&#xff0c;无法运行了 然后在"C:\httpd-2.4.62-240904-win64-VS17\Apache24\logs\error.log"&#xff08;就是我下载Apache的目录下的logs中&am…

查看 git log的过程中看到 :说明日志输出可能超出屏幕大小,系统进入了分页模式

在命令行提示符中&#xff0c;通常 : 表示系统等待进一步的输入。如果你在查看 git log 的过程中看到 :&#xff0c;说明日志输出可能超出屏幕大小&#xff0c;系统进入了分页模式&#xff0c;默认使用 less 命令查看内容。 此时你可以&#xff1a; 按 q 退出日志查看。按 En…

通信工程学习:什么是NFS网络文件系统

NFS&#xff1a;网络文件系统 NFS&#xff08;Network File System&#xff09;&#xff0c;即网络文件系统&#xff0c;是一种用于在计算机网络上共享文件的协议。它允许一个计算机系统通过网络将其文件和存储设备共享给其他计算机系统&#xff0c;使得这些系统可以像访问本地…

deepin 无线网络搜不到信号

搜索不到wifi信号和无法连接wifi&#xff0d;论坛&#xff0d;深度科技 (deepin.org)https://bbs.deepin.org/zh/post/218198

【含文档】基于Springboot+Vue的果蔬种植销售一体化服务平台(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统定…

前端工程化17-邂逅原生的ajax、跨域、JSONP

5、邂逅原生的ajax 5.1、什么是ajax AJAX 全称为Asynchronous Javascript And XML&#xff0c;就是异步的 JS 和 XML。通过AJAX可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;页面无刷新获取数据。AJAX 不是新的编程语言&#xff0c;而是一种将现有的…

将脚本编译为pyd文件

Python虽然作为一种解释性语言&#xff0c;通常是使用解释器处理脚本的方式完成工作&#xff0c;但是也具有和很多其他诸如C、C#语言等类似的方式&#xff0c;可以将.py文件编译为*.pyd文件&#xff0c;即Python动态链接库文件。 关于动态链接库的优缺点这里就不展开细说了&…

Android Studio Dolphin 中Gradle下载慢的解决方法

我用的版本Android Studio Dolphin | 2021.3.1 Patch 1 1.Gradle自身的版本下载慢 解决办法&#xff1a;修改gradle\wrapper\gradle-wrapper.properties中的distributionUrl 将https\://services.gradle.org/distributions为https\://mirrors.cloud.tencent.com/gradle dis…

【测试类文档整理】软件项目测试方案(word)

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.…

查缺补漏----程序查询方式和中断方式计算题

1.程序查询方式 总结下来就是&#xff1a; 必须在外设传输完端口大小的数据时访问端口&#xff0c;以防止数据未被及时读出而丢失。 占CPU总时间&#xff1a;就是某段时间内设备用了多少时钟周期/PCU有多少个时钟周期 CPU的时钟周期数&#xff1a;就看主频&#xff0c;主频表示…

记录Mybatis分页查询排序问题: Encountered unexpected token: “and“ “AND“

通过Page.addOrder设置了字段排序 执行的时候在 com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor#autoCountSql 方法中执行 CCJSqlParserUtil.parse Select select (Select) CCJSqlParserUtil.parse(sql);报错&#xff1a; failed to concat o…

YOLOv1–v11: 版本演进及其关键技术解析

最新消息&#xff1a;Yolo11发布最新版本2024.10 YOLO (You Only Look Once) 是一种高效的目标检测算法&#xff0c;自其初代发布以来&#xff0c;经过多次迭代&#xff0c;逐步提升了检测速度和精度。本文将详细介绍 YOLO 从 v1 到 v11 的各个版本&#xff0c;涵盖每个版本的发…

高性价比PCB分板机高速主轴SycoTec 4025 HY

德国 SycoTec 4025 HY 迷你型高速主轴以其悠久的历史、卓越的性能、良好的散热和长寿命&#xff0c;成为PCB分板的高性价比选择。 一、4025 HY亮点 1.悠久历史与 拥有 50 多年的应用历史&#xff0c;被称为 “主轴之母”&#xff0c;充分证明了其在行业中的可靠性和稳定性。 …

人工智能 | 手工测试用例转Web自动化测试生成

简介 在传统编写 Web 自动化测试用例的过程中&#xff0c;基本都是需要测试工程师&#xff0c;根据功能测试用例转换为自动化测试的用例。市面上自动生成 Web 或 App 自动化测试用例的产品无非也都是通过录制的方式&#xff0c;获取操作人的行为操作&#xff0c;从而记录测试用…

迎国庆,开源完全免费工作流引擎AntFlow 0.9最强版本发布,支持tidb,提升易用性and more...

AntFlow是一款前端仿钉钉的企业级工作流引擎。后端既可嵌入到现有业务系统&#xff0c;也可以做为独立的流程引擎中台部署&#xff08;SAAS模式&#xff09;。嵌入业务系统模式已经在笔者所在企业使用多年&#xff0c;功能丰富&#xff0c;能适多种国产办公场景&#xff1b;简单…