Přeskočit na hlavní obsah
Verze: 0.24.0

Hodnoty, proměnné a výrazy

Téměř každá akce má políčko, do kterého se píše hodnota — zprávy v Notifikacích, Vytvořit proměnnou, podmínky, cykly, parametry akcí. Do toho jednoho políčka můžete napsat obyčejný text, vložit do něj proměnné, nebo si nechat hodnotu spočítat. Tato stránka popisuje běžnou práci i pokročilé možnosti.

Dvě pravidla, která stačí znát

  1. Co napíšete, to je text. Uvozovky psát nemusíte — Dobrý den je prostě text Dobrý den.
  2. Proměnnou označíte znakem $. Napíšete $ a hned naskočí našeptávač se seznamem proměnných. Bez $ se název bere jako obyčejné slovo.

V příkladech níže počítejme s těmito proměnnými:

ProměnnáHodnotaTyp
$jmenoJan Nováktext
$castka1250.5číslo
$pocet3číslo
$cislo_faktury2024001číslo
$datum01.02.2024text
$text' Faktura 2024 'text s mezerami
$polozky['jablka', 'hrusky', 'svestky']seznam
$zaznam{'id': 7, 'stav': 'OK'}slovník
$poznamka''prázdný text

Běžná práce

Text s proměnnými

Nejčastější případ. Napíšete větu a tam, kde chcete dosadit hodnotu, napíšete $ a vyberete proměnnou. Žádné uvozovky ani plusy.

NapíšeteVýsledek
Záznam $jmeno nelze zpracovatZáznam Jan Novák nelze zpracovat
Dobrý den $jmeno, děkujeme za objednávku.Dobrý den Jan Novák, děkujeme za objednávku.
Chyba (kód $cislo_faktury): zpracování selhalo.Chyba (kód 2024001): zpracování selhalo.

Tečky, čárky, dvojtečky, závorky, pomlčky i procenta jsou normální interpunkce — psát je můžete bez omezení. Mezery zůstanou přesně tak, jak je napíšete, i za proměnnou.

Čísla v textu

Čísla se do textu můžou míchat bez omezení — ať už je číslo napsané rovnou v textu, nebo přijde z proměnné. Vše se automaticky převede na text.

NapíšeteVýsledek
Faktura číslo $cislo_faktury byla zaplacenaFaktura číslo 2024001 byla zaplacena
Máme $pocet položek za $castka Kč.Máme 3 položek za 1250.5 Kč.
poznámka

V dřívějších verzích tato kombinace textu a čísla skončila chybou. Nyní funguje.

Samotná hodnota si zachová typ

Když do políčka napíšete jen jednu věc, dostanete přesně ji — text zůstane textem, číslo číslem a proměnná si zachová svůj typ.

NapíšeteVýsledek
$jmenoJan Novák — hodnota včetně typu
schvalenoschvaleno — text
4242 — číslo
"42"42text, ne číslo

Když potřebujete číslici jako text, dejte ji do uvozovek. Uvozovky se v políčku zachovají.

Počítání

S čísly se dá normálně počítat. Kolem znaménka nechte mezery nebo použijte závorky — podle toho editor pozná, že jde o výpočet, a ne o text.

NapíšeteVýsledek
$castka * 1.211513.105
$cislo_faktury + 12024002
($castka + 100) / 2675.25
20240201-00120240201-001text, ne odečítání
tip

Bez mezer kolem znaménka se hodnota bere jako text, takže čísla dokladů a variabilní symboly zůstanou v pořádku.


Našeptávač

  • Napište $ — vyskočí seznam proměnných, vyberete a doplní se celý název.
  • Slovo před $ zůstane. Když napíšete Dobrý den a pak $, text se nepřepíše.
  • Chcete mezeru? Napište ji sami: Dobrý den $jmeno.
  • Záložky nahoře nabízejí víc než proměnné: Variables, Operators, Constants, General, Math, Text a Date & Time. Vybraná položka se vloží i s ukázkou zápisu.
  • Barevné zvýraznění odlišuje proměnné v políčku, takže hned vidíte, co se dosadí a co je obyčejný text.
  • Náhled pod políčkem ukazuje výsledek. Zelený znamená v pořádku, červený chybu —
  • Když proměnná drží pevnou sadu hodnot — třeba souřadnice — nabídne popup přímo jednotlivé pozice: $coords[0], $coords[1], … Hranaté závorky už nepíšete sami.
  • Výběr návrhu uprostřed slova nahradí to, co jste začali psát, místo aby to zdvojil, takže už nevznikne rozbitý výraz jako $co$coords. nejčastěji překlep v názvu proměnné.

Uložení a znovuotevření

