【问题标题】:To input a file and get a formatted string output using .format()使用 .format() 输入文件并获取格式化的字符串输出
【发布时间】:2016-06-28 16:23:58
【问题描述】:

编写一个名为calculate_expenses 的函数,它接收文件名作为参数。该文件包含有关个人物品费用的信息。您的函数应返回根据项目名称排序的元组列表。每个元组由项目的名称和该项目的总费用组成,如下所示:

请注意,文件的每一行仅包含一个项目和该项目的购买价格,以逗号分隔。商品或价格前后可能有空格。然后你的函数应该读取文件并返回一个元组列表,例如:

注意事项:

  • 元组是根据项目名称进行排序的,即面包先于薯片,再于牛奶。

  • 总费用是以$开头的字符串,小数点后有两位精度。

提示:使用${:.2f} 为总费用正确创建和格式化字符串。

到目前为止的代码:

def calculate_expenses(file_name):
file_pointer = open(file_name, 'r')
data = file_pointer.readlines()
list_main=[]
for line in data:
    name, price = line.strip().split(',')
    print (name, price)

输出:

('milk', '2.35')
('bread ', ' 1.95')
('chips ', '    2.54')
('milk  ', '    2.38')
('milk', '2.31')
('bread', '    1.90')

我无法摆脱空格,不知道下一步该做什么。

【问题讨论】:

  • print(name.strip(), price.strip())
  • 你在 2 小时前问了同样的问题...
  • 将您的代码添加为代码,而不是图像。
  • 其他问题,同款同价:stackoverflow.com/q/35960341/5276734
  • 你用过一次strip,你看到上面的cmets怎么再用了吗?之后你会想google this 然后google this。欢迎编程!您需要举出一般示例,并弄清楚如何将它们连接在一起以构建您需要的细节。不要惊慌,玩得开心!

标签: python file-io


【解决方案1】:

在 python3 中我们没有“iteritems”。 你应该在这一行中使用“item”:

L=([(k,v) for k, v in dic.iteritems()])

【讨论】:

    【解决方案2】:

    可以通过以下方式解决:

    def calculate_expenses(filename):
        file_pointer = open(filename, 'r')
        # You can use either .read() or .readline() or .readlines()
        data = file_pointer.readlines()
        # NOW CONTINUE YOUR CODE FROM HERE!!!
    
        my_dictionary = {}
        for line in data:
            item, price= line.strip().split(',')
    
            my_dictionary[item.strip()] = my_dictionary.get(item.strip(),0) + float(price)
        dic={}
        for k,v in my_dictionary.items():
            dic[k]='${0:.2f}'.format(round(v,2))
    
        L=([(k,v) for k, v in dic.iteritems()])
        L.sort()
    
        return L
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-01
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      • 2018-05-02
      • 2012-03-01
      • 1970-01-01
      相关资源
      最近更新 更多