要求:
1,让用户输入有多少钱:
2,输出用户能够买的东西
3,把用户买的东西放在列表里
4,计算用户还有多少钱,直到不能购买任何商品为止,
5,用户只要选择商品,不能退换
Python 2.7版本
代码实现:
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
|
# -*- coding: utf-8 -*-
products
=
[
"book"
,
"plane"
,
"phone"
,
"fan"
,
"hen"
,
"bed"
,
"car"
]
price
=
[
65
,
100000
,
10000
,
70
,
25
,
1250
,
1000000
]
shop_list
=
[]
salary
=
int
(
raw_input
(
"please input your money:"
))
while
1
:
print
u
'请从以下商品中挑选一个或者几个购买:'
for
i
in
range
(
0
,
len
(products)):
if
(salary>
=
price[i]):
print
products[i],price[i]
print
"+---------------------------------+"
choice
=
raw_input
(
"please choice a shop to buy:"
)
F_choice
=
choice.strip()
#去除空格,格式化输出。
if
F_choice
in
products:
product_price
=
price[products.index(F_choice)]
#取出产品价格
print
"+---------------------------------+"
print
u
"你要购买的商品以及价格:"
,F_choice,product_price
print
u
"商品正在加入购物列表,请稍等"
if
salary > product_price:
shop_list.append(F_choice)
salary
=
salary
-
product_price
print
"+---------------------------------+"
print
u
"%s已经添加到你的购物列表"
%
F_choice
print
u
"你的余额还有:"
, salary
print
u
"你已经购买的商品有:"
, shop_list
print
"+---------------------------------+"
else
:
pass
else
:
print
u
"你输入的商品不在商品列表里,请重新输入!"
|
如果商品在文件里,可以用下面的代码进行处理成一个列表:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#-*-coding:utf-8 -*-
products
=
[]
prices
=
[]
f
=
file
(
"jiage.txt"
)
for
line
in
f.readlines():
new_line
=
line.split()
products.append(new_line[
0
])
prices.append(
int
(new_line[
1
]))
print
products
print
prices
|
执行结果
最终筛选的执行结果:
总结:
1
|
product_price
=
price[products.index(F_choice)]
#取出产品价格
|
这行代码python2.7和Python2.6貌似不大一样。
另外一种写法是:
1
|
product_price
=
price[products.index[F_choice]]
#取出产品价格
|
但是会报下面的错误,下面的是我粘贴过来的:只要改成()的写法就行了。
TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'
本文转自 天道酬勤VIP 51CTO博客,原文链接:http://blog.51cto.com/tdcqvip/1948031