无法在Python中正确格式化输出格式

时间:2018-09-30 23:03:04

标签: 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

1 个答案:

答案 0 :(得分:0)

如果名称太大(超过6个字符),则该标签会再向下移动一个。您可以检查名称是否太大,然后将其向下移动到自己的标签中。 numTabs = '\t' * (2-len(last_name)//6

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