这就是定义了几个函数,其中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