Martin Svoboda

Martin Svoboda - Blog

print() a f-string


S funkce print() si se již setkal(a). Nejjednodušší použití je, vypsání textu nebo proměné, tak jsme ji zatím používali.

print("Hello, World!")
kdo_je_nejlepsi = "Já"
print("Nejlepší programátor je", kdo_je_nejlepsi)

Tato kapitola ti shrne možnosti funkce print() a představí ti f-stringy, které umožňují formátovat výstup.

print()

Funkce print() umožňuje vypsat text a hodnoty proměnných do konzole. Může přijímat více argumentů oddělených čárkou, které jsou následně spojeny do jednoho řetězce. Podívejme se na jednoduchý příklad:

# Ukázka funkce print()

jmeno = "Martin"
prijmeni = "Svoboda"
vek = 33

print("Jmenuji se", jmeno, prijmeni, "a je mi", vek, "let.")

Tento příklad lze zapsat i s použitím operátoru + pro spojování řetězců:

print("Jmenuji se " + jmeno + " " + prijmeni + " a je mi " + str(vek) + " let.")

Nicméně, první způsob je čistší a čitelnější. Ať tak či tak, používej stejný způsob v celém kódu pro konzistenci.

Parametry sep a end

Funkce print() umožňuje přizpůsobit výstup pomocí parametrů sep a end. Parametr sep určuje oddělovač mezi vstupy, zatímco end určuje, jakým znakem bude výstup ukončen. Výchozí hodnoty těchto parametrů jsou " " (mezera) pro sep a "\n" (nový řádek) pro end.

# Ukázka použití sep a end

oblibene_jidlo = "pizza"
oblibene_zvire = "pes"
oblibene_barva = "červená"

print("Ahoj já jsem Martin.")
print("Mám rád:", end=" ")
print(oblibene_jidlo, oblibene_zvire, oblibene_barva, sep=", ")

Výstup bude:

Ahoj já jsem Martin.
Mám rád: pizza, pes, červená

f-string?

f-string je zkratka pro formátovaný řetězec. Umožňuje ti vkládat hodnoty proměnných přímo do textu. Podívejme se na příklad:

# Ukázka použití f-stringu

jmeno = "Martin"
vek = 33

print(f"Jmenuji se {jmeno} a je mi {vek} let.")

Výstup bude stejný jako v předchozím příkladu, ale zápis je čistší a čitelnější.

Formátování s f-string

f-stringy také umožňují specifikovat formátování, například zarovnání textu nebo počet desetinných míst u čísel:

# Ukázka formátování s f-string

cele_cislo = 25
desetinne_cislo = 25.123456789
retezec = "Martin"

print(f" {retezec:>10} | {cele_cislo:^10} | {desetinne_cislo:<10.2f} ")


# nebo třeba takto:


print(f" {retezec:<10} | {cele_cislo:^10} | {desetinne_cislo:>10.2f} ")


# nebo takto:


print(f" {retezec:^10} | {cele_cislo:010} | {desetinne_cislo:.2f} ")

Formát se píše za :. Ty šipky (<,>,^) znamenájí zarovnání, doleva, dopava a na střed. Můžeš je samozřejmě vynechat, potom je to zarovnáno doleva. Následuje šířka, pokud výstup je kratší než šířka, tak se to doplní mezerami a pokud je menší tak se hodnota uřízne. Pro float můžeš za tečkou určit počet desetiných míst, ale nezapoměň na konec dát f (jak float).

Kontrolní otázky

  1. Jak lze pomocí funkce print() přizpůsobit oddělovací a koncový znak?

  2. Co je to f-řetězec v jazyce Python? Jak se tvoří a používá?

  3. Jaké jsou výhody používání f-stringu oproti tradičnímu formátování řetězců nebo spojování?

  4. Jak můžete zarovnat text v f-stringu?

  5. Jak lze v rámci f-stringu formátovat čísla, konkrétně čísla s pohyblivou desetinnou čárkou?

  6. Co v kontextu f-stringů znamená: {:>10}?

  7. Dokážeš převést následující příkaz print na f-string?

    x = 5
    y = 10
    print("Součet", x, "a", y, "je", x + y)

Kvízy

Kvíz:

Která funkce slouží k zobrazení výstupu na konzoli?

  1. show()
  2. display()
  3. print()
  4. output()
Kvíz:

Jaký bude výstup následujícího kódu?

print("Hello", "World", sep="-")
  1. Hello-World
  2. Hello World
  3. Hello,World
  4. HelloWorld
Kvíz:

Co znamená písmeno ‘f’ v f-stringu?

  1. Functional
  2. Formatted
  3. Fancy
  4. Feasible
Kvíz:

Co zobrazí následující kód?

x = 5
print(f"Hodnota x je {x} a její dvojnásobek je {2*x}.")
  1. Hodnota x je 5 a její dvojnásobek je 10.
  2. Hodnota x je x a její dvojnásobek je 2x.
  3. Hodnota x je {x} a její dvojník je {2x}.
  4. Žádná z výše uvedených možností
Kvíz:

Je dán kód:

name = "Alice"
print(f"|{name:>10}|")

Jaký bude výstup?

  1. |     Alice|
  2. |Alice     |
  3. |Alice|
  4. |   Alice  |

Cvičení

Cvičení 1

Napiš program, který se uživatele zeptá na jeho jméno, věk a oblíbenou barvu a poté tyto informace vypíše pomocí funkce print() a f-stringu.

Cvičení 2

Uprav program kalkulačky z minulého části tak, aby pro výstup používal f-string.

Cvičení 3

Experimentujte s formátováním f-string. Napiš program, který vypíše tabulku druhých a třetích mocnin pro čísla od 1 do 10.