#!usr/bin/env python
#-*-coding:utf-8-*-
# Author calmyan
import os ,sys,time from core import transaction #包含记账\还钱\取现等所有的与账户金额相关的操作
from core import user_pass #用户名检测相关
from core import log_file #日志相关 def login():#开始函数
# time_format='%y-%m-%d %X'#定义时间格式
# times=time.strftime(time_format)#定义时间
print("Welcome to python ATM".center(60,'*'))
while True:
print('''================================================
1 >>>> 用户登陆.
2 >>>> 直接退出.
================================================
''') foo=input('请选择您要的操作:')
if foo=='':
_user_name= user_pass.user_pass()#将通过验证的用户名赋于变量
data=transaction.user_info(_user_name)#调用帐户查询函数
if data['状态']:
print('\033[31;1m对不起您的帐户被冻结,不能进行相关操作,请与客服联系!\033[0m')
continue
print('尊敬的:\033[32;1m%s\033[0m 欢迎登陆'.center(50,'=')%_user_name)
while True:
print(''' 欢迎使用自动ATM柜员机
1 >>> 帐户信息查询. 2 >>> 帐户转帐.
3 >>> 现金提取. 4 >>> 还款.
5 >>> 退出.
''')
options=input('请按提示操作:')
if options=='':
while True:
transaction.info_user(_user_name)##调用帐户查询函数用户操作日志,传入内容
break
elif options=='':
data=transaction.user_info(_user_name)#调用帐户查询函数
print(transaction.info_format(data))#用户信息输出格式化函数
print('欢迎使用自助转帐'.center(60,'='))
card=input('按\033[31;1mq/Q\033[0m返回 输入对方的卡号:')
if card=='q' or card=='Q':
continue
if card.isdigit():#检测输入是否为整数
card=int(card)#转为int
if card==data['id']:
print('\033[41;1m您所输入的卡号是自己卡号,请重新输入!\033[0m')
transaction.transfer(card,_user_name)##调用转帐的函数
continue
else:
print('您的输入不正确,请重新输入!')
pass elif options=='':
while True:
data=transaction.user_info(_user_name)#调用帐户查询函数
print(transaction.info_format(data))#用户信息输出格式化函数
mony=input('按\033[31;1mq/Q\033[0m返回 请输入要提现的金额:')
if mony=='q' or mony=='Q':
break
if mony.isdigit():#检测输入是否为整数
mony=int(mony)#转为int
transaction.cash(mony,_user_name)##调用取现的函数
continue
else:
print('您的输入不正确,请重新输入!')
pass
elif options=='':
while True:
data=transaction.user_info(_user_name)#调用帐户查询函数
print(transaction.info_format(data))#用户信息输出格式化函数
s_mony=data["最高额度"]-data["帐户信用余额"]
print('本期总共需要还款:要\033[31;1m%s\033[0m'%s_mony)
mony=input('按\033[31;1mq/Q\033[0m返回,请输入要还款的金额:')
if mony=='q' or mony=='Q':
break
if mony.isdigit():#检测输入是否为整数
mony=int(mony)#转为int
transaction.also_money(mony,s_mony,_user_name,data)#还款函数
pass
else:
print('您的输入不正确,请重新输入!')
pass elif options=='':
exit()
else:
continue elif foo=='':
exit()
else:
print('请按提示操作!')
pass

