求求大家帮我看看这个的设计思路是啥!!

 

这就是定义了几个函数,其中bill_list是用来存储年度收入账单的

f1=create_Annual_bill 对应给bill_list添加账单,账单的格式是第一个是年份,后面12个是每个月的;

f2=show_Annual_bill 收入参数是bill,bill第一位是年份,后面是月收入;

f3=make_monthly_analysis 用这个月的收入减去上个月收入,除以上个月收入是增长率,返回14个值,第一个是年份,第二个是平均增长率,后面是每个月相对于上个月的增长率;

f4=make_yearly_analysis 输入两个年度收入账单,对比两年的每个月收入,返回14个值,第一个是两年的年份,后面12位是每个月的对比,最后一位是平均值;

f5=show_analysis 将f3和f4的对应结果显示出来

find 函数是输入年份找到对应的账单。

输入1来添加数据,2来打印收入数据,3分析这一年的收入,4分析两年的收入,0退出,程序整体来说并不是很复杂,你可以再好好看看

这个有什么思路可以讲的?

这个代码就是模拟建立一个账单管理,分为4个功能块

输入1,就建立每年的账单,顺序输入年份和每个月的数据

输入2,就显示指定年份的账单

输入0就退出这个程序

账单放到一个列表里,用来保存数据

求求大家帮忙看看吧有谢💰

import os

os.system(' ') #为后续打印字体颜色做准备

def create_Annual_bill(): #1新建年度账单

    bill=[0,0,0,0,0,0,0,0,0,0,0,0,0] #为了符合日常习惯,建立13个元素的列表,第一个索引设置为年份

    bill[0]=int(input("请输入该账单的年份:"))

    for i in range(1,13):

        print("请输入",bill[0],"年",i,"个月收入:")

        bill[i]=int(input()) #收入用整形

    return bill

def show_Annual_bill(bill): #2

    for i in range(1,13):

        print(bill[0],"年第",i,"个月收入:",bill[i])

def make_monthly_analysis(bill): #3月度分析

    ratio=[0,0,0,0,0,0,0,0,0,0,0,0,0] #为了符合日常习惯,建立13个元素的列表,第一个设为年份,第二个设为平均增长率

    ratio[0]=bill[0]

    sum=0

    for i in range(2,13):

        ratio[i]=(bill[i]-bill[i-1])/bill[i-1]

        sum+=ratio[i]

    ratio[1]=sum/11

    return ratio

def make_yearly_analysis(bill1,bill2): #4年度分析

    ratio=[0,0,0,0,0,0,0,0,0,0,0,0,0,0] #索引0不用,索引1为平均值,符合日常习惯

    ratio[0]=[bill1[0],bill2[0]]

    sum=0

    for i in range(1,13):

        ratio[i]=(bill1[i]-bill2[i])/bill2[i]

        sum+=ratio[i]

    ratio[13]=sum/12

    return ratio

def show_analysis(ratio,bill1,bill2,bill): #5

    if type(ratio[0])==list:

        for i in range(1,13):

            if ratio[i]>=0:

                print(bill1[0],"年较",bill2[0],i,"月"+"\033[31m增长\033[0m"+"比率:",ratio[i]*100,"%")

            else:

                print(bill1[0],"年较",bill2[0],i,"月"+"\033[32m减少\033[0m"+"比率:",-ratio[i]*100,"%")

        print("\n")

        if ratio[13]>=0:

            print(bill1[0],"年较",bill2[0],"\033[31m增长\033[0m"+"比率:",ratio[13]*100,"%")

        else:

            print(bill1[0],"年较",bill2[0],"\033[32m减少\033[0m"+"比率:",-ratio[13]*100,"%")   

    else:

        for i in range(2,13):

            if ratio[i]>=0:

                print(bill[0],"年"+"第",i,"月较上个月"+"\033[31m增长\033[0m"+"比率:",ratio[i]*100,"%")

            else:

                print(bill[0],"年"+"第",i,"月较上个月"+"\033[32m减少\033[0m"+"比率:",-ratio[i]*100,"%")

        if ratio[1]>=0:

            print(bill[0],"年平均\033[31m增长\033[0m"+"比率:",ratio[1]*100,"%")

        else:

            print(bill[0],"年平均\033[32m减少\033[0m"+"比率:",-ratio[1]*100,"%")

def find(year,bill_list):

    for i in range(len(bill_list)):

        if bill_list[i][0]==year:

            return bill_list[i]

    year=int(input("请输入要分析账单的年份:"))

    find(year,bill_list)

f1=create_Annual_bill

f2=show_Annual_bill

f3=make_monthly_analysis

f4=make_yearly_analysis

f5=show_analysis #简化函数

a=10

bill_list=[]

print("/* * * * * * * * * 欢迎使用本程序 * * * * * * * * */")

print("本程序共有四个功能\n1:新建年度收入账单\n2:展示年度账单\n3:对一账单进行分析\n4:对两个账单进行比较分析")

while(a!=0):

    a=int(input("\n请输入数字1234执行相应功能(输入0结束):"))

    if a==1:

        bill_list.append(f1())

    elif a==2:

        year=int(input("请输入要展示账单的年份:"))

        f2(find(year,bill_list))

    elif a==3:

        year=int(input("请输入要分析账单的年份:"))

        f5(f3(find(year,bill_list)),0,0,find(year,bill_list))

    elif a==4:

        year1=int(input("请输入要比较第一个账单的年份:"))

        year2=int(input("请输入要比较第二个账单的年份:"))

        f5(f4(find(year1,bill_list),find(year2,bill_list)),find(year1,bill_list),find(year2,bill_list),0)

    elif a==0:

        break

    else:

        a=input("请输入数字1234!执行相应功能:")

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632