Python制作进度条,18种方式全网最全!(不全去你家扫厕所!)

news2024/11/16 18:59:36

在这里插入图片描述

想象一下,你的程序在执行复杂任务时,不再是冷冰冰的等待光标,而是伴随着色彩斑斓、动态变化的进度条,不仅让等待变得有趣,更让用户对你的作品刮目相看。从基础的文本进度条到高级的图形界面进度条,从简单的百分比显示到复杂的动画效果,我们将一一解锁这些技能,让你的Python技能再上新台阶。

思维导图知识点

在这里插入图片描述

使用简单的print语句

对于简单的进度显示,你可以通过计算任务的当前进度并打印出来。

在这里插入图片描述

import time  # 导入time模块,用于实现程序中的时间延迟,模拟下载过程中的耗时  
  
total = 100  # 定义一个变量total,并赋值为100,表示下载任务的总单位是100个单位  
# 这里假设下载任务被分为了100个等分的单位,实际应用中这个值可能代表文件大小、数据块数量等  
  
for i in range(total + 1):  # 使用for循环遍历从0到total(包含total)的整数序列  
    # 注意这里使用了total+1,因为range的结束值是开区间,所以需要+1来确保循环能够遍历到100%  
    percent = (i / float(total)) * 100  # 计算当前进度百分比  
    # i是当前遍历到的单位数,float(total)确保进行浮点数除法,从而得到精确的小数结果  
    # 然后将结果乘以100得到百分比  
      
    print(f"\r下载进度: {percent:.2f}%", end="")  # 打印进度信息  
    # \r是一个特殊的转义字符,表示将光标移回当前行的开头,这样每次打印都会覆盖前一次的进度信息  
    # f-string用于格式化字符串,{percent:.2f}%表示将percent变量格式化为保留两位小数的浮点数,并附加%符号  
    # end=""参数的作用是防止print函数自动换行,从而保持进度信息在同一行显示  
      
    time.sleep(0.1)  # 调用time模块的sleep函数,让程序暂停0.1秒  
    # 这里模拟了下载过程中的时间消耗,实际应用中这里可能是执行下载操作的代码  
  
print("\n下载完成!")  # 当循环结束后,打印“下载完成!”信息  
# \n是一个特殊的转义字符,表示换行,这样“下载完成!”信息会出现在新的一行

需要注意的是,由于print函数在每次循环中都会输出进度信息,并且使用了\r来覆盖前一次的输出,所以在命令行或终端中运行时,你会看到进度条不断更新,直到达到100%并显示“下载完成!”的信息。然而,在某些IDE的内置控制台或某些特定环境下,\r的行为可能不符合预期,导致进度条无法正常显示或显示混乱。在这些情况下,可以尝试调整IDE的设置或使用其他方法来实现进度条的显示。

简单的文本进度条

这种进度条使用等号=或井号#等字符来表示进度。
在这里插入图片描述

import time  # 导入time模块,用于实现时间延迟,模拟耗时操作  
import sys  # 导入sys模块,特别是为了使用sys.stdout.write和sys.stdout.flush来直接写入和刷新标准输出  
  
def simple_progress_bar(total, progress):  
    """  
    显示一个简单的进度条  
  
    :param total: 进度条的总长度(或总任务量)  
    :param progress: 当前进度(已完成的任务量)  
    """  
    bar_length = 50  # 进度条的长度,这里设置为50个字符  
    filled_length = int(round(bar_length * progress / float(total)))  # 计算已完成的进度条长度  
    # 注意这里使用了float(total)确保除法结果是浮点数,然后通过round和int转换得到整数长度  
    percents = round(100.0 * progress / float(total), 1)  # 计算并格式化当前进度的百分比,保留一位小数  
    bar = '=' * filled_length + '-' * (bar_length - filled_length)  # 根据已完成和未完成的长度生成进度条字符串  
    # 使用'='表示已完成的进度,'-'表示未完成的进度  
    sys.stdout.write(f'\r进度:[{bar}] {percents}%')  # 将进度条信息写回标准输出,\r使光标回到行首  
    # 这样新的进度信息就会覆盖旧的进度信息,实现进度条的更新效果  
    sys.stdout.flush()  # 刷新标准输出缓冲区,确保进度条信息立即显示  
  
