一个商品练习的py
#!/usr/bin/env python
# coding=utf-8
# by 星空刺
qian = int(raw_input("请输入当前money:"))
gongzi = int(raw_input("请输入当前工资:"))
d1 = {}
d2 = {}
d3 = {}
d1 = {'自行车':100,'汽车':1000,'电脑':500}
for k,v in d1.items():
print "%s:%s" %(k,v)
if v <= qian:
d2.update({k:v})
else:
d3.update({k:v})
print "你所不能购买的商品如下:"
for k,v in d3.items():
print "%s:%s" %(k,v)
print "以下是你能购买的商品:"
for k,v in d2.items():
print "%s:%s" %(k,v)
while 1:
name = raw_input("请输入要购买的商品名字:")
name_jiage = d1.get(name)
if d2.has_key(name) and qian >= name_jiage:
qian = qian - name_jiage
print "已经购买%s:%s,当前余额%d" %(name,name_jiage,qian)
else:
chazhi = name_jiage - qian
n = ( chazhi ) / gongzi
if ( name_jiage - qian ) % gongzi > 0:
n = n + 1
print "你的钱不够,还差%d元,你需要赚取%d次工资才能购买" %(chazhi,n)
break

好吧,依然没有用list...虽然它却是是list练习
shell版本:http://www.cnblogs.com/aaa103439/p/3774369.html
添加批量购买,购物车,返回操作.
#!/usr/bin/env python
# coding=utf-8
# by 星空刺
# 2014.06.09
import sys
qian = int(raw_input("请输入当前money:"))
gongzi = int(raw_input("请输入当前工资:"))
#商品菜单
d1 = {}
#可购买商品
d2 = {}
#不可购买商品
d3 = {}
#已购买商品
d4 = {}
#商品菜单
d1 = {'自行车':100,'汽车':1000,'电脑':500}
#构建可购买商品字典和不可购买商品字典
for k,v in d1.items():
print "%s:%s" %(k,v)
if v <= qian:
d2.update({k:v})
else:
d3.update({k:v})
print "你所不能购买的商品如下:"
for k,v in d3.items():
print "%s:%s" %(k,v)
print "以下是你能购买的商品:"
for k,v in d2.items():
print "%s:%s" %(k,v)
#商品购买循环
while 1:
name = raw_input("请输入要购买的商品名字:")
name_num = int(raw_input("请输入购买次数:"))
#获取购买商品的价格
name_jiage = d1.get(name)
name_zongjia = name_jiage * name_num
#判定商品是否存在以及钱是否够,并计算余额
if d1.has_key(name) and qian >= name_jiage:
qian = qian - name_zongjia
#若钱不够,则计算差额,并继续所需工资的倍数,若倍数是小数,则+1
else:
chazhi = name_zongjia - qian
n = ( chazhi ) / gongzi
if chazhi % gongzi > 0:
n = n + 1
print "你的钱不够,还差%d元,你需要赚取%d次工资才能购买" %(chazhi,n)
qian = -chazhi
#若购买的商品已在商品篮,则将其对应商品总价相加
if d4.has_key(name):
d4[name] = name_zongjia + d4.get(name)
#若购买商品不存在,则将其加入字典d4
else:
d4.update({name:name_zongjia})
print "已添加%d件%s:%s,当前余额%d" %(name_num,name,name_jiage,qian)
print "当前购物车有如下商品:"
for k,v in d4.items():
print "%s:%s" %(k,v)
ans = raw_input("是否购买其他商品,是y,不是n:")
if ans == "y":
continue
else:
break
print ("以下是你购买车内的商品:")
for k,v in d4.items():
print "%s:%s" %(k,v)
ans = raw_input("是否确认购买y,或者删除某件商品d,或者取消购买n:")
if ans == "y":
print "你的当前余额为%d" %qian
elif ans == "d":
#开始删除循环
while 1:
name_tui = raw_input("输入删除的商品名:")
name_tui_num = int(raw_input("输入删除的商品件数:"))
#计算对应商品的总退价
name_tui_jiage = d1.get(name_tui) * name_tui_num
#如果商品存在,则回款
if d4.has_key(name_tui):
qian = qian + name_tui_jiage
#如果商品存在,且要清空对应商品,则删除字典d4的对应商品
if d4.get(name_tui) == name_tui_jiage:
d4.pop(name_tui)
#否则降低字典d4内对应商品的总价值
else:
d4[name_tui] = d4.get(name_tui) - name_tui_jiage
print "当前余额为%d,商品篮如下:" %qian
for k,v in d4.items():
print "%s:%s" %(k,v)
ans1 = raw_input("是否继续删除y,或者保留剩余商品并购买n:")
if ans1 == "y":
continue
else:
break
elif ans == "n":
for v in d4.values():
qian = qian + v
print "已经清空商品篮,你的当前余额是%d:" %qian
一个商品练习的py的更多相关文章
- 一个简单的web.py论坛
一.概述 forum是一个简单的web.py论坛,后端采用Python+web.py+MySQL,前端采用HTML+CSS+JavaScript+jQuery+RequireJS. 该论坛的主要功能包 ...
- 第一个Python程序hello.py提示出现File "<stdin>",line 1错误
写第一个Python程序hello.py,内容仅有一句,print 'hello world', 运行 Python hello.py 出错,提示: File "<stdin>& ...
- 一个商品SKU是怎么生成的
首先说一说什么是SKU.......自己百度去... 类似京东上面,未来人类S5这个台笔记本(没错,我刚入手了) 都是S5这个型号,但是因为CPU,显卡,内存,硬盘等不同,价格也不一样.CPU,显卡, ...
- 零基础学习java------35---------删除一个商品案例,删除多个商品,编辑(修改商品信息),校验用户名是否已经注册(ajax)
一. 删除一个商品案例 将要操作的表格 思路图 前端代码 <%@ page language="java" contentType="text/html; cha ...
- 在Google Colab中导入一个本地模块或.py文件
模块与单个.py文件的区别,模块中含有__init__.py文件,其中函数调用使用的是相对路径,如果使用导入.py文件的方法在Google Colab中导入模块 会报错:Attempted relat ...
- docker部署一个简单的mian.py项目文件
安装docker yum install -y docker 启动docker systemctl start docker 查询可安装的Python版本,默认centos python 2.7 ...
- 第一个python程序hello.py
使用vim编辑代码: #!/usr/bin/python2.7 #-*-coding:utf-8-*- name = raw_input('请输入你的名字:') print 'Hello,',name ...
- 利用COOKIE保存历史浏览商品的一个简单思路
<?php //如是COOKIE 里面不为空,则往里面增加一个商品ID if (!empty($_COOKIE['SHOP']['history'])){ //取得COOKIE里面的值,并用逗号 ...
- python作业/练习/实战:3、实现商品管理的一个程序
作业要求 实现一个商品管理的一个程序,运行程序有三个选项,输入1添加商品:输入2删除商品:输入3 查看商品信息1.添加商品: 商品名称:xx 商品如果已经存在,提示商品已存在 商品价格:xx数量只能为 ...
随机推荐
- Unicode字符集下CString与char *相互转换
经常遇到CString转换char*时只返回第一个字符.原因是因为在Unicode字符集下CString会以Unicode的形式来保存数据,强制类型转换只会返回第一个字符.所以直接转换在基于MBCS的 ...
- vim 折叠代码技巧汇总
以下命令输入的方式: 如zo命令,先按z键,松开后按o键即可展开折叠. 一.打开.关闭折叠 zo 展开折叠,只展开最外层的折叠. zO 对所在范围内所有嵌套的折叠点展开,包括嵌套折叠. zc 折叠,只 ...
- ESM CORR
http://infosecnirvana.com/arcsight-corr-install/ http://www.softpanorama.org/Admin/Event_correlation ...
- 这样就算会了PHP么?-9
PHP关于COOKIE的应用 <?php if (!isset($_COOKIE["visittime"])) { setcookie("visittime&quo ...
- LeetCode_Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tr ...
- KEIL中的一些细节
1.KEIL中的指针: 基于存储器的指针:数据类型 [指向存储区] *[ 指针存储区]指针变量 char xdata * px //px本身存在于自动分配的空间,一般位于data中,指向的内容位于x ...
- KEIL 伪指令
//为了大家查找方便,命令按字母排序:0.ALTNAME 功能: 这一伪指令用来自定义名字,以替换源程序中原来的保留字,替换的保留字均可等效地用于子程序中. 格式: ALTNAME 保留字 自定义名 ...
- Delphi 函数指针(函数可以当参数)
首先学习: 指向非对象(一般的)函数/过程的函数指针 Pascal 中的过程类型与C语言中的函数指针相似,为了统一说法,以下称函数指针.函数指针的声明只需要参数列表:如果是函数,再加个返回值.例如声明 ...
- Linux cat和EOF的使用
在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中.(可参考ntop.spec文件)这样有几个好处,其中之一就是临时文件不是唯一的,可以通过变量赋值,也可根据不同的判 ...
- cxSplitter.HotZone 怎么给分隔条增加值
请使用它的类名指定HotZoneClassName . cxSplitter1.ResizeUpdate := True; cxSplitter1.HotZoneClassName := 'TcxMe ...