一个商品练习的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数量只能为 ...
随机推荐
- C程序设计语言练习题1-9
练习1-9 编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替. 代码如下: #include <stdio.h> // 包含标准库的信息. int main() // ...
- linux下查看和设置软件的安装路径
1:你可以通过whereis 软件名来查找系统里的文件位置 比如你想查找eclipse文件,那么就: [root@localhost ~]# whereis eclipse 会显示: eclipse: ...
- document.body.scrollTop vs document.documentElement.scrollTop
window.addEventListener("scroll", function () { if (document.body.scrollTop >= window.i ...
- Android ToggleButton使用介绍
ToggleButton,就是开关按钮,包括选中和未选中状态,并且需要为不同的状态设置不同的事件处理: 例如:使用图片来展示ToggleButton不同的状态: MainActivity.java p ...
- CSS flex让所有灵活的项目都带有相同的长度,忽略它们的内容:
.flexbox { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; displa ...
- Jsensation | 氪加
Jsensation | 氪加 www.jsensation.com
- Java 四大域对象总结
一.ServletContext 1.生命周期:当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟 ...
- 代理delegate、NSNotification、KVO在开发中的抉择
在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信.在IOS应用不断的出现三种模式来实现这种通信: 1.委托delegation: 2.通 ...
- javascript实现的手风琴折叠菜单效果
演示地址:http://codepen.io/anon/pen/pJERMq 实现效果: HTML代码: <!DOCTYPE html> <html lang="en&qu ...
- AIX下RAC搭建 Oracle10G(一)检測系统环境
AIX下RAC搭建系列 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AIX203 AIX204 交换机 SAN光纤交换机 存储 S ...