在Python中打印x次

时间:2013-10-24 20:51:23

标签: python python-3.x

我正在尝试在Python中打印一个表,我想打印所需的列数,这取决于用户。

我要求用户输入开始时间和结束时间,以及他们希望增加多少。获得这些值后,我想打印一个在列中有时间的表,但是列数会根据用户输入的内容而改变。

我无法弄清楚的是如何只打印所需的列数。

以下是我到目前为止的情况,但它远不是我想要的。

initial = int(input("Initial investment amount: "))
max_initial = int(input("Maximum initial investment amount: "))
increment_initial = int(input("Value to be used to increment the initial investment amount: "))

min_time = int(input("Minimum time period of investment: "))
max_time = int(input("Maximum time period of investment: "))
increment_time = int(input("Value to be used to increment the time period: "))

year = []

for x in range(min_time, max_time + 1, increment_time):
    year.append(x)

time_period = len(year)

n = []
for i in range(time_period):
    j = year[i]
    n.append(j)

print ("{0} {1}".format("Years: ", ""))

所以我想做的是,使用min_time,max_time和increment_time变量来打印出适当数量的列。

一个例子:

如果用户输入min_time = 1,max_time = 5,increment_initial = 1,我希望有1到5的列。然后在下次如果用户键入min_time = 1,max_time = 10, increment_initial = 1,我希望有1到10列。

我希望自己足够清楚,这样你才能理解我的要求。

1 个答案:

答案 0 :(得分:0)

有几种不同的方法可以构建具有可变列数的输出行。哪一个最好可能取决于你在更大范围内实际做了什么。

一种简单的方法是循环遍历列值并对每个值进行print调用,其中仅关键字参数end设置为换行符之外的其他值。这将导致它在打印输出结束时跳过通常的换行符。要在行尾添加换行符,您需要在打印完所有列后进行常规print()调用。

另一种选择是为列构建单个字符串,可能使用str.join。根据你想要格式化的方式,这可能是" ".format(str(x) for x in years)或者更复杂的东西。

以下两个代码:

years = range(min_time, max_time + 1, increment_time)

for year in years:
    print(year, end=" ") # prints a space after each value, rather than a newline
print() # add a newline at the end of the row

row_str = " ".join(str(year) for year in years) # join year strings with spaces
print(row_str) # prints whole row in one step, with a newline at the end