有这样的一个列表
```python
product = [
{"name": "电脑", "price": 7000},
{"name": "鼠标", "price": 30},
{"name": "usb电动小风扇", "price": 20},
{"name": "遮阳伞", "price": 50},
]
```
然后小明一共有8000块钱,那么他能不能买下这所有商品?
如果能,请输出“能”,否则输出“不能”
训练目标
if判断语句的复习使用 列表与字典的复合使用 遍历列表与遍历字典的使用
训练提示
题目中给了“能不能”三个字,那么这时候用什么语句来实现呢? 题目中数据是用列表来套字典来存储的,那么获取数据是不是要遍历呢? 在判断能不能买下的时候,那么要用那两个数据进行判断呢,这两个数据分别是什么?
参考方案
使用双层for循环来遍历每一个数据,找到价格进行累计,之后判断
操作步骤
-
双层for循环来循环数据
-
在每一层循环中来判断并累计所有的价格
-
在循环结束之后,用总价格进行与总钱数进行比较
参考答案
方法一:
product = [
{"name": "电脑", "price": 7000},
{"name": "鼠标", "price": 30},
{"name": "usb电动小风扇", "price": 20},
{"name": "遮阳伞", "price": 50},
]
sum = 0
money = 8000
for dict1 in product:
for k, v in dict1.items():
if k == "price":
sum += v
if sum <= money:
print("能")
else:
print("不能")
方法二:
product = [
{"name": "电脑", "price": 7000},
{"name": "鼠标", "price": 30},
{"name": "usb电动小风扇", "price": 20},
{"name": "遮阳伞", "price": 50},
]
num = len(product)
i=0
sum=0
while i<num:
sum+= product[i]["price"]
i+=1
if sum > 8000:
print('不可以')
else:
print('可以')
方法三:
product = [
{"name": "电脑", "price": 7000},
{"name": "鼠标", "price": 30},
{"name": "usb电动小风扇", "price": 20},
{"name": "遮阳伞", "price": 50},
]
num = len(product)
i=0
sum=0
for i in range(num):
sum += product[i]["price"]
if sum > 8000:
print('不可以')
else:
print('可以')