python 中英文输出 对齐
目录)
- 问题描述
- 问题
- 最初代码:
- 最初格式
- 原因
- 解决方法一
- 代码:
- 格式
- 解决方法二 (wrong 只是巧合)
- 代码
- 格式
- 参考文章
问题描述
问题
products = [["iphone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]]
将列表中的数据按图中格式对齐
最初代码:
products = [["iphone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]]print("------\t商品格式\t------")
for i in range(len(products)):print(i,"\t", products[i][0], "\t", products[i][1])
最初格式
原因
中文1个字符的宽度 = 2个ASCII符号的宽度
。
若有两字符串度相同(len函数的返回值),但如果其中一个字符串中含有中文,那他们的长度就不同。
string1 = "abcdefg"
string2 = "abcde一二"print(len(string1))
print(len(string2))print("*%10s*" % string1)
print("*%10s*" % string2)
解决方法一
定义一个函数,遇到中文便自动调整输出的格式中规定的长度
代码:
# 汉字占两英文宽,则每存在一个汉字少填充一个长度
def pad_len(string, length):return length - len(string.encode('GBK')) + len(string)products = [["iphone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]]print("---- 商品格式 ----")
for i in range(len(products)):#print("%-2d%-10s%10d" % (i, products[i][0], products[i][1])) # 遇到中文会对不齐print("{0:<{len1}}\t{1:<{len2}}\t{2:<{len3}}".format(i, products[i][0], products[i][1], len1=2,len2 = pad_len(products[i][0], 10), len3 = 10))
格式
解决方法二 (wrong 只是巧合)
不知道原理, 当字符串中只有两个中文字符时 “\t” 会使两字符串对齐
比如一开始举的例子
string1 = "abcdefg"
string2 = "abcde一二"print(len(string1))
print(len(string2))print("*\t%10s\t*" % string1)
print("*\t%10s\t*" % string2)
但当一字符串中中文字符大于两个时,就对不齐了。
string1 = "abcdefg"
string2 = "abcd一二三"print(len(string1))
print(len(string2))print("*\t%10s\t*" % string1)
print("*\t%10s\t*" % string2)
代码
products = [["iphone", 6888], ["MacPro", 14800], ["小米6", 2499], ["Coffee", 31], ["Book", 60], ["Nike", 699]]print("------\t商品格式\t------")
for i in range(len(products)):print(i, end='\t')print(products[i][0], end='\t')print(products[i][1], end='\n')
格式
参考文章
解决方法一: Python中英文对齐终极解决方案
---------------- 更新 ------------------------
看到了大佬的文章, 很有用!!!
python str.format与制表符\t关于中文对齐的细节问题
python 中英文输出 对齐相关推荐
- python prettytable输出对齐_Python 使用 prettytable 库打印表格美化输出功能
pip install prettytable 每次添加一行 from prettytable import PrettyTable # 默认表头:Field 1.Field 2... # 添加表头 ...
- python prettytable输出对齐,Python使用prettytable库打印表格(美化输出)
pip install prettytable 每次添加一行 from prettytable import PrettyTable # 默认表头:Field 1.Field 2... # 添加表头 ...
- 关于python格式对齐的问题_python字符串format中英文空格对齐问题
python2.6之后format通过{}和:来代替% format函数格式化字符串的用法 print('{0},{1}'.format('zhangk', 32)) #zhangk,32 print ...
- Python格式化输出方法
Python格式化输出 本文转自:Python格式化输出 今天写程序又记不清格式化输出细节了--= =索性整理一下. python print格式化输出. 1. 打印字符串 print (" ...
- python花式输出_关于python字符串format的一些花式用法
目录: 前提: python中字符串的format功能非常强大,可以说完全能够替代其他的字符串使用方法,但是在后期的项目开发中使用的并不是特别的多, 以至于想用的时候会想不起来准确的使用方法,所以在这 ...
- python格式化输出
python格式化输出 格式化输出规范1(, + ): print( ) 打印输出函数是在开发中用得很多的函数,代表输出并换行. 1.print(字符常量 + 字符变量) 说明:+ 加号仅用于连接两个 ...
- python格式化输出(二)--字符串的格式化输出
** 字符串的格式化输出 ** 1.使用占位符 (1)三个常用占位符用法 ①d:将整数.浮点数转换成十进制表示.取整,不进行四舍五入. ②f:将整数.浮点数转换成浮点数表示,默认保留小数点后6位,四 ...
- Python(输出)
1. Python的输出 1.1 第一个Python程序#encoding=UTF-8 //设置字符集为UTF-8,Python2不支持中文,Python3支持def main():print('he ...
- python的输出命令是什么意思_python输出语句print的用法是什么?_后端开发
php异常处理函数有哪些_后端开发 php异常处理函数有"set_exception_handler",该函数用于设置用户自定义的异常处理函数,也用于创建运行期间的用户自己的异常处 ...
最新文章
- 关于大数据技术的演讲_大数据以及大数据技术都包括哪些内容
- Github 总结!「Java知识体系详细汇总2021版」开放下载了!
- 131、ThreadLocal (转载)
- java jdk windows环境 下载安装配置环境变量
- DL之CNN:计算机视觉之卷积神经网络经典算法简介、重要进展、改进技巧之详细攻略(建议收藏)
- Java的Map遍历
- Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
- 梯度下降法、最速下降法
- 超好看的动态流量卡官网源码多功能集成式源码
- ceph关闭同步之后的故障记录
- iOS 应用的启动流程和优化详解
- linux 复 带进度条
- 转载:数据库应用开发工具Toad使用笔记
- php网站开发实例教程源码,PHP+MYSQL网站开发全程实例
- AutoCad vba宏 用于线路设计方面简化工作量 明白的拿走
- linux 硬盘坏块检测,Linux上检测硬盘上的坏道和坏块
- python二维随机游走_Python模拟随机游走图形效果示例
- ReactOS研究班
- windows关机与重启bat脚本
- 使用GDI+实现动态设置分级断点值
热门文章
- Matlab:船舶航向舵数学模型构建
- 简单几步骤查询所有快递物流信息
- 【PCBA方案设计】红外测温仪电子温度计方案开发
- 一步步指导 AI 画一幅中国山水画
- 博弈——悼念512汶川大地震遇难同胞——选拔志愿者(巴什博弈)
- 2000-2019年280多个地级市就业人数数据(全市)/城市就业数据
- 用python搭建微商城_python框架Django实战商城项目之工程搭建
- 机器学习实战:小麦种子(封装函数进行调参、标准化、绘图查看数据分布)
- linux 内存 active,解读vmstat中的ACTIVE/INACTIVE MEMORY
- 批量下载百度搜索图片+labelimg制作自己的数据集+转换至Yolo-v5训练数据集