hgjgh 发表于 2018-8-9 08:41:39

用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
  
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)
页: [1]
查看完整版本: 用python实现银行转账功能