打印进度条

news2025/1/4 7:40:17

文章目录

    • 1.Python语言实现
      • (1)黑白色
      • (2)彩色:蓝色
    • 2.C++语言实现
      • (1)黑白颜色
      • (2)彩色版:红绿色

1.Python语言实现

(1)黑白色

在这里插入图片描述


import sys
import time

def progress_bar(percentage, width=50):
    """
    打印进度条
    :param percentage: 当前进度百分比 (0-100)
    :param width: 进度条的宽度,默认是50字符
    """
    completed = int(width * (percentage / 100))              #已完成部分
    remaining = width - completed                            #未完成部分
    bar = f"[{'#' * completed}{'.' * remaining}]"
    sys.stdout.write(f"\rProgress: {percentage:3d}% {bar}")  #动态刷新行
    sys.stdout.flush()                                       #※实现动态更新,不换行输出

# 模拟进度条运行
for i in range(101):    #0%到100%
    progress_bar(i)     #更新进度条
    time.sleep(0.05)    #模拟延迟

print("\nDone!")        #结束后换行

(2)彩色:蓝色

在这里插入图片描述
在这里插入图片描述

import sys
import time

def progress_bar(percentage, width=50):
    """
    打印进度条
    :param percentage: 当前进度百分比 (0-100)
    :param width: 进度条的宽度,默认是50字符
    """
    completed = int(width * (percentage / 100))  # 已完成部分
    remaining = width - completed                # 未完成部分
    # 进度条的蓝色部分
    blue = "\033[34m"
    reset = "\033[0m"
    bar = f"[{blue}{'#' * completed}{reset}{'.' * remaining}]"
    sys.stdout.write(f"\rProgress: {percentage:3d}% {bar}")  # 动态刷新行
    sys.stdout.flush()  # ※实现动态更新,不换行输出

# 模拟进度条运行
for i in range(101):  # 0%到100%
    progress_bar(i)    # 更新进度条
    time.sleep(0.05)   # 模拟延迟

print("\nDone!")       # 结束后换行




2.C++语言实现

(1)黑白颜色

在这里插入图片描述
在这里插入图片描述


#include <iostream>
#include <thread>  //用于 sleep_for
#include <chrono>  //用于时间延迟
using std::cout;
using std::endl;

void progressBar(int percentage, int width = 50) {
    int completed = (percentage * width) / 100; //已完成部分的宽度
    int remaining = width - completed;          //未完成部分的宽度

    cout << "\rProgress: ["; // \r 回到行首,覆盖之前的内容
    for (int i = 0; i < completed; ++i) {
        cout << "#"; // 已完成部分
    }
    for (int i = 0; i < remaining; ++i) {
        cout << "."; // 未完成部分
    }
    cout << "] " << percentage << "%"; // 输出百分比
    cout.flush(); // 刷新输出流
}

int main() {
    for (int i = 0; i <= 100; ++i) { // 模拟进度从0%到100%
        progressBar(i);              // 更新进度条
        std::this_thread::sleep_for(std::chrono::milliseconds(50)); // 模拟延迟
    }
    cout << endl << "Done!" << endl; // 进度完成后换行
    return 0;
}

(2)彩色版:红绿色

在这里插入图片描述

在这里插入图片描述

#include <iostream>
#include <thread>  //用于 sleep_for
#include <chrono>  //用于时间延迟
using std::cout;
using std::endl;

void progressBar(int percentage, int width = 50) {
    int completed = (percentage * width) / 100; //已完成部分的宽度
    int remaining = width - completed;          //未完成部分的宽度

    cout << "\rProgress: ["; // \r 回到行首,覆盖之前的内容

    // 已完成部分,使用绿色
    cout << "\033[32m";
    for (int i = 0; i < completed; ++i) {
        cout << "#"; // 已完成部分
    }

    // 未完成部分,使用红色
    cout << "\033[31m";
    for (int i = 0; i < remaining; ++i) {
        cout << "."; // 未完成部分
    }

    // 重置颜色并输出百分比
    cout << "\033[0m] " << percentage << "%"; // 输出百分比
    cout.flush(); // 刷新输出流
}

