标签:datetime today 存在 cond oda 原创 break 实现 end
1.实现
#!/usr/bin env python
# -*- coding:utf-8 -*-
import datetime
import time
import re
def register(name, account, date, mounths):
‘‘‘
:param name: 借款人姓名
:param date: 借款日期
:param account: 借款金额
:param mounths: 分期月数
:return:
‘‘‘
firstLine = ‘Username:‘ + name + ‘\n‘
secondLine = ‘ ‘ * 8 + ‘Money:‘ + account + ‘\n‘
thridLine = ‘ ‘ * 8 + ‘Date:‘ + date + ‘\n‘
fourthLine = ‘ ‘ * 8 + ‘Times:‘ + mounths + ‘\n‘
lastLine = ‘ ‘ * 8 + ‘Interest(day):0.0004‘ + ‘\n‘
with open(‘datebase.log‘, ‘a‘, encoding=‘utf-8‘) as f1:
f1.write(firstLine)
f1.write(secondLine)
f1.write(thridLine)
f1.write(fourthLine)
f1.write(lastLine)
if exist(name):
return True
else:
return False
def repay(name, account, time):
‘‘‘
还款
:param name: 用户名
:param account: 还款金额
:return: 剩余还款金额,应还多少金额
‘‘‘
f = ‘绿灯‘
result = []
with open(‘datebase.log‘, ‘r‘, encoding=‘utf-8‘) as f1:
for line in f1:
if line.strip() == ‘Username:%s‘ % name:
f = ‘红灯‘
continue
if f == ‘红灯‘:
if line.strip().startswith(‘Username‘):
f = ‘绿灯‘
break
else:
if line.strip():
result.append(line.strip())
f = ‘绿灯‘
replace1 = re.search(r‘\d+‘, result[0]).group()
replace2 = str(int(replace1) - int(account))
result[0] = result[0].replace(replace1, replace2)
replaceA, replaceB, replaceC = re.search(r‘(\d+)-(\d+)-(\d+)‘, result[1]).groups()
replace2 = replaceA + ‘-‘ + str(int(replaceB) + int(time)) + ‘-‘ + replaceC
result[1] = result[1].replace(replaceA + ‘-‘ + replaceB + ‘-‘ + replaceC, replace2)
replace1 = re.search(r‘\d+‘, result[2]).group()
replace2 = str(int(replace1) - int(time))
result[2] = result[2].replace(replace1, replace2)
with open(‘datebase.log‘, ‘r‘, encoding=‘utf-8‘) as old, open(‘NewDatebase.log‘, ‘w‘, encoding=‘utf-8‘) as new:
for line in old:
if line.strip() == ‘Username:%s‘ % name:
f = ‘红灯‘
new.write(line)
for new_line in result:
new.write(‘ ‘ * 8 + new_line + ‘\n‘)
continue
if f == ‘绿灯‘:
new.write(line)
else:
if line.strip().startswith(‘backend‘):
f = ‘绿灯‘
new.write(line)
with open(‘NewDatebase.log‘, ‘r‘, encoding=‘utf-8‘) as old, open(‘datebase.log‘, ‘w‘, encoding=‘utf-8‘) as new:
for line in old:
new.write(line)
def chaxun(name):
‘‘‘
:param name:用户名
:return:每月还款情况
‘‘‘
f = ‘绿灯‘
result = []
with open(‘datebase.log‘, ‘r‘, encoding=‘utf-8‘) as f1:
for line in f1:
if line.strip() == ‘Username:%s‘ % name:
f = ‘红灯‘
result.append(line.strip())
continue
if f == ‘红灯‘:
if line.strip().startswith(‘Username‘):
f = ‘绿灯‘
break
else:
if line.strip():
result.append(line.strip())
return result
def exist(name):
flage = ‘找不到‘
with open(‘datebase.log‘, ‘r‘, encoding=‘utf-8‘) as f:
for line in f:
if line.startswith(‘Username:‘ + name):
flage = ‘找到了‘
break
if flage == ‘找到了‘:
return True
else:
return False
def lixi(list): # [‘Username:wuwen‘, ‘Money:1000‘, ‘Date:2017-8-10‘, ‘Times:10‘, ‘Interest(day):0.0004‘]
years, mounths, days = re.search(r‘(\w+)-(\w+)-(\w+)‘, list[2]).groups()
times = re.search(r‘\d+‘, list[3]).group()
moneys = int(re.search(r‘\d+‘, list[1]).group())
for i in range(1, int(times) + 1):
if int(mounths) < 12:
mounths = str(int(mounths) + 1)
date = ‘%s-%2s-%2s‘ % (years, mounths, days)
money_oringin = moneys / int(times)
money_interest = moneys * 0.0004 * 30
print(‘\033[36;1m第%2s期:Date:%s Moneys + interest: %5s + %5s = %5.2f\033[0m‘ % (i,
date, money_oringin,
money_interest,
money_interest + money_oringin))
moneys = moneys - money_oringin
times = str(int(times) - 1)
else:
years = str(int(years) + 1)
mounths = str(int(mounths) - 11)
date = ‘%s-%2s-%2s‘ % (years, mounths, days)
money_oringin = moneys / int(times)
money_interest = moneys * 0.0004 * 30
print(‘\033[36;1m第%2s期:Date:%s Moneys + interest: %5s + %5s = %5.2f\033[0m‘ % (i,
date, money_oringin,
money_interest,
money_interest + money_oringin))
moneys = moneys - money_oringin
times = str(int(times) - 1)
continue
if __name__ == ‘__main__‘:
# \033[31;1m \033[0m 1为红色 2为绿 3为黄 4为深蓝 5葡萄红 6浅蓝 7浅灰 8黑色
while True:
options = input(‘\033[31;1m请输入选项,1:借钱 2:还钱 3:查询 Enter Your Option:\033[0m‘)
if options == ‘1‘:
while True:
name = input(‘\033[32;1m请输入用户名:\033[0m‘)
if exist(name):
result = chaxun(name)
remain = result[1].split(‘:‘)[1]
if int(remain) > 0:
print(‘\033[33;1m请还清余额再尝试借钱:\033[0m‘)
continue
else:
account = input("\033[33;1m输入你要借取得金额:\033[0m")
mounths = input("\033[33;1m输入你分期的月数,6或12:\033[0m")
date = str(datetime.date.today())
if register(name, account, date, mounths):
print(‘\033[34;1m借取成功,日利率为万分之四,请在下个月今天5天之前还款!!\033[0m‘)
break
elif options == ‘2‘:
while True:
name = input(‘\033[32;1m请输入用户名:\033[0m‘)
if exist(name):
result = chaxun(name)
print(‘\033[33;1m%s\033[0m‘ % result)
lixi(result)
times = input(‘\033[33;1m输入你要还的次数:\033[0m‘)
account = input(‘\033[33;1m请输入正确的本金:\033[0m‘)
repay(name, account, times)
result = chaxun(name)
print(‘\033[33;1m%s\033[0m‘ % result)
lixi(result)
break
else:
print(‘\033[33;1m用户不存在!!\033[0m‘)
continue
elif options == ‘3‘:
while True:
name = input(‘\033[32;1m请输入要查询的用户名:\033[0m‘)
if exist(name):
result = chaxun(name)
print(‘\033[33;1m%s\033[0m‘ % result)
lixi(result)
break
else:
print("没有此用户")
continue
print(‘\033[34;1m3s后返回首页\033[0m‘)
time.sleep(3)
2.效果展示
1.1:借钱

2.1:存放格式

3.1:还钱

3.2:修改之后

4.1:查询

标签:datetime today 存在 cond oda 原创 break 实现 end
原文地址:http://www.cnblogs.com/wuwen19940508/p/6971800.html