# 模拟进度  
total = 100  # 设置总任务量为100  
for i in range(total + 1):  # 循环从0到total(包含total),即模拟从0%到100%的进度  
    simple_progress_bar(total, i)  # 调用simple_progress_bar函数,传入总任务量和当前进度  
    time.sleep(0.1)  # 暂停0.1秒,模拟耗时操作  
print("\n完成!")  # 当循环完成后,打印“完成!”信息,并自动换行

使用sys.stdout.write和sys.stdout.flush

这与使用print类似,但更加直接地控制输出。这种方法在某些情况下(如多线程或多进程环境下)可能更稳定。
在这里插入图片描述

# 导入sys模块,用于访问与Python解释器紧密相关的变量和函数,这里主要用于访问stdout(标准输出)  
import sys    
# 导入time模块,用于提供与时间相关的各种函数,这里主要用于在每次更新进度后暂停一段时间  
import time    
  
# 设定总进度为100,代表下载任务的总部分数  
total = 100    
# 使用for循环遍历从0到total(包含total,即101次迭代),每次迭代代表进度增加了一个单位  
for i in range(total + 1):    
    # 计算当前的进度百分比,通过将当前迭代次数i除以总次数total并乘以100得到  
    percent = (i / float(total)) * 100    
    # 使用sys.stdout.write方法写入当前进度信息到标准输出,\r表示将光标移回行首,以便在同一行更新进度  
    # f-string用于格式化字符串,{percent:.2f}%将percent变量格式化为保留两位小数的浮点数,并加上百分号  
    sys.stdout.write(f"\r下载进度: {percent:.2f}%")    
    # sys.stdout.flush()确保立即将缓冲区内容输出到标准输出,而不是等待缓冲区满或程序结束  
    sys.stdout.flush()    
    # time.sleep(0.1)暂停当前线程0.1秒,模拟下载过程中的时间消耗  
    time.sleep(0.1)    
# 循环结束后,打印换行符和“下载完成!”消息,表示下载任务已完成  
print("\n下载完成!")

需要注意的是,这段代码在大多数终端或命令行界面中能够正确运行,并显示逐渐增加的下载进度。但是,在一些不支持\r(回车符,用于将光标移回行首而不换行)的界面中,可能无法看到进度更新的效果,而是会看到进度条不断被新的进度信息覆盖。此外,由于使用了sys.stdout.write而不是print函数来输出进度信息,因此不会在每次更新后自动添加换行符,这也是为了在同一个位置更新进度条所必需的。

自定义形状的进度条

跟文本进度条差不多,这次展示另外一种形状,如果你想要一个特定形状的进度条(比如用星号*表示进度),你可以通过修改simple_progress_bar函数中的字符来实现。
在这里插入图片描述

import time  # 导入time模块,用于在循环中模拟耗时操作
import sys  # 导入sys模块,用于操作与Python解释器交互的一些变量和函数


# 定义一个函数,用于显示自定义形状的进度条
def custom_shape_progress_bar(total, progress):
    bar_length = 50  # 设置进度条的总长度为50个字符
    filled_length = int(round(bar_length * progress / float(total)))  # 计算已完成的进度条长度,并四舍五入为整数
    percents = round(100.0 * progress / float(total), 1)  # 计算进度百分比,保留一位小数
    bar = '▋' * filled_length + ' ' * (bar_length - filled_length)  # 构造进度条字符串,使用'▋'表示已完成部分,空格表示未完成部分
    sys.stdout.write(f'\r[{bar}] {percents}% 进度')  # 使用sys.stdout.write打印进度条,\r表示回到当前行的开头,这样进度条会在同一行更新
    sys.stdout.flush()  # 强制将缓冲区的内容输出到标准输出设备,确保进度条即时更新


