目录)

  • 问题描述
    • 问题
    • 最初代码:
    • 最初格式
    • 原因
  • 解决方法一
    • 代码:
    • 格式
  • 解决方法二 (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 中英文输出 对齐相关推荐

  1. python prettytable输出对齐_Python 使用 prettytable 库打印表格美化输出功能

    pip install prettytable 每次添加一行 from prettytable import PrettyTable # 默认表头:Field 1.Field 2... # 添加表头 ...

  2. python prettytable输出对齐,Python使用prettytable库打印表格(美化输出)

    pip install prettytable 每次添加一行 from prettytable import PrettyTable # 默认表头:Field 1.Field 2... # 添加表头 ...

  3. 关于python格式对齐的问题_python字符串format中英文空格对齐问题

    python2.6之后format通过{}和:来代替% format函数格式化字符串的用法 print('{0},{1}'.format('zhangk', 32)) #zhangk,32 print ...

  4. Python格式化输出方法

    Python格式化输出 本文转自:Python格式化输出 今天写程序又记不清格式化输出细节了--= =索性整理一下. python print格式化输出. 1. 打印字符串 print (" ...

  5. python花式输出_关于python字符串format的一些花式用法

    目录: 前提: python中字符串的format功能非常强大,可以说完全能够替代其他的字符串使用方法,但是在后期的项目开发中使用的并不是特别的多, 以至于想用的时候会想不起来准确的使用方法,所以在这 ...

  6. python格式化输出

    python格式化输出 格式化输出规范1(, + ): print( ) 打印输出函数是在开发中用得很多的函数,代表输出并换行. 1.print(字符常量 + 字符变量) 说明:+ 加号仅用于连接两个 ...

  7. python格式化输出(二)--字符串的格式化输出

    ** ​字符串的格式化输出 ** 1.使用占位符 (1)三个常用占位符用法 ①d:将整数.浮点数转换成十进制表示.取整,不进行四舍五入. ②f:将整数.浮点数转换成浮点数表示,默认保留小数点后6位,四 ...

  8. Python(输出)

    1. Python的输出 1.1 第一个Python程序#encoding=UTF-8 //设置字符集为UTF-8,Python2不支持中文,Python3支持def main():print('he ...

  9. python的输出命令是什么意思_python输出语句print的用法是什么?_后端开发

    php异常处理函数有哪些_后端开发 php异常处理函数有"set_exception_handler",该函数用于设置用户自定义的异常处理函数,也用于创建运行期间的用户自己的异常处 ...

最新文章

  1. 关于大数据技术的演讲_大数据以及大数据技术都包括哪些内容
  2. Github 总结!「Java知识体系详细汇总2021版」开放下载了!
  3. 131、ThreadLocal (转载)
  4. java jdk windows环境 下载安装配置环境变量
  5. DL之CNN:计算机视觉之卷积神经网络经典算法简介、重要进展、改进技巧之详细攻略(建议收藏)
  6. Java的Map遍历
  7. Objective-C ,ios,iphone开发基础:picker控件详解与使用,(实现省市的二级联动)
  8. 梯度下降法、最速下降法
  9. 超好看的动态流量卡官网源码多功能集成式源码
  10. ceph关闭同步之后的故障记录
  11. iOS 应用的启动流程和优化详解
  12. linux 复 带进度条
  13. 转载:数据库应用开发工具Toad使用笔记
  14. php网站开发实例教程源码,PHP+MYSQL网站开发全程实例
  15. AutoCad vba宏 用于线路设计方面简化工作量 明白的拿走
  16. linux 硬盘坏块检测,Linux上检测硬盘上的坏道和坏块
  17. python二维随机游走_Python模拟随机游走图形效果示例
  18. ReactOS研究班
  19. windows关机与重启bat脚本
  20. 使用GDI+实现动态设置分级断点值

热门文章

  1. Matlab:船舶航向舵数学模型构建
  2. 简单几步骤查询所有快递物流信息
  3. 【PCBA方案设计】红外测温仪电子温度计方案开发
  4. 一步步指导 AI 画一幅中国山水画
  5. 博弈——悼念512汶川大地震遇难同胞——选拔志愿者(巴什博弈)
  6. 2000-2019年280多个地级市就业人数数据(全市)/城市就业数据
  7. 用python搭建微商城_python框架Django实战商城项目之工程搭建
  8. 机器学习实战:小麦种子(封装函数进行调参、标准化、绘图查看数据分布)
  9. linux 内存 active,解读vmstat中的ACTIVE/INACTIVE MEMORY
  10. 批量下载百度搜索图片+labelimg制作自己的数据集+转换至Yolo-v5训练数据集