Python控制臺輸出彩色字體指南

在Python開發中,有時我們需要在控制臺輸出彩色文本以提高可讀性或創建更友好的用戶界面。本文將介紹如何使用colorama庫來實現這一功能。

在這里插入圖片描述

為什么需要彩色輸出?

  • 提高可讀性:重要信息可以用不同顏色突出顯示
  • 更好的用戶體驗:錯誤信息用紅色,成功信息用綠色,直觀明了
  • 調試輔助:不同級別的日志可以用不同顏色區分

使用colorama庫

colorama是一個Python庫,可以跨平臺(Windows/Linux/Mac)實現彩色文本輸出。

安裝colorama

pip install colorama

基本使用

from colorama import init, Fore, Back, Style# 初始化colorama (Windows必需)
init(autoreset=True)print(Fore.RED + '這是紅色文本')
print(Back.GREEN + '這是綠色背景')
print(Style.BRIGHT + '這是加亮文本')

顏色常量

colorama提供了以下幾種顏色常量:

  • 前景色(Fore): BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE
  • 背景色(Back): 同上
  • 樣式(Style): DIM, NORMAL, BRIGHT, RESET_ALL

封裝彩色打印函數

為了更方便地使用彩色輸出,我們可以封裝一個打印函數:

from colorama import init, Fore# 初始化colorama
init(autoreset=True)# 定義顏色映射表
color_map = {"red": Fore.RED,"green": Fore.GREEN,"blue": Fore.BLUE,"yellow": Fore.YELLOW,"magenta": Fore.MAGENTA,"cyan": Fore.CYAN,"white": Fore.WHITE,"black": Fore.BLACK
}def print_color(text, color):"""打印彩色文本參數:text (str): 要打印的文本color (str): 顏色名稱(red, green, blue等)"""if color.lower() in color_map:print(color_map[color.lower()] + text)else:print("不支持的顏色,請選擇以下顏色之一:")print(", ".join(color_map.keys()))# 使用示例
print_color("這是紅色警告信息", "red")
print_color("操作成功完成", "green")
print_color("這是一條調試信息", "blue")

高級用法

組合顏色和樣式

print(Fore.RED + Back.WHITE + Style.BRIGHT + "紅底白字加亮文本")

自動重置樣式

設置autoreset=True后,每次打印后樣式會自動重置,避免影響后續輸出。

在Windows上的注意事項

在Windows上使用前必須調用init(),其他平臺則不需要但調用也無害。

替代方案

除了colorama,還有其他庫可以實現彩色輸出:

  1. termcolor

    from termcolor import colored
    print(colored('Hello', 'red'))
    
  2. ANSI轉義碼(不推薦,兼容性差)

    print("\033[31m這是紅色文本\033[0m")
    

總結

使用colorama庫是在Python中實現跨平臺彩色輸出的最佳實踐。它簡單易用,能顯著提升控制臺應用的用戶體驗。通過封裝類似print_color這樣的函數,可以更方便地在項目中使用彩色輸出功能。

創作不易,如果您都看到這里了,可以給我一個點贊、收藏并關注一下么?您的支持與喜愛是激勵我創作的最大動力!
希望這篇指南能幫助你在Python項目中實現漂亮的彩色輸出!
如果內容有誤請及時聯系我進行修改!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/86114.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/86114.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/86114.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

chili3d 筆記17 c++ 編譯hlr 帶隱藏線工程圖