int main() {
    for (int i = 0; i <= 100; ++i) { // 模拟进度从0%到100%
        progressBar(i);              // 更新进度条
        std::this_thread::sleep_for(std::chrono::milliseconds(50)); // 模拟延迟
    }
    cout << endl << "Done!" << endl; // 进度完成后换行
    return 0;
}

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

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

相关文章

深度解析 LDA 与聚类结合的文本主题分析实战

🌟作者简介:热爱数据分析,学习Python、Stata、SPSS等统计语言的小高同学~🍊个人主页:小高要坚强的博客🍓当前专栏:《Python之文本分析》🍎本文内容:深度解析 LDA 与聚类结合的文本主题分析实战🌸作者“三要”格言:要坚强、要努力、要学习 目录 引言 技术框架…

点跟踪基准最早的论文学习解读:TAP-Vid: A Benchmark for Tracking Any Point in a Video—前置基础

TAP-Vid: A Benchmark for Tracking Any Point in a Video— TAP-Vid&#xff1a;跟踪视频中任意点的基准、 学习这一篇文章的本来的目的是为了学习一下TAP-NET便于理解后面用到的TAPIR方法的使用。 文章目录 TAP-Vid: A Benchmark for Tracking Any Point in a Video— TAP-V…

C进阶-字符串与内存函数介绍(另加2道典型面试题)

满意的话&#xff0c;记得一键三连哦&#xff01; 我们先看2道面试题 第一道&#xff1a; 我们画图理解&#xff1a; pa&#xff0c;先使用再&#xff0c;pa开始指向a【0】&#xff0c;之后pa向下移动一位&#xff0c;再解引用&#xff0c;指向a【1】&#xff0c;a【1】又指向…

PH47代码框架 24241231 重要更新

仪式感一下&#xff1a;2024年最后一天&#xff0c;发布 PH47 代码框架的一次重要更新。当然这并不是有意的&#xff0c;而是直到现在才把更新的所有工作全部做完&#xff08;希望确实如此&#xff09;。 本次更新要点&#xff1a; 1、加入多IMU支持。本次更新正式加入对 MPU65…

idea报错:There is not enough memory to perform the requested operation.

文章目录 一、问题描述二、先解决三、后原因&#xff08;了解&#xff09; 一、问题描述 就是在使用 IDEA 写代码时&#xff0c;IDEA 可能会弹一个窗&#xff0c;大概提示你目前使用的 IDEA 内存不足&#xff0c;其实就是提醒你 JVM 的内存不够了&#xff0c;需要重新分配。弹…

Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用|数据分享...

全文链接&#xff1a;https://tecdat.cn/?p38708 分析师&#xff1a;Yuling Fang 信息时代的来临使得企业营销焦点从产品中心转向客户中心&#xff0c;客户关系管理成为企业的核心问题&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 客户关系管理的关键是客…

Linux umami网站统计工具自定义API开发

Linux umami网站统计工具自定义API开发 一、src/queries/analytics/下添加调用sql查询文件&#xff1a;二、src/queries/index.js文件中增加导出模块内容&#xff1a;三、src/pages/api/下根据目录添加接口方法文件&#xff1a;四、构建项目&#xff0c;启动。1、到umami目录&a…

基于SpringBoot的实验室信息管理系统【源码+文档+部署讲解】

系统介绍 视频演示 基于SpringBootVue实现的实验室信息管理系统采用前后端分离的架构方式&#xff0c;系统分为管理员、老师、用户三种角色&#xff0c;实现了用户管理、设备管理、实验室查询、公告、课程、实验室耗材管理、我的等功能 技术选型 开发工具&#xff1a;idea2…

【openGauss】正则表达式次数符号“{}“在ORACLE和openGauss中的差异

一、前言 正则作为一种常用的字符串处理方式&#xff0c;在各种开发语言&#xff0c;甚至数据库中&#xff0c;都有自带的正则函数。但是正则函数有很多标准&#xff0c;不同标准对正则表达式的解析方式不一样&#xff0c;本次在迁移一个ORACLE数据库到openGauss时发现了一个关…