# 模拟进度
total = 100  # 设置总进度为100
for i in range(total + 1):  # 循环从0到100(包括100),共101次迭代,以模拟进度从0%到100%
    custom_shape_progress_bar(total, i)  # 调用自定义进度条函数,传入总进度和当前进度
    time.sleep(0.1)  # 暂停0.1秒,模拟耗时操作
print("\n完成!")  # 循环结束后,打印"完成!",并换行

带有时间的进度条

这个进度条将显示当前进度百分比,并同时显示已经过去的时间和剩余时间的估算(基于当前进度和总任务数)。
在这里插入图片描述

import time  
import sys  
  
# 假设我们总共有100个任务要完成  
total_tasks = 100  
  
# 开始时间  
start_time = time.time()  
  
# 用于存储上一次更新时间  
last_update_time = start_time  
  
# 遍历任务  
for i in range(total_tasks + 1):  # 加1是为了在循环结束时也能显示100%  
    # 计算当前进度百分比  
    progress = (i / total_tasks) * 100  
  
    # 更新时间,但每0.1秒更新一次以避免控制台输出过于频繁  
    current_time = time.time()  
    if current_time - last_update_time > 0.1:  
        # 计算已经过去的时间  
        elapsed_time = current_time - start_time  
  
        # 估算剩余时间(基于当前进度和已用时间)  
        if progress > 0:  
            estimated_remaining_time = (elapsed_time / progress) * (100 - progress)  
        else:  
            estimated_remaining_time = 0  # 如果进度为0,则剩余时间为0  
  
        # 清除当前行(为了在同一行更新进度条)  
        # 注意:在Windows上可能需要使用'\r'而不是'\r\n'  
        sys.stdout.write('\r')  
  
        # 显示进度条  
        # 使用50个字符的宽度来显示进度,可以根据需要调整  
        progress_bar = '[' + '=' * int(progress / 2) + ' ' * (25 - int(progress / 2)) + ']'  
        # 注意:这里的'/2'是为了让进度条更紧凑,因为我们要用50个字符表示100%的进度  
  
        # 格式化并打印进度、时间和剩余时间  
        print(f'Progress: {progress_bar} {progress:.2f}% | Elapsed: {elapsed_time:.2f}s | Remaining: {estimated_remaining_time:.2f}s', end='')  
  
        # 更新上一次更新时间  
        last_update_time = current_time  
  
    # 暂停以模拟任务执行时间  
    time.sleep(0.1)  
  
# 完成后换行  
print()
  1. 导入必要的库:time用于时间操作,sys用于访问与Python解释器紧密相关的变量和函数,特别是sys.stdout.write用于向标准输出写入内容。
  2. 设置总任务数:定义total_tasks变量,表示要完成的任务总数。
  3. 记录开始时间:使用time.time()获取当前时间戳,并存储在start_time变量中。
  4. 遍历任务:通过for循环遍历从0到total_tasks(包括total_tasks,用于显示100%的进度)的整数序列。
  5. 计算进度和更新时间:在循环内部,计算当前进度百分比,并检查是否需要更新进度条(通过比较当前时间和上一次更新时间)。
  6. 清除当前行:使用sys.stdout.write(‘\r’)清除当前行的内容,以便在同一行上更新进度条。
  7. 显示进度条:根据进度百分比绘制进度条,并计算已用时间和剩余时间的估算值。
  8. 格式化输出:使用print函数(注意end=''参数以避免在末尾添加换行符)来格式化并打印进度、时间和剩余时间的信息。
  9. 暂停以模拟任务:使用time.sleep(0.1)模拟每个任务的执行时间。
  10. 完成后换行:在循环结束后,打印一个空行以美化输出。

progress实现进度条

注意 progress 输出的进度条可能在Pycharm控制台上无法显示,Windows最好在黑窗口中运行,MAC最好在终端上运行

progress 换行进度条

在这里插入图片描述

import time  # 导入time模块,用于在迭代中引入暂停,以模拟长时间运行的任务
from progress.bar import IncrementalBar  # 从progress.bar模块导入IncrementalBar类,用于显示进度条

num = range(1, 11)  # 创建一个range对象,表示从1到10的整数序列

