0

我正在尝试在 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 的列。

我希望我已经把自己说得足够清楚,这样你就可以理解我的要求了。

4

1 回答 1

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
于 2013-10-24T21:07:55.843 回答