Типове данни. Операции с числа и със символни низове

Променливи и типове данни

Вече знаем, че отпечатването на екрана на резултатите от работата на програмата се реализира с командата print(). Командата изисква скоби. Ако отпечатваме текст, той се поставя в скобите и се огражда в кавички.

Знаем също, че величините могат да бъдат постоянни или да се променят. Постоянните величини са константи, а тези, които могат да приемат различни стойности – променливи. Променливите, които използваме в езиците за програмиране имат име, тип и стойност. Например:
city=”Пловдив”
Името на променливата е city, стойността е „Пловдив“, а типа е str.

В езици като Python типовете данни са неявни и не е нужно да ги декларираме (да дефинираме какъв тип са предварително) в кода. Например, с командата a = 2 променливата a автоматично се разпознава като цяло число (int), докато с командата b = 3.14159 променливата b се идентифицира като дробно число (float). Въпреки това типовете данни играят много важна роля при програмирането. Чрез правилният им избор можем да извършим желаните действия и не на последно място да спестим памет.

Въвеждане и типове данни

Вече знаем, че потребителите могат да въвеждат данни, които да се използват в програмата чрез командата input(). Казахме също, че въвежданите данни са от тип str. Нека проверим това чрез функцията type():



Въвеждаме цяло число за годините: 12. Но когато отпечатаме типа на променливата age, виждаме, че типа не е int, а str. Въвежданите от потребителя данни от клавиатурата са винаги от символен тип.

Трябва да преобразуваме символните данни в числови – float или int. Обратно, за да отпечатаме текстово съобщение, в което има числови стойности, които са изчислени в хода на програмата, те трябва да се преобразуват в символен тип – напр. str(new_age). Виж следния коректен вариант на програмата.

Аритметични оператори

Както вече казахме числовите данни могат да бъдат от целочислен или рационален (дробен) тип. Подобно на Scratch в Python можем да извършваме различни аритметични операции като събиране, изваждане, умножение и деление, за които операторите са: +, -, *, /. Сборът, разликата и произведението на числа от тип int е също от тип int. Частното на числа от тип int е число от тип float (6 / 2 = 3.0).

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

Символ

Операция

Пример

Резултат

+

събиране

5 + 2

7

-

изваждане

5 - 2

3

*

умножение

5 * 2

10

/

деление

6 / 2

3

**

степенуване

3 ** 2

9

%

остатък от целочислено деление

17 % 3 (17:3=5 и ост. 2)

2

//

целочислено деление

17 // 3 (17:3=5 и ост. 2)

5

Редът на аритметичните действия е както в математиката: степенуване; умножение и деление; събиране и изваждане. За да променим този ред използваме скоби.

Операции със символни низове

С данни от символен тип могат да се извършват различни операции. Най-често използваните са слепване (+) (долепване, конкатенация) и мултиплициране (*).

Долепването на два символни низа String1 и String2 се реализира чрез:
String1 + String2
В резултат от двата низа се получава един „слепен“ символен низ. За да се извърши това действие е необходимо и двете променливи да са от символен тип.



Забележка:
Често срещана грешка е опита за отпечатване на слепен символен низ от друг символен низ и числова стойност.

Мултиплицирането на символния низ String1 определен брой пъти n се реализира чрез оператора „*“:
String1 * n
String1 е символен низ, а n е цяло число. В резултат се получава нов символен низ, в който низът String1 се повтаря n на брой пъти.

В съвременния дигитален свят обработката на данни е навсякъде около нас. Тези данни се съхраняват, обработват и използват и е много важно това да става коректно, бързо и с малко разходи. Както вече видяхме неправилното представяне и обработка на типовете данни може да доведе до грешки при изпълнението или до неоправдан разход на ресурси. Затова правилното определяне на типовете данни за обработваните величини е една от ключовите задачи. Например, ако трябва да съхраняваме и обработваме информация за броя планети в Слънчевата система ще използваме променлива от целочислен тип (int); ако е необходимо да използваме наименованието на държава, типът на променливата ще бъде символен (str); ако трябва да обработваме цените на стоки в хранителен магазин, използваната променлива ще бъде дробно число, т.е. от тип float.

Задача 4

Изиграйте играта като внимателно определяте типове данни. https://trinket.io/python/3702fe7547