bar = IncrementalBar('倒计时', max=len(num))  # 创建一个IncrementalBar实例,命名为'倒计时',并设置其最大值为num的长度(即10)
for item in num:  # 遍历num中的每个元素
    bar.next()  # 调用bar的next方法,以更新进度条到下一个位置
    time.sleep(1)  # 暂停1秒,模拟长时间运行的任务
    bar.finish()

progress基础进度条

这个简单的案例展示了如何使用IncrementalBar来创建一个基本的进度条,该进度条在每次迭代时自动更新。
在这里插入图片描述

from progress.bar import IncrementalBar  
import time  
  
# 假设我们要执行100个任务  
max_value = 100  
  
# 创建一个IncrementalBar实例,传入最大值  
bar = IncrementalBar('Processing', max=max_value)  
  
# 模拟任务执行  
for i in range(max_value):  
    # 在这里执行一些操作,比如处理文件、计算等  
    time.sleep(0.1)  # 模拟耗时操作  
    # 更新进度条  
    bar.next()  
  
# 当所有任务完成后,确保进度条完成显示  
bar.finish()

progress自定义前缀和后缀的进度条

我们可以在前缀中显示任务名称,在后缀中显示剩余时间

在这里插入图片描述

from progress.bar import IncrementalBar  
import time  
  
# 假设我们要执行100个任务  
max_value = 100  
  
# 创建一个IncrementalBar实例,传入最大值和自定义的前缀、后缀  
bar = IncrementalBar('Processing Files: ', suffix='%(percent)d%% - %(eta)ds', max=max_value)  
  
# 注意:IncrementalBar本身不直接计算ETA(预计剩余时间),但我们可以模拟或忽略它  
  
# 模拟任务执行  
for i in range(max_value):  
    time.sleep(0.1)  # 模拟耗时操作  
    bar.next()  
  
bar.finish()

注意:虽然在这个示例中我们使用了suffix参数来包含%(eta)ds,但IncrementalBar默认不计算ETA。如果你需要ETA,你可能需要使用Bar或ProgressBar类,并手动更新进度和预计时间。

alive_progress进度条

注意 alive_progress
输出的进度条可能在Pycharm控制台上无法显示,Windows最好在黑窗口中运行,MAC最好在终端上运行

alive_progress基本进度条

这个简单的案例展示了如何使用alive_progress包来创建一个基本的进度条,该进度条在循环迭代时自动更新。
在这里插入图片描述

from alive_progress import alive_bar  # 导入alive_bar  
import time  
  
# 总任务数  
total_tasks = 100  
  
# 使用with语句自动管理alive_bar的生命周期  
with alive_bar(total_tasks) as bar:  # 创建一个alive_bar对象,并将其总数设置为total_tasks  
    for i in range(total_tasks):  # 遍历任务  
        # 模拟耗时操作  
        time.sleep(0.1)  
        bar()  # 调用bar对象本身来更新进度条,这里可以传递一些参数来自定义进度条,但在这个例子中我们保持简单  
  
# 当with语句块结束时,alive_bar会自动完成并清理资源

自定义样式和主题的进度条

这个案例展示了如何自定义alive_progress进度条的样式和主题,包括进度条的颜色、填充字符等。
在这里插入图片描述

# 导入alive_progress包中的alive_bar类,用于创建进度条实例  
# 同时导入config_handler类,用于配置进度条的全局样式和主题  
from alive_progress import alive_bar, config_handler

# 导入time模块,用于在模拟任务执行时添加延迟,从而观察进度条的更新过程  
import time

# 使用config_handler的set_global方法设置进度条的全局样式和主题  
# 这里设置了主题为'smooth',进度条样式为'blocks'(块状填充),旋转器样式为'twirls'  
config_handler.set_global(
    theme='smooth',  # 设置全局主题为'smooth',这通常影响颜色方案和背景  
    bar='blocks',  # 设置全局进度条样式为'blocks',即使用块状来填充进度条  
    spinner='twirls',  # 设置全局旋转器样式为'twirls',这是一种特定的旋转动画效果  
)

