python:输出内容对不齐怎么办?这篇文章解决大家的数据输出对不齐,不好看的问题
当输出时每一行每一个数据开头对不齐,也对不上顶部数据名!就很烦,我搜了很多解决的方案,终于找到解决方法了,收藏起来,你绝对用得上
·
你一定遇到过下面的输出不好看的问题!
每一行每一个数据开头对不齐,也对不上顶部数据名!就很烦,我搜了很多解决的方案,最后锁定了一篇文章,本文章代码改编自https://blog.csdn.net/qq_37608398/article/details/90637409
经过我的测试,确实好用,但是作者发的是自己的程序的解决方法,因此为了一劳永逸的解决同学们的烦恼,我把它万能化了:
只需要根据你的程序修改4个地方,就能让你的输出变得好看!!
直接上源代码:(需要修改的4个地方已经注释!其他地方不要改变!)
Output_content = [] #把你要输出的内容赋值给这个列表,!!!注意保存的必须是字符串str
def show_all():
a = "=" *80 #边框长度,自行调整
b = 19 #输出格式总长度,自行调整
c = ["姓名","电话","QQ","邮箱","微信"] #顶部数据名,请自行编辑“”内的内容
print("-" * 50)
if len(Output_content) == 0:
print("没有保存任何数据!!!!")
return
print(a)
headList = c
headStr = "".join([x + " " * (b - lenStr(x)) for x in headList])
print(headStr)
print(a)
for e in Output_content:
d = [e["name"],e["phone"],e["qq"],e["email"],e["vx"]] #[]内容根据你保存列表的key编辑
lineStr = "".join([x + " " * (b - lenStr(x)) for x in d])
print(lineStr)
print(a)
print("\n")
def lenStr(string): #计算长度
count = 0
for line in string:
if isCh(line):
count = count + 2
else:
count = count + 1
return count
def isCh(ch): #判断是否中文
if ch >='\u4e00' and ch <= '\u9fa5':
return True
else:
return False
如果你不懂怎么改,看以下测试,带教程!!
我们随便搜个学生信息管理系统测试一下:
这是程序的输出模块:
我们先找到保存学生信息的代码,把信息保存进Output_content这个列表
找到保存信息的代码:(最后一行的代码就是保存到列表中)
我们直接改掉列表名字:(用ctrl+R快捷键替换功能全部改掉)
改好了,只要是stuInfo的名字都改成Output_content
然后把源代码复制进来,把原来的输出函数删除!!
到这一步基本完成了,如果出现error,视情况修复。
接下来是改那4个地方了!!
原来的代码里面,输出格式只有三项,name sex phone,我们把格式改成跟它一样就行
我们的万能show_all函数修改后是这样的:
def show_all():
a = "=" *80 #边框长度,自行调整
b = 19 #输出格式总长度,自行调整
c = ["姓名","性别","电话"] #顶部数据名,请自行编辑“”内的内容
print("-" * 50)
if len(Output_content) == 0:
print("没有保存任何数据!!!!")
return
print(a)
headList = c
headStr = "".join([x + " " * (b - lenStr(x)) for x in headList])
print(headStr)
print(a)
for e in Output_content:
d = [e["name"],e["sex"],e["phone"]] #[]内容根据你保存列表的key编辑
lineStr = "".join([x + " " * (b - lenStr(x)) for x in d])
print(lineStr)
print(a)
print("\n")
修改好后可以开始测试了,这时候我发现程序运行不了!!
很尴尬
在末尾加上这一句就可以了
所以啊,出现错误不要慌,你们出现其他错误,视情况自行修改!!
if __name__ == '__main__':
main()
我们看看运行效果如何:
我们会发现有一丝丝的错位,这是因为前一个数据长度不同会稍微影响后面一个数据的位置
但是相比较以前我们的输出格式,已经非常完美了。
总结来看有局限性,但很方便啊,再也不用自己用format来对齐了
自己找一个程序改一下试试吧,记得点收藏
然后感谢Rambo.Fan原文的作者的点子
更多推荐
已为社区贡献1条内容
所有评论(0)