• 时隔半年再写购物车程序并改进


    时隔了半年时间,重新把购物车程序拿出来再写一遍,感觉对于循环语句比之前熟悉多了,脑子里面开始有程序流程图,之前懵懵懂懂地跟着老师来写,现在基本可以自己写,自己判断问题出在哪里了。

    这段程序没用pycharm来写,直接用NOTEPAD++,感觉还很不错,昨天调试了NOTEPAD++运行python的环境,简单轻度的程序都可以试着用这个写了。界面还是很漂亮的。


    编程要求和编程日志思考:

    1、写一段商城程购物车序的代码
    2、用列表把商城的商品清单存储下来
    (1)不能用字典,因为字典无法用序列号打印,用列表中存储元祖的方式。
    (2)存到列表 shopping_mail,打印购物车的序列号及表单内容,用enumerate()函数,学习一下使用enumerate()函数。
    //
    enumerate是翻译过来是枚举的意思,看下它的方法原型:
    enumerate(sequence, start=0),返回一个枚举对象。sequence必须是序列或迭代器iterator,或者支持迭代的对象。
    enumerate()返回对象的每个元素都是一个元组,每个元组包括两个值,一个是计数,一个是sequence的值,计数是从start开始的,start默认为0。
    //

    3、购物车的列表为shopping_cart

    4、用户首先输入工资金额,判断输入为数字
    (1)判断输入是否是数字需要使用.isdigit()方法(判断字符串是否只由数字组成)
    例如:
    //
    str = "123456"
    print str.isdigit()
    结果:TRUE
    str = "this is string example....wow!!!"
    print str.isdigit()
    结果:FALSE
    //

    //
    While Ture:语句的运算速度比While 1:运算速度要慢,所以尽量while true都用 while 1:来写
    同时,if x==ture的运算速度比 if x:慢,所以尽量用if x:来替代。
    //

    5、用户从商城购物清单中选择购买物品,每次购买成功就用工资减去物品单价
    6、判断用户金额是否足够,不足够提示用户
    //
    (1)shopping_mail是一个表格内嵌了元祖,购物车shopping_cart是一个空表格
    (2)choice是选择的数值,可以根据购物清单上的序列号来进行选择。这个简化了购物流程。需要判断choice必须是在0和len(shopping_mail)之间,否则就会出错
    (3)p_item是choice这个数值所代表的商品,p_item实际上是一个元祖,比如('Iphone',5800),p_item[0]对应名称,p_item[1]对应数值。
    (4)如果直接把元祖p_item与工资进行对比,计算机会报错,因为元祖里面包含2个元素
    //
    7、如果用户不想再继续购物,则按Q键退出菜单
    8、用户退出之后,将用户购买的清单打印出来。
    9、尽量学习带颜色输出几个重点信息字符。

    //

    (1)字符串*数值可以用来控制空格,横杠等。
    (2)/n是回车;/t是类似TAB键

    //

     1 space="-"*25
     2 shopping_cart=[]
     3 shopping_mail= [
     4     ('Iphone',5800),
     5     ('Mac Pro',9800),
     6     ('Bike',800),
     7     ('Watch',10600),
     8     ('Coffee',31),
     9     ('Alex Python',120),
    10 ]
    11 salary=input("请输入您的工资金额:")
    12 if salary.isdigit()==True:
    13     salary=int(salary)
    14 while 1:
    15     for i in shopping_mail:
    16         print(space)
    17         print(shopping_mail.index(i),i)
    18         print(space)
    19     choice=input("请输入您选择的商品序号: ")
    20     if choice.isdigit():
    21         choice=int(choice)
    22         if choice>-1 and choice<len(shopping_mail):
    23             p_item=shopping_mail[choice]
    24             if p_item[1]<=salary:
    25                 shopping_cart.append(p_item)
    26                 salary=salary-p_item[1]
    27                 print("
    您选购的商品是:{}".format(p_item))
    28                 print("
    您的工资余额是:{}
    ".format(salary))
    29             else:
    30                 print ("
    您的余额不足
    ")
    31     elif choice=='q':
    32         print("
    您本次购买的商品是:{}".format(shopping_cart))
    33         print("
    您的工资余额为:{}".format(salary))
    34         break
    35 
    36     else:
    37         print("输入错误,只能输入商品序列号相关数字!")
    38 
    39 else:
    40     print("输入错误,只能输入数字!")
  • 相关阅读:
    生成函数
    LOJ6078 「2017 山东一轮集训 Day7」重排
    Gym101981C Cherry and Chocolate
    Gym102411C Cross-Stitch
    使用filter对请求设置编码
    java过滤器filter使用
    java操作数据库的事务支持
    jsp泛型支持
    jstl 使用
    jsp el的内置对象
  • 原文地址:https://www.cnblogs.com/show530/p/9614091.html
Copyright © 2020-2023  润新知