用户输入工资金额,选择购买的商品(金额不够买的商品,做出提示)
购买后商品先加入购物车,最后输出都买了什么商品
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# vi shop_list.py
#!/usr/bin/env python
# coding:utf8
import
sys
f =
open
(
'shop.txt'
)
product = []
prices = []
shop_list = []
flag = 0
#标记
flag2 = 0
for
line
in
f.readlines():
new_line = line.
split
()
product.append(new_line[0])
#循环将第一个索引位置值追加列表product
prices.append(int(new_line[1]))
#循环第二个索引位置值追加列表prices
#print product,'\n',prices
while
True:
for
pp
in
product:
if
flag2 != 1:print pp,
'\t'
,prices[product.index(pp)]
#判断下面flag2变量值,是否打印商品信息
while
True:
try:
if
flag == 1:
#判断上次执行情况,如果已经执行,就不再提示输入工资
break
else
:
salary = int(raw_input(
'请输入您的工资: '
))
break
except Exception:
print
"工资只能输入数字!"
if
salary < min(prices):
#内置函数min()判断列表中最小值
print
"对不起,您的工资买不起任何商品!"
break
choise_product = raw_input(
'请输入您要购买的商品名称: '
).strip()
#strip()函数去空格
if
choise_product
in
product:
product_prices = prices[product.index(choise_product)]
#通过输入的商品位置来找到商品价格
if
salary >= product_prices:
print
"您已成功购买%s,并加入购物车."
%choise_product
shop_list.append(choise_product)
salary = salary - product_prices
#工资减去现在商品的价格
if
salary < min(prices):
#判断当前剩余工资是否小于最低价的商品
print
"对不起,剩余%d元,已买不起任何商品!"
%salary
print
"购物车:%s"
%shop_list
sys.
exit
()
else
:
print
"您还剩余%d元,还可以购买以下商品: "
%salary
for
product_prices
in
prices:
if
product_prices <= salary:
#打印剩余的钱数小于或等于列表的元素
print product[prices.index(product_prices)],
'\t'
,product_prices
flag = 1
#用于判断是否执行上面命令,不再下次提示输入工资。以下flag都是如此
flag2 = 1
#用于判断是否执行上面命令,如果执行,就不再打印商品信息
else
:
print
"您的工资买不起%s! 请重新选择商品:"
%choise_product
flag = 1
else
:
print
'\033[31;1m没有您要的商品! 请重新选择: \033[0m'
flag = 1
flag2 = 2
#非1都可以。如果等于1,第二次输入购买的商品名称错误,将不打印商品信息,因为flag2变量已经在上面赋值了1
|