Wyświetlanie kilku wierszy wyrównanych względem separatora

0

Mam pytanie, jak równo wyświetlić text w jednej lini? chodzi mi o to że np.

masz taki kod

text1 = "Bob"
text2 = "Blib"
text3 = "toop"
text4 = "flup"

print(text1 + " || " + text2)
print(text3 + " || " + text4)

i właśnie jak zrobić żeby zamiast wyświetlać się tak:

Bob || Blib
toop || flup

wyświetlało się tak:

Bob  || blip
toop || flup

może ktoś pomóc?

1

Musisz policzyć ilość znaków w najdłuższej linijce, a potem symetrycznie dodawać spacje do stringów w krótszych linijkach.

1
text1 = "Bob"
text2 = "Blib"
text3 = "toop"
text4 = "flup"

text = text1, text2, text3, text4
n = max(map(len, text)) + 1

print(f"{text1:<{n}}||{text2:>{n}}")
print(f"{text3:<{n}}||{text4:>{n}}")
0

Podepnę się bo szukam rozwiązania do podobnego problemu.
W pętli generuję dane
data, wartość liczbowa 0-200 procent z liczby, wartość liczbowa -200, procent, liczba 0-100
przykład
230224 12 5% 45 35% 12
230225 153 54% 193 5% 32

i przy kilkudziesięciu linijkach źle się to czyta.
Szukam sposobu, żeby móc pisać od któregoś tam znaku w linii.
W pascalu było gotoxy(10,wherey) - zaczynam od dziesiątego znaku w linii której jestem i po problemie .
Znalazłem coś takiego

def gotoxy(x,y):
    print ("%c[%d;%df" % (0x1B, y, x), end='')

ale nie mogę sobie poradzić (nie rozumiem zapisu), aby linia była aktualna, a wybierałbym tylko od którego znaku startować.
Proszę o poradę

1

Można ustawić minimalną ilość miejscu dla danego napisu

tab = [[230224, 12, "5%", 45, "35%", 12], [230225, 153, "54%", 193, "5%", 32]]
for tab1 in tab:
    print(f"{tab1[0]:10} {tab1[1]:10} {tab1[2]:10} {tab1[3]:10} {tab1[4]:10} {tab1[5]:10}")

Stringi równa do lewej a liczby do prawej, więc będziesz musiał liczby na stringi skonwertować, albo % "dopisywać" osobno

1
sig napisał(a):

Stringi równa do lewej a liczby do prawej, więc będziesz musiał liczby na stringi skonwertować, albo % "dopisywać" osobno

Niekoniecznie:

print(f"{tab1[0]:10} {tab1[1]:10} {tab1[2]:>10} {tab1[3]:10} {tab1[4]:>10} {tab1[5]:10}")

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