|
列表常用操作:
1.先创建个商品列表
>>> product = ['iPhone','Xiaomi','Meizu']
2.打印列表
>>> product
['iPhone', 'Xiaomi', 'Meizu']
3.追加一个元素
>>> product.append('Samsung')
>>> product
['iPhone', 'Xiaomi', 'Meizu', 'Samsung']
4.统计元素在列表中出现的次数
>>> product.count('Xiaomi')
1
5.查找元素索引位置
>>> product.index('Meizu')
2
6.在执行位置插入元素
>>> product.insert(2,'ZTE')
>>> product
['iPhone', 'Xiaomi', 'ZTE', 'Meizu', 'Samsung']
7.删除执行位置索引元素,不加索引,默认删除最后一个元素
>>> product.pop(2)
'ZTE'
>>> product
['iPhone', 'Xiaomi', 'Meizu', 'Samsung']
8.删除列表中元素为三星的第一个元素
>>> product.remove('Samsung')
>>> product
['iPhone', 'Xiaomi', 'Meizu']
9.列表元素排序
>>> product.sort()
>>> product
['Meizu', 'Xiaomi', 'iPhone']
>>> product.reverse()
>>> product
['iPhone', 'Xiaomi', 'Meizu']
再创建一个价格列表:
>>> prices = ['5000','2000','1500']
以上两个列表,就可以通过商品名称获取到价格,因为他们索引位置是对应的。
例如:
>>> prices[product.index('iPhone')]
'5000'
由此可见,可以通过一个for循环,可以分别打印商品信息:
>>> for i in product:
... print i,prices[product.index(i)]
...
iPhone 5000
Xiaomi 2000
Meizu 1500
结合以上列表基本使用,写出下面这个实例:
- 用户输入工资金额,选择购买的商品(金额不够买的商品,做出提示)
- 购买后商品先加入购物车,最后输出都买了什么商品
创建个测试文本,也可以直接写到列表里面:
# cat shop.txt iPhone 5000 Xiaomi 2000 Meizu 1500 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
|
|
|
|