Типове данни. Операции с числа и със символни низове
Променливи и типове данни
Вече знаем, че отпечатването на екрана на резултатите от работата на програмата се реализира с командата 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