1.元组
特点:不能够增删改,只能查,也叫做只读列表
两种用法:count和index
names = ["han","wang","liu","hanjiali","han" ]
print(names.index("wang"))
输出结果:
1
什么情况用元组?
信息不想被改,就用元组。
2.购物车程序
需求:1.启动程序后,让用户输入工资,然后打印商品的列表
2.允许用户根据商品编号购买商品
3.用户选择商品后,检测余额是否够,够就直接扣除,不够提醒
4.可随时退出,退出时,打印已购商品和余额
class Shopping():
def __init__(self):
self.list1 = []
self.a = input("请输入您的工资:")
self.start()
def start(self):
self.list = ["1.苹果手机:8000元", "2.华为手机:10900元", "3.男士T袖:500元", "4.男士短裤:300元"]
print(self.list)
self.shop()
def shop(self):
self.b = input("请输入您想要购买的商品编号(1,2,3,4):")
self.list2 =['1','2','3','4']
if self.b in self.list2:
self.list1.append(self.b)
self.c = int(input("是否还要选择商品(1.是 or 2.不用了):"))
if self.c == 1:
self.shop()
else:
self.chack()
else:
print("您的输入有误,请重新输入:")
self.shop()
def chack(self):
print("您要购买的商品有%s"%self.list1)
self.d = int(input("请确定是否正确?(1.正确 or 2.不正确)"))
if self.d == 2:
self.shop()
else:
self.money()
def money(self):
num=0
for i in self.list1:
if i == '1':
num +=8000
print("苹果手机")
if i == '2':
num += 10900
print("华为手机")
if i == '3':
num += 500
print("男士T袖")
if i == '4':
num += 300
print("男士短裤")
print("您购买的东西总共有%d元" % num)
if int(self.a) < num:
print("对不起,您的余额不足。")
else:
self.m = self.a - num
print("购买成功,您的余额为:%d"%self.m)
if __name__ == '__main__':
shopping = Shopping()
运行结果:
C:\Users\韩佳丽\Desktop\老男孩\python\2019.8\001\venv\Scripts\python.exe C:/Users/韩佳丽/Desktop/老男孩/python/2019.8/001/01.py 请输入您的工资:8000 ['1.苹果手机:8000元', '2.华为手机:10900元', '3.男士T袖:500元', '4.男士短裤:300元'] 请输入您想要购买的商品编号(1,2,3,4):1 是否还要选择商品(1.是 or 2.不用了):1 请输入您想要购买的商品编号(1,2,3,4):3 是否还要选择商品(1.是 or 2.不用了):2 您要购买的商品有['1', '3'] 请确定是否正确?(1.正确 or 2.不正确)1 苹果手机 男士T袖 您购买的东西总共有8500元 对不起,您的余额不足。 请输入您的工资:
请输入您的工资:10000 ['1.苹果手机:8000元', '2.华为手机:10900元', '3.男士T袖:500元', '4.男士短裤:300元'] 请输入您想要购买的商品编号(1,2,3,4):1 是否还要选择商品(1.是 or 2.不用了):1 请输入您想要购买的商品编号(1,2,3,4):2 是否还要选择商品(1.是 or 2.不用了):2 您要购买的商品有['1', '2'] 请确定是否正确?(1.正确 or 2.不正确)1 苹果手机 华为手机 您购买的东西总共有18900元 对不起,您的余额不足。 请输入您的工资:
优化版本
product_list = [
('苹果手机',9000),
('华为手机', 1000),
('Bike', 600),
('watch', 3000),
('python book', 120)
]
shopping_list = [] #储存用户购买物品的一个列表
#输入你的工资,input输入的是字符串的形式,看起来输入的是数字,其实是字符串
salary = input('Input your salary:')
#检测字符串是不是由纯数字构成,如果是,将字符串改为int型
if salary.isdigit():
salary = int(salary)
#做循环,但是while true是死循环,需要跳出
while True:
for index,item in enumerate(product_list):
#for item in product_list:
# print(product_list.index(item),item)
#enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for 循环当中
print(index,item)
user_choice = input("选择您要买的物品序列号:")
#如果输入的字符串都是数字构成,那么就转化为整数的形式。
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice < len(product_list) and user_choice >= 0:
p_item = product_list[user_choice]
if p_item[1] <= salary:#买得起,将商品添加在列表里
shopping_list.append(p_item)
#扣钱的操作
salary -= p_item[1]
print("添加%s进入您放入购物车,您的余额为%s:" %(p_item,salary))
else:
print("你的余额只剩[%s]啦,请充值。"%salary)
else:
print("你选的[%s]不存在"%user_choice)
elif user_choice =='q':
print("-----------------shopping list----------------------")
for p in shopping_list:
print(p)
print("你花的钱:",salary)
exit()
else:
print("invalid option")
break
浙公网安备 33010602011771号