mam drukowania pewne wartości ze skryptu w moim oknie terminala tak:Jak ustawić tekst z python w kolumny w moim terminalu?
for i in items:
print "Name: %s Price: %d" % (i.name, i.price)
Jak zrobić te linię w górę do kolumn?
mam drukowania pewne wartości ze skryptu w moim oknie terminala tak:Jak ustawić tekst z python w kolumny w moim terminalu?
for i in items:
print "Name: %s Price: %d" % (i.name, i.price)
Jak zrobić te linię w górę do kolumn?
Jeśli znasz maksymalne długości danych w dwóch kolumnach, możesz użyć kwalifikatorów formatu. Na przykład jeśli nazwa jest długa co najwyżej 20 znaków, a cena będzie pasował do 10 znaków, można zrobić
print "Name: %-20s Price: %10d" % (i.name, i.price)
To jest lepsze niż przy użyciu kart jako zakładki nie będą wyrównane w pewnych okolicznościach (np jeśli jeden nazwa jest nieco dłuższa niż inna).
Jeśli niektóre nazwy nie mieszczą się w przestrzeni używanej, można użyć kwalifikatora formatu .
do obcięcia danych. Na przykład użycie "% -20.20s" dla formatu nazwy spowoduje obcięcie dłuższych nazw w celu dopasowania do kolumny zawierającej 20 znaków.
Jak powiedział Vinay, używaj specyfikatorów formatu string.
Jeśli nie znać maksymalne długości, można je znaleźć poprzez dodatkowy przebieg listę:
maxn, maxp = 0, 0
for item in items:
maxn = max(maxn, len(item.name))
maxp = max(maxp, len(str(item.price)))
następnie użyć '*'
zamiast numeru oraz zapewnienie obliczoną szerokość jako argument.
for item in items:
print "Name: %-*s Price: %*d" % (maxn, item.name, maxp, item.price)
Można również użyć metod rjust()/ljust() dla obiektów str.
Doskonały. Kolejne przypomnienie dla mnie funkcji, której rzadko używam w pythonie. Sam miałem ten problem wcześniej i naprawiłem go za pomocą zakładek. Teraz mogę wrócić i ułatwić czytanie mojego kodu. –