Python-VBA函数之旅-range函数

news2024/11/25 0:35:03

目录

一、range函数的常见应用场景

二、range函数使用注意事项

三、如何用好range函数?

1、range函数:

1-1、Python:

1-2、VBA:

2、推荐阅读:

个人主页:https://blog.csdn.net/ygb_1024?spm=1010.2135.3001.5421 

一、range函数的常见应用场景

        range函数在Python编程中有广泛的应用场景,因为它为迭代提供了方便的方式,特别是在需要生成一系列连续整数时,常见的应用场景有:

1、循环遍历固定次数的操作:当你需要执行某个操作固定次数时,可以使用range()函数来生成一个数字序列,并在循环中遍历这个序列。

2、索引访问列表/元组/字符串:虽然range()函数本身不直接支持索引,但结合len()函数和列表解析等,可以轻松地对列表/元组/字符串等进行索引操作。

3、生成步进序列:当需要生成一个步长不为1的序列时,可以使用range()函数的第三个参数,这在创建图形、处理数组或矩阵时特别有用。

4、创建数字列表:通过结合list()函数和range()函数,可以轻松创建数字列表。

5、随机选择或打乱顺序:虽然range()函数本身不直接用于随机选择或打乱顺序,但结合其他库(如random)可以很容易地实现这些功能。

6、数学计算:在需要进行数学计算,如求和、求积或计算某个数学公式在不同整数点上的值时,range()函数可以生成所需的整数序列。

7、生成器表达式和列表解析:range()函数常与生成器表达式(generator expressions)和列表解析(list comprehensions)一起使用,以简洁的方式处理数据。

8、图形和动画:在创建图形或动画时,range()函数可以生成坐标点或时间步长。

9、算法和数据结构:在实现各种算法和数据结构时,range()函数可以用于初始化数组、遍历数据结构或模拟算法的执行步骤。

10、科学计算和数据分析:在科学计算和数据分析中,经常需要迭代一组连续的整数或浮点数,虽然numpy等库提供了更高效的数组和矩阵操作,但range()函数在处理简单迭代时仍然很有用。

        总之,range()函数是Python编程中非常实用的一个工具,它简化了对连续数字序列的处理和操作。 

二、range函数使用注意事项

        在使用Python中的range()函数时,需牢记以下事项:

1、不包括结束值:range()函数生成的序列是左闭右开的,即它会包含起始值,但不包含结束值,这意味着range(1, 5)将生成序列[1, 2, 3, 4],而不是[1, 2, 3, 4, 5]。

2、步长可以是负数:虽然range()函数通常用于生成递增序列,但你也可以使用负数作为步长来生成递减序列。例如,range(5, 0, -1)将生成序列[5, 4, 3, 2, 1]。

3、不支持直接索引:range()函数返回的是一个可迭代对象,而不是列表或数组,这意味着你不能像使用列表那样直接通过索引访问range()对象中的元素;如果你需要索引访问,可以将range()对象转换为列表或其他序列类型。

4、内存效率:由于range()对象是可迭代的,它不会一次性生成整个序列并存储在内存中,这使得range()在处理大数据集时非常高效,因为它按需生成值,而不是预先生成所有值,然而,如果你需要将range()对象转换为列表或其他序列类型,则需要注意内存使用情况。

5、Python 2和Python 3的差异:在Python 2中,range()函数返回的是一个列表,而在Python 3中,它返回的是一个范围对象(range object),这种变化使得Python 3在处理大数据集时更加内存高效,如果你在使用Python 2并且希望获得与Python 3相似的内存效率,可以考虑使用xrange()函数(注意:在Python 3中,xrange()已被移除,并被range()取代)。

6、避免不必要的转换:如果你只是需要迭代range()对象中的值,而不需要将它们存储在一个列表中,那么就没有必要将range()对象转换为列表,直接迭代range()对象更加高效。

7、步长不能为0:range()函数的步长参数不能为0,因为这会导致无限循环,如果你尝试使用0作为步长,Python将抛出一个ValueError异常。

