我正在尝试在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列。
我希望自己足够清楚,这样你才能理解我的要求。
答案 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