通过python实现信用卡消费机制

功能要求:
1.额度15000
2.可以体现,手续费是5%
3每月最后一天是出账单,写入一个文件
4.记录每月日常消费流水(每天的没笔消费)

5.写出来本期还款

python源代码:

 #!/usr/bin/env python
# encoding=utf-8
# author:sihaogongyuan
# date:2015-4-13
# filename:atm-py
# desc:atm-py
#################################################
import sys
import os
sys.path.append(‘/tmp/python/‘)
import tab
import time
#################################################
credit_line=int(15000)
old_money=int(15000)
#print type(credit_line)
#counter_fee=0.05
fee_rate=0.05
#################################################
#date=time.strftime(‘%Y-%m-%d %H:%M:%S‘)
#################################################
date1=time.strftime(‘%Y-%m-%d-%H:%M:%S‘)
f=file(‘%s.log‘%(date1),‘w‘)
f.close()
f=file(‘%s.log‘%(date1),‘a‘)
f.write(‘交易日期\t交易摘要\t金额\t手续费\t信用额度\n‘)
#######取现######################################
def qu_xian():
  global credit_line
  global fee_rate
 #date=os.system("date ‘+%F:%T‘")
 #print date
 date=time.strftime(‘%Y-%m-%d %H:%M:%S‘)
 quxian_money=int(raw_input(‘请输入取现金额:‘).strip())
 #print quxian_money,type(quxian_money)
 while quxian_money==‘‘:
    continue
  #print quxian_money,type(quxian_money)
 if 0<quxian_money<=credit_line:
  #定义手续费counter_fee
  counter_fee=quxian_money*fee_rate
  credit_line=credit_line-quxian_money-counter_fee
  print ‘\033[32m已取%d元,手续费是%d元,信用额度是%d元\033[0m‘%(quxian_money,counter_fee,credit_line)
  f.write(‘%s\t取现\t%s\t%d\t%d\n‘%(date,quxian_money,counter_fee,credit_line))
  f.flush()
 else:
  print ‘\033[31m取现金额%d不在信用额度内,取现失败\033[0m‘%(quxian_money)
#######刷卡########################################
def shua_ka():
 global credit_line
 #date=os.system("date ‘+%F:%T‘")
 date=time.strftime(‘%Y-%m-%d %H:%M:%S‘)
 shuaka_money=int(raw_input(‘请输入消费金额:‘).strip())
 if 0<shuaka_money<=credit_line:
  credit_line=credit_line-shuaka_money
  print ‘\033[32m已消费%d元,信用额度是%d元\033[0m‘%(shuaka_money,credit_line)
  #f.write(os.system(‘date‘),‘\t‘,‘刷卡‘,‘\t‘,shuaka_money,0)
  f.write(‘%s\t刷卡\t%s\t0\t%d\n‘%(date,shuaka_money,credit_line))
  f.flush()
 else:
  print ‘\033[31m消费金额%d不在信用额度内,消费失败\033[0m‘%(shuaka_money)
########存钱#######################################
def cun_qian():
 global credit_line
 #date=os.system("date ‘+%F:%T‘")
 date=time.strftime(‘%Y-%m-%d %H:%M:%S‘)
 cun_qian_money=int(raw_input(‘请输入存钱金额:‘).strip())
 if cun_qian_money>0:
  credit_line=credit_line+cun_qian_money
  print ‘\033[32m存款%d成功,目前信用额度是:%d‘%(cun_qian_money,credit_line)
  f.write(‘%s\t存钱\t-%s\t0\t%d\n‘%(date,cun_qian_money,credit_line))
  f.flush()
 else:
  print ‘\033[31m存取金额%d不符合规范,存款失败\033[0m‘%(cun_qian_money)
###########main####################################
print ‘\t欢迎来到ATM系统‘
while True:
 #credit_line=int(15000)
 #fee_rate=0.05
 choice=raw_input(‘请输入你要进行的操作(取现,消费,存钱,退出):‘).strip()
 if choice==‘‘:
    continue
 if choice==‘取现‘ or choice==‘提现‘:
  qu_xian()
  continue
 elif choice==‘刷卡‘ or choice==‘消费‘:
  shua_ka()
  continue
 elif choice==‘存钱‘ or choice==‘存款‘:
  cun_qian()
  continue
 elif choice==‘退出‘ or choice==‘exit‘:
  break
 else:
  print ‘不合规的操作,请重新选择‘
  continue
###################################################
f.write(‘\033[32m目前可用信用额度为:%s\n\033[0m‘%(credit_line))
f.flush()
f.write(‘\033[32m本期还款金额为%d\n\033[0m‘%(old_money-credit_line))
f.flush()
f.close()
f=file(‘%s.log‘%(date1),‘r‘)
print f.read()
###################################################
时间: 2024-12-20 18:33:19

通过python实现信用卡消费机制的相关文章

[转载] python的内存管理机制

本文为转载,原作为http://www.cnblogs.com/CBDoctor/p/3781078.html,请大家支持原作者 先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 (3)内存池机制 一.垃圾回收: python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值.对Python语言来讲,对象的类型和内存都是在运行时确定的.这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结

python的内存管理机制

先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 (3)内存池机制 一.垃圾回收: python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值.对Python语言来讲,对象的类型和内存都是在运行时确定的.这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结为对变量内存地址的分配是在运行时自动判断变量类型并对变量进行赋值). 二.引用计数: Python采用了类似Windows内核对象

python中import的机制与实现

原文出处: 刘畅(@你猜我猜不猜猜你是谁) 概述 Python 是一门优美简单.功能强大的动态语言.在刚刚接触这门语言时,我们会被其优美的格式.简洁的语法和无穷无尽的类库所震撼.在真正的将python应用到实际的项目中,你会遇到一些无法避免的问题.最让人困惑不解的问题有二类,一个 编码问题,另一个则是引用问题. 本文主要讨论关于Python中import的机制与实现.以及介绍一些有意思的Python Hooks. Python 类库引入机制 首先,看一个简单的例子: """

android中的事件分发和消费机制

一.思维导图 查看大图:http://img.blog.csdn.net/20150524191211931 二.更多参考 Android中的Touch事件处理:http://www.cnblogs.com/mengdd/p/3394345.html Android 编程下 Touch 事件的分发和消费机制 :http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html Android事件分发完全解析之为什么是她:http://blog

PHP和Python Ruby的运行机制区别

PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接.加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的请求就不必再次初始化资源了. 这种机制的差异带来的区别就是: 1.PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光.而Python/Ruby则需要依赖GC来回收内存

python中多线程调度机制以及GIL

总结下python中线程调度机制. 对于线程调度机制而言,同操作系统的进程调度一样,最关键是要解决两个问题: 1.在何时选择挂起当前线程,并选择处于等待的先一个线程呢? 2.在众多等待的线程中,选择哪一个作为激活线程呢? 在python多线程机制中,这个两个问题是有两个层次解决的. 如,进程间的切换,当发生了时钟中断,操作系统响应时钟中断,并在这个时候开始进程的调度. 同样的,python也是通过软件模拟了这样的时钟中断,来激激活线程的调度. 我们知道,python字节码解释器是按照指令,顺序一

python 的字符串驻留机制

我们都知道python中的引用计数机制,相同对象的引用其实都是指向内存中的同一个位置,这个也叫做“python的字符串驻留机制”.其他的就不多说了,自行研究. 重点!!!!!! python的引用计数机制,并不是对所有的数字,字符串,他只对“  [0-9] [a-z] [A-Z]和"_"(下划线)  ”有效,当字符串中由其他字符比如“! @ # ¥ % -”时字符驻留机制是不起作用的. 看下图: 当字符串中没有特殊字符时(‘abc’),引用指向同一对象: 当字符串中有特殊字符时(‘-a

python的内存管理机制(zz)

本文转载自:http://www.cnblogs.com/CBDoctor/p/3781078.html 先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 (3)内存池机制 一.垃圾回收: python不像C++,Java等语言一样,他们可以不用事先声明变量类型而直接对变量进行赋值.对Python语言来讲,对象的类型和内存都是在运行时确定的.这也是为什么我们称Python语言为动态类型的原因(这里我们把动态类型可以简单的归结为对变量内存地址的分配是

Python虚拟机之函数机制(二)

函数执行时的名字空间 在Python虚拟机之函数机制(一)这一章中,我们对Python中的函数调用机制有个大概的了解,在此基础上,我们再来看一些细节上的问题.在执行MAKE_FUNCTION指令时,调用了PyFunction_New方法,这个方法有一个参数是globals,这个globals最终将称为与函数f对应的PyFrameObject中的global名字空间--f_globals ceval.c case MAKE_FUNCTION: v = POP(); /* code object *