# 定义需要执行的总任务数  
total_tasks = 100

# 使用with语句和alive_bar上下文管理器创建一个进度条实例  
# alive_bar的构造函数接收总任务数(total_tasks)和标题('Custom Style Progress Bar')作为参数  
# with语句确保了进度条实例在代码块执行完毕后能够被正确关闭和清理  
with alive_bar(total_tasks, title='Custom Style Progress Bar') as bar:
    # 开始一个循环,模拟执行总任务数指定的任务  
    for i in range(total_tasks):
        # 使用time.sleep函数模拟任务执行的耗时,这里每次循环等待0.1秒  
        # 这使得进度条能够随着循环的迭代而逐渐更新  
        time.sleep(0.1)
        bar()  # 显式调用bar()来更新进度条  

# 当with语句块结束时,alive_bar上下文管理器将自动处理进度条的完成状态  
# 无需显式调用任何完成方法,进度条将自动显示完成状态

更多alive_progress进度条

网址:https://github.com/rsalmei/alive-progress
在这里插入图片描述

tqdm进度条

tqdm 是一个快速、可扩展的 Python 进度条库,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)

基本的 for 循环进度条

在一个基本的 for 循环中使用 tqdm 来显示进度条。
在这里插入图片描述

from tqdm import tqdm
import time

# 假设我们要处理100个任务
for i in tqdm(range(100)):  # 使用tqdm封装range
    time.sleep(0.1)  # 模拟每个任务需要一些时间

# 输出:将显示一个进度条,从0%到100%,每完成一个迭代项就更新一次

手动更新进度条

在某些情况下,你可能无法直接使用迭代器,这时可以手动更新进度条。

在这里插入图片描述

from tqdm import tqdm
import time

# 创建一个tqdm对象,但不立即开始
pbar = tqdm(total=100)  # 设置总任务量为100

for i in range(100):
    time.sleep(0.1)  # 模拟任务处理时间
    pbar.update(1)  # 手动更新进度条,每次增加1

pbar.close()  # 完成后关闭进度条

# 输出:同样显示从0%到100%的进度条

嵌套循环进度条

在嵌套循环中使用 tqdm,为外层循环和内层循环都添加进度条。
在这里插入图片描述

from tqdm import tqdm  
import time  
  
# 外层循环  
outer_pbar = tqdm(range(10), desc='Outer loop')  # desc参数用于设置进度条描述  
for i in outer_pbar:  
    inner_pbar = tqdm(range(10), desc=f'Inner loop {i}', leave=False)  # leave=False表示进度条完成后不保留  
    for j in inner_pbar:  
        time.sleep(0.05)  # 模拟任务处理时间  
    outer_pbar.update(1)  # 外层循环也需要更新进度条,尽管在这里它会自动更新  
  
# 输出:首先显示外层循环的进度条,每次外层迭代开始时显示内层循环的进度条

在 Pandas 中使用 tqdm

当使用 Pandas 进行数据处理时,可以利用 tqdm 显示处理进度。
在这里插入图片描述

from tqdm import tqdm
import pandas as pd
import numpy as np
import time

# 创建一个大的DataFrame
df = pd.DataFrame(np.random.randint(0, 100, size=(1000, 4)), columns=list('ABCD'))

# 假设我们要对每一行进行处理
for i in tqdm(df.index, total=df.shape[0], desc='Processing rows'):
    time.sleep(0.01)
    # 这里只是简单地取每行的A列值,实际中可以是复杂的处理
    _ = df.loc[i, 'A']

    # 输出:显示处理行的进度条

PySimpleGUI制作进度条

PySimpleGUI是一个用于创建图形用户界面的Python库,它封装了多个GUI框架(如Tkinter、PyQt等),使得创建GUI变得更加简单。

基本进度条

展示如何在PySimpleGUI窗口中创建一个基本的进度条,并通过按钮点击事件来更新进度。
在这里插入图片描述

import PySimpleGUI as sg  
import time  
  
