Python print 高阶玩法

Python print 高阶玩法

当涉及到在Python中使用print函数时,有许多方式可以玩转文本样式、字体和颜色。在此将深入探讨这些主题,并介绍一些print函数的高级用法。

1. 基本的文本样式与颜色设置

使用ANSI转义码

ANSI转义码是一种用于在终端(命令行)中控制文本样式、颜色和其他属性的特殊字符序列。这些码由一系列以\033[开头的字符组成,后面跟着具体的控制参数。在Python中,可以使用这些转义码来实现在控制台中输出带有特定样式和颜色的文本。

ANSI转义码的基本结构

ANSI转义码通常由以下结构组成:

  • \033[:转义序列的起始部分,表示以转义序列开始。
  • 参数1;参数2;...m:以分号分隔的参数列表,控制文本的样式和颜色。
  • m:表示转义序列的结束。
常用的ANSI转义码参数
  • 重置样式:
    • \033[0m:重置所有样式和颜色,将文本恢复为默认状态。
  • 文本样式:
    • \033[1m:粗体(加粗)
    • \033[3m:斜体
    • \033[4m:下划线
    • \033[7m:反显(将前景色和背景色交换)
  • 文本颜色:
    • \033[30m:黑色
    • \033[31m:红色
    • \033[32m:绿色
    • \033[33m:黄色
    • \033[34m:蓝色
    • \033[35m:紫色
    • \033[36m:青色
    • \033[37m:白色
  • 背景颜色:
    • \033[40m:黑色背景
    • \033[41m:红色背景
    • \033[42m:绿色背景
    • \033[43m:黄色背景
    • \033[44m:蓝色背景
    • \033[45m:紫色背景
    • \033[46m:青色背景
    • \033[47m:白色背景

ANSI转义码是一种在终端中控制文本样式和颜色的方式。下面是一些常见的ANSI转义码:

  • 样式重置

    RESET = '\033[0m'  # 重置所有样式和颜色
    
  • 文本样式

    BOLD = '\033[1m'   # 粗体
    ITALIC = '\033[3m' # 斜体
    UNDERLINE = '\033[4m' # 下划线
    
  • 文本颜色

    BLACK = '\033[30m'
    RED = '\033[31m'
    GREEN = '\033[32m'
    YELLOW = '\033[33m'
    BLUE = '\033[34m'
    PURPLE = '\033[35m'
    CYAN = '\033[36m'
    WHITE = '\033[37m'
    
示例代码:
# 设置样式和颜色
text_style = '\033[1;31;47m'  # 以红色前景和白色背景显示文字
reset_style = '\033[0m'  # 重置样式# 打印带样式的文本
print(f"{text_style}这是带样式的文本{reset_style}")

在这里插入图片描述

2. 使用第三方库提供更多功能

Colorama库

Colorama是一个流行的库,可在不同操作系统上实现彩色输出。

安装Colorama:
pip install colorama
示例代码:
from colorama import Fore, Back, Style, init# 初始化Colorama
init()# 打印不同颜色的文本
print(f"{Fore.RED}红色文本{Style.RESET_ALL}")
print(f"{Back.GREEN}绿色背景{Style.RESET_ALL}")
print(f"{Style.BRIGHT}加亮的文本{Style.RESET_ALL}")

在这里插入图片描述

3. print函数的高级用法

格式化字符串

使用格式化字符串可以将变量和文本组合成一个字符串。示例代码:

name = "Alice"
age = 30
print(f"姓名:{name},年龄:{age}")
输出到文件

print函数还可以将内容输出到文件中,而不只是控制台。示例代码:

with open("output.txt", "w") as file:print("这段文字将会写入文件", file=file)
格式化打印

可以使用format函数或%操作符进行字符串格式化打印,这有助于按照指定格式输出内容。示例代码:

number = 3.14159
print("圆周率是 {:.2f}".format(number))  # 保留两位小数输出
print("圆周率是 %.2f" % number)  # 使用%操作符的格式化输出
使用endsep参数

print函数还有endsep参数,可以自定义输出结束时的字符和分隔符。示例代码:

print("A", "B", "C", sep=", ", end="---\n")

这些技巧提供了一些基础知识,可以在Python中玩转print函数的多样功能。值得注意的是,不同的方法适用于不同的场景,选择适合需求的方法进行文本样式、颜色设置和高级打印操作。

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

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

相关文章

C#中的静态字段double.Epsilon

double.Epsilon 是C#中的一个静态字段,表示 double 数据类型的最小可表示的正数值。它的值为 4.94065645841247e-324。 在浮点数表示中,存在着精度有限的问题,即使是双精度浮点数 double 也无法表示所有的实数。由于浮点数的存储方式&#x…

【JVM线上故障排查】

对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢&…

【Vue3+Ts项目】硅谷甄选 — 品牌管理模块+平台属性管理模块

一、品牌管理模块 1.1 静态模块搭建 使用到element-plus的card、button、table、pagination等组件&#xff1a;src/views/product/trademark/index.vue <template><el-card><!-- 卡片顶部添加品牌按钮 --><el-button type"primary" size&quo…

k8s的集群调度---下

前情回顾 预算策略&#xff1a;过滤出合适的节点 优选策略&#xff1a;选择部署的节点 nodeName&#xff1a;硬匹配&#xff0c;不走调度策略。node01. nodeSelector&#xff1a;根据节点的标签选择&#xff0c;会走调度算法。 只要是走调度算法&#xff0c;在不满足预算策…

计算机图形学流体模拟 blender 渲染脚本

做流体模拟的时候&#xff0c;想要复现别人的成果&#xff0c;但是别人的代码都是每帧输出 ply 格式的文件&#xff0c;渲染部分需要自己完成 看了一下&#xff0c;似乎用 blender 是最简单的&#xff0c;于是记录一下过程中用到的代码 Blender 版本 4.0 批量导入 ply 假设…

LeetCode 31. 下一个排列

31. 下一个排列 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正…

【hcie-cloud】【17】华为云Stack灾备服务介绍【灾备方案概述、备份解决方案介绍】【上】

文章目录 前言灾备方案概述灾备的定义灾备的重要性故障和灾难对业务连续性带来的挑战灾备系统的衡量指标RTO与RPO分析 灾备等级标准数据中心容灾解决方案全景图云灾备服务总结架构华为云Stack灾备服务总览 备份解决方案介绍云备份服务介绍备份服务架构介绍云备份服务组件功能介…

Oracle19c文档 tnsnames.ora (三)

官网地址&#xff1a;Local Naming Parameters in the tnsnames.ora File 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 6.9连接数据部分 了解如何使用协议地址配置网络连接。 网络对象由协议地址标识。建立连接…

记录尝试投向不同的岗位——信息化专员——感想

1.保持随时响应的铃声 因为手机开启了远离手机的模式&#xff0c;然后会自动的把手机开启勿扰模式&#xff0c;导致对方打电话过来两次手机都没有响铃&#xff0c;本来就与岗位的匹配度低&#xff0c;然后没接到电话&#xff0c;这样连约面试的机会都没有。 人事提问 1.做过o…

210. 课程表 II(拓扑排序)

根据课程之间的关系构造一个有向图&#xff0c;题目要求求解是否能按照顺序学完所有课程&#xff0c;即判断这个有向图是否是有向无环图&#xff0c;如果是求出这个图的拓扑排序&#xff0c;如果不是返回[0] 求这个图的拓扑排序可以按照以下思路&#xff1a; 对于每个节点都有…

linux查找文件中的指定字符,并批量替换文件中指定字符

1、grep -rl “jquery-1.8.0.min.js” /opt 查找/opt 目录下存在jquery-1.8.0.min.js的文件 [rootlocalhost file1]# grep -rl "jquery-1.8.0.min.js" /opt /opt/file1/index.xhtml /opt/file2/index.xhtml /opt/shell.sh扩展&#xff1a;使用该命令可以查找文件中…

DevEco Studio预览时报错:Build task failed. Open the Run window to view details.

图一&#xff1a; 解决方案 图二 &#xff1a; 图三&#xff1a; 按照以上图示步骤&#xff0c;去掉图三中3号标记的勾选

Android-消息机制Handler

Handler的机制:Android 消息传递机制就是handler。在多线程的应用场景中&#xff0c;将工作线程中需更新UI的操作信息 传递到 UI主线程&#xff0c;从而实现对UI的更新处理&#xff0c;最终实现异步消息的处理。多个线程并发更新UI的同时 保证线程安全。Handler只是一个入口&am…

Android studio ListView应用设计

一、添加ListView控件: <ListViewandroid:id="@+id/listView"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintTop_toTopOf=&qu…

Android开发 基于ARouter开源的路由框架的YmRouter

一、ARouter的简介 ARouter是一个用于Android的路由框架&#xff0c;它能够帮助开发者实现组件之间的通信和页面跳转。 ARouter的核心原理是通过注解来标记和生成路由映射表。开发者只需要在需要跳转的页面上添加注解&#xff0c;然后在代码中通过路由表找到对应的页面进行跳…

/usr/bin/ld: error: ../../lib/libnvinfer.so: file too short

一、背景 在编译TensorRT官方的C库时&#xff0c;库里是提供了命令行工具bin文件夹下的可执行程序trtexec&#xff0c;可以直接进行onnx的fp16以及int8量化&#xff0c;但我模型的输入是5维&#xff0c;模型里面全都是3D卷积&#xff0c;所以要对底层头文件进行修改。重新编译…

Python词云wordcloud库不显示中文

博主之前在项目中发现Python的词云库wordcloud显示的都是方框&#xff0c;别担心&#xff0c;我有一个妙招让你的中文词云变得美观又清晰&#xff01; 问题 wordcloud是一个基于python的词云生成库&#xff0c;它可以让你用简单的代码创建出各种形状和颜色的词云图像。 word…

工业数据采集分析——工厂大脑 提升综合经济效益

随着企业对数字化的认知越来越清晰&#xff0c;对工业数智化的战略越来越明确&#xff0c;企业的诉求也在发生转变。中国的工业企业经过近几十年的发展&#xff0c;自动化、信息化&#xff0c;以及一些基础的数据系统建设在不同的行业中慢慢地推进。近几年&#xff0c;工业企业…

STM32CubeMX配置STM32G031多通道UART+DMA收发数据(HAL库开发)

时钟配置HSI主频配置64M 配置好串口&#xff0c;选择异步模式 配置DMA TX,RX,选择循环模式。 NVIC中勾选使能中断 勾选生成独立的.c和h文件 配置好需要的开发环境并获取代码 串口重定向勾选Use Micro LIB main.c文件修改 增加头文件和串口重定向 #include <string.h&g…