python 3 : How can I align the the format of this data when it prints

标签 python python-3.x formatting

我希望这些数据的格式对我来说是统一的,以供用户阅读,但我无法尝试所有方法。代码在这里:

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/

相关文章:

python - 如何将 Markdown 列表解析为 Python 中的字典?

python - 模板语法错误 : 'if' statement improperly formatted

c# - 是否有用于解析/格式化 TCP 数据包的库或任何有助于这样做的库?

python - 在 Windows 上使用 FastCgiModule 设置 Python 和 Flask 时出现 500 Internal Server Error

python - 使用pyodbc的sql server返回值

python - pysnmp - nextCmd - 不检索下一个元素

arrays - 将pyaudio数据 block 组合成一个较长的 block

python - key=dictionary.get 的效率如何?

ios - Objective c 自定义对象描述问题

mysql - 清理MySQL查询字符串数据而不改变源数据库?