python第二十三天-----作业中的更多相关文章

  1. python第二十三课——dict中的函数

    dic1 = {...} dic2 = {...} dic1.update(dic2) 1.update(dict):dic1调用update传入dic2,如果dic2中的内容在dic1中不存在,那么 ...

  2. 孤荷凌寒自学python第二十三天python类的封装

    孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...

  3. 关于第二次阅读作业中"银弹"“大泥球”等的个人理解

    这几天时间比较充裕,就一点一点的借助英语翻译(毕竟英语不好)阅读了一下老师建议的论文作品.感觉他们的思维和我们的是不在一个角度上的,在我们看来,编写代码的任务仅仅就是实现了设计文档中的功能,而这些在课 ...

  4. 小甲鱼Python第二十三讲课后习题--025,字典

    笔记: 1.字典是Python中唯一的映射类型 2.字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开. 3.可以用dict()直接创建字典,如di ...

  5. 软工实践 - 第二十三次作业 Beta 冲刺(1/7)

    队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10093337.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过 ...

  6. python第二十一课——str中的常用函数(重要)

    演示str中常用的一些函数: 1.join():将容器对象以某种特定的格式(字符串)进行拼接组合,最后以字符串的形式返回 lt=['i','love','you','very','much'] str ...

  7. python第二十三天-----Tornado

    Tornado是一个轻量级完整的web框架,在Linux系统下它会使用epoll,是一个异步非阻塞的web服务器框架,对于实时应用来说很理想,想想同是异步非阻塞的nginx的残暴程度就知道了 1.路由 ...

  8. Python 第二模块学习总结

    学习总结: 1.掌握对装饰器的用法 2.掌握生成器的用法 3.掌握迭代器的用法 4.熟悉Python内置函数 5.熟悉Python shutil/shelve/configparse/hashlib/ ...

  9. mininet、floodlight在第一次SDN上机作业中出现的一些问题

    mininet.floodlight在第一次SND上机作业中出现的一些问题 首先给出链接 VMware安装 mininet安装 floodlight安装及问题,各个版本Ubuntu SDN第一次上机作 ...

随机推荐

  1. 自动化测试 selenium 环境搭建

    做 web 项目,测试是无法避免的.对于某些特定功能,采用单元测试就行.但如果想对网站进行整体测试,人工点击测试可行但有点累,如果能借助自动化测试工具就更好了.selenium 就是一款能满足这样要求 ...

  2. 可能比文档还详细--VueRouter完全指北

    可能比文档还详细--VueRouter完全指北 前言 关于标题,应该算不上是标题党,因为内容真的很多很长很全面.主要是在官网的基础上又详细总结,举例了很多东西.确保所有新人都能理解!所以实际上很多东西 ...

  3. [COI2007] Sabor

    下面给出这道一脸不可做的题的鬼畜性质: 1)对于一个点来说,其归属状态是确定的:走不到.A党或B党 .(黑白格染色) 方便起见,将包含所有不可达的点的极小矩形向外扩展一圈,设为矩形M. 2)矩形M的最 ...

  4. 2.WF 4.5 流程引擎设计思路

    本文主要给大家分享下基于WF 4.5框架的流程引擎设计思路 1.流程启动时的数据写入EventMsgPP对象中,ObjectAssemblyType记录流程启动时需要的类型,ObjectContent ...

  5. 十余年软件开发经历,经验总结和程序一览(涉及Socket、WPF、vc++、CAD、图像、GIS)

    前言 本文主要介绍我开发的几款软件产品,大概介绍一下功能.可以让读者了解本人的开发能力,所擅长的方面.有相关开发需求可以联系作者. 本人开发软件多年,从事的行业也多种多样:自然接触了不同的业务,开发了 ...

  6. 通过证书请求Https站点

    前几天在做与平安银行对接接口,主要是给平安银行推送用户数据(申请贷款的用户),平安银行提供的是https的地址,请求https地址的时候还要发送证书,刚接到这个任务的时候一头雾水,百度上各种所搜,最后 ...

  7. Extjs gridPanel可复制配置(转)

    ExtJS默认是禁用了文本复制的功能,实际需求中可能需要能够复制,那么如何解决了,我在网上看到了许多解决办法,绝大部分都是从重写CSS样式或者重写gridView代码入手,我遇到这个问题的时候,我想作 ...

  8. 自己动手实现java数据结构(一) 向量

    1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址.为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为数组(Array)的数据结构与之对应.在使用数组时需要事先 ...

  9. vuejs深入浅出—基础篇

    一.从HelloWorld说起 任何语言的都是从Hello World开始的,VueJs也不例外,直接上代码: <script src="https://unpkg.com/vue/d ...

  10. Vxlan学习笔记——实现

    1. 创建NVI NVI(Network Virtual Instance)网络虚拟实例,是VTEP上为一个VXLAN提供L2交换服务的虚拟交换实例,NVI和VXLAN ID一一对应.别和VNI混了. ...