用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)
相关文章