import numpy as np
import matplotlib.pyplot as plt
from prettytable import PrettyTable
P0=100 #初始人口数目为P0
C=0.02 #人口自然增长率为2%/年
maxt=20 #预测的截止年份,计算是从第0年开始的
def forecast(t, p):
'''
t:用于存放年份的数组
p:用于存放人口的数组
'''
for i in range(0,maxt+1):
t.append(i)
y=P0*(1+C)**t[i]#经推导的人口关于年份的函数表达式
p.append(y)
def drawPopulationMap(t, p):
'''
t:用于存放年份的数组
p:用于存放人口的数组
'''
plt.xlim(0,maxt+10), plt.ylim(P0-5,2*P0) #x轴、y轴的表示范围
plt.plot(t,p) #绘制图形
plt.xlabel('time'),plt.ylabel('population') #设置x、y轴的标签
plt.title('simple population problem') #设置图表标题
plt.show() #展示图表
def printTable(t, p):
x= PrettyTable(['年份', '人口'])
for i in range(len(t)):
x.add_row([t[i],p[i]])
print(x)
def main():
t=[]
p=[]
forecast(t, p) #预测人口
drawPopulationMap(t , p) #绘制图形
printTable(t,p) #画表格
if __name__ =='__main__': #提供调用函数的入口
main()
本程序在VS2017下运行通过