首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印格式空格

打印格式空格
EN

Stack Overflow用户
提问于 2022-03-05 23:22:31
回答 1查看 76关注 0票数 0

我试图创建一个新的打印功能,这样它就可以打印彩色文本。"\033[1;31m"使光标打印为红色,而"\033[0;0m"则将其恢复。

颜色的改变工作得很完美,但是内置的打印功能是在每个实例之间打印一个空间。怎样才能避免这个空间?

我知道sepend,但是使用sep=''会改变整个打印函数的行为。我只想在最左边的字母和空白处之间没有差距。

代码语言:javascript
复制
from builtins import print as b_print

def print(*args, **kwargs):
    b_print("\033[1;31m", *args, "\033[0;0m", **kwargs)

输出

代码语言:javascript
复制
print("Hello world")
>>><Space><red>Hello world</red>

必填项

代码语言:javascript
复制
>>><red>Hello world</red>

什么不起作用

代码语言:javascript
复制
b_print("\033[1;31m", '\r', *args, "\033[0;0m", **kwargs)
# as there will be one more tab after \r

b_print("\033[1;31m", *args, "\033[0;0m", **kwargs, sep='')
# as it enforces seperator to be '' between all the args.
from builtins import print as p

b_print("\033[1;31m", '\b', *args,"\033[0;0m", **kwargs)
# as creating a new argument create a new space character
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-05 23:40:09

您必须手动完成更多的工作:接受sep参数,将*args转换为str,并加入sep

代码语言:javascript
复制
from builtins import print as b_print

def print(*args, sep=' ', **kwargs):
    b_print("\033[1;31m" + sep.join(map(str, args)) + "\033[m", **kwargs)

print("Hello", "world", 7, sep='-')

演示:

代码语言:javascript
复制
print("Hello", "world", 7, sep='-', end='x')

产出如下:

代码语言:javascript
复制
<red>Hello-world-7</red>x
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71366663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档