Lisalugemine - vormindamise stiil: .format()
Kohahoidjate ja argumentide arv on omavahelises seoses. Kohahoidjaid võib olla kolme tüüpi: tühjad kohahoidjad ({}), nimelised kohahoidjad (muutuja nimega) ja indekseeritud kohahoidjad (indeksi järgi). Kui argumente on rohkem kui kohahoidjaid, jäävad üleliigsed argumendid lihtsalt kasutamata. Kui aga kohahoidjaid on rohkem kui argumente, tekib IndexError.
Vorming .format()
meetodiga.
Lihtne näide:
>>> "{} {}".format("age", 20)
'age 20'
>>> "{1} {0}".format("age", 20)
'20 age'
Näide täisarvudega:
>>> "My integer: {:d}".format(15)
'My integer: 15'
Näide ujukomaarvudega:
>>> "My float: {:f}".format(3.141592)
'My float: 3.141592'
Näide paremale joondamisest:
>>> "{:>20}".format("hello")
' hello'
Näide vasakule joondamisest:
>>> "{:20}".format("hello")
'hello '
Joondamisel tühikust erineva sümboli kasutamine:
>>> "{:-<20}".format("hello")
'hello---------------'
Näide keskele joondamisest:
>>> "{:^20}".format("hello")
' hello '
Sõne kärpimine:
>>> "{:.7}".format("longstring")
'longstr'
Numbrite laiuse ja täpsuse valimine:
>>> "{:3d}".format(15)
' 15'
>>> "{:07.3f}".format(3.141592)
'003.142'
>>> "{:03d}".format(15)
'015'
Tabel pikima sõna järgi:
words = ["McLaren", "Ferrari", "Aston Martin", "Lamborghini"]
longest_word = max(words, key=len)
max_length = len(longest_word)
horizontal_line = '+' + '-' * (max_length + 2) + '+'
# f-stringi näide
print(horizontal_line)
for word in words:
print(f"| {word:<{max_length}} |")
print(horizontal_line)
# format() näide
print(horizontal_line)
for word in words:
print("| {:<{}} |".format(word, max_length))
print(horizontal_line)
Mõlemad annavad vastuseks:
+--------------+
| McLaren |
+--------------+
| Ferrari |
+--------------+
| Aston Martin |
+--------------+
| Lamborghini |
+--------------+
Näide nimelisest kohatäitest:
vocations = "{tim} and {alice}".format(tim="Software Architect", alice="Graphic Designer")
print(vocations) # -> Software Architect and Graphic Designer
jobs = {"Tim": "Software Architect", "Alice": "Graphic Designer"}
print("Jobs: {Tim}, {Alice}".format(**jobs)) # -> Jobs: Software Architect, Graphic Designer
Erinevate andmestruktuuride kasutamine:
data = {"apple": 22, "pear": 17}
print("{d[apple]} {d[pear]}".format(d=data)) # -> 22 17
languages = ["Python", "Java", "Javascript", "C#", "C++", "Swift"]
print("{l[4]}, {l[5]}".format(l=languages)) # -> C++, Swift