zoukankan      html  css  js  c++  java
  • python 基础 day02—training_购物车程序练习

    自学练习,记录下来,如有不对的地方,欢迎各位大神指出来!

    程序:购物车程序

    需求:

    1. 启动程序后,让用户输入预算,然后打印商品列表
    2. 允许用户根据商品编号购买商品
    3. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 
    4. 可随时退出,退出时,打印已购买商品和余额

    代码:

     1 #cherry_cui
     2 
     3 mall_list = [
     4     ('Bicycle',800),
     5     ('computer',4800),
     6     ('pizza',50),
     7     ('skirt',200),
     8     ('shoes',1200),
     9     ('iphone6',3200),
    10     ('watch',2700)
    11 ]
    12 shopping_cart =[]
    13 budget = input("Input your budget:")                                 #输入购物预算
    14 if budget.isdigit():                                                   #判断budget 是否只由数字组成。
    15     budget = int(budget)                                               #转换成int类型
    16 
    17     while True:
    18         for num,item in enumerate(mall_list):                          # enumerate()获取mall_list的下标
    19             print(num,item)
    20 
    21         choice = input("which goods you want(enter the number):")  #输入需要购买的商品编号
    22         if choice.isdigit():                                           #判断choice 是否只由数字组成。
    23             choice = int(choice)                                       #转换成int类型
    24 
    25             if choice < len(mall_list) and choice >= 0:               #len() 方法返回mall_list列表元素个数
    26                 u_item = mall_list[choice]
    27                 if u_item[1]<=budget:
    28                     budget-=u_item[1]
    29                     shopping_cart.append(u_item)                       #把已购买的商品加入购物车shopping_cart
    30                     print("%s had added to your shopping list,your current balance is %s !" %(u_item[0],budget))
    31 
    32                 else:
    33                     print("Your current balance is %s ,not enough to buy %s ,choose again!" %(budget,u_item[0]))
    34 
    35             else:
    36                 print("Product code %s is not exist,choose again" %choice)
    37 
    38 
    39         elif choice == 'q':
    40             print("-----shopping_cart-----")
    41             for c in shopping_cart:
    42                 print(c)
    43 
    44             print("Your current balance is %s" %budget)
    45             exit()
    46 
    47 
    48         else:
    49             print("Input error!")
    50             exit()
    51 
    52 
    53 else:
    54     print("Input error!")
    View Code

    结果:

    正常流程:

    Input your budget:10000
    ('Bicycle', 800)
    ('computer', 4800)
    ('pizza', 50)
    ('skirt', 200)
    ('shoes', 1200)
    ('iphone6', 3200)
    ('watch', 2700)
    
    which goods you want(enter the number):1
    computer had added to your shopping list,your current balance is 5200 !
    ('Bicycle', 800)
    ('computer', 4800)
    ('pizza', 50)
    ('skirt', 200)
    ('shoes', 1200)
    ('iphone6', 3200)
    ('watch', 2700)
    
    which goods you want(enter the number):5
    iphone6 had added to your shopping list,your current balance is 2000 !
    ('Bicycle', 800)
    ('computer', 4800)
    ('pizza', 50)
    ('skirt', 200)
    ('shoes', 1200)
    ('iphone6', 3200)
    ('watch', 2700)
    
    which goods you want(enter the number):6
    Your current balance is 2000 ,not enough to buy watch ,choose again!   #余额不足
    ('Bicycle', 800)
    ('computer', 4800)
    ('pizza', 50)
    ('skirt', 200)
    ('shoes', 1200)
    ('iphone6', 3200)
    ('watch', 2700)
    
    which goods you want(enter the number):2
    pizza had added to your shopping list,your current balance is 1950 !
    ('Bicycle', 800)
    ('computer', 4800)
    ('pizza', 50)
    ('skirt', 200)
    ('shoes', 1200)
    ('iphone6', 3200)
    ('watch', 2700)
    
    which goods you want(enter the number):q              #退出程序
    -----shopping_cart-----
    ('computer', 4800)
    ('iphone6', 3200)
    ('pizza', 50)
    Your current balance is 1950
    
    Process finished with exit code 0
    View Code

      

    异常一:输入的预算不为数字

    异常二:输入的商品编号大于存在的商品号 / 输入的商品编号不为数字

    Input your budget:1000
    0 ('Bicycle', 800)
    1 ('computer', 4800)
    2 ('pizza', 50)
    3 ('skirt', 200)
    4 ('shoes', 1200)
    5 ('iphone6', 3200)
    6 ('watch', 2700)
    
    which goods you want(enter the number):9
    Product code 9 is not exist,choose again
    0 ('Bicycle', 800)
    1 ('computer', 4800)
    2 ('pizza', 50)
    3 ('skirt', 200)
    4 ('shoes', 1200)
    5 ('iphone6', 3200)
    6 ('watch', 2700)
    
    which goods you want(enter the number):dsa
    Input error!
    View Code

    新学习的函数:

    1. isdigit()     方法检测字符串是否只由数字组成

    2. enumerate()     函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标

    3. len()  方法返回对象(字符、列表、元组等)长度或项目个数。

    其中,获取商品下标有两种方法

    1.用enumerate()函数

    2.list名称.index(数值) 就能拿到对应数值的索引(下标)

    for item in mall_list:
        print(mall_list.index(item), item)  
    

      

    
    
  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/cherrycui/p/8980903.html
Copyright © 2011-2022 走看看