python实现简易ATM

环境:python2.7

可以进一步完善

# -*- coding: utf-8 -*-
print u"+========================================+"
print u"+=============2017年7月20日==============+"
print u"+==============作者:天道酬勤============+"
print u"+========================================+"
user_name = "C:\Users\95112\Desktop\ATM\username" #定义用户名和密码的位置
goods     = "C:\Users\95112\Desktop\ATM\goods"  #定义商品列表的的位置
salary = 0

#登录
def login():
	global a
	global salary
	username=[]
	password=[]
	money  =[]
	f = file(user_name)
	for line in f.readlines():
		new_line = line.split()
		username.append(int(new_line[0]))
		password.append(int(new_line[1]))
		money.append(int(new_line[2])) 
	UserName = int(raw_input("please input your username:"))
	if UserName in username:
		PassWord = int(raw_input("please input your password:"))
		username_passwd = password[username.index(UserName)]  #取出username相对应的密码
		salary = money[username.index(UserName)]  #取出账户中相对应的钱
		if PassWord == username_passwd:
			a = 1 #登录成功的标志
			print "Login successful"
			print "You still have %s of the balance" % money
		else:
			a = 0
			print "password error"
	else:
		a = 0
		print "your username error"

	return a
	return salary

#购物
def shopping():
	global salary
	products=[]
	price=[]
	shop_list= []

	f = file(goods)
	for line in f.readlines():
		new_line = line.split()
		products.append(new_line[0])
		price.append(int(new_line[1]))
	while 1:
		print u‘请从以下商品中挑选一个或者几个购买:‘
		print products
		for i in range(0,len(products)):
			if (salary>=price[i]):
				print products[i],price[i]
		print "+---------------------------------+"
		print u"输入exit可以退出购买"
		choice  = raw_input("please choice a shop to buy:")
		F_choice = choice.strip()#去除空格,格式化输出。
		#退出循环
		if F_choice == "exit":
			break
		if F_choice in products:
			product_price = price[products.index(F_choice)] #取出产品价格
			print "+---------------------------------+"
			print u"你要购买的商品以及价格:",F_choice,product_price
			print u"商品正在加入购物列表,请稍等"
			if salary > product_price:
				shop_list.append(F_choice)
				salary = salary - product_price
				print "+---------------------------------+"
				print u"你已经成功购买了%s" % F_choice
				print u"你的余额还有:", salary
				print u"你已经购买的商品有:", shop_list
				print "+---------------------------------+"
			else:
				pass
		else:
			print u"你输入的商品不在商品列表里,请重新输入!"

	return salary

#转账或者提现
def Transfer_accounts():
	global salary
	print u"每次转账和提现收取百分之5的服务费."
	inputs = int(raw_input("please input you should how much money:"))
	SS = inputs*0.05
	zong = inputs + SS
	if ( salary < zong or salary < inputs):
		print u"余额不足"
	else:
		salary = salary - zong
	print "+------------------------------+"
	print u"成功转账%s" % inputs
	print u"扣除手续费%s" % SS
	print "+------------------------------+"
	return salary

#查询余额
def check_the_balance():
	global salary
	print "+---------------------------+"
	print u"你的金额还有%s" % salary
	print "+---------------------------+"

#菜单
def menu():
    print u"""Welcome to use ATM automatic teller machine
            If the machine failure please contact ATM\t """
    while True:
    	print u"\t(1) 购物"
    	print u"\t(2) 转账"
    	print u"\t(3) 查询余额"
    	print u"\t(4) 退出"
        choices = raw_input("Please choices:").strip()
        if len(choices) == 0:
        	continue
        if choices == ‘1‘:
        	shopping()
    	elif choices == ‘2‘:
    		Transfer_accounts()
    	elif choices == ‘3‘:
    		check_the_balance()
        else:
            print "Please pay attention to the property security"
            exit()

if __name__ == ‘__main__‘:
	login()
	if a == 1:
		menu()
	else:
		pass

运行结果:



时间: 2024-11-05 19:37:28

python实现简易ATM的相关文章

python搭建简易服务器实例参考

