析构之后:万物重生! 小岚Rabbit_Radish(兔仔_萝卜)

析构!!!

大家好,我还是那个小岚的作者@发现美的眼睛

这一次,为大家介绍一种思路,就是析构思路。


先来看看原生的小岚,刚刚诞生的样子!

#! /usr/bin/python
# -*- coding:utf-8 -*-
#@491609917@qq.com 作者:和光同尘堂
#功能列表



----------------------
1.	支持图数一体化   ---yes
		单一js		---yes
		^非单一js
		配置参数图表		---yes
		二级优化(针对图表格式化输出代码进行优化)		---yes
----------------------
2.	支持单位转换		---yes
		专业术语转换		---yes
----------------------
3.	语句排列(格式化输出)	---yes
		^格式化输出 __init__		#初始化输出
		格式化输出字符串		---yes
		正则 				---yes
----------------------
4.	历史转存(列表判断,time引导记录) 		---yes
		格式化输出(语句)	---yes
		^图表输出
		正则 				---yes
		^调取历史数据出现三次,需修复
		^调取历史数据,时间线需要切片处理
----------------------
5.	图表转存(格式化输出)
		格式化打印		---yes
		正则 		---yes
----------------------
6.  计算公式优化			---yes
		将if判断式中的ALG调整为函数ALG		---yes
		^结构内部出现内建函数,需要进行调整


from pyecharts import Line

# Ilike, Ispeak = "人生苦短,我用python", "小岚是我第一个创造的世界"
# hint = "所有数据将存储该程序中,不用联网(仅限无爬虫版本)"
# BBS = "利息计算根据中国人民银行公布的利率进行计算,该数值可精确到小数万位"
# print(Ilike.center(125,' ') + '\n')
# print(Ispeak.center(120,' ') + '\n')
# print(hint.center(110,' ') + '\n')
# print(BBS.center(100,' ') + '\n')

Ilike, Ispeak = "人生苦短,我用python\n", "小岚是我第一个创造的世界\n"
hint = "所有数据将存储该程序中,不用联网(仅限无爬虫版本)\n"
BBS = "利息计算根据中国人民银行公布的利率进行计算,该数值可精确到小数万位\n"
print(Ilike.center(125,' ') + '\n' + Ispeak.center(120,' ') + '\n' + hint.center(110,' ') + '\n' +BBS.center(100,' '))


# 修复注释:
	# 请将多个重复性代码进行优化重叠,减少体积。例如js生成代码
	# 历史数据;
		# 将I/O转存,实现第四功能
-----------------------------------------------------------------------------------------------------------------------------------

# 图表格式化输出单位为:缩进块为4*空格
	----制表单位

# 表结构需要使用---正则---进行重新定义排序
	

	m = [['城乡居民和单位存款', "利率 % (单位/百分比)"],
	     ['活期存款',"0.35"],
	     ['整存整取定期存款','选项'],
	     ['三个月','1.1'], ['半年','1.3'], ['一年','1.5'],  ['两年','2.1'], ['三年','2.75'],
	     ['各项存贷','选项'],
	     ['一年以内(含一年)','4.35'], [ '五年以内(含五年)','4.75'], ['五年以上','4.90'],
	     ['个人住房公积金贷款','选项'],
	     ['五年以下(含五年)', '2.75'], ['五年以上', '3.25'],
	     ['暂无额外','选项']]
	#
	#每次format时,只能填入两个坑
	for mm in m:
	    print('-' * 100)
	    print("\t{0:{2}^20}\t{1:{2}^30}".format(mm[0], mm[1],chr(12288)))


	    # 95-131行代码实现图表格式化输出

	-----------------------------------------------------------------------------------------------------------------------------------------

	历史数据存储判断
			----str_type = one_type 
			----timestamp = time.localtime(time.time)


	
def ALG_a(deposit_strs, irs_a):
    global result
    result = deposit_strs * irs_a * 1
    return print("利息为: %s" % result)

def ALG_b(loan_strs, irs_b):
    global result
    result = loan_strs * irs_b * 1
    return print("利息为: %s" % result)

def ALG_c(CPF_strs, irs_c):
    global result
    result = CPF_strs * irs_c * 1
    return print("利息为: %s" % result)

