2
My question is about formatting output data from the program.
I’m solving one of the exercises wiki.python.org
, whose data entry is as follows::
alexandre 456123789
anderson 1245698456
antonio 123456456
carlos 91257581
cesar 987458
rosemary 789456125
This entry was saved in a type file .txt
which must be opened by the programme, the data output must be similar to this:
ACME Inc. Uso do espaço em disco pelos usuários
------------------------------------------------------------------------
Nr. Usuário Espaço utilizado % do uso
1 alexandre 434,99 MB 16,85%
2 anderson 1187,99 MB 46,02%
3 antonio 117,73 MB 4,56%
4 carlos 87,03 MB 3,37%
5 cesar 0,94 MB 0,04%
6 rosemary 752,88 MB 29,16%
Espaço total ocupado: 2581,57 MB
Espaço médio ocupado: 430,26 MB
To solve the problem I wrote the following program:
soma = 0
nome, espaco = [], []
a = open("usuarios.txt")
for line in a:
b = line.strip().split(" ")
nome.append(b[0])
espaco.append(b[1])
print("ACME Inc. Uso do espaço em disco pelos usuários")
print("------------------------------------------------------------------------")
print("Nr.",end = " ")
print("Usuário",end = " ")
print("Espaço utilizado",end = " ")
print("% do uso")
print(" ")
for j in range(len(nome)):
espaco[j] = int(espaco[j])
soma += espaco[j]
for i in range(len(nome)):
print(i+1,end = " ")
print(nome[i],end = " ")
espaco[i] = int(espaco[i])
print("{:.2f} MB".format(espaco[i]/(1024*1024)),end = " ")
print("{:.2f}%".format((espaco[i]/soma)*100))
print("")
print("Espaço total ocupado: {:.2f} MB".format(soma/(1024*1024)))
print("Espaço médio ocupado: {:.2f} MB".format((soma/(1024*1024))/len(espaco)))
My data output is as follows:
ACME Inc. Uso do espaço em disco pelos usuários
------------------------------------------------------------------------
Nr. Usuário Espaço utilizado % do uso
1 alexandre 434.99 MB 16.85%
2 anderson 1187.99 MB 46.02%
3 antonio 117.74 MB 4.56%
4 carlos 87.03 MB 3.37%
5 cesar 0.94 MB 0.04%
6 rosemary 752.88 MB 29.16%
Espaço total ocupado: 2581.58 MB
Espaço médio ocupado: 430.26 MB
As you can see, the output is all crooked, doesn’t have the values exactly under each other, as the statement asks. How do I format this?