有关python搭建简易服务器的方法. 需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 web 服务 请求一个nick 就返回 对应的 报表数据 参数用GET方式传送 调研与实现: 园里没找到靠谱的,google了半天,最终还是成功了. 以下是源码,里面记录了 其中的 一些问题 复制代码 代码如下: #! /usr/bin/env python # -*- coding: utf-8 -

Python编写简易木马程序(转载乌云)

Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 +JEDI(python自动补全插件)来撸代码,安装配置JEDI插件可以参照这里: /tips/?id=4413 首先准备好我们需要的依赖库,python hook和pythoncom. 下载安装python hook 下载安装pythoncom模块:

Parallel Python——一个简易的分布式计算系统

如何搭建一个快速的分布式计算平台?Parallel python提供了简易的方式来实现此目的. Parallel Python(http://www.parallelpython.com/content/view/15/30/#QUICKCLUSTERS)是Python进行分布式计算的开源模块,能够将计算压力分布到多核CPU或集群的多台计算机上,能够非常方便的在内网中搭建一个自组织的分布式计算平台. 在不同节点运行服务器程序,并自动发现运行服务器的节点,命令如下: node-1> ./ppser

python笔记——简易线程池multiprocessing.Pool

多线程模型设计是一个比较复杂的逻辑,但是python对于多线程的处理却有种种方便的类库,不需要过多的纠结线程间的操作细节.比如multiprocessing.Pool就是其中之一. 官方给的范例也很简单. from multiprocessing import Pool def f(x): return x*x if __name__ == '__main__': pool = Pool(processes=4) # start 4 worker processes result = pool.

原生js实现简易ATM功能

简易ATM 题目描述: 里面现存100块钱. 如果存钱,就用输入的钱数加上先群的钱,然后弹出余额. 如果取钱,就减去取的钱,然后显示余额. 如果显示余额,就显示余额. 如果退出,就进行判断再退出. <script> var money = 100; var moneySum = 0; var num = parseInt(prompt('请输入你的操作:' + '\n' + '1.存钱' + '\n' + '2.取钱' + '\n' + '3.显示余额' + '\n' + '4.退出'));;

python之信用卡ATM(第五天)

本节作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期未还,按欠款总额 万分之5 每日计息 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 ATM记录操作日志 提供管理接口,包括添加账户.用户额度,冻结账户等... 因对本次作业的MVC结构没有思路,故研究分析了王松牛人的作业,现整理如下: 一.作业代码具体说明如下: 一.主程序

python小程序 atm模拟

包含启动程序start.py和atm.py模块 用户数据通过字典序列化存入userdata.pkl 用户操作记录文件userid.record(为每个用户保存一个记录文件) 商品价格文件goods_list 功能包含:取现 存钱 转账 购物 打印清单 其他说明:没有包含管理端程序(用于添加用户账号,商品上下架),密码验证用户可以自己开发. start.py如下: #!/usr/bin/python # -*- coding: utf-8 -*-   import sys import getpa

安装好Pycharm后如何配置Python解释器简易教程

这两天有许多Python小白加入学习群,并且问了许多关于Pycharm基本使用的问题,今天小编就以配置Python解释器的问题给大家简单絮叨一下. 1.一般来说,当我们启动Pycharm,如果Pycharm正常激活的话,就会直接进入到Pycharm中去,并且Pycharm经常会弹出下图的界面.(如果有小伙伴的Pycharm尚未激活,可以站内私信,小编这有好几个激活码,给大家分享.) 其实这个是Pycharm的提示信息,一般是Pycharm的简易或快捷方式介绍或者其他的Pycharm功能说明,大家

Python实战之ATM+购物车

ATM + 购物车 需求分析 ''' - 额度 15000或自定义 - 实现购物商城,买东西加入 购物车,调用信用卡接口结账 - 可以提现,手续费5% - 支持多账户登录 - 支持账户间转账 - 记录每月日常消费流水 - 提供还款接口 - ATM记录操作日志 - 提供管理接口,包括添加账户.用户额度,冻结账户等... - 用户认证功能 ''' 一个项目是如何从无到有的 # 1.需求分析: ''' 开发项目前,都必须找到相应的客户,让客户给企业提出项目的需求,以及需要实现的功能有哪些,拿到需求后再