首页 > 解决方案 > 无法正确格式化 Python 中的输出

问题描述

我无法在 Python 中正确格式化。下面是我的列表的样子。我不确定为什么某些字段的间距是关闭的。下面是我的代码以及它如何读取的片段。

def main():

    golf_file = open('golf.txt', 'r') #open file

    first_name = golf_file.readline() #read first line
    print('First Name\tLast Name\tHandicap\tGolf Score\tOver, Under or Par') #print headings
    while first_name != '': #while statement for loop
         last_name = golf_file.readline()
         handicap = golf_file.readline()
         golf_score = golf_file.readline()


         #stripping newline from each string
         first_name = first_name.rstrip('\n')
         last_name = last_name.rstrip('\n')
         handicap = handicap.rstrip('\n')
         golf_score = golf_score.rstrip('\n')

         handicap_num = float(handicap)
         golfscore_num = int(golf_score)
         #if statement to determine if golf score is over, under or par
         if golfscore_num == 80:
            OverUnderPar = ('Par')
         elif golfscore_num < 80:
             OverUnderPar = ('Under Par')
         else:
             OverUnderPar = ('Over Par')

        #print info with two tabs for positioning.
         print( first_name, '\t''\t', last_name, '\t''\t', handicap_num, '\t', '\t', golfscore_num, '\t', '\t', OverUnderPar)


         first_name = golf_file.readline()


    golf_file.close() #close file

main()

First Name  Last Name   Handicap    Golf Score  Over, Under or Par
Andrew       Marks       11.2        72          Under Par
Betty        Franks          12.8        89          Over Par
Connie       William         14.6        92          Over Par
Donny        Ventura         9.9         78          Under Par
Ernie        Turner          10.1        81          Over Par
Fred         Smythe          8.1         75          Under Par
Greg         Tucker          7.2         72          Under Par
Henry        Zebulon         8.3         83          Over Par
Ian          Fleming         4.2         72          Under Par
Jan          Holden          7.7         84          Over Par
Kit          Possum          7.9         79          Under Par
Landy        Bern        10.3        93          Over Par
Mona         Docker          11.3        98          Over Par
Kevin        Niles       7.1         80          Par
Pam          Stiles          10.9        87          Over Par
Russ         Hunt        5.6         73          Under Par

标签: python

解决方案


如果名称太大(超过 6 个字符),选项卡将向下移动一个。您可以检查名称是否太大并将其移到自己的选项卡下。通过使用类似 numTabs = '\t' * (2-len(last_name)//6

或者更好的方法是使用str.format@Michael Butscher 在评论中提到的东西。


推荐阅读