8、避免在循环中修改索引:虽然Python允许你在循环中修改循环变量(如i),但在使用range()函数的循环中,这通常是没有意义的,因为range()生成的序列是不可变的,修改循环变量不会影响下一次迭代中的值。

9、注意循环的边界条件:在使用range()函数时,确保你理解了循环的边界条件,如果你不小心设置了错误的起始值、终止值或步长,可能会导致循环不执行、执行次数太少或太多。

三、如何用好range函数?

        为了充分利用Python中的range()函数,请你遵循以下建议:

1、理解参数:确保你清楚range()函数的三个参数:start(起始值,默认为0),stop(终止值,不包括在内)和step(步长,默认为1)。

2、简洁的循环:使用range()函数可以简洁地编写循环,而无需手动创建数字列表。

3、步长迭代:利用步长参数step来迭代跳过某些值或反向迭代。

4、转换为列表:如果你需要操作整个序列,或者需要多次迭代它,可以将range()对象转换为列表。

5、避免在循环中修改索引:尽管技术上你可以在循环中修改循环变量(如i),但这通常是不必要的,因为range()函数生成的序列是不可变的。

6、使用切片:虽然range()对象本身不支持切片,但你可以将其转换为列表后再进行切片操作。

7、数学运算:结合sum()、min()、max()等内置函数,对range()生成的序列进行数学运算。

8、避免不必要的转换:如果你不需要整个序列,那么就没有必要将其转换为列表,直接使用range()对象进行迭代更加内存友好。

9、与其他序列类型结合使用:你可以使用range()函数生成的索引来访问列表、元组或其他序列类型的元素。

10、理解range()与xrange()的区别(Python 2):如果你正在使用Python 2,请注意range()函数会生成一个列表,而xrange()会生成一个类似迭代器的对象,更加节省内存;在Python 3中,range()的功能与Python 2中的xrange()相同。

11、利用列表推导式(List Comprehensions):虽然这不是直接使用range(),但你可以结合使用列表推导式和range()来创建更复杂的列表。

12、文档和示例:经常查阅Python官方文档,以及查找和阅读使用range()函数的示例代码,这有助于你更好地理解其用法和最佳实践。

1、range函数:
1-1、Python:
# 1.函数:range
# 2.功能:用于生成一个新的range类型,多用于for循环语句中,用于生成指定范围的整数
# 3.语法:
# 3-1、range(stop)
# 3-2、range(start, stop)
# 3-3、range(start, stop[, step])
# 4.参数:
# 4-1、start:表示起始整数(包括起始整数),默认起始值为0,起始整数可以省略,若省略,则默认从0开始
# 4-2、stop:表示结束整数(但不包括结束整数),结束整数不能省略
# 4-3、step:表示步长,即两个数之间的间隔,如果省略step参数,则默认步长为1
# 5.返回值:返回的是一个不可变的序列类型,但它本身并不是列表,而是一个range对象
# 6.说明:
# 6-1、参数stop可以大于0,也可以小于或等于0,但是当stop参数小于或等于0时,生成的range对象是不包含任何元素的
# 6-2、range()函数接收的参数必须是整数,不能是浮点数等其他数据类型,否则会提示类型错误
# 6-3、在使用range()函数时,如果只有1个参数,那么表示指定得是stop结束整数;如果是两个参数,则表示指定得是start起始整数和stop结束整数;只有3个参数都存在,最后一个参数才表示step步长
# 7.示例:
# 用dir()函数获取该函数内置的属性和方法
print(dir(range))
# ['__bool__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
# '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__',
# '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__',
# '__sizeof__', '__str__', '__subclasshook__', 'count', 'index', 'start', 'step', 'stop']

# 用help()函数获取该函数的文档信息
help(range)

# 应用一:循环遍历固定次数的操作
# 示例1:打印从0到4的数字
for i in range(5):
    print(i)
# 0
# 1
# 2
# 3
# 4

