如何格式化输入数据并输出

时间:2015-08-08 11:21:36

标签: python python-2.7

我正在寻找创建一个要求输入的代码,然后将数据添加到输出形式的制表符动画文件中:

      Author.Year.Title.Journal

但我还需要以一种方式格式化输入,如果有两个作者输出 将是:

 Author1 &Author2.year.title.journal

如果他们是3位作者,那么输出将是

 Author1,Author2&Author3. year. title. journal

到目前为止,这是我的代码:

try:
    import csv     
    file = raw_input('Enter Filename:')
    with open(file,'a') as openfile:
      writer = csv.writer(openfile,delimiter='.')
      ans=True
      while ans:
        print ("""
        1.
        2.
        3
        """)
       ans = raw_input("How Many Authors?")
       if ans=="1":
         author = raw_input('Enter Author Name:')
         title = raw_input('Enter Title Name:')
         year= raw_input('Enter year:')
         journal = raw_input('Enter Journal:')
         writer.writerow([author,title,year,journal])

      elif ans=="2":
           auhtor_1 = raw_input('Enter First Author''s Name:')
           author_2 = raw_input('Enter Second Author''s Name:')
           title = raw_input('Enter Title Name:')
           year= raw_input('Enter year:')
           journal = raw_input('Enter Journal:')

      elif ans=="3":
           auhtor_1 = raw_input('Enter First Author''s Name:')
           author_2 = raw_input('Enter Second Author''s Name:')
           author_3 = raw_input('Enter Third Author''s Name:')
           title = raw_input('Enter Title Name:')
           year= raw_input('Enter year:')
           journal = raw_input('Enter Journal:')

except IOError:
    print 'Sorry Something went Wrong'     

这就是我被困住的地方。

1 个答案:

答案 0 :(得分:0)

使用列表存储作者姓名。

authors = []
num_authors = int(raw_input("How Many Authors? "))
for i in range(num_authors):
    authors.append(raw_input("Enter Author's Name ({}): ".format(i+1)))

除了处理任意数量的作者外,作者列表通常比格式化的作者字符串更有用;例如可以很容易地确定作者的数量,对作者进行排序,或者以不同的格式输出列表。

要获得所需的输出,您可以使用str.join()添加标点符号:

authors_string = ' & '.join([', '.join(authors[:-1]), authors[-1]]
                                if len(authors) > 2 else authors)

内部str.join()以逗号连接除最后一个之外的所有作者,或者如果作者少于2个,则不会发生连接。如果需要,外连接会在最终的2位作者之间添加&符号。