作者:Carrie
出处:https://home.cnblogs.com/u/hanjiali
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
随笔 - 138,  文章 - 0,  评论 - 4,  阅读 - 93189

1.元组

特点:不能够增删改,只能查,也叫做只读列表

两种用法:count和index

1
2
names = ["han","wang","liu","hanjiali","han" ]
print(names.index("wang"))

 输出结果:

1
1

什么情况用元组?
信息不想被改,就用元组。

2.购物车程序

需求:1.启动程序后,让用户输入工资,然后打印商品的列表

           2.允许用户根据商品编号购买商品

           3.用户选择商品后,检测余额是否够,够就直接扣除,不够提醒

           4.可随时退出,退出时,打印已购商品和余额

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
57
58
59
60
61
62
63
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()

 运行结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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元']
请输入您想要购买的商品编号(1234):1
是否还要选择商品(1.or 2.不用了):1
请输入您想要购买的商品编号(1234):3
是否还要选择商品(1.or 2.不用了):2
您要购买的商品有['1', '3']
请确定是否正确?(1.正确 or 2.不正确)1
苹果手机
男士T袖
您购买的东西总共有8500
对不起,您的余额不足。
请输入您的工资:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
请输入您的工资:10000
['1.苹果手机:8000元', '2.华为手机:10900元', '3.男士T袖:500元', '4.男士短裤:300元']
请输入您想要购买的商品编号(1234):1
是否还要选择商品(1.or 2.不用了):1
请输入您想要购买的商品编号(1234):2
是否还要选择商品(1.or 2.不用了):2
您要购买的商品有['1', '2']
请确定是否正确?(1.正确 or 2.不正确)1
苹果手机
华为手机
您购买的东西总共有18900
对不起,您的余额不足。
请输入您的工资:

 优化版本

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
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

 

posted on   不吃葡萄楞吐皮  阅读(465)  评论(2编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5

点击右上角即可分享
微信分享提示