# 示例2:遍历一个列表并打印其索引和值
my_list = ['apple', 'banana', 'cherry']
for index in range(len(my_list)):
    print(f"Index: {index}, Value: {my_list[index]}")
# Index: 0, Value: apple
# Index: 1, Value: banana
# Index: 2, Value: cherry

# 示例3:使用range()生成一个包含奇数的列表
odd_numbers = [i for i in range(1, 10, 2)]
print(odd_numbers)
# [1, 3, 5, 7, 9]

# 示例4:使用range()进行固定次数的操作(例如,重复一个操作10次)
for _ in range(10):  # 使用 _ 作为循环变量,因为我们不关心它的具体值
    # 这里放你想要重复的操作
    print("This operation is repeated 10 times.")
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.
# This operation is repeated 10 times.

# 示例5:从10倒数到1(包括1和10)
for i in range(10, 0, -1):  # 从10开始,到0(不包括),步长为-1
    print(i)
# 10
# 9
# 8
# 7
# 6
# 5
# 4
# 3
# 2
# 1

# 应用二:索引访问列表/元组/字符串
# 示例1:访问列表的元素
my_list = ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 使用range()和len()来遍历列表的索引
for index in range(len(my_list)):
    print(f"Index {index}: {my_list[index]}")
# Index 0: apple
# Index 1: banana
# Index 2: cherry
# Index 3: date
# Index 4: elderberry

# 示例2:访问元组的元素
my_tuple = ('apple', 'banana', 'cherry')
# 直接使用range()和已知的长度来遍历元组的索引
for index in range(len(my_tuple)):
    print(f"Index {index}: {my_tuple[index]}")
# Index 0: apple
# Index 1: banana
# Index 2: cherry

# 示例3:访问字符串的字符(索引)
my_string = "myelsa"
# 使用range()和len()来遍历字符串的索引
for index in range(len(my_string)):
    print(f"Index {index}: {my_string[index]}")
# Index 0: m
# Index 1: y
# Index 2: e
# Index 3: l
# Index 4: s
# Index 5: a

# 示例4:使用enumerate()函数(range()函数的替代方案,更简洁高效)
my_list = ['apple', 'banana', 'cherry']
# 使用enumerate()来遍历列表的索引和值
for index, value in enumerate(my_list):
    print(f"Index {index}: {value}")
my_tuple = ('apple', 'banana', 'cherry')
# 类似地,使用enumerate()来遍历元组
for index, value in enumerate(my_tuple):
    print(f"Index {index}: {value}")
my_string = "hello"
# 对于字符串,enumerate()仍然适用
for index, char in enumerate(my_string):
    print(f"Index {index}: {char}")
# Index 0: apple
# Index 1: banana
# Index 2: cherry
# Index 0: apple
# Index 1: banana
# Index 2: cherry
# Index 0: h
# Index 1: e
# Index 2: l
# Index 3: l
# Index 4: o

# 应用三:生成步进序列
# 示例1:生成从0开始,步长为2的序列,直到但不包括10
# 使用range(start, stop, step)的形式
for i in range(0, 10, 2):
    print(i)
# 0
# 2
# 4
# 6
# 8

# 示例2:生成从5开始,步长为3的序列,直到但不包括20
for i in range(5, 20, 3):
    print(i)
# 5
# 8
# 11
# 14
# 17

# 示例3:生成从5开始,步长为-1的序列,直到但不包括0
# 这是一个递减的步进序列
for i in range(5, 0, -1):
    print(i)
# 5
# 4
# 3
# 2
# 1

# 示例4:使用列表推导式生成步进序列的列表
# 生成一个包含从0到18之间所有偶数的列表
even_numbers = [i for i in range(0, 19, 2)]
print(even_numbers)
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

# 示例5:生成一个包含负数的步进序列,并计算其平方
# 生成一个包含从-5到5之间(包括-5但不包括5)所有奇数的序列,并计算它们的平方
for i in range(-5, 5, 2):
    square = i ** 2
    print(f"{i} 的平方是 {square}")
