Основни типове данни в скриптов текстов език за програмиране

От наученото за електронни таблици знаем, че можем да зададем типа на данните, записани в клетка от таблицата.


Как се избира типът данни и какви типове данни могат да се използват в програмата Excel?

В езиците за програмиране също се използват различни типове данни. Така например, когато създаваме цикъл, броят на повторенията му е цяло число.

Функцията range() в горния пример връща последователност от цели числа, които се записват в променливата i. Цикълът се изпълнява с всяко от тези числа. По време на изпълнение на цикъла в променливата i са записани данни от целочислен тип.
При някои математически пресмятания може да се наложи да работим с числа, които не са цели. Резултатът от деление невинаги е цяло число.
За работа с числа, които не са цели, в Python е дефиниран реален (float) тип данни. Този тип данни се използва за работа с познатите ни от уроците по математика рационални числа.


По какъв начин се записват рационалните числа? Каква е разликата между обикновените и десетичните дроби?

Програмата Python представя рационалните числа като десетични дроби.
Да разгледаме една програма за изчисляване на дължина на окръжност по зададен радиус. В познатата ни формула участва числото π, което не е цяло.

При стартиране на програмата трябва да въведем радиуса като цяло или рационално число. Програмата показва дължината на окръжност с въведения радиус.
Ще ни е нужна променлива Pi, в която да съхраняваме стойността на числото π.


Каква е приблизителната стойност на числото π, представено като десетична дроб?

При стартиране на програмата трябва да въведем радиуса като цяло или рационално число. Програмата показва дължината на окръжност с въведения радиус.
Ще ни е нужна променлива Pi, в която да съхраняваме стойността на числото π.

Обърнете внимание на функцията float() във втория ред на програмата. С нея се преобразува въведената с input() стойност в реален (float) тип данни.

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

Когато искаме с input() да въвеждаме данни от друг тип, трябва да използваме функция за преобразуване на типа. Освен float() в Python има и други функции за преобразуване на типове. Така например функцията int() преобразува данните от израза в скобите в целочислен тип, а функцията str() ги преобразува в символен тип данни (низове).
Да разгледаме програма, с която се въвежда, съхранява и извежда текстова информация.

В кода на програмите текстовият тип данни (низове) се заграждат с кавички или с апострофи.

В кода на програмата има три низа, заградени с кавички. След стартиране на програмата те се извеждат на екрана като част от текстови съобщения.
Въведеното от клавиатурата име (в нашия случай Мария) се записва в променливата name под формата на низ.
Обърнете внимание, че в кода на програмата няма функция, която да преобразува типа на въведените с input() данни. Функцията input() връща данните като последователности от символи (низове).
Можем да добавим в програмата функцията str(), като включим input() в нея. Това няма да доведе до грешка, но е излишно – програмата ще работи по същия начин и без тази функция.

Разгледаните досега три типа данни – (int), (float) и (string) са най-често използваните в програмите на Python.

Типът на данните определя какви стойности могат да приемат те и какви операции могат да се извършват с тях.

При по-нататъшната ни работа ще се запознаем и с други типове данни.

При присвояване на стойност на променлива типът данни в нея се определя автоматично в зависимост от типа на присвоените стойности.

В първия пример от урока присвояваме на променливата i последователно целите числа
от 45 до 51. Във втория пример присвояваме на circleLength резултата от формулата 2*Pi*r, който е рационално число. В двата случая типът данни се определя автоматично, затова няма нужда от функции, които да го променят.

Да направим заедно

Да направим програма, която изчислява средното аритметично на три въведени от потребителя цели числа.

С първите три реда въвеждаме три числа в променливите x, y и z. На следващия ред е формулата, с която се изчислява средното аритметично. Резултатът се записва в променливата average. Функцията print() на последния ред извежда трите числа и средното аритметично.
Да стартираме програмата и да въведем последователно три числа: 4, 6 и 12.

Показва се съобщение за грешка в реда average = (x+y+z)/3. Грешката е в това, че въведените с input данни са низове, а за изчислението са необходими числа.
Да променим програмата, като добавим функцията int() към първите три реда.

Сега вече всичко е наред, програмата работи и няма съобщение за грешка.
Както знаем, при присвояване на стойност на променлива типът данни се определя автоматично. Затова, след като изчисли средното аритметично, програмата го показва като данни от реален тип (десетична дроб): 7.333333333333333.

Аз мога

Задача 1
Въведете програмата за изчисляване на дължина на окръжност от урока. Изпробвайте я с различни стойности за радиуса.
В модула math на езика Python има дефинирани няколко константи. Една от тях, math.pi, съдържа закръгленото до 15 знака след десетичната точка число p.
Направете вариант на програмата, като вместо променливата p, използвате константата math.pi.
Сравнете резултатите, които дават двете програми.
Указания: За да можете да използвате константата math.pi, трябва предварително с import да вмъкнете модула math. Така например:

Задача 3
В програма на Python се използват няколко променливи, дефинирани по следния начин:

Указания: Използвайте функцията type(). Тя връща типа (класа) на аргумента, поставен между скобите. Така например:

Задача 4
Отворете файлa 4.1.4.xlsx от папката Modelling на ресурсите към учебника. Попълнете вашите данни в таблицата и определете от какъв тип ще бъдат, ако се въведат в програма на Python.

4.1.4.xlsx

Напишете програма, в която дефинирате променливите от първата колона и им задавате стойностите от втората колона на таблицата. Проверете дали сте попълнили правилно третата колона.
Указания: За проверката използвайте функцията type().