打印进度条

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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员爱德华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值