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

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"42 — text, 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-001 — text, 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 — 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ý.