# 定义窗口布局  
layout = [  
    [sg.Text('进度条示例', size=(30, 1), font=("Helvetica", 25))],  
    [sg.ProgressBar(100, orientation='h', size=(30, 20), key='-PROGRESS-')],  
    [sg.Button('更新进度', size=(10, 1)), sg.Button('退出', size=(10, 1))]  
]  
  
# 创建窗口  
window = sg.Window('进度条示例', layout)  
  
# 事件循环  
while True:  
    event, values = window.read()  
    if event == sg.WIN_CLOSED or event == '退出':  # 如果点击了关闭窗口按钮或退出按钮  
        break  
    elif event == '更新进度':  # 如果点击了更新进度按钮  
        for i in range(101):  # 进度从0到100  
            window['-PROGRESS-'].update(i)  # 更新进度条  
            time.sleep(0.1)  # 暂停0.1秒以模拟进度  
  
# 关闭窗口  
window.close()

带标签的进度条

在进度条旁边添加一个标签来显示当前进度百分比。
在这里插入图片描述

import PySimpleGUI as sg  
import time  
  
# 定义窗口布局  
layout = [  
    [sg.Text('带标签的进度条示例', size=(30, 1), font=("Helvetica", 25))],  
    [sg.Text('当前进度: 0%', size=(15, 1), key='-STATUS-'), sg.ProgressBar(100, orientation='h', size=(30, 20), key='-PROGRESS-')],  
    [sg.Button('更新进度', size=(10, 1)), sg.Button('退出', size=(10, 1))]  
]  
  
# 创建窗口  
window = sg.Window('带标签的进度条示例', layout)  
  
# 事件循环  
while True:  
    event, values = window.read()  
    if event == sg.WIN_CLOSED or event == '退出':  
        break  
    elif event == '更新进度':  
        for i in range(101):  
            window['-PROGRESS-'].update(i)  
            window['-STATUS-'].update(f'当前进度: {i}%')  
            time.sleep(0.1)  
  
# 关闭窗口  
window.close()

实时任务进度条

模拟一个需要较长时间完成的任务,并实时更新进度条。
在这里插入图片描述

import PySimpleGUI as sg  
import time  
  
# 定义窗口布局  
layout = [  
    [sg.Text('实时任务进度条示例', size=(30, 1), font=("Helvetica", 25))],  
    [sg.ProgressBar(1000, orientation='h', size=(40, 20), key='-PROGRESS-'), sg.Text('任务执行中...', size=(20, 1))],  
    [sg.Cancel()]  # 添加一个取消按钮  
]  
  
# 创建窗口  
window = sg.Window('实时任务进度条示例', layout)  
  
# 进度条变量  
progress = 0  
  
# 模拟任务  
try:  
    while True:  
        event, values = window.read(timeout=100)  # 设置超时时间为100毫秒  
        if event == sg.WIN_CLOSED or event == 'Cancel':  
            break  
        progress += 10  # 假设每次循环进度增加10  
        window['-PROGRESS-'].update(progress)  
        if progress >= 1000:  # 假设任务总进度为1000  
            break  
        time.sleep(0.1)  # 暂停0.1秒  
except Exception as e:  
    print(e)  
  
# 关闭窗口  
window.close()

推荐阅读

Python基础

Python全网最全基础课程笔记(一)——基础入门
Python全网最全基础课程笔记(二)——变量
Python全网最全基础课程笔记(三)——所有运算符+运算符优先级
Python全网最全基础课程笔记(四)——基本数据类型
Python全网最全基础课程笔记(五)——选择结构+Python新特性Match
Python全网最全基础课程笔记(六)——循环结构
Python全网最全基础课程笔记(七)——列表,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(八)——字典,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(九)——集合,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十)——元组,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十一)——字符串所有操作,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十二)——函数,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!
Python全网最全基础课程笔记(十三)——作用域,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

Flink入门到就业

