Python小代码_3_购物车

product_list = [
    (‘MacBook‘, 9000),
    (‘kindle‘, 500),
    (‘tesla‘, 900000),
    (‘book‘, 100),
    (‘bike‘, 2000),
]

saving = input("please input your money:")
shopping_car = []

if saving.isdigit():
    saving = int(saving)

    while True:
        #打印商品内容
        for i, v in enumerate(product_list, 1):
            print(i, ">>>", v)

        #引导用户选择商品
        choice = input("choose goods that you want to buy[exit:q]:")

        #验证输入是否合法
        if choice.isdigit():
            choice = int(choice)
            if choice > 0 and choice <= len(product_list):

                #将用户选择商品通过choice选出
                p_item = product_list[choice - 1]

                #如果钱足够,用saving减去商品价格,并将该商品加入购物车
                if p_item[1] <= saving:
                    saving -= p_item[1]
                    shopping_car.append(p_item)

                else:
                    print("-----------------")
                    print("Sorry, your balance is not enough.")
                    print("Your balance: " + str(saving))
                    print("-----------------")
                    continue
                print("-----------------")
                print("You have chose " + p_item[0])
                print("Your balance: " + str(saving))
                print("-----------------")
            else:
                print("Non existent")
        elif choice == ‘q‘:
            print("---------------")
            print("You have chose the following goods:")
            print("Goods\t\tnumber\tPrice")

            num = 1
            #循环遍历购物车里面的商品,购物车存放的是已买商品
            for i in shopping_car:
                print(i[0] + "\t\t" + str(num) + "\t\t" + str(i[1]))
            print()
            print("balance :", saving)
            print("---------------")
            break

        else:
            print("invalid input")

原文地址:https://www.cnblogs.com/chuangming/p/8439007.html

时间: 2024-11-05 10:22:21

Python小代码_3_购物车的相关文章

python小代码之阶乘求和

需求: 阶乘:也是数学里的一种术语:阶乘指从1乘以2乘以3乘以4一直乘到所要求的数:在表达阶乘时,就使用"!"来表示.如h阶乘,就表示为h!:阶乘一般很难计算,因为积都很大. 提问:求1+2!+3!+...+20!的和 实现环境:python3 编辑器:pycharm 分析:1.阶乘的计算就是比较麻烦的一部分,用递归函数实现是比较好的方案,先定义一个递归函数实现求阶乘功能. def  recursion(n):    '定义递归函数实现求阶乘功能' if n==1:     retur

Python小程序之购物车

1 goods = [ 2 ('IPhone',5888), 3 ('Mac Pro',12888), 4 ('iWatch',2888), 5 ('Bike',888), 6 ('Cofe',16), 7 ('Book',85) 8 ] 9 money = int(input("Please Input your Money:")) 10 buylist = [] 11 while True: 12 print('商品列表'.center(30,'-')) 13 for index,

最近开始努力学python 写了一个python小代码:判断一个登陆程序,如果账号密码输错3次,锁定账号无法再登陆

1 count = 0 2 username = 'zhangsan' 3 userpassword = '111111' 4 5 f = open('lock.txt','r+') 6 file_list = f.readlines() 7 f.close() 8 #打开文件夹 读取数据 9 10 name = input("请输入用户名:") 11 12 if name in file_list: 13 print("您的账号被锁定!") 14 #判断文件夹中的

Python小代码_9_求水仙花数

for i in range(100, 1000): ge = i % 10 shi = i // 10 % 10 bai = i // 100 if ge ** 3 + shi ** 3 + bai ** 3 == i: print(i, end=' ') #输出结果 #153 370 371 407 原文地址:https://www.cnblogs.com/chuangming/p/8467677.html

Python小代码_11_生成小于 n 的裴波那契数列

def fib(n): a, b = 1, 1 while a < n: print(a, end=' ') a, b = b, a + b fib(100000) #输出结果 #1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 原文地址:https://www.cnblogs.com/chuangming/p/8480579.html

Python小代码_13_生成两个参数的最小公倍数和最大公因数

def demo(m, n): if m > n: m, n = n, m p = m * n while m != 0: r = n % m n = m m = r return (int(p / n), n) val = demo(20, 30) print('最小公倍数为:', val[0]) print('最大公因数为:', val[1]) #输出结果 #最小公倍数为: 60 #最大公因数为: 10 原文地址:https://www.cnblogs.com/chuangming/p/84

Python小代码_12_生成前 n 行杨辉三角

def demo(t): print([1]) print([1, 1]) line = [1, 1] for i in range(2, t): r = [] for j in range(0, len(line) - 1): r.append(line[j] + line[j + 1]) line = [1] + r + [1] print(line) demo(10) #输出结果 ''' [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6, 4, 1] [

Python 小数据池、代码块以及代码块缓存机制

按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言,惟有泪千行. 料得年年肠断处,明月夜,短松冈. 1. is 和 == 之间的区别 在讲解代码块及其缓存机制之前有必要搞清楚is和==之间的区别 开门见山直接说:==是比较两边变量的值是否相同,is是比较两边变量的内存地址是否相同,在python中内存地址如何获取,当然是使用id(item)函数获取了 举两个

排序算法分析【五】:归并排序(附Python&amp;C++代码)

归并排序:将两个已经排序的串行合并成一个串行的操作. 算法原理 先看动态图: 算法描述如下: 申请空间,使其大小为两个已经排序串行之和,该空间用来存放合并后的串行: 设定两个指针,最初位置分别为两个已经排序串行的起始位置: 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置: 重复步骤3直到某一指针到达串行尾: 将另一串行剩下的所有元素直接复制到合并串行尾. 算法实现 Python版: #-*- encoding: utf-8 -*- def merge_sort(l