What's wrong in this print's formatting? Why is it not aligned?
Question:
While trying to solve an exercise, I tried to make the final print’s exhibition a bit better by using tab (t) inside the line. I tried it in another stance and it made the final result look like a table.
Should I ditch this idea? What would be an alternative to improve this final line?
#this first line was given by the teacher
vendas_produtos = [('iphone', 558147, 951642), ('galaxy', 712350, 244295), ('ipad', 573823, 26964), ('tv', 405252, 787604), ('máquina de café', 718654, 867660), ('kindle', 531580, 78830), ('geladeira', 973139, 710331), ('adega', 892292, 646016), ('notebook dell', 422760, 694913), ('notebook hp', 154753, 539704), ('notebook asus', 887061, 324831), ('microsoft surface', 438508, 667179), ('webcam', 237467, 295633), ('caixa de som', 489705, 725316), ('microfone', 328311, 644622), ('câmera canon', 591120, 994303)]
print('ProdutottVendas de 2019ttVendas de 2020tt% de crescimento')
for tupla_produtos in vendas_produtos:
produto, vendas2019, vendas2020 = tupla_produtos
if vendas2020 > vendas2019:
crescimento = vendas2020 / vendas2019 - 1
print(f'{produto}tt{vendas2019:,.2f}tt{vendas2020:,.2f}tt{crescimento:.1%}')
Note that I tried using the t in both prints to try and make the final result aligned, like a table of sorts. The image shows what the result was like
Answers:
print(f'{produto}tt{vendas2019:,.2f}tt{vendas2020:,.2f}tt{crescimento:.1%}')
The tt
makes it’s job and depending on the produto
length you see the unaligned result.
Try import pprint
and play with that, it should give you an help!
You can use string formatting like this:
vendas_produtos = [('iphone', 558147, 951642), ('galaxy', 712350, 244295), ('ipad', 573823, 26964), ('tv', 405252, 787604), ('máquina de café', 718654, 867660), ('kindle', 531580, 78830), ('geladeira', 973139, 710331), ('adega', 892292, 646016), ('notebook dell', 422760, 694913), ('notebook hp', 154753, 539704), ('notebook asus', 887061, 324831), ('microsoft surface', 438508, 667179), ('webcam', 237467, 295633), ('caixa de som', 489705, 725316), ('microfone', 328311, 644622), ('câmera canon', 591120, 994303)]
print(f"%-20s %-20s %-20s %-20s" % ("produto", "Vendas de 2019", "Vendas de 2020", "% de crescimento") )
for tupla_produtos in vendas_produtos:
produto, vendas2019, vendas2020 = tupla_produtos
if vendas2020 > vendas2019:
crescimento = vendas2020 / vendas2019 - 1
print(f"%-20s %-20.2f %-20.2f %-20.1f" % (produto, vendas2019, vendas2020, crescimento) )
Output:
produto Vendas de 2019 Vendas de 2020 % de crescimento
iphone 558147.00 951642.00 0.7
tv 405252.00 787604.00 0.9
máquina de café 718654.00 867660.00 0.2
notebook dell 422760.00 694913.00 0.6
notebook hp 154753.00 539704.00 2.5
microsoft surface 438508.00 667179.00 0.5
webcam 237467.00 295633.00 0.2
caixa de som 489705.00 725316.00 0.5
microfone 328311.00 644622.00 1.0
câmera canon 591120.00 994303.00 0.7
While trying to solve an exercise, I tried to make the final print’s exhibition a bit better by using tab (t) inside the line. I tried it in another stance and it made the final result look like a table.
Should I ditch this idea? What would be an alternative to improve this final line?
#this first line was given by the teacher
vendas_produtos = [('iphone', 558147, 951642), ('galaxy', 712350, 244295), ('ipad', 573823, 26964), ('tv', 405252, 787604), ('máquina de café', 718654, 867660), ('kindle', 531580, 78830), ('geladeira', 973139, 710331), ('adega', 892292, 646016), ('notebook dell', 422760, 694913), ('notebook hp', 154753, 539704), ('notebook asus', 887061, 324831), ('microsoft surface', 438508, 667179), ('webcam', 237467, 295633), ('caixa de som', 489705, 725316), ('microfone', 328311, 644622), ('câmera canon', 591120, 994303)]
print('ProdutottVendas de 2019ttVendas de 2020tt% de crescimento')
for tupla_produtos in vendas_produtos:
produto, vendas2019, vendas2020 = tupla_produtos
if vendas2020 > vendas2019:
crescimento = vendas2020 / vendas2019 - 1
print(f'{produto}tt{vendas2019:,.2f}tt{vendas2020:,.2f}tt{crescimento:.1%}')
Note that I tried using the t in both prints to try and make the final result aligned, like a table of sorts. The image shows what the result was like
print(f'{produto}tt{vendas2019:,.2f}tt{vendas2020:,.2f}tt{crescimento:.1%}')
The tt
makes it’s job and depending on the produto
length you see the unaligned result.
Try import pprint
and play with that, it should give you an help!
You can use string formatting like this:
vendas_produtos = [('iphone', 558147, 951642), ('galaxy', 712350, 244295), ('ipad', 573823, 26964), ('tv', 405252, 787604), ('máquina de café', 718654, 867660), ('kindle', 531580, 78830), ('geladeira', 973139, 710331), ('adega', 892292, 646016), ('notebook dell', 422760, 694913), ('notebook hp', 154753, 539704), ('notebook asus', 887061, 324831), ('microsoft surface', 438508, 667179), ('webcam', 237467, 295633), ('caixa de som', 489705, 725316), ('microfone', 328311, 644622), ('câmera canon', 591120, 994303)]
print(f"%-20s %-20s %-20s %-20s" % ("produto", "Vendas de 2019", "Vendas de 2020", "% de crescimento") )
for tupla_produtos in vendas_produtos:
produto, vendas2019, vendas2020 = tupla_produtos
if vendas2020 > vendas2019:
crescimento = vendas2020 / vendas2019 - 1
print(f"%-20s %-20.2f %-20.2f %-20.1f" % (produto, vendas2019, vendas2020, crescimento) )
Output:
produto Vendas de 2019 Vendas de 2020 % de crescimento
iphone 558147.00 951642.00 0.7
tv 405252.00 787604.00 0.9
máquina de café 718654.00 867660.00 0.2
notebook dell 422760.00 694913.00 0.6
notebook hp 154753.00 539704.00 2.5
microsoft surface 438508.00 667179.00 0.5
webcam 237467.00 295633.00 0.2
caixa de som 489705.00 725316.00 0.5
microfone 328311.00 644622.00 1.0
câmera canon 591120.00 994303.00 0.7