Formatowanie tabliczki mnożenia

2018-12-14 11:52
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?

edytowany 5x, ostatnio: aPsikus, 2018-12-14 12:03

Pozostało 580 znaków

2018-12-14 11:58
1

Mhm. A Twój problem/pytanie to?

Walczyłem z dodaniem obrazków, stąd post pojawił się tylko częściowo na początku. - aPsikus 2018-12-14 12:01

Pozostało 580 znaków

2018-12-14 12:10

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).

edytowany 1x, ostatnio: Althorion, 2018-12-14 12:12

Pozostało 580 znaków

2018-12-14 12:46
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*"-")
Starsze Pythony miały funkcję "string".format() do takich rzeczy, co było dosyć niewygodne, a jeszcze starsze składnię z %, która już w ogóle była paskudna. Ale od 3.6 są właśnie te f-stringi, które są czytelne i na tyle wygodne, na ile się da (bo dalej składnia wszystkich możliwych formatów jest skomplikowana, ale tutaj trudno coś zaradzić, skoro jest ich aż tak wiele…). - Althorion 2018-12-14 12:54
Ja tam wolałem % od .format. :) Ale mam dziwny gust może. - koszalek-opalek 2018-12-14 15:52
Albo ja mam. Za dużo LaTeX-a i człowiek wszystko po % odruchowo traktuje jako komentarz… - Althorion 2018-12-14 19:59

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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