Python如何制作制表符

2024-10-17 06:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我在下面构建了这个代码,它基本上计算了3种不同本金的复利:最小本金、增量本金(这是用户输入的值+最小本金的相加),最后是最大本金。在

principal=int(input("Enter an initial principle value: "))
assert principal >0, "Principal must be a positive integer value"
max_prin=int(input("Enter a maximum principle value: "))
assert max_prin >0 and max_prin>principal, "Principal must be a positive integer value"
increment=int(input("Enter the increment to increase it by: "))
prin_incre=increment+principal
interest=float(input("Enter an interest rate: "))
assert interest >0 and interest <1, "Interest must be greater than 0 but less than 1"
years=int(input("Enter how many years do you want it to go up by: "))
assert years>0, "Years must be a positive integer value"
min_year=int(input("Enter how many years it will take on a minimum basis: "))
assert min_year>0
max_year=int(input("Enter how many years it will take at maximum: "))
assert max_year > min_year and max_year >0

代码基本上获取用户输入和所有断言,以确保输入的值是正确的。在

现在底部的代码基本上是一个函数,它计算三种不同原则在一段时间内的三种不同的复利(最小年到最高年,用户输入年的增量)。在

^{pr2}$

现在我面临的问题是把下面的输出放入一个有组织的图表中:

^{3}$

正如你所看到的,理想情况下,我试图创造一些东西,例如:

compound interest table
year       original principlal  increment principal  maximum principal
5            454545               8448484              944949
6            555555               etc                  etc
7            994949
8           etc
9           etc
10          etc

因此,考虑到我上面的代码,如果有人对我当前的输出有什么建议或意见,并将其放入我在上面直接说明的理想图表形式的输出,请让我知道这是令人难以置信的!谢谢你

编辑:只是希望能够将输出的结果塑造成图表,而不是可导出的图表。在


Tags: 代码principalinputvalueetcassertbeyear
2条回答

如果您有列表中的数据,您可以使用这个简单的模块https://code.google.com/p/prettytable/

我已经修改了你的代码,使它达到预期的结果。请记住以下几点变化:

  • 我写了raw_input而不是{},因为如果您使用的是python3及以上版本,那么我使用的是python2.7。在
  • 然后我修改了初始的for循环,将得到的每个值保存到它自己的列表中。在
  • 然后在表格后面的表格里打印出来。Edt:固定间距 -最后,我运行了您的代码最初没有的函数。在

如果您对本规范有任何疑问、要求或顾虑,请留言:

principal=int(raw_input("Enter an initial principle value "))
assert principal, "Principal must be a positive integer value"
max_prin=int(raw_input("Enter a maximum principle value "))
assert max_prin, "Principal must be a positive integer value"
increment=int(raw_input("Enter the increment to increase it by" ))
prin_incre=increment+principal
interest=float(raw_input("Enter an interest rate "))
assert interest and interest, "Interest must be greater than 0 but less than 1"
years=int(raw_input("Enter how many years do you want it to go up by "))
assert years, "Years must be a positive integer value"
min_year=int(raw_input("Enter how many years it will take on a minimum basis "))
assert min_year
max_year=int(raw_input("Enter how many years it will take at maximum "))
assert max_year

def compound(principal, interest, years,min_year,max_year,max_prin,prin_incre,increment):
    years_list = []
    total_min_list = []
    total_max_list = []
    total_incre_list = []
    print("Compound Interest Table")
    for period in range(min_year,max_year,years):
        total_min = float(principal) * float((1+interest)**float(period+1))
        total_min_list.append(total_min)
        years_list.append(period+1)
        total_max=float(max_prin) * float((1+interest)**float(period+1))
        total_max_list.append(total_max)
        total_incre=float(prin_incre) * float((1+interest)**float(period+1))
        total_incre_list.append(total_incre)

    print('Year        Total Minimum        Total Maximum        Total Increment')
    for i in range(0,int(len(total_min_list))-1):
        spacing_min = 21 - len(str(total_min_list[i]))
        spacing_max = 21 - len(str(total_max_list[i]))
        spacing_years = 12 - len(str(years_list[i]))
        print(str(years_list[i])+ ' '*spacing_years +str(total_min_list[i])+ ' '*spacing_min +str(total_max_list[i])+ ' '*spacing_max +str(total_incre_list[i]))

 compound(principal,interest,years,min_year,max_year,max_prin,prin_incre,increment)

相关问题 更多 >