Formatowanie tabliczki mnożenia

0

Zadanie:
napisać pętlę w Pythonie wyświetlającą tabliczkę mnożenia.

Napisany kod:

for y in range(1,11):
     for x in range(1,11):
         print (x*y, end="\t")
     print()

Dzięki \t wyświetla się jako całkiem ładnie wyglądająca tabelka.
tm_t.JPG

Ale wymaganie jest sformatowanie tej tabliczki mnożenia w tabelkę podobną do poniższej.
format.JPG)

Napisałem kod:

for y in range(1,11):
     for x in range(1,11):
          print ("   |",x*y, end="|")
     print()
     print(75*"_")
     print()

Ale jednak pierwsza linia się nie pokrywa z kolejnymi.
Co robię źle?

1

Mhm. A Twój problem/pytanie to?

0

Używasz trochę za mało wyrafinowanego narzędzia do swego celu. Możesz, oczywiście, się z tym męczyć i robić to ręcznie, ale Python posiada formatery do takich zadań. Jeśli masz co najmniej Pythona 3.6, to możesz formatować na przykład tak:

wycentrowany = 12
do_prawej = 55
do_lewej = 23

print(f"|{wycentrowany:^5}|{do_prawej:>5}|{do_lewej:<5}|")

Co da rezultat: | 12 | 55|23 |

W Twoim przypadku więc, zamiast się przejmować ręcznie tym, ile cyfr będzie miała wartość x * y (więc ile miejsca zajmie, więc ile dostawić jej spacji, by kolumny ładnie wyglądały), pisz po prostu f" {x * y:>3} ", co zagwarantuje spację (bo jest żywcem wpisana), x * y rozciągnięty do trzech znaków i po prawej stronie, spację (bo jest żywcem wpisana).

0

@Althorion: Ło Panie, ale magia :)

print(60*"-")
for y in range(1,11):
     for x in range(1,11):
          print (f" {x*y:>3} ", end="|")
     print()
     print(60*"-")

1 użytkowników online, w tym zalogowanych: 0, gości: 1