同学满分代码,购物车。

同学代码,购物车。

#!/usr/bin/env python
__author__ = ‘liudong‘
#定义空的购物列表:
cart = []
#查询用户余额
import os,sys
def money():
    filename = sys.path[0]+‘/money.txt‘
    if os.path.exists(filename):
        m = open(‘./money.txt‘,‘r‘)
        mon = m.readline()
        m.close()
        mon = int(mon)
        return mon
    else:
        exitt = False
        while not exitt:
            aa = input("\033[31m请输入你的工资: \033[0m").strip()
            if aa.isdigit():
                mon = int(aa)
                exitt = True
            else:
                print ("请输入正确的数字。。")
        return mon
#保存用户输入的余额
def free_money(x):
    a = open(‘./money.txt‘,‘w‘)
    a.write(‘%s‘%x)
    a.close()
#定义余额变量
wage = money()
wage1 = wage #定义总余额
shoping_money3 = 0 #定义用户总共消费
#定义商品列表:
shop = [
    ["Condoms",100],
    ["pill",99],
    ["girlfriend",1],
    ["mac book",8888],
    ["apple",5],
    ["乐视1S",1099]
]
#循环显示购物信息:

while True:
    #打印出商品列表和价格:
    print(‘\33[32m欢迎光临\33[37m‘.center(50,‘-‘))
    print(‘\33[32m商品列表\33[37m‘.center(50,‘-‘))
    for index,p in enumerate(shop):
        print (index,p[0],p[1])
    #获取用户输入:
    shoping = input("请输入商品编号,结算请输入\33[32mall\33[37m,显示购物车请输入:\33[32mlist\33[37m,显示余额请输入:\33[32mfree\33[37m : ").strip()
    #判断用户输入是否合法
    if shoping.isdigit():
        shoping = int(shoping)
        if len(shop) < shoping:
            print (‘\33[31m你输入的产品号不存在,请重新选择商品号!\33[37m‘)
            continue
        shoping_money = shop[shoping][1]
        if shoping_money < wage: #判断用户是否可以购买
            while True:
                num = input("请输入购买数量: ").strip()
                if not num.isdigit():
                    print ("\033[31m请正确输入商品数量。。\033[0m")
                else:
                    num = int(num)
                    if num == 0:
                        break
                    else:
                        shoping_money2 = shoping_money * num #判断商品数量的价钱
                        if shoping_money2 < wage:   #判断用户是否可以购买
                            cart.append(shop[shoping][0])  #把商品名称添加到购物车
                            cart.append(num)    #把商品数量添加到购物车
                            print ("\033[31m您的商品已经加入购物车 %s 数量:%s \033[0m"%(shop[shoping][0],num))
                            wage = wage - shoping_money2   #算出用户剩余金额
                            shoping_money3 +=shoping_money2   #算出用户总消费金额
                            break
                        else:
                            print ("\033[31m你的工资买不起%s个%s \033[0m"%(num,shop[shoping][0]))
                            break
        elif shoping_money > wage: #商品不能购买的提示
            print ("\033[31m你的工资还买不起此商品: %s\033[0m" %shop[shoping][0])
        else:   #商品不能购买的提示
            print ("\033[31m你的工资太少了,还是去努力赚钱吧。。\033[0m")
            break
    elif shoping == "list":  #显示购物列表
        print ("\033[31m----------shopping list----------\033[0m")
        num = 0
        aa = len(cart)
        bb = int(aa / 2)
        for x in range(bb):
            print (cart[num],"\033[31m数量:\033[0m",cart[num+1])
            num+=2
        print ("\033[31m---------------------------------\033[0m")
    elif shoping == "free":   #显示剩余金额
        if not len(cart):
            print ("\033[31m你还没有购物,剩余:%s\033[0m" %wage)
        else:
            print ("\033[31m你一共花费:%s,剩余:%s\033[0m"%(shoping_money3,wage))
    elif shoping == "all": #用户结算
        if not len(cart): #判断购物车是否为空
            print ("\033[31m你的购物车为空,不需要结算。。\033[0m")
            free_money(wage)
            break
        else: #购物车不为空,显示购物列表和购买商品数量
            print ("\033[31m----------shopping list----------\033[0m")
            num = 0
            aa = len(cart)
            bb = int(aa / 2)
            for x in range(bb):
                print (cart[num],"\033[31m数量:\033[0m",cart[num+1])
                num+=2
            print ("\033[31m---------------------------------\033[0m")
            gm = input("\033[31m是否确认购买:Y or N  \033[0m ").strip()   #判断用户是否购买商品
            if gm == "N" or gm == "n":   #用户不购买
                print ("你没有购买任何商品,剩余:\033[31m%s\033[0m"%wage1)
                free_money(wage1)
                break
            elif gm == "y" or gm == "Y":   #用户购买
                print ("你一共花费\033[31m%s\033[0m还剩下\033[31m%s\033[0m"%(shoping_money3,wage))
                free_money(wage)
                break
            else:  #错误输入,默认用户不购买
                print ("你输入的不正确,没有购买任何商品,剩余:\033[31m%s\033[0m"%wage1)
                free_money(wage1)
                break

时间: 2024-08-29 03:30:12

同学满分代码,购物车。的相关文章

结对编程学习-对梁同学的代码分析评价

本篇博文主要是对我的结对编程伙伴梁同学的代码进行分析,分析别人的代码对我来说是一种挑战,但在分析与总结中或许能找到逐渐变强的关键. 从main函数开始,着实震惊到了我,一个无限循环,一个初始化函数,最后输出一个字符串.三行便结束了main函数.由此观之,梁同学的代码模块化做得很好. 再看初始化函数,发现他将用户名与密码都用数组存储了起来,管理相对方便,有了些数据库的感觉,判断能否登陆的逻辑很清晰,字符提示也很到位. 然后是一个选择函数.这是我很看好的一个函数,通过这个函数将几种可能或者说分支都提

js jquery 权限单选 bug修改以及正确代码 购物车数量加减

效果图废话不多直接上代码 用的avalon渲染,其实都是一样的 <div class="shop-arithmetic"> <a href="javascript:;" class="minus" onclick="delpubls(this)">-</a> <input type="number" style="min-height: 20px;font

c++聪聪看书(满分代码)

聪聪是一个善良可爱.睿智聪慧的好孩子.聪聪喜欢看书,这一天她在看一本书时看到了这样一个问题:给你一个正整数n,你要将它分成若干个自然数Ai的和的形式,并且使得这若干个自然数Ai的乘积尽量大,并输出最大乘积.比如n=5的情况,最优的方案是5=2+3,答案为6.这么简单的问题聪聪当然会做了,她想考考你,你能不能比她先给出问题的答案呢? [输入]      输入文件名为reading.in 共1行,包含1个正整数n.[输出]      输出文件reading.out 共1行,包含1个整数,表示最大乘积

对404同学的代码分析

优缺分析 一.个人项目需求 登录验证,根据账号判断试卷类型. 登录后输入数字以生成试卷.在登录状态下输入“切换为小学.初中.高中”切换试卷类型,输入-1退出. 同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复,各个类型的试卷题目中出现的数学符号不同. 生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹. 二.优点分析 1. Java项目名,包名,类名,变量名命名标准. 2.适当的注释,便于快速阅读以及回忆代码.   3.有使用说明,显示操作示例,便于使用.

之前写给同学的代码,关于搜索的一些题型

其中有用到一些自己写的类(栈,队列)改成JDK自带的即可... 1 import java.util.Scanner; 2 3 class BestMaze{ //这是我总结作业中,关于最佳图的问题,的类 4 int[] d1; 5 int[] d2; 6 int[][] map; 7 int m, n, count, minlen; 8 int l = 0; //l是指墙数(当然是有墙的情况才用) 9 Queue<Point> q; 10 Stack<Point> s; 11 P

中小学数学试卷自动生成程序-对张凯翔同学代码的评价

张凯翔的优点: 面向对象编程,结构清晰,修改难度小 生成了UI界面,清晰美观 相比张惟盛的代码生成的题目更加科学,比如会在平方和开方的部分增加括号,以确保意义明确 相较于C语言,采用了更加方便的Java,调用函数以及捕获异常,确保了程度的稳定性 张凯旋的缺点: 代码习惯有点问题,杂乱且缺少注释 虽然采用了全随机生成运算符的方式,但在某些算式中也会出现无意义的括号,比如在正常的加减乘除中,第一个为乘法,已经是优先的但是还是会添加无意义的括号,有瑕疵 缺少了对同一老师的不同试卷进行题目查重的步骤,虽

高质量的工程代码为什么难写 (转)

http://kb.cnblogs.com/page/558087/ 之所以想起写这篇文章,是因为最近看到的一个著名的开源项目在内部使用时的各种问题,不得不说,很多的开源的东西思想是不错的,但离真正工程化都有不小的距离,所以没什么商业公司采用的开源产品如果要引入的话一定要慎重,通常会有N多的坑等着你去填,而比较成功的开源项目的背后多数都会有商业公司在背后不断的改进. 遥想我2000年开始学习写asp代码时,觉得写代码也不难呀,无非就是学学语法规则.库就可以写出来,记得有一次我实习面试的时候是让我

【转载】关于烂代码的那些事

http://kb.cnblogs.com/page/526768/ ============上篇============ 1. 摘要 最近写了不少代码,review了不少代码,也做了不少重构,总之是对着烂代码工作了几周.为了抒发一下这几周里好几次到达崩溃边缘的情绪,我决定写一篇文章谈一谈烂代码的那些事.这里是上篇,谈一谈烂代码产生的原因和现象. 2. 写烂代码很容易 刚入程序员这行的时候经常听到一个观点:你要把精力放在ABCD(需求文档/功能设计/架构设计/理解原理)上,写代码只是把想法翻译成

代码复审结果

说明:因为本次一些特殊的原因,我与一位韩国留学生同学.以及六班的一位同学一起结对编程. General (N) Does the code work? Does it perform its intended function, the logic is correct etc. 两位结对的伙伴的代码都只能实现需求功能中的一部分: Z同学目前实现的功能有:只能生成10000以内数目的,没有经过去重判断的,整数的加减乘除题目. 这位同学没有实现的需求功能有:分数参与运算.生成的部分题目需含有括号.