Програми Python

Както видяхме в главата за Карел, програмите се състоят от стъпки. Нека да разгледаме някои от основните Stаtеments на Python, които ще използваме за писане на първите програми.

Задаване на стойност на променлива

Променливата е име на пространство в паметта на компютър, в което можем да съхраняваме стойности от всякакъв вид (число, текст, логическа стойност или нещо друго). Междинните резултати често се поставят в променливи при изчисляване. Когато стартираме обвивка на Python, можем да зададем стойност на променлива с една команда и след това да използваме стойността на тази променлива в следните команди. Например:

>>> base = 6*8
>>> base
48
>>> base * 1.5
72.0
>>> base * 1.6
76.80000000000001

Оператор за задаване на стойност

Операторът за задаване на стойност се записва чрез изписване на името на променлива, последвано от знак равен = и след това израза, чиято стойност присвояваме на променливата. Ние също считаме цели числа и реални числа за изрази (това са най-простите възможни изрази).

Имена на променливи

Имената на променливи (както и други имена в програми, които пишем) могат да се състоят от малки и малки букви, цифри и подчертаване, но те не могат да започнат с цифра.

Python прави разлика между главни и малки букви. N и n са различни имена и ако ги използваме и двете, те биха представлявали две различни променливи.

Името на променливата може да бъде толкова дълго, колкото ни е необходимо.

Когато пишем програми (или отделни оператори), се опитваме да дадем на променливите смислени имена, така че командите и програмите да са максимално ясни.

В Python е често срещан стил, че главните букви не се използват (макар и позволени), а когато едно име е съставено от повече от една дума, тези думи са разделени с видершор, например, price_of_one_piece. Цифрите се използват в имената, когато има смисъл (което не е често).

Имена на променливи - проверете знанията си:

    Q-6: Свържете предложените имена на променлива с отговор: Try again!
  • 2_date
  • incorrect, starts with an illegal character
  • pet_no_2
  • correct name
  • state_at_23:59
  • incorrect, contains an illegal character

    Q-7: Кое от следните може да бъде името на променлива?

  • vArIaBlE
  • а1
  • 2D_graphics
  • _3D_graphics
  • pet-no-2

Печат на стойности от програма

При интерактивна работа е достатъчно да въведете израз, за да видите неговата стойност, но не можем да го използваме в програмите. За да изведем нещо от програма, използваме функцията print (). Засега ще използваме само най-простата форма на тази функция.

Изразът, чиято стойност искаме да отпечатаме, се поставя между скоби, например:

>>> print(2 + 2)
4
>>>

С едно извикване на функция print () можем да изведем множество стойности. Изразът, чиито стойности искаме да отпечатаме, са изброени между скоби и разделени със запетаи, например:

>>> a = 10
>>> b = 20
>>> circumference  = 2*a + 2*b
>>> area = a*b
>>> print(circumference, area)
60 200
>>>

Вече сме се сблъсквали с функциите в главите на Karel, разпознаваме ги по скобите зад името. Спомнете си, ние наричаме данните, които посочваме между параметрите или аргументите в скобите. Ще говорим скоро за функциите.

Стартиране на програма

Стартиране на програма в браузъра

За да ви помогнем да започнете, използвахме компонента ActiveCode на проекта Runestone Interactive проекта и ви позволи да стартирате Python програми в уеб страниците на този курс. Например по-долу са изявленията, които по-рано въведохме интерактивно, но този път написани като програма. Можете да стартирате програмата, като щракнете върху бутона „Run“

Изпълнение на програми от средата IDLE

Препоръчва се, освен да пишете програми на тези уеб страници, да изпълнявате програми поне от време на време в среда на IDLE. Свикването с IDLE средата е важно за да станете по-независими в програмирането.

Когато стартирате IDLE на компютъра си, отворете интегрирания текстов редактор (меню Файл / Нов файл) и въведете предишната (или която и да е друга) програма.

Когато приключите с програмата, запазете я (меню File / Save) и след това я стартирайте (меню Run / Run Module).

../_images/console_run_from_idle.png

Резултатът ще видите в прозореца на интерактивната обвивка.

Изпълнение на програми в онлайн среда

Друг начин да стартирате вашата Python програма е да използвате някоя от онлайн програмиращите среди. Една такава среда е https://repl.it/.

../_images/console_repl.it_start.png

Кликнете върху бутона + new repl, изберете езика Python и щракнете върху Create repl. Вашият уеб браузър ще отвори страница, на която можете да въведете програма и да я стартирате.

../_images/console_repl.it_run.png

Грешки в програмата

Понякога може да не напишете изявление в програмата точно както се изисква от правилата на Python. В такъв случай преводачът Python не може да разбере твърдението и получавате съобщение за грешка. Всяка среда за изпълнение съобщава за грешка по малко по-различен начин, но всеки от тях казва в кой ред на програмата е възникнала грешката и какъв тип грешка е тя.

Появата на грешки (известни също като бъгове) не трябва да ви притеснява, тъй като това е често срещано нещо и се случва и при опитни разработчици. Погледнете внимателно съобщението, уверете се, че разбирате какво не е наред, след това го коригирайте и стартирайте програмата отново. Разбирането на съобщения за грешки е неразделна част от програмирането и може да се практикува като много други умения.

За да ви помогнем да разберете съобщенията за грешки, които ще получавате (и за да се притеснявате по-малко), препоръчваме ви сега да се опитате нарочно да направите някои малки грешки, които така или иначе биха могли да ви се случат при писане на програма.

Когато направите няколко грешки нарочно и сте запознати как работят съобщенията за грешка, ще бъде по-лесно да ги разберете, когато го видите след неволна грешка.

Можете да пробвате тук:

Подготвили сме и няколко програми с умишлено допуснати грешки, които след това обясняваме. Програмите са кратки, за да направят грешките по-забележими, но в по-дългите програми отстраняването на грешки е почти същото. Тъй като съобщението за грешка съдържа номера на програмния ред, в който възникна грешката, в по-дългите програми просто трябва първо да намерите споменатия програмен ред и да погледнете този (и евентуално предишния) ред.

Изпълнете всяка от следните програми, след това вижте съобщението за грешка и обяснението.

В съобщението се казва, че става дума за грешка от типа NameError. Това означава, че някои от имената в посочения ред са непознати за интерпретатора на Python (името не е дефинирано). Обърнете внимание, че името на функцията за печат не е написано правилно (и функцията prit не съществува). Чрез поставяне на буквата n грешката се коригира и програмата работи.

Грешката е от същия тип, само че този път се отнася до resultt. Като премахнете излишната буква t, програмата става правилна.

Грешката е от типа SyntaxError, което означава, че не се спазват правилата за изграждане на Python оператори. В този случай липсва запетая между a и b.

Друга синтактична грешка. Отново не се спазват правилата за изграждане на изявления и този път скобите липсват.

Грешката е от тип ZeroDivisionError. Тази грешка е различна от предишните, тъй като операторът е написан правилно и е интерпретиран успешно. Изпълнението обаче доведе до нулево деление, което не е разрешена операция. Програмата трябва да бъде написана по такъв начин, че да не прави опит за нулево деление. Корекцията в този случай зависи от това, което искаме да направи нашата програма в тази ситуация. Една възможност е да се провери дали делителят не е нула, преди да се раздели.


Уверете се, че разбирате тези три типа грешка, като отговорите на въпроса.

    Q-8: Съпоставете типа грешка с програмата. Try again!
  • SyntaxError
  • print(3*(2+2)
  • NameError
  • а=3
    print(a / b)
  • ZeroDivisionError
  • b=3//6
    print(3 // b)