Hodnota se ukládá tak, aby se chovala vždy stejně. Když akci znovu otevřete, uvidíte ji zpátky v čitelné podobě, ne v technickém zápisu:

NapíšetePo znovuotevření
Záznam $jmeno nelze zpracovatZáznam $jmeno nelze zpracovat

Starší scénáře se otevřou správně také. I když v nich byla hodnota zapsaná po staru — s uvozovkami a plusy — zobrazí se v nové, čitelné podobě a chová se stejně jako dřív.

Nejčastější chyby

NapíšeteVýsledekNáprava
jmenojmeno — obyčejné slovo, ne hodnotaChybí $. Správně $jmeno.
Dobrý den$jmenoDobrý denJan NovákChybí mezera před $: Dobrý den $jmeno.
$jmenoočervený náhled — proměnná neexistujePřeklep. Vyberte proměnnou z našeptávače.

Pokročilé výrazy

Do políčka se dá napsat i výpočet, práce s textem, práce s daty nebo podmínka. Používá se zápis jazyka Python; proměnné se i tady označují $.

Sáhnutí do dat

Když proměnná obsahuje seznam nebo slovník, dostanete se do ní hranatými závorkami. Našeptávač po napsání [ nabídne přímo klíče nebo pozice.

NapíšeteVýsledek
$polozky[0]jablka — první prvek, číslujeme od nuly
$polozky[-1]svestky — poslední prvek
$zaznam['stav']OK — hodnota podle klíče
$zaznam['id']7
$jmeno[0:3]Jan — první tři znaky

Stejný zápis funguje i pro výřez ze seznamu.

Práce s textem

Za proměnnou napíšete tečku a název operace:

NapíšeteVýsledek
$jmeno.upper()JAN NOVÁK
$text.strip()Faktura 2024 — odstraní mezery na začátku a konci
$jmeno.replace('Novák', 'Nový')Jan Nový
$datum.split('.')['01', '02', '2024']
", ".join($polozky)jablka, hrusky, svestky
$text.strip().lower()faktura 2024 — operace se dají řetězit

Funkce

Co je k dispozici, najdete v našeptávači na záložkách General a Math — u každé položky je popis i ukázka.

NapíšeteVýsledek
len($polozky)3 — počet prvků
len($jmeno)9 — počet znaků
int($castka)1250
str($pocet)3 — převod na text
round($castka)1250.0
max($pocet, 10)10 — větší z hodnot; obdobně min
sum([1, 2, 3])6
abs(-5)5

Seznam, slovník a dvojice

Hodí se, když potřebujete předat víc údajů najednou — například do formuláře nebo do další akce.

NapíšeteVýsledek
[$jmeno, $pocet]['Jan Novák', 3] — seznam
{id:$pocet, jmeno:$jmeno}{'id': 3, 'jmeno': 'Jan Novák'} — slovník
($pocet, $castka)(3, 1250.5) — dvojice (tuple)

Názvy klíčů psát do uvozovek nemusíte. Po znovuotevření je uvidíte v uvozovkách — {'id':$pocet, …} — je to totéž.

varování

Pozor na rozdíl: $pocet, $castka bez dalšího textu je dvojice, kdežto Máme $pocet za $castka Kč je text.

Datum a čas

Datum uložené jako text je potřeba nejdřív načíst pomocí datetime_parse a pak vypsat v požadovaném tvaru pomocí datetime_format.

NapíšeteVýsledek
datetime_parse($datum, '%d.%m.%Y')datum načtené z textu
datetime_format(datetime_parse($datum, '%d.%m.%Y'), '%Y-%m-%d')2024-02-01
datetime_format(datetime.datetime.now(), '%d.%m.%Y')dnešní datum
datetime_format(datetime_add(datetime.datetime.now(), days=7), '%d.%m.%Y')datum za týden
FunkceCo umí
datetime_parse(text, formát, tz=None)Načte datum z textu.
datetime_format(datum, formát)Vypíše datum jako text.
datetime_add(datum, …)Posune datum o days, hours, minutes, seconds, microseconds, months nebo years.
datetime_set(datum, …)Nastaví konkrétní část — day, month, year, hour, minute, second, microsecond.

Značky ve formátu: %d den, %m měsíc, %Y čtyřciferný rok, %H hodina, %M minuta.

Konstanty a systémové hodnoty

Na záložce Constants jsou připravené hodnoty; po výběru se vloží celý zápis.

NapíšeteVýsledek
datetime.datetime.now()aktuální datum a čas
int(datetime.datetime.now().timestamp())čas v sekundách, např. 1785841813
random.randint(1, 100)náhodné číslo
$CONSTANTS['FULL_DATE']konstanta nastavená pro celý scénář — úplný seznam

Moduly

K dispozici je pět modulů: re, math, random, datetime a aiviro.

NapíšeteVýsledek
re.sub('[0-9]', '', $text)' Faktura ' — odstraní všechny číslice
math.ceil($castka)1251 — zaokrouhlení nahoru
random.randint(1, 100)náhodné číslo od 1 do 100

Číselné soustavy

NapíšeteVýsledek
bin($pocet)0b11
hex($pocet)0x3
oct($pocet)0o3
int("1100", 2)12 — z binárního textu zpět na číslo

Operátory

Všechny níže uvedené najdete i v našeptávači na záložce Operators, včetně popisu.

Počítání s čísly

NapíšeteVýsledekVýznam
$castka + $pocet1253.5sečti
$castka - $pocet1247.5odečti
$castka * $pocet3751.5vynásob
$castka / $pocet416.833…vyděl — výsledek je desetinné číslo
$castka // $pocet416.0celočíselné dělení
$castka % $pocet2.5zbytek po dělení — hodí se na test sudé/liché
$pocet ** 29mocnina

Spojování a opakování

Znaménka + a * fungují i na text a seznamy — tam ale nesčítají, nýbrž spojují a opakují.

NapíšeteVýsledek
$polozky + ["maliny"]['jablka', 'hrusky', 'svestky', 'maliny']
"-" * 20-------------------- — oddělovač

Na skládání textu s proměnnými + nepotřebujete — stačí napsat větu a označit proměnné $.

Porovnání

Používá se hlavně v akcích Podmínka a v cyklech, kde se editor ptá „má se to provést?". Odpovědí je True nebo False.

NapíšeteVýsledekVýznam
$castka > 1000Trueje větší než; < je menší než
$pocet <= 3Truemenší nebo rovno; obdobně >=
$zaznam['stav'] == "OK"Truerovná se — pozor, píší se dvě rovnítka
$jmeno != "Petr"Truenerovná se

Logika

NapíšeteVýsledekVýznam
$castka > 1000 and $pocet > 1Truemusí platit obě podmínky
$castka > 5000 or $pocet > 1Truestačí, když platí aspoň jedna
not $poznamkaTrueobrácení — platí, když je hodnota prázdná
$pocet > 1 and $pocet < 10Truerozsah

Prázdný text, nula a prázdný seznam se berou jako „Ne", cokoliv vyplněného jako „Ano".

Obsahuje / je uvnitř

NapíšeteVýsledek
"jablka" in $polozkyTrue
"banány" not in $polozkyTrue
"stav" in $zaznamTrue — má slovník takový klíč?
"Novák" in $jmenoTrue — u textu hledá podřetězec
$poznamka is NoneFalse — prázdný text není totéž co None

Dva užitečné triky

NapíšeteVýsledek
$poznamka or "nevyplněno"nevyplněno — náhradní hodnota, když je proměnná prázdná
len($polozky) > 2True — podmínku lze postavit i na výsledku funkce

Podmínka na jeden řádek

Pro jednoduché „když ano, tak A, jinak B" se dá podmínka napsat přímo do políčka — typicky u akce Vytvořit proměnnou.

NapíšeteVýsledek
"VIP" if $castka > 1000 else "běžný"VIP
$jmeno if $jmeno else "neznámý zákazník"Jan Novák, a kdyby bylo $jmeno prázdné, neznámý zákazník

Úprava a filtrování seznamu

Jedním řádkem se dá projít seznam a každou položku upravit nebo vyfiltrovat.

NapíšeteVýsledek
[p.upper() for p in $polozky]['JABLKA', 'HRUSKY', 'SVESTKY']
[p for p in $polozky if p != 'hrusky']['jablka', 'svestky']
len([p for p in $polozky if p != 'hrusky'])2

p je jen pomocný název pro jednu položku, $ se u něj nepíše.

F-stringy

F-string je zápis textu s dosazovanými hodnotami — to, co se dřív psalo jako f"text {promenna}". Nově ho psát nemusíte: stačí napsat text a proměnné označit $, editor si f-string vyrobí sám.

NapíšeteVýsledek
Záznam $jmeno nelze zpracovatZáznam Jan Novák nelze zpracovat
f"Ahoj {jmeno}"Ahoj Jan Novák

Když si f-string napíšete ručně, funguje také. Uvnitř složených závorek se ale $ nepíše — správně je {jmeno}, ne {$jmeno}. Po znovuotevření se zobrazí v jednodušší podobě: Ahoj $jmeno.

Starší scénáře s f-stringy fungují dál a otevřou se správně.


Kdy sáhnout po akci Python kód

Políčko pro výraz je určené pro jednu hodnotu na jeden řádek. Jakmile potřebujete víc kroků za sebou, cykly, ošetření chyb nebo delší logiku, je lepší použít akci Python kód — tam máte plnohodnotný editor a kód zůstane přehledný.