用python實現銀行轉賬功能
阿新 • • 發佈:2018-01-30
賬號 pytho exec llb 賬戶 密碼 rollback money 輸入數據 #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)
用python實現銀行轉賬功能