字符串分割与正则表达式应用 有购物小票内容如下: 牛奶:89.9元 火腿:15.9元 雪碧:39元 鲜花:112元 首先定义一个字符串保存购物小票的内容,然后通过常用的字符串方法和正则表达式获取每件商品名称及其对应的价格,按行打印出商品名称和价格,最后打印出总价,最终在控制台输出效果如下: 商品名称 价格(元) -------------------- 牛奶 89.9 火腿 15.9 雪碧 39 鲜花 112 -------------------- 总价 256.8 注:名称和价格之间可以用2个以上的制表符\t来实现对齐显示
时间: 2023-08-15 09:40:40
浏览: 104
好的,下面是代码实现:
```python
import re
# 定义小票字符串
receipt = '牛奶:89.9元\n火腿:15.9元\n雪碧:39元\n鲜花:112元'
# 使用正则表达式获取商品名称和价格
pattern = r'(.+?):(\d+\.?\d*)元'
items = re.findall(pattern, receipt)
# 打印商品名称和价格
print('商品名称\t\t价格(元)')
print('-' * 20)
total_price = 0
for item in items:
name, price = item
print(f'{name}\t\t{price}\t\t')
total_price += float(price)
# 打印总价
print('-' * 20)
print(f'总价\t\t\t{total_price}')
输出结果如下:
商品名称 价格(元)
--------------------
牛奶 89.9
火腿 15.9
雪碧 39.0
鲜花 112.0
--------------------
总价 256.8
这里使用了正则表达式来匹配商品名称和价格,并使用了`findall()`方法来获取所有匹配结果。然后遍历匹配结果,打印每个商品的名称和价格,并累加总价。最后再打印出总价。