如何从存储购买记录的文件中提取价格并计算总和?
如何从订单文件中提取价格并求和?
嘿,这个问题其实很好解决!核心思路就是从每一行文本里精准抠出Rs.后面的价格数字,然后把它们累加起来就行。我给你用Python写几个实用的方案,毕竟商店程序用Python开发的场景挺多的~
先看看你的文件内容:
You have purchased 5 banana of Rs. 500
You have purchased 2 banana of Rs. 200
You have purchased 1 banana of Rs. 100
方案1:字符串分割(简单直接,适合固定格式)
如果你的文件格式一直这么规整(每一行的价格都紧跟在Rs. 后面),用字符串分割就足够高效:
total_amount = 0 # 替换成你的实际文件路径,比如'./purchase_records.txt' with open('orders.txt', 'r') as file: for line in file: # 按"Rs. "分割字符串,取后半部分并去掉多余空格 price_part = line.split('Rs. ')[1].strip() # 转成整数后累加 total_amount += int(price_part) print(f"购物车总金额:Rs. {total_amount}")
方案2:正则表达式(更健壮,适配格式小变动)
如果以后订单格式可能有小变化(比如Rs.后面空格不固定,或者行里有其他数字),用正则表达式就更靠谱,它能精准锁定Rs.后面的数字:
import re total_amount = 0 with open('orders.txt', 'r') as file: for line in file: # 匹配"Rs. "后面的一串数字,\d+表示一个或多个阿拉伯数字 match_result = re.search(r'Rs\. (\d+)', line) if match_result: # 提取匹配到的数字并转成整数累加 price = int(match_result.group(1)) total_amount += price print(f"购物车总金额:Rs. {total_amount}")
进阶:加入异常处理(避免程序崩溃)
如果担心文件里有格式错误的行(比如某行没写价格,或者价格不是数字),可以加个异常处理,让程序更稳定:
import re total_amount = 0 with open('orders.txt', 'r') as file: for line_num, line in enumerate(file, start=1): line = line.strip() if not line: # 跳过空行 continue match_result = re.search(r'Rs\. (\d+)', line) if match_result: try: price = int(match_result.group(1)) total_amount += price except ValueError: print(f"警告:第{line_num}行的价格格式有误,已跳过:{line}") else: print(f"警告:第{line_num}行未找到有效价格,已跳过:{line}") print(f"购物车总金额:Rs. {total_amount}")
这几个方案都能解决你的问题,根据你的实际需求选就行~
内容的提问来源于stack exchange,提问作者Noob Saibot
相关产品推荐
相关产品推荐