set_list = []
print(input("Enter回车下一步:"))
while True:
    print("\n###非技术型问题###","\n\t###第一计算类型--整存整取定期存款","\n\t###第二计算类型题--各项存贷", "\n\t###第三计算类型--个人住房公积金存贷")
    one_type = input("\n本次计算类型应为:")

    if one_type == '整存整取定期存款':
        irs_a_1 = float(0.011)
        irs_a_2 = float(0.013)
        irs_a_3 = float(0.015)
        irs_a_4 = float(0.021)
        irs_a_5 = float(0.0275)
        deposit_strs = float(input('-' * 100 + "\n存入金额:"))
        print('-' * 100 + "\n整存整取定期存款:其款项所存时间为符合项,不应出现不符合规则项!")
        deposit_time = float(input('-' * 100 + "\n存款时间选项\n\t三个月等于3\t半年等于6\t一年等于12\t两年等于24\t三年等于36" + "\n存款时间:"))
        irs_a = [irs_a_1, irs_a_2, irs_a_3, irs_a_4, irs_a_5]
        if deposit_time == 3:
            ALG_a(deposit_strs, irs_a[0])
            set_list = [deposit_strs, result + deposit_strs]  # 修复完成
        elif deposit_time == 6:
            ALG_a(deposit_strs, irs_a[1])
            set_list = [deposit_strs, result + deposit_strs]    # 修复完成
        elif deposit_time == 12:
            ALG_a(deposit_strs, irs_a[2])
            set_list = [deposit_strs, result + deposit_strs]    # 修复完成
        elif deposit_time == 24:
            ALG_a(deposit_strs, irs_a[3])
            set_list = [deposit_strs, result + deposit_strs]    # 修复完成
        elif deposit_time == 36:
            ALG_a(deposit_strs, irs_a[4])
            set_list = [deposit_strs, result + deposit_strs]    # 修复完成
        else:
            print("\t输入值错误")
            print("\t请输入符合计算条件的数值")  # 报错异常写入try异常处理中
    elif one_type == '各项贷款':
        irs_b_1 = float(0.0435)  # <=1
        irs_b_2 = float(0.0475)  # >1 <=5
        irs_b_3 = float(0.0490)  # >5
        loan_strs = float(input('-' * 100 + "\n数值金额:"))
        loan_time = float(input('-' * 100 + "\n贷款时间:"))  # 可输入月份比较值(即一个月等于1,五个月等于5,一年等于12)
        irs_b = [irs_b_1, irs_b_2, irs_b_3]
        if loan_time <= 1:
            ALG_b(loan_strs, irs_b[0])
            set_list = [loan_strs, result + loan_strs]
        elif loan_time > 1 <= 5:
            ALG_b(loan_strs, irs_b[1])
            set_list = [loan_strs, result + loan_strs]
        elif loan_time > 5:
            ALG_b(loan_strs, irs_b[2])
            set_list = [loan_strs, result + loan_strs]
        else:
            print("贷款时间 {} 输入值存在异常".format(loan_time))
    elif one_type == '个人住房公积金存贷':
        irs_c_1 = float(0.0275)
        irs_c_2 = float(0.0325)
        CPF_strs = float(input('-' * 100 + "\n贷款金额:"))
        CPF_time = float(input('-' * 100 + "\n贷款时间:"))
        irs_c = [irs_c_1, irs_c_2]
        if CPF_time <= 5:
            ALG_c(CPF_strs, irs_c[0])
            set_list = [CPF_strs, result + CPF_strs]
        elif CPF_time > 5:
            ALG_c(CPF_strs, irs_c[1])
            set_list = [CPF_strs, result + CPF_strs]
    else:
        print("\t输入值错误")
        print("\t请输入符合计算条件的数值")
else:
    print("输入值存在异常")

	# 输入值应为自由,不该受限
	#str_str = int(input("\n提示数值为整数\t" + "\t请输入存放金额: "))
	#time_str = int(input("\n提示输入值为数字\t" + "\t请输入年份: "))
	



	-----------------------------------------------------------------------------------------------------------------------------------------------
"""
try:
	# 异常处理,针对用户输入错误类型进行提示
	str_str = int(input("\n提示数值为整数\t" + "\t请输入存放金额: "))
	print("pass") if str_str == int else print("输入值存在异常")		# 异常处理
except Exception as e:
	print("输入了错误类型,请输入正确类型!")
else:
	True   # 正常则1
finally:
	print("异常处理机制已启动")
"""
	----------------------------------------------------------------------------------------------------------------------------------------------

这里面包含了很多很多,就光注释就几十行。毕竟是第一次写程序,在没有任何导师的指点下,我们需要边写边优化。同时还要对代码能够实现的功能进行扩展,于是……繁琐复杂和无效在那个时候称为我最为头疼的问题。

好在,强迫症要求自己在400行的时候进行重新析构。


相信大家都明白析构的含义吧!顾名思义,析构就是重构!

对原来的自己编写的代码进行重新书写,就连结构框架都要重新定义。不过,也正是这个过程彻底磨炼了个人水平!

流程图
小岚流程图

也就是这个过程,让我明白了一个程序出生到完善之中一系列的过程,这里面包含的世界。

从刚开始写的ALG计算(ALG就是算法,这里只是指计算公式),到后边的功能扩展,都是 一次次学习进步得来的。

 


废话不多,流程图才是这个程序真正的精髓。这个过程,我使用了五个以上的库来协助完成我的愿望!

① datatime——

② sys——

③pyecharts——

④wxpy——

⑤内建库(代码必须拆分写,不然又后悔的日子)——

⑥MySQL——

⑦Redis——

这些库组成了小岚现在的样子!历时半个月,从书写到析构,从单一计算到功能扩展。这就是全过程!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值