# -5 的平方是 25
# -3 的平方是 9
# -1 的平方是 1
# 1 的平方是 1
# 3 的平方是 9

# 应用四:创建数字列表
# 示例1:创建一个从0到4的数字列表
# 使用列表推导式
numbers = [i for i in range(5)]
print(numbers)
# 或者使用list()函数
numbers = list(range(5))
print(numbers)
# [0, 1, 2, 3, 4]
# [0, 1, 2, 3, 4]

# 示例2:创建一个从1到10的数字列表(包含10)
numbers = [i for i in range(1, 11)]
print(numbers)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 示例3:创建一个从10到0的递减数字列表
numbers = [i for i in range(10, -1, -1)]
print(numbers)
# [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

# 示例4:创建一个步长为2的数字列表
numbers = [i for i in range(0, 10, 2)]
print(numbers)
# [0, 2, 4, 6, 8]

# 示例5:创建一个包含特定范围内偶数的列表
# 例如,包含2到18之间的所有偶数
numbers = [i for i in range(2, 19, 2)]
print(numbers)
# [2, 4, 6, 8, 10, 12, 14, 16, 18]

# 应用五:随机选择或打乱顺序
# 示例1:从列表中随机选择一个元素
import random
# 假设我们有一个列表
my_list = [1, 2, 3, 4, 5]
# 使用random.choice从列表中随机选择一个元素
random_element = random.choice(my_list)
print(random_element)  # 输出可能是列表中的任何一个元素

# 示例2:打乱列表的顺序(随机排序)
import random
# 假设我们有一个列表
my_list = [1, 2, 3, 4, 5]
# 使用random.shuffle打乱列表的顺序
random.shuffle(my_list)
print(my_list)  # 输出是一个被打乱顺序的列表

# 示例3:从range()生成的数字中随机选择一个
import random
# 使用range()生成一个数字范围
numbers = list(range(1, 11))  # 创建一个包含 1 到 10 的列表
# 从这个列表中随机选择一个元素
random_number = random.choice(numbers)
print(random_number)  # 输出可能是1到10之间的任何一个数字

# 示例4:打乱由range()生成的数字列表的顺序
import random
# 使用range()生成一个数字范围,并转换为列表
numbers = list(range(1, 11))  # 创建一个包含1到10的列表
# 打乱这个列表的顺序
random.shuffle(numbers)
print(numbers)  # 输出是一个被打乱顺序的列表,包含1到10的数字

# 应用六:数学计算
# 示例1:计算数字列表的和
total = 0
for i in range(1, 6):  # 迭代从1到5的数字
    total += i  # 将每个数字加到total上
print("1到5的和是:", total)
# 1到5的和是: 15

# 示例2:计算数字列表的平方和
total = 0
for i in range(1, 6):  # 迭代从1到5的数字
    total += i ** 2  # 将每个数字的平方加到total上
print("1到5的平方和是:", total)
# 1到5的平方和是: 55

# 示例3:计算阶乘
factorial = 1
n = 5
for i in range(1, n + 1):  # 迭代从1到n的数字
    factorial *= i  # 将每个数字乘到factorial上
print(f"{n} 的阶乘是:", factorial)
# 5 的阶乘是: 120

# 示例4:计算斐波那契数列的前几项
def fibonacci(n):
    a, b = 0, 1
    fib_sequence = [a]
    for _ in range(n):
        a, b = b, a + b
        fib_sequence.append(b)
    return fib_sequence
print(fibonacci(10))  # 打印斐波那契数列的前10项
# [0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

# 示例5:使用range()进行数学模拟(例如计算抛硬币正面朝上的次数)
import random
num_trials = 100  # 抛硬币的次数
num_heads = 0  # 正面朝上的次数
for _ in range(num_trials):
    if random.choice(['heads', 'tails']) == 'heads':
        num_heads += 1
