如何使桌子更漂亮

时间:2018-11-27 16:05:13

标签: python data-science

我想在底部添加“ TOTAL PLAYING TIME:00:0:0”,我尝试的命令已在下面更新:

totalmins = 0
totalsecs = 0
mins, secs = map(int, record[3].split(":")) 
totalmins = totalmins + (totalsecs // 60)
totalsecs = totalsecs % 60

显示缩进错误的错误

2 个答案:

答案 0 :(得分:0)

因此,如果我理解正确,那么您想解决两个问题。首先是如何创建标题,其次是如何使标题的顶部和底部水平线与表格大小对齐。试试下面的代码。请注意使用ljust将字符串填充到给定列的最大长度:

hl_len = max_track + max_artist + max_album + 4
print ('-' * hl_len)

for idx, i in enumerate(data):

    print("|", i[0].ljust(max_track), 
          "|", i[1].ljust(max_artist), 
          "|", i[2].ljust(max_album), 
          "|", i[3],"|")
    if idx == 0:
        print ("-" * hl_len) 

答案 1 :(得分:0)

如果您只想大写“ TRACK”,“ ALBUM”,“ ARTIST”和“ TIME”两个字,则可以分别打印出标题行,如下所示:

print("| TRACK", " " * (max_track - 5),
      "| ARTIST", " " * (max_artist - 6),
      "| ALBUM", " " * (max_album - 5),
      "| TIME |")

然后,已经打印出标题,只需将for循环的第一行更改为以下内容,就可以跳过for循环中的第一项:

for i in data[1:]:

更新:

对于您的更新,totalminstotalsecs都被初始化为零,然后稍后仅使用totalminstotalsecs对其进行设置,而从不使用值minssecs。我认为这不是您想要的。

我认为您正在尝试通过在循环中进行累加来收集总播放时间,然后在完成循环后以可读格式输出它。

如果是这样,最好同时显示小时数。因此,考虑创建一个存储秒数的所有变量(我将其称为totalSeconds),然后计算hoursminutes和{{1 }}:

seconds