2024年最新Flink教程,从基础到就业,大家一起学习–基础篇
2024年最新Flink教程,从基础到就业,大家一起学习–入门篇
2024年最新Flink教程,从基础到就业,大家一起学习–Flink集群部署
2024年最新Flink教程,从基础到就业,大家一起学习–flink部署和集群部署(从本地测试到公司生产环境如何部署项目源码)
2024年最新Flink教程,从基础到就业,大家一起学习–Flink运行架构底层源码详解+实战
2024年最新Flink教程,从基础到就业,大家一起学习–Flink DataStream API-第一篇+源码讲解

在这里插入图片描述

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

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

相关文章

小程序兼容问题

【微信小程序】安卓兼容问题,scroll-view上拉导致input输入框上移 引用:https://blog.csdn.net/krico233/article/details/127491690 当一个scroll-view占据全屏高度(100vh)并包含input表单时,输入框聚焦会导致光标上移但输入框本身位置不变…

【C语言】数组(上)

【C语言】数组 1、数组的概念2、一维数组的创建和初始化2.1数组创建2.2数组的初始化2.3数组的类型 3、一维数组的使用3.1数组下标3.2 数组元素打印3.3数组的输入 4、一维数组在内存中的存储5、sizeof计算数组元素个数 1、数组的概念 数组是一组相同类型元素的组合,…

【RabbitMQ】面试题

在本篇文章中,主要是介绍RabbitMQ一些常见的面试题。对于前几篇文章的代码,都已经在码云中给出,链接是mq-test: 学习RabbitMQ的一些简单案例 (gitee.com),如果存在问题的话欢迎各位提出,望共同进步。 MQ的作用以及应用…

快速上手Make Sense:在线标注数据集的强大工具

链接: Makesense汉化版本 Makesense英文版 随着深度学习在计算机视觉领域的广泛应用,数据集标注成为了一项重要的任务。Make Sense正是一个为图像数据集提供标注功能的在线工具。其易用性和强大的功能使得它在众多标注工具中脱颖而出。本文将为你详细介绍…

找不到msvcr100.dll怎么解决?总结6个有效的解决方法

在使用计算机的过程中,我们经常会遇到一些错误提示,其中之一就是“msvcr100.dll丢失”。这个问题可能会让我们感到困惑和无助,但是不用担心,本文将为大家介绍六种实用的解决方法,帮助你轻松解决这个问题。 一&#xff…

raylib实现生产者消费者模型增加缓冲提高帧率

原来增加了四叉树导致帧率下降 后来学了生产者消费者模型&#xff0c;尝试追加缓冲池&#xff0c;剥离主函数查找需要更新的数据 帧率上升稳定到60帧 多了10 帧 中间工程主要是探索数据结构体怎么安排 // 参考自 https://zhuanlan.zhihu.com/p/693482704 #include <stdio.…

C语言-进程

一,进程的基本认识 1,进程的简介 进程描述是一个程序执行过程。当程序执行后&#xff0c;执行过程开始&#xff0c;则进程产生&#xff1b;执行过程结束&#xff0c;则进程也就结束了.进程和我们普通电费程序最大的区别就是,进程是动态的,他是一个过程,而程序是静态的. 2,进程…

永辉超市自救三部曲:靠名创优品复制胖东来?如何避免另一个苏宁易购?

《港湾商业观察》施子夫 王璐 从潮流产品新锐向大型商超迈入&#xff0c;没有人想到名创优品(09896.HK&#xff1b;MNSO.US)会成为永辉超市&#xff08;601933.SH&#xff09;的第一大股东。 近63亿元的收购价让两家本就知名度颇高的企业在2024年的商业江湖中更加瞩目。然而…

​极狐阿尔法 S5安全至上,北汽极狐打造移动防护堡垒

在新能源汽车的广阔舞台上&#xff0c;北汽极狐以其卓越的品质和创新的技术&#xff0c;不断书写着辉煌篇章。其中&#xff0c;极狐阿尔法 S5更是以其强大的性能、豪华的配置和亲民的价格&#xff0c;成为了众多消费者关注的焦点。 北汽极狐的品质追求 北汽极狐一直以来都将品…

【蓝牙小知识集锦!】禁止电脑连接蓝牙如何操作?一分钟教你5种小妙招!

