我希望这些数据的格式对我来说是统一的,以供用户阅读,但我无法尝试所有方法。代码在这里:
def runModel():
global valueJuvenile, valueAdult, valueSenile,total, values
values = ''
total = valueSenile + valueJuvenile + valueAdult
values += 'G' + ', '
values += 'Juv' + ', '
values += 'Adu' + ', '
values += 'Sen' + ', '
values += 'Tot' + ', '
values += '\n0' + ', '
values += str(valueJuvenile) + ', '
values += str(valueAdult) + ', '
values += str(valueSenile) + ', '
values += str(firstTotal) + ', '
for n in range(1,numNewGen):
if n != 0:
values += '\n'
values += str(n)+', '
valueJuvenile = round(valueAdult * birthRate * valueJuvenileSR,3)
valueAdult = round(valueJuvenile * valueAdultSR,3)
valueSenile = round(valueSenile + valueAdult * valueSenileSR,3)
total = round(valueSenile + valueJuvenile + valueAdult,3)
values += str(valueSenile) + ', '
values += str(valueJuvenile) + ', '
values += str(valueJuvenile) + ', '
values += str(total)
print(values)
print("Model has been ran!")
input('\nPlease press Enter to return to menu...')
menu()
这是 shell 中的结果:
值集:
Please enter the amount of Juveniles (1 = 1000) 1
Please enter the amount of Adults (1 = 1000) 1
Please enter the amount of Seniles (1 = 1000) 1
Please enter the survival rate for Juveniles 1
Please enter the survival rate for Adults 1
Please enter the survival rate for Seniles 1
Please enter the birth rate of GreenFlies 1
Please enter the number of new generations 11
Please enter at what population breakpoint would you like the disease to trigger 11
Running model!
G, Juv, Adu, Sen, Tot,
0, 1.0, 1.0, 1.0, 3.0,
1, 2.0, 1.0, 1.0, 4.0
2, 3.0, 1.0, 1.0, 5.0
3, 4.0, 1.0, 1.0, 6.0
4, 5.0, 1.0, 1.0, 7.0
5, 6.0, 1.0, 1.0, 8.0
6, 7.0, 1.0, 1.0, 9.0
7, 8.0, 1.0, 1.0, 10.0
8, 9.0, 1.0, 1.0, 11.0
9, 10.0, 1.0, 1.0, 12.0
10, 11.0, 1.0, 1.0, 13.0
Model has been ran!
正如您在第 0 行看到的,数据与其他数据的位置不同,这也发生在第 10 行,因为 0 是一个额外的字符,它将所有内容向右移动一个位置,我会想知道如何格式化它。
就上下文而言,这是一个程序,其中用户设置变量,这些变量由其他变量设置调整,例如受下一代幼鱼存活率影响的幼鱼值。在输出 shell 中,G 对应于世代数,在这种情况下,0 是用户设置的原始值,直到第 10 代,到那时已经被其他变量影响了 10 次。 Juv、Adu、Sen分别对应少年成年和老年
最佳答案
使用格式
。例如:
def runModel(valueJuvenile, valueAdult, valueSenile,total, values):
header = ['G', 'Juv', 'Adu', 'Sen', 'Tot']
format = "{:5}, {:5}, {:5}, {:5}, {:5}".format
values = [format(*header)]
values.append(format(n, valueJuvenile, valueAdult, valueSenile, firstTotal))
for n in range(1, newNewGen):
valueJuvenile = round(valueAdult * birthRate * valueJuvenileSR,3)
valueAdult = round(valueJuvenile * valueAdultSR,3)
valueSenile = round(valueSenile + valueAdult * valueSenileSR,3)
total = round(valueSenile + valueJuvenile + valueAdult,3)
values.append(format(n, valueJuvenile, valueAdult, valueSenile, total))
print('\n'.join(values))
print("Model has been ran!")
input('\nPlease press Enter to return to menu...')
menu()
关于 python 3 : How can I align the the format of this data when it prints,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39129603/