Речник¶
Листе нам дају могућност да организујемо податке за које је познат неки редослед и у којима сваки податак има свој редни број (на пример, листа жеља, листа ученика у одељењу…) и приступ елементима листе врши се на основу њиховог индекса (редног броја, тј. позиције).
Међутим, често подаци представљају неко пресликавање у којем на основу датог кључа желимо да приступимо вредности која је придружена том кључу. На пример, ценовник у продавници имену артикла придружује његову цену. У тим ситуацијама уместо листе много је боље користити речнике.
У овој лекцији правићемо програме за различите функционалности касе у продавници користећи речник.
Коришћење речника¶
Желимо да направимо колекцију која чува податке о томе колико кошта који артикал у продавници. За то користимо речник.
Речник у програмском језику пајтон правимо користећи витичасте заграде { и } између којих наводимо парове кључ : вредност , као у примеру:
Кључ може бити текст или број, али ће у нашим примерима обично бити текст. Исти кључ не сме се појављивати више пута у истом речнику.
Вредност може бити било ког типа.
Овакав начин чувања података нам је погодан како бисмо једноставно сазнали колико кошта који производ, на пример колико кошта вода, а колико млеко:
Користећи for петљу можемо да пролазимо кроз кључеве речнике, односно артикле у ценовнику:
Измена вредности¶
Вредност за неки кључ, односно цену артикла у ценовнику, можемо изменити на следећи начин:
На сличан начин можемо додати артикал који претходно нисмо имали у ценовнику:
Проналажење вредности¶
Показали смо како можемо исписати вредност за један кључ, односно цену једног артикла:
Међутим, ако покушамо да испишемо вредност за кључ који није у речнику, доћи ће до грешке:
Зато је потребно да пре него што испишемо цену артикла испитамо да ли га уопште имамо у понуди. За то користимо кључну реч in:
Примери¶
Напиши програм који чита назив и цену артикла и додаје га у ценовник из претходних примера, односно ажурира његову цену ако је тај артикал већ био у понуди.
Напиши програм који чита назив и количину артикла који купац жели да купи и исписује укупан износ.
Напиши програм који пита корисника да ли жели да испише понуду у маркету, измени цену неког артикла, или испише износ неке куповине.
Комбиновањем примера из курса можемо написати следећи програм:
Овај код је добар, али није баш прегледан. У следећој глави показаћемо како га можемо изменити да постане читљивији.