用python實現銀行轉帳功能

#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)
相關文章
相關標籤/搜索