Скриптове и for цикли¶
Скриптове¶
Хората често пишат кратки програми в Python и ги използват сами, за да изчислят или автоматизират нещо. Такива програми са известни и като скриптове. Не е необичайно скриптовете да имат някои или всички входни данни, съдържащи се в самия скрипт, вместо да бъдат заредени. Например следният скрипт изчислява 20-процентова отстъпка:
Инструкциите за използване на този скрипт могат да бъдат: „В първите два реда на скрипта задайте желаните стойности и след това стартирайте скрипта.“
Няма да видите подобна инструкция за програми, които инсталирате на вашия компютър или мобилен телефон. Ние наричаме такива програми приложения и те са написани така, че потребителите не трябва да знаят (и най-често не могат да знаят) как изглеждат правилата на тази програма.
При скриптове няма строго разделение между потребители и разработчици, както при приложенията. Сценариите често се пишат за лична употреба или за потребител, който използва или разбира програмиране. Всички програми в това ръководство всъщност са повече скриптове, отколкото приложения.
Вече подчертахме, че това ръководство не е предназначено само за бъдещи професионалисти в програмирането. Ако не програмирате приложения, все още можете да се възползвате от програмирането. Можете да напишете скрипт или да персонализирате съществуващ такъв, както се очаква в предполагаемата инструкция от предишния пример.
Повтарящи се изчисления за множество данни¶
Нека направим предишния пример по-общ. Да предположим, че в един магазин имаме право на 20% отстъпка над редовните цени. Интересуваме се от намалени цени на различни продукти, чиито редовни цени познаваме.
Рестартиране на програми, които зареждат данни
Решението, за което вече знаем как да пишем, е да заредим редовната цена на продукта и след това да изчислим и отпечатаме намалената цена. Тази програма може да изглежда така:
Можем да стартираме програмата многократно, като всеки път определяме редовна цена за един от продуктите, от които се интересуваме.
Множество входяща информация в самата програма
В предишния пример беше необходимо да стартирате програмата няколко пъти и да въвеждате данните (редовна цена на продукта) всеки път. В случай, че предварително знаем всички данни, които бихме въвели една по една при различно изпълнение на програмата, тогава е по-удобно да въведете всички тези данни директно в програмата и да повторите изчисляването и отпечатването на резултатите за всеки от данните в едно изпълнение.
for оператор¶
За да можем да повторим част от програмата за всякa част от множеството данни, се нуждаем от оператора for, който позволява да се повтарят други оператори. Сега ще видим един от начините за използване на for оператор, а в следващите уроци ще видим някои други форми на for.
Да се върнем към примера с намалената цена. Да речем, че редовните цени на продуктите, от които се интересуваме, са 250, 120 и 310 и искаме да изчислим намалените цени за тези продукти с еднократно изпълнение. Ето как можем да го направим:
Note: Забележка: нотация (250, 120, 310) се нарича комплект.
Изпълнявайки програмата, виждаме, че тя извежда:
250 200.0
120 96.0
310 248.0
Забелязваме, че последните два реда от програмата са изпълнени три пъти, като променливата regular_price получава стойностите 250, 120, 310 в този ред. Постигнахме това с изявлението за. Частите от програмата, които се повтарят, се наричат цикли, така че можем да кажем, че в предишния пример сме използвали цикъл.
Следващата фигура показва основните елементи на цикъла за:

Необходимите елементи се изписват с червено (думите
for
,in
и двоеточието:
в първия ред). Тези елементи са изписани по един и същи начин във всеки for оператор.Променливата на цикъла е написана в синьо. На това място пишем името на променливата, която ще приема стойностите, посочени в комплекта. В нашия пример променливата на цикъла е regular_price.
Набор от стойности е написан в зелено. На това място пишем стойности, разделени със запетая в скоби. Това са стойностите, които променливата на цикъла ще вземе на свой ред. В нашия пример комплектът е (250, 120, 310).
Тялото на цикъла е изписано с черно. Това са команди, които се изпълняват веднъж за всяка стойност на променливата на цикъла. Променливите на цикъла могат или не могат да се използват в операторите на тялото на цикъла.
Операторите на тялото на цикъла се пишат с отстъпи по отношение на първия ред на оператора for. Обичайно е да се използват 4 полета за отстъп и ние ще се придържаме към тази препоръка.
Примери и задачи¶
Пример - кога да тръгна
Рони трябва да пристигне до определено място не по-късно от 17:00. В зависимост от начина на пътуване, който е избрал, Рони може да се нуждае от 55, 70, 85 или 95 минути. Напишете програма, която отпечатва за всеки начин на пътуване, когато Рони трябва да си тръгне най-късно, за да пристигне навреме.
Програма, която решава тази задача, може да изглежда така:
Задача - продължителност на пътуването
Джордж възнамерява да започне пътуване с кола на 600 километра в 9:00 ч. И се интересува от времето на пристигане, ако е пътувал със средна скорост от 90, 100, 120 или 130 километра в час. Завършете програмата, за да изброите времето на пристигане до местоназначението за всяка от гореспоменатите средни скорости.
Задача - крайна оценка
Сумата от 5-те оценки на Кейти досега е 23. Кейти очаква друга оценка от последната контролна задача. Завършете програмата по-долу, така че за всяка възможна крайна оценка (1, 2, 3, 4 или 5) тя отпечатва каква би била средната оценка в този случай.
Задача - Джобни
Тео прави план за изразходване на джобните си пари за 14-дневна ваканция. Напишете програма, която при среднодневно харчене от 5, 10 или 20 евро, показва от колко Тео ще има нужда във всеки от случаите.