這個要注冊不然emscripten編譯不起來 --------------- 行不通 ---------------- 結構體 using LineSegment std::pair<gp_Pnt, gp_Pnt>;using LineSegmentList std::vector<LineSegment>; EMSCRIPTEN_BINDINGS(Shape_Projection) {value_object<LineSegment&g…

【Java開發日記】說一說 SpringBoot 中 CommandLineRunner

目錄 1、CommandLineRunner SpringBoot中CommandLineRunner的作用 簡單例子 多個類實現CommandLineRunner接口執行順序的保證 通過實現Ordered接口實現控制執行順序 通過Order注解實現控制執行順序 Order 作用 2、ApplicationRunner 3、傳遞參數 4、源碼跟蹤 run()方…

為什么React列表項需要key?(React key)(穩定的唯一標識key有助于React虛擬DOM優化重繪大型列表)

文章目錄 1. **幫助 React 識別列表項的變化**2. **性能優化**3. **避免組件狀態混亂**4. **為什么使用 rpid 作為 key**5. **不好的做法示例**6. **? 正確的做法** 在 React 中添加 key{item.rpid} 是非常重要的&#xff0c;主要有以下幾個原因&#xff1a; 1. 幫助 React 識…

算法筆記2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.創建List<>類型的數組并創建內存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>());

DeepSeek09-open-webui使用

Open WebUI 完全指南&#xff1a;從安裝到知識庫搭建與異常處理 最后更新&#xff1a;2025年6月7日 | 適用版本&#xff1a;Open WebUI v0.6.x 一、安裝部署 1.1 系統要求 **Python 3.12 **&#xff08;嚴格版本要求&#xff0c;更高版本3.13不兼容&#xff09;Node.js 20.x內…

前端面試五之vue2基礎

1.屬性綁定v-bind&#xff08;&#xff1a;&#xff09; v-bind 是 Vue 2 中用于動態綁定屬性的核心指令&#xff0c;它支持多種語法和用法&#xff0c;能夠靈活地綁定 DOM 屬性、組件 prop&#xff0c;甚至動態屬性名。通過 v-bind&#xff0c;可以實現數據與視圖之間的高效同…

408第一季 - 數據結構 - 棧與隊列

棧 閑聊 棧是一個線性表 棧的特點是后進先出 然后是一個公式 比如123要入棧&#xff0c;一共有5種排列組合的出棧 棧的數組實現 這里有兩種情況&#xff0c;&#xff0c;一個是有下標為-1的&#xff0c;一個沒有 代碼不用看&#xff0c;真題不會考 棧的鏈式存儲結構 L ->…

Linux(14)——庫的制作與原理

庫制作與原理技術文章大綱 庫的基本概念與分類 定義&#xff1a;庫&#xff08;Library&#xff09;在編程中的核心作用與意義分類&#xff1a;靜態庫&#xff08;Static Library&#xff09;、動態庫&#xff08;Dynamic Library&#xff09;的差異與應用場景常見示例&#…

2025政務服務便民熱線創新發展會議順利召開,張晨博士受邀分享

5月28日&#xff0c;由新華社中國經濟信息社、新華社廣東分社聯合主辦的2025政務服務便民熱線創新發展暨“人工智能熱線”會議在廣州舉行。會議圍繞“人工智能與新質熱線”主題&#xff0c;邀請全國的12345政務服務便民熱線主管部門負責人、省市熱線負責人和專家學者&#xff0…

AI驅動的B端頁面革命:智能布局、數據洞察的底層技術解析

摘要 ** 當企業 B 端系統的頁面還在依賴設計師反復調整布局&#xff0c;靠人工熬夜分析數據時&#xff0c;競爭對手已借助 AI 實現頁面的自動優化與智能決策。為何有的 B 端系統界面混亂&#xff0c;操作繁瑣&#xff0c;而 AI 賦能的頁面卻能精準適配用戶需求&#xff0c;秒…

大故障:阿里云核心域名爆炸了

大故障&#xff1a;阿里云核心域名被拖走了 今天早上許多群里出現網站故障的討論&#xff0c;比如 cnblogs 全國訪問一片紅&#xff0c;一看原來是阿里云又出故障了。 今天早上許多群里出現網站故障的討論&#xff0c;比如 cnblogs 全國訪問一片紅&#xff0c;一看原來是阿里云…

第1講、包管理和環境管理工具Conda 全面介紹

