用python实现银行转账功能

发布时间:2019-09-02 07:41:55编辑:auto阅读(1795)

    #coding:utf-8
    import MySQLdb      #调用MySQL数据库模块
    conn=MySQLdb.Connect(
     host='.........',    #输入数据库的IP地址
     port=3306,      #输入数据库的使用端口
     user='......',     #输入数据库用户账号
     passwd='......',    #输入数据库用户密码
     db='......',     #输入数据库名称
     charset='utf8'     #输入数据库编码
     )
    #转账函数
    def transfer(s_id,d_id,num):
     conn.autocommit(False)
     a=id_avi(s_id)     #调用账号确认函数
     b=id_avi(d_id)
     c=money_avi(s_id,num)   #调用余额确认函数
     if a and b and c:
      money_reduce(s_id,num)  #调用减钱函数
      money_add(d_id,num)   #调用加钱函数
      conn.commit()
      print u'转账成功!'
     else:
      print u'转账失败!'
      conn.rollback()
    #存钱函数
    def add_in(id,num):
     a=id_avi(id)
     if a:
      money_add(id,num)   #调用加钱函数
      conn.commit()
     else:
      print u'账号%s不存在,请核对!'%id
      conn.rollback()
    #取钱函数
    def reduce_out(id,num):
     a=id_avi(id)
     b=money_avi(id,num)
     if a and b:
      money_reduce(id,num)  #调用减钱函数
      conn.commit()
     else:
      print u'取钱失败!请核对!'
      conn.rollback()
    #账号确认函数
    def id_avi(id):
     curr=conn.cursor()
     sql='select * from money where uid=%s'%id
     curr.execute(sql)
     row=curr.rowcount
     if row==1:
      print u'账户%s确认成功!'%id
      return True
     else:
      print u'账户%s确认失败!'%id
      return False
     curr.close()
    #账户余额确认函数
    def money_avi(id,num):
     curr=conn.cursor()
     sql='select money from money where uid=%s'%id
     curr.execute(sql)
     n=curr.fetchone()
     nn=n[0]
     if nn>=num:
      print u'账户%s余额足够!'%id
      return True
     else:
      print u'账户%s余额不足!'%id 
      return False
     curr.close()
    #减钱函数
    def money_reduce(id,num):
     curr=conn.cursor()
     sql='update money set money=money-%s where uid=%s'%(num,id)
     curr.execute(sql)
     print u'转出确认!'
     curr.close()
    #加钱函数
    def money_add(id,num):
     curr=conn.cursor()
     sql='update money set money=money+%s where uid=%s'%(num,id)
     curr.execute(sql)
     print u'转入确认!' 
     curr.close()
    
    #实例:
    reduce_out(1,2000)
    transfer(2,1,1999)

关键字