SSM-Spring-IOC/DI对应的配置开发

目录 一、IOC 控制反转 1.什么是控制反转呢 2. Spring和IOC之间的关系是什么呢? 3.IOC容器的作用以及内部存放的是什么? 4.当IOC容器中创建好service和dao对象后&#xff0c;程序能正确执行么? 5.Spring 容器管理什么内容&#xff1f; 6.如何将需要管理的对象交给 …

docker中使用nginx

宿主机和docker中nginx做映射 宿主机中nginx 映射目录 /root/myDockerData/devnginx 在容器中相关位置分别是&#xff1a; 配置文件位置&#xff1a;/etc/nginx/ 日志位置&#xff1a;/var/log/nginx/ 项目位置&#xff1a;/usr/share/nginx/html 如下配置启动命令行&#x…

Rocky Linux下安装meld

背景介绍&#xff1a; meld是一款Linux系统下的用于 文件夹和文件的比对软件&#xff0c;非常常用&#xff1b; 故障现象&#xff1a; 输入安装命令后&#xff0c;sudo yum install meld&#xff0c;报错。 12-31 22:12:17 ~]$ sudo yum install meld Last metadata expirat…

Python中PDF转Word的技术

Python PDF转Word技术概述 在日常办公和数据处理中&#xff0c;经常需要将PDF文档转换为Word文档&#xff0c;以便进行编辑、修改或格式调整。Python作为一种强大的编程语言&#xff0c;提供了多种库和工具来实现这一功能。以下是对Python中PDF转Word技术的详细介绍。 一、技…

混合并行训练框架性能对比

混合并行训练框架性能对比 1. 框架类型 DeepSpeed、Megatron - LM、Colossal - AI、SageMaker、Merak、FasterMoE、Tutel、Whale、Alpa、DAPPLE、Mesh - TensorFlow 2. 可用并行性(Available parallelisms) DNN framework(深度神经网络框架)DP(数据并行,Data Parallelis…

python24-常用的第三方库02:openpyxl模块、pdfplumber模块

一、openpyxl模块 openpyxl 是一个用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库。 它允许你以编程方式操作 Excel 文件&#xff0c;包括创建新的工作簿、修改现有的工作簿、添加或删除工作表、读写单元格数据等。 1-1、安装openpyxl模块 验证&#xff1a…

npm ERR! ECONNRESET 解决方法

问题&#xff1a;npm 命令遇到的错误是 ECONNRESET&#xff0c;这通常与网络连接问题相关。设置代理解决问题。 一、查看当前代理设置 npm config get proxy npm config get https-proxy二、设置代理 npm config set proxy http://your-proxy-address:port npm config set h…

单元测试3.0+ @RunWith(JMockit.class)+mock+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上面, 一般用实现类 Injectable 在测试案例中声明…

网络渗透测试实验二:网络嗅探与身份认证

1.实验目的和要求 1、通过使用Wireshark软件掌握Sniffer&#xff08;嗅探器&#xff09;工具的使用方法&#xff0c;实现捕捉HTTP等协议的数据包&#xff0c;以理解TCP/IP协议中多种协议的数据结构、通过实验了解HTTP等协议明文传输的特性。 2、研究交换环境下的网络嗅探实现…

mqtt连接onenet云平台

密码 version2018-10-31&resproducts%2FlzNd7drwE2%2Fdevices%2Flocation_1&et1756617761&methodmd5&sign52jsIUhK7i2zXjlEtkwDhQ%3D%3D 设备名称&#xff1a;temperatureAndHumidity 设备密钥&#xff1a;bE5OSHBlTHU3TDNSUUVoTmY0WWZqbThDVzNjOUJ3Y1Y 产品i…

Neo4j GDS 2.0 安装与配置

Neo4j GDS 2.0 安装与配置 GDS插件安装&#xff1a;Neo4j官方文档 1. GDS简介 Neo4j Graph Data Science (GDS) 库作为 Neo4j Graph Database 的插件提供。该插件需要安装到数据库中并在 Neo4j 配置中列入白名单。有两种主要方法可以实现这一点&#xff0c;我们将在本章中详…