禁止电脑连接蓝牙如何操作&#xff1f; 在回答如何禁止电脑连接蓝牙这个问题之前&#xff0c;我们要先了解&#xff0c;企业为啥要禁止蓝牙&#xff1f;原因是什么&#xff1f; 一、禁止蓝牙连接的原因 它可以涉及多个方面&#xff0c;主要包括安全性、效率、能源管理以及避免…

matlab r2024a、matlab R2024b保姆级安装教程

​ 1.安装步骤 右键【setup.exe】以【管理员身份运行】 点击【高级选项】-【我有文件安装密钥】 点击【是】-【下一步】 输入密钥【21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-…

【论文速看】DL最新进展20240927-目标检测、Transformer

目录 【目标检测】【Transformer】 【目标检测】 [2024小目标检测] A DeNoising FPN With Transformer R-CNN for Tiny Object Detection 论文链接&#xff1a;https://arxiv.org/abs/2406.05755 代码链接&#xff1a;https://github.com/hoiliu-0801/DNTR 尽管计算机视觉领域…

信息学奥赛复赛复习05-CSP-J2020-01优秀的拆分-对数函数、自然对数、以2为底的对数、幂函数、打表

PDF文档回复:20240927 1 2020 CSP-J 题目1 优秀的拆分 [题目描述] 一般来说&#xff0c;一个正整数可以拆分成若干个正整数的和 例如&#xff0c;11&#xff0c;101234 等。对于正整数 n的一种特定拆分&#xff0c;我们称它为“优秀的”&#xff0c;当且仅当在这种拆分下&am…

【Redis】安装redis-plus-plus

目录 安装redis-plus-plus 安装hiredis 安装redis-plus-plus本体 具体步骤 ​编辑编写一个hello程序 安装redis-plus-plus C操作redis的第三方库有很多&#xff0c;咱们此处使用redis-plus-plus&#xff0c;安装链接如下&#xff1a; GitHub - sewenew/redis-plus-plus: …

gitee windows/linux配置使用

1、安装git工具 地址&#xff1a;git工具安装地址 1.2在gitee上创建仓库 在浏览器中打开Gitee网站&#xff0c;并登录到您的账户。点击页面右上方的加号图标&#xff0c;然后选择“新建仓库”。输入仓库的名称、描述和其他相关信息&#xff0c;然后点击“创建仓库”按钮。添…

大势Inside | “郧县人”重大考古成果写入人教版初中历史教科书

近日&#xff0c;发掘于湖北十堰郧阳的“郧县人”考古成果被写入2024年秋人教版历史教科书&#xff08;七年级上册&#xff09;第一课“远古时期的人类活动”&#xff0c;与闻名中外的“元谋人”、“蓝田人”、“北京人”、“山顶洞人”并列。 人教版七年级上册中国历史教科书 …

基于SSM的图书管理管理系统的设计与实现 (含源码+sql+视频导入教程)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的图书管理管理系统4拥有两种角色&#xff0c;用户可以浏览评论图书、登录注册&#xff0c;管理员可以进行图书馆管理、用户管理、分类管理等功能 1.1 背景描述 图书书店销售管理…

基于Hadoop的NBA球员大数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

Meta的LLaMA 3.2系列大模型打败OpenAI,Orion的原型AR眼镜更是引领科技新时代!

Meta公司推出的LLaMA 3.2系列模型在人工智能领域引起了广泛关注。这些模型包括了多种尺寸&#xff0c;从适合移动应用和边缘设备的轻量级模型&#xff08;1B和3B参数版本&#xff09;到功能强大的90B视觉模型&#xff0c;后者支持文本和图像处理任务&#xff0c;如图像字幕、文…

腾讯邮箱上传附件卡、慢、无法上传,下载慢问题处理

1、检查文件中转站容量是否已满 2、建议用户打开链接https://exmail.qq.com/qy_mng_logic/wasmHelper?typehashv2&#xff0c;看是否可以正常访问。&#xff08;能打开下载就表示可以正常访问&#xff09; 3、让用户切换到4G或者其他网络再重新上传附件是否会重现问题&#xf…