1. Conda 的背景與核心概念 1.1 什么是 Conda&#xff1f; Conda 是一個開源的、跨平臺的、語言無關的包管理和環境管理系統。它最初由 Anaconda 公司開發&#xff0c;旨在解決 Python 數據科學家面臨的包管理挑戰&#xff0c;但現在已經發展成為一個適用于多種編程語言的通用…

第4天:RNN應用(心臟病預測)

&#x1f368; 本文為&#x1f517;365天深度學習訓練營 中的學習記錄博客&#x1f356; 原作者&#xff1a;K同學啊 目標 具體實現 &#xff08;一&#xff09;環境 語言環境&#xff1a;Python 3.10 編 譯 器: PyCharm 框 架: Pytorch &#xff08;二&#xff09;具體步驟…

STM32學習筆記:外部中斷(EXTI)原理與應用詳解

前言 在嵌入式系統開發中&#xff0c;中斷機制是提高系統實時性和效率的重要手段。相比傳統的51單片機&#xff0c;STM32微控制器提供了更為豐富和靈活的外部中斷資源。本文將全面介紹STM32的外部中斷(EXTI)功能&#xff0c;包括其工作原理、配置方法和實際應用技巧。 一、外…

嵌入式知識篇---Zigbee串口

在 Python 中&#xff0c;serial和pyserial是經常被提及的兩個庫&#xff0c;它們在串口通信方面有著緊密的聯系&#xff0c;但又存在一些差異。下面將對它們進行詳細介紹&#xff0c;并給出各自的適用場景。 1. 基本概念 pyserial&#xff1a;它是 Python 里專門用于串口通信…

vue中的派發事件與廣播事件,及廣播事件應用于哪些場景和一個表單驗證例子

在 Vue 2.X 中&#xff0c;$dispatch 和 $broadcast 方法已經被廢棄。官方認為基于組件樹結構的事件流方式難以理解&#xff0c;并且在組件結構擴展時容易變得脆弱。因此&#xff0c;Vue 2.X 推薦使用其他方式來實現組件間的通信&#xff0c;例如通過 $emit 和 $on 方法&#x…

阿里云事件總線 EventBridge 正式商業化,構建智能化時代的企業級云上事件樞紐

作者&#xff1a;肯夢、稚柳 產品演進歷程&#xff1a;在技術浪潮中的成長之路 早在 2018 年&#xff0c;Gartner 評估報告便將事件驅動模型&#xff08;Event-Driven Model&#xff09;列為十大戰略技術趨勢之一&#xff0c;指出事件驅動架構&#xff08;EDA&#xff0c;Eve…

《前端面試題:BFC(塊級格式化上下文)》

前端BFC完全指南&#xff1a;布局魔法與面試必備 &#x1f38b; 端午安康&#xff01; 各位前端探險家&#xff0c;端午節快樂&#xff01;&#x1f96e; 愿你的代碼如龍舟競渡般乘風破浪&#xff0c;樣式如香糯粽子般完美包裹&#xff01;今天我們來解鎖CSS中的布局魔法——B…

dvwa10——XSS(DOM)

XSS攻擊&#xff1a; DOM型XSS 只在瀏覽器前端攻擊觸發&#xff1a;修改url片段代碼不存儲 反射型XSS 經過服務器攻擊觸發&#xff1a;可能通過提交惡意表單&#xff0c;連接觸發代碼不存儲 存儲型XSS 經由服務器攻擊觸發&#xff1a;可能通過提交惡意表單&#xff0c;連…

跨平臺資源下載工具:res-downloader 的使用體驗

一款基于 Go Wails 的跨平臺資源下載工具&#xff0c;簡潔易用&#xff0c;支持多種資源嗅探與下載。res-downloader 一款開源免費的下載軟件(開源無毒、放心使用)&#xff01;支持Win10、Win11、Mac系統.支持視頻、音頻、圖片、m3u8等網絡資源下載.支持視頻號、小程序、抖音、…