print(f"抛了 {num_trials} 次硬币,正面朝上的次数是: {num_heads}")
# 抛了 100 次硬币,正面朝上的次数是: 53

# 应用七:生成器表达式和列表解析
# 示例1:使用生成器表达式
# 生成器表达式,用于生成0到9的平方
squares = (i ** 2 for i in range(10))
# 遍历生成器并打印结果
for square in squares:
    print(square)
# 0
# 1
# 4
# 9
# 16
# 25
# 36
# 49
# 64
# 81

# 示例2:使用列表解析
# 列表解析,用于生成0到9的平方列表
squares = [i ** 2 for i in range(10)]
# 打印列表
print(squares)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 示例3:带有条件的列表解析
# 列表解析,用于生成0到19之间所有偶数的平方列表
even_squares = [i ** 2 for i in range(20) if i % 2 == 0]
# 打印列表
print(even_squares)
# [0, 4, 16, 36, 64, 100, 144, 196, 256, 324]

# 示例4:使用range()的步长与列表解析
# 列表解析,用于生成从10开始,步长为3,到31结束的数字列表
numbers = [i for i in range(10, 32, 3)]
# 打印列表
print(numbers)
# [10, 13, 16, 19, 22, 25, 28, 31]

# 示例5:结合range()和str.format()使用列表解析
# 列表解析,用于生成一个字符串列表,其中包含从1到5的数字的字符串表示形式,格式为 'Number: X'
strings = ['Number: {}'.format(i) for i in range(1, 6)]
# 打印列表
print(strings)
# ['Number: 1', 'Number: 2', 'Number: 3', 'Number: 4', 'Number: 5']

# 应用八:图形和动画
# 示例1:使用matplotlib绘制一个简单的正弦波
import matplotlib.pyplot as plt
import numpy as np
# 使用 numpy 的 linspace 来生成更平滑的数据点(类似于range的连续版本)
x = np.linspace(0, 2 * np.pi, 100)  # 类似于range(0, int(2*np.pi*100), 1)但更平滑
y = np.sin(x)
# 绘制图形
plt.plot(x, y)
plt.title('Simple Sine Wave')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True)
plt.show()

# 示例2:使用matplotlib.animation创建一个简单的动画
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
# 初始化数据
xdata, ydata = [], []
ln, = plt.plot([], [], 'ro')
def init():
    ax.set_xlim(0, 2 * np.pi)
    ax.set_ylim(-1, 1)
    return ln,
def update(frame):
    xdata.append(frame / 100)  # 使用类似于range的效果,但这里是连续的
    ydata.append(np.sin(frame / 100))
    ln.set_data(xdata, ydata)
    return ln,
# 创建一个动画对象,每帧更新一次数据
ani = animation.FuncAnimation(fig, update, frames=np.linspace(0, 2 * np.pi, 128),
                              init_func=init, blit=True)
# 显示动画
plt.show()

# 应用九:算法和数据结构
# 示例1:使用二分查找算法
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1
    return -1
# 假设我们有一个已排序的数组
arr = [2, 3, 4, 10, 40]
target = 10
# 使用 range 来模拟数组索引的迭代
for i in range(len(arr)):
    # 这里只是为了演示,实际上我们不会这样遍历数组进行二分查找
    print(f"Current index: {i}, Value: {arr[i]}")
# 使用二分查找算法查找目标值
result = binary_search(arr, target)
print(f"Target {target} found at index {result} if result != -1 else 'not found'.")
# Current index: 0, Value: 2
# Current index: 1, Value: 3
# Current index: 2, Value: 4
# Current index: 3, Value: 10
# Current index: 4, Value: 40
# Target 10 found at index 3 if result != -1 else 'not found'.

# 示例2:实现简单的冒泡排序算法
def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n - i - 1):  # 最后一个元素已经是最大的,不需要再比较
            if arr[j] > arr[j + 1]:
                arr[j], arr[j + 1] = arr[j + 1], arr[j]  # 交换元素
# 示例数组
arr = [64, 34, 25, 12, 22, 11, 90]
print("Original array is:", arr)
# 对数组进行冒泡排序
bubble_sort(arr)
print("Sorted array is:", arr)
# Original array is: [64, 34, 25, 12, 22, 11, 90]
# Sorted array is: [11, 12, 22, 25, 34, 64, 90]

# 示例3:使用动态规划解决斐波那契数列问题
def fibonacci(n):
    if n <= 1:
        return n
    dp = [0] * (n + 1)
    dp[0], dp[1] = 0, 1
    for i in range(2, n + 1):
        dp[i] = dp[i - 1] + dp[i - 2]
    return dp[n]
# 示例:计算斐波那契数列的第168项
print(fibonacci(168))
# 57602132235424755886206198685365216

# 示例4:使用栈实现逆序列表
class Stack:
    def __init__(self):
        self.stack = []
    def push(self, item):
        self.stack.append(item)
    def pop(self):
        if not self.is_empty():
            return self.stack.pop()
        return None
    def is_empty(self):
        return len(self.stack) == 0
# 使用栈逆序列表
def reverse_list_using_stack(lst):
    stack = Stack()
    for item in lst:
        stack.push(item)
    reversed_lst = []
    while not stack.is_empty():
        reversed_lst.append(stack.pop())
    return reversed_lst
# 示例列表
lst = [1, 2, 3, 4, 5]
print("Original list:", lst)
reversed_lst = reverse_list_using_stack(lst)
print("Reversed list:", reversed_lst)
# Original list: [1, 2, 3, 4, 5]
# Reversed list: [5, 4, 3, 2, 1]

# 应用十:科学计算和数据分析
# 示例1:计算数列和
# 计算从1到n的自然数之和
def sum_of_series(n):
    total = 0
    for i in range(1, n + 1):
        total += i
    return total
# 示例
n = 10
print(f"The sum of numbers from 1 to {n} is {sum_of_series(n)}")
# The sum of numbers from 1 to 10 is 55

# 示例2:使用NumPy进行数组操作
import numpy as np
# 创建一个从0到9的数组
arr = np.arange(10)
# 计算每个元素的平方
squared_arr = arr ** 2
print(squared_arr)
# [ 0  1  4  9 16 25 36 49 64 81]

# 示例3:计算数列的平均值
# 使用range生成数列,并计算平均值
def average_of_series(n):
    total = sum(range(1, n + 1))
    return total / n
# 示例
n = 10
print(f"The average of numbers from 1 to {n} is {average_of_series(n)}")
# The average of numbers from 1 to 10 is 5.5

# 示例4:使用Pandas进行数据分析
import pandas as pd
# 使用range生成索引和列名
index = range(1, 6)  # 索引从1到5
columns = ['A', 'B', 'C']
# 创建一个示例数据帧
data = {'A': [1, 2, 3, 4, 5],
        'B': [10, 20, 30, 40, 50],
        'C': [100, 200, 300, 400, 500]}
df = pd.DataFrame(data, index=index)
# 显示数据帧
print(df)
# 使用range迭代数据帧的行
for i in range(len(df)):
    row = df.iloc[i]
    print(f"Row {i + 1}: {row.values}")
#    A   B    C
# 1  1  10  100
# 2  2  20  200
# 3  3  30  300
# 4  4  40  400
# 5  5  50  500
# Row 1: [  1  10 100]
# Row 2: [  2  20 200]
# Row 3: [  3  30 300]
# Row 4: [  4  40 400]
# Row 5: [  5  50 500]

# 示例5:在图形中标记数据点
import matplotlib.pyplot as plt
# 假设我们有一些x和y数据点
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 绘制散点图
plt.scatter(x, y)
# 使用range生成标签并添加到图中
for i in range(len(x)):
    plt.text(x[i], y[i], f'({x[i]}, {y[i]})', ha='center', va='bottom')
plt.show()
1-2、VBA:
略,待后补。
2、推荐阅读:

2-1、Python-VBA函数之旅-property()函数

Python算法之旅:Algorithm

Python函数之旅:Functions

个人主页:https://blog.csdn.net/ygb_1024?spm=1010.2135.3001.5421 

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

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

相关文章

同城组局同城活动找搭子小程序JAVA源码面芽组局的实现方案

功能概述 基于微信小程序开发的一款软件&#xff0c;支持用户动态发布、私信聊天关注、礼物充值打赏、发起活动组局、用户报名参与、支持商家入驻&#xff0c;对接广告功能等。 活动发布&#xff1a;用户可以在平台上发布各种类型的活动&#xff0c;如户外徒步、音乐会观赏、…

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》Chapter 5插图

禹晶、肖创柏、廖庆敏《数字图像处理&#xff08;面向新工科的电工电子信息基础课程系列教材&#xff09;》 Chapter 5插图

第二篇【传奇开心果系列】Python深度学习库技术点案例示例:深度解读深度学习在语音助手方面的应用

传奇开心果博文系列 系列博文目录Python深度学习库技术点案例示例系列 博文目录前言一、深度学习在语音助手方面的应用介绍二、语音识别示例代码三、语义理解示例代码四、对话生成示例代码五、个性化服务示例代码六、多模态交互示例代码七、情感识别示例代码八、知识点归纳 系列…

聚类分析 | 基于DTW距离测度的Kmeans时间序列聚类算法(Matlab)

聚类分析 | 基于DTW距离测度的Kmeans时间序列聚类算法&#xff08;Matlab&#xff09; 目录 聚类分析 | 基于DTW距离测度的Kmeans时间序列聚类算法&#xff08;Matlab&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于DTW距离测度的Kmeans时间序列聚类算法…

【编码利器 —— BaiduComate】

目录 1. 智能编码助手介绍 2. 场景需求 3. 功能体验 3.1指令功能 3.2插件用法 3.3知识用法 3.4自定义配置 4. 试用感受 5. AI编程应用 6.总结 智能编码助手是当下人工智能技术在编程领域的一项重要应用。Baidu Comate智能编码助手作为一款具有强大功能和智能特性的工…

《安富莱嵌入式周报》第336期:开源计算器,交流欧姆表,高性能开源BLDC控制器,Matlab2024a,操作系统漏洞排名,微软开源MS-DOS V4.0

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 本周更新一期视频教程&#xff1a; BSP视频教程第30期&#xff1a;UDS ISO14229统一诊断服务CAN总线专题&#xff0c;常…

GoEdge自建CDN工具

GoEdge是一款管理分布式CDN边缘节点的开源工具软件&#xff0c;可以让用户轻松地、低成本地创建CDN/WAF等应用。同时提供免费版本和商业版本&#xff0c;本文基本免费版本安装测试。 GoEdgep安装涉及三部分&#xff1a; 边缘节点 - 接收和响应用户请求的终端节点 管理员系统 - …

一个故事就能够教会你看懂各种锁

我是一个线程&#xff0c;一个卖票程序的线程。 自从我们线程诞生以来&#xff0c;同一个进程地址空间里允许有多个执行流一起执行&#xff0c;效率提升的同时&#xff0c;也引来了很多麻烦。 我们卖票线程的工作很简单&#xff0c;比如票的总数是100&#xff0c;每卖一张就减…

使用双指针解决问题题集(二)

1. 有效三角形的个数 给定一个包含非负整数的数组 nums &#xff0c;返回其中可以组成三角形三条边的三元组个数。 示例 1: 输入: nums [2,2,3,4] 输出: 3 解释:有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3 示例 2: 输入: nums [4,2,3,4] 输出: 4 题解&a…

欧鹏RHCE 第四次作业

unit4.web服务的部署及高级优化方案 1. 搭建web服务器要求如下&#xff1a; 1.web服务器的主机ip&#xff1a;172.25.254.100 2.web服务器的默认访问目录为/var/www/html 默认发布内容为default‘s page 3.站点news.timinglee.org默认发布目录为/var/www/virtual/timinglee.org…

List的两种实现

前置知识&#xff1a; 数组 baseAddress&#xff1a;数组的首地址 dataTypeSize&#xff1a;数组中元素类型的大小&#xff0c;如int为4字节 为什么数组索引从0开始&#xff0c;假如从1开始不行吗&#xff1f; 在根据数组索引获取元素的时候&#xff0c;会用索引和寻址公式来计…

8W 1.5KVDC 隔离宽电压输入 DC/DC 电源模块——TP08DA 系列

TP08DA系列电源模块额定输出功率为8W&#xff0c;外形尺寸为31.80*20.30*10.00&#xff0c;应用于2&#xff1a;1&#xff0c;4:1电压输入范围 9-18V,18-36V,36-72V9V-36V和18V-72VDC的输入电压环境&#xff0c;输出电压精度可达1%&#xff0c;具有输出短路保护等功能&#xff…

二十、Java的反射机制

1、Java反射机制的概念 所谓反射从程序的运行结果来看也很好理解,即可以通过对象反射求出类的名称。如下: 正常方式:引入需要的“包.类”名称---->通过new实例化----->取得实例化对象。 反射方式:实例化对象---->getClass()方法------>得到完整的“包.类”名…

鸿蒙通用组件弹窗简介

鸿蒙通用组件弹窗简介 弹窗----Toast引入ohos.promptAction模块通过点击按钮&#xff0c;模拟弹窗 警告对话框----AlertDialog列表弹窗----ActionSheet选择器弹窗自定义弹窗使用CustomDialog声明一个自定义弹窗在需要使用的地方声明自定义弹窗&#xff0c;完整代码 弹窗----Toa…

JavaSE——异常(1/2)-认识异常(介绍,异常的体系,了解如何解决异常)、自定义异常(自定义异常的种类,实例演示)

目录 认识异常 介绍 异常的体系 了解如何解决异常 自定义异常 自定义异常的种类 实例演示 认识异常 介绍 什么是异常&#xff1f; 异常就是代表程序出现的问题。 比如&#xff1a; int[] arr {10,20,30}; System.out.println(arr[3]);System.out.println(10 / 0); …

Vince9120雅思小作文笔记——P1 Intro(前言)

文章目录 链接P1 Intro&#xff08;前言&#xff09;字数限制题型综述&#xff08;problem types overview&#xff09;1. **柱状图&#xff08;Bar Chart&#xff09;** - 描述不同类别在某个或多个变量上的数据量比较。2. **线图&#xff08;Line Graph&#xff09;** - 展示…

项目经理【过程】概念

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 【环境】任务 【环境】绩效 【人】概述 【人】原则 【人】任务 【人】绩效 【过程】概念 一、过程是什么 1.1 项目管理五大过程组 1.2 五大过程组之间的相互作用 1.3 项目阶段VS过…

Pytorch学习笔记——神经网络基本框架

一、神经网络是什么 神经网络在人工智能和深度学习的领域&#xff0c;一般称为人工神经网络&#xff0c;即ANN(Artificial Neural Network)&#xff0c;是一种模仿人脑神经系统工作方式的计算模型。被广泛应用于人工智能、自动控制、机器人、统计学等领域的信息处理中。 二、…

推荐一个gpt全能网站

进入后&#xff0c;里面是这样的 点开后&#xff0c;里面是这样的 你以为只有这些吗&#xff1f; 往下翻一翻&#xff0c;你会发现新大陆&#xff01;&#xff01; 在输入框的下面&#xff0c;有一个分类栏&#xff0c;鼠标移上去&#xff0c;下面就会给出一堆网站 光是gp…

Git === Git概述 Git安装

第1章 Git概述 Git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目。 Git易于学习&#xff0c;占地面积小&#xff0c;性能极快。 它具有廉价的本地库&#xff0c;方便的暂存区域和多个工作流分支等特性。其性能优于Subversion…