python print ljust 文本对齐打印 对齐打印名册

背景

在python部分场景下,我们需要打印输出一些文本消息,但我们又无法预测可能的打印内容是什么。这种情况下,我们要对齐打印这些文本,是比较比较难以处理的。
例如下面是一列姓名,和对应的一列手机/电话号,现需要将其 姓名: 手机 对齐打印输出

名册 = ['武春梅love', '山田 あすか', '周想', '中村 くみ子', '渡辺 あすか', '崔雷', '张静', '何霞', '鈴木 加奈', '田中 裕美子', '邵淑兰', '赵莉', '刘佳sly']
电话本 = ['031-133-9498', '080-9700-6966', '070-9859-9950', '61-7061-2576', '18551456831', '052-012-1490', '18034381675', '82-2147-9976', '14754190321', '090-8814-3198', '011-083-9078', '15901846831', '13657625569']

预告

本文指在分享一个对齐打印中日姓名和手机号的方法,对比了使用 ljust 方法和使用 DebugInfo 模块方法的打印对齐效果。心急的可以直接运行insCode python代码体验:

这里需要插入 inscode代码,审核中。

ljust 对齐打印法

一般而言,我们最容易想到的办法,就是使用字符串的 ljust 函数来对字符串进行空格补位,但这对于中文, 日文, 英文混合场景下的字符串的处理,是不太理想的。就以上名册和电话本的内容,以下是使用 ljust 方法进行对齐的打印效果:

# -*- coding:UTF-8 -*-# region 引入必要依赖
import os
from DebugInfo.DebugInfo import *
# endregion名册 = ['武春梅', '山田 あすか', '周想', '中村 くみ子', '渡辺 あすか', '崔雷', '张静', '何霞', '鈴木 加奈', '田中 裕美子', '邵淑兰', '赵莉', '刘佳']
电话本 = ['031-133-9498', '080-9700-6966', '070-9859-9950', '61-7061-2576', '18551456831', '052-012-1490', '18034381675', '82-2147-9976', '14754190321', '090-8814-3198', '011-083-9078', '15901846831', '13657625569']print('姓名'.ljust(15), '|', '手机')
for 姓名, 手机 in zip(名册, 电话本):print(姓名.ljust(15), '|', 手机)

以上代码运行得到如下打印输出。姓名和手机号中间的 是为了观察对齐效果而加的。很显示,打印输出的对齐效果是不理想的。
ljust对齐打印中日混合姓名的效果

DebugInfo 模块

下面引入DebugInfo 模块对齐打印姓名和手机。

pip install DebugInfo

以下代码,引入了DebugInfo调试模板对象,我们通过调试模板对齐对齐打印以上姓名和手机,观察打印结果。

from DebugInfo.DebugInfo import *名册 = ['武春梅', '山田 あすか', '周想', '中村 くみ子', '渡辺 あすか', '崔雷', '张静', '何霞', '鈴木 加奈', '田中 裕美子', '邵淑兰', '赵莉', '刘佳']
电话本 = ['031-133-9498', '080-9700-6966', '070-9859-9950', '61-7061-2576', '18551456831', '052-012-1490', '18034381675', '82-2147-9976', '14754190321', '090-8814-3198', '011-083-9078', '15901846831', '13657625569']画板 = 调试模板()  # 准备个画板画板.分隔线.总长度(35).提示内容('DebugInfo 对齐打印效果').修饰(红字).展示()  # 打印一条分隔线画板.添加一行('姓名', '|', '手机').修饰行(青字)  # 表格添加一行, 设为青色, 作为标题
for 姓名, 手机 in zip(名册, 电话本):画板.添加一行(姓名, '|', 手机)  # 把姓名和手机添加到表格上# 展示表格
画板.展示表格()

上面的代码先将姓名和电话一一添加到调试模板对象的表格行中,最后展示表格。打印输出如下:
DebugInfo 调试模板 对象对齐打印中日姓名效果
观察上图中的对齐参考符号 ,姓名和手机号非常漂亮的对齐在了一起。完美实现了对齐打印的目标。

小结

以上就是今天给大家分享的中日姓名对齐打印的方法了,欢迎大家试用,评论。

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

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

相关文章

2023企业网盘产品排行榜揭晓:选择最适合你的企业网盘工具

企业网盘产品已成为企业文件管理协作的主要选择之一,无论是在文件管理方面,还是团队协作上,企业网盘都表现优秀。为了帮助企业选到心怡的企业网盘产品,我们综合了不同的产品测评网站意见,整理了2023企业网盘产品排行榜…

软件测试知识点总结(一)

文章目录 前言一. 什么是软件测试二. 软件测试和软件调试的区别三. 软件测试和研发的区别四. 优秀的测试人员所应该具备的素质总结 前言 在现实生活中的很多场景下,我们都会进行测试。 比如买件衣服,我们需要看衣服是不是穿着好看,衣服材质如…

CV:边缘检测的算法包含 Prewitt、Sobel、Laplacian 和 Canny。

目录 1. 边缘检测(Prewitt) 2. 边缘检测(Sobel) 3. 边缘检测(Laplacian) 3. 边缘检测(Canny) 边缘检测的算法包含 Prewitt、Sobel、Laplacian 和 Canny。 人在图像识别上具有难…

【C++】进一步认识模板

🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、非类型模板参数二、模板的特…

Ubuntu20.04安装SNMP服务

在线安装snmp 1.安装snmp服务 sudo apt-get install updatesudo apt-get install snmp snmpd snmp-mibs-downloader2.重启SNMP服务 sudo /etc/init.d/snmpd restart3.查看snmp配置 sudo grep -Ev ^$|^# /etc/snmp/snmpd.conf 离线安装SNMP (重要) 我…

stm32之USART(总结)

串行通信 UART串口内部结构示意图 普中科技的详细介绍 中断知识补充 代码 #ifndef __USART_H #define __USART_H #include "stdio.h" #include "stm32f10x_usart.h" #define USART1_REC_LEN 200 //定义最大接收字节数 200extern u8 USART1_RX_BUF[US…

手写Spring源码——实现一个简单的spring framework

这篇文章主要带大家实现一个简单的Spring框架,包含单例、多例bean的获取,依赖注入、懒加载等功能。文章内容会持续更新,感兴趣的小伙伴可以持续关注一下。 目录 一、创建Java项目 二、开始实现Spring 1、创建BeanFactory接口 2、创建Appl…

计算机竞赛 基于CNN实现谣言检测 - python 深度学习 机器学习

文章目录 1 前言1.1 背景 2 数据集3 实现过程4 CNN网络实现5 模型训练部分6 模型评估7 预测结果8 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于CNN实现谣言检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&am…

Java—实现多线程程序 | 入门

目录 一、前言 二、基本概念 进程 线程 三、Java多线程实现 java.lang.Thread类 获取线程名字及对象 获取main进程名 Thread currentThread() 四、线程优先级 设置优先级 一、前言 前期入门学习的代码中,全部都是单线的程序,也就是从头到尾…

RabbitMQ---订阅模型-Fanout

1、 订阅模型-Fanout Fanout,也称为广播。 流程图: 在广播模式下,消息发送流程是这样的: 1) 可以有多个消费者 2) 每个消费者有自己的queue(队列) 3) 每个队列都要绑定…

Github的使用指南

首次创建仓库 1.官网创建仓库 打开giuhub官网,右上角点击你的头像,随后点击your repositories 点击New开始创建仓库 如下图为创建仓库的选项解释 出现如下界面就可以进行后续的git指令操作了 2.git上传项目 进入需上传项目的所在目录,打开…

grpc整合Springboot

一、grpc的依赖 <dependencies><dependency><groupId>net.devh</groupId><artifactId>grpc-server-spring-boot-starter</artifactId><version>2.9.0.RELEASE</version></dependency></dependencies><build>…