Новини от 51 СУ

DJI_0285.JPG

Търсене

Основни типове данни в Python

Print Friendly, PDF & Email

📦 Урок: Основни типове данни в Python

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

  1. Цели числа (int – Integer)

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

  • Примери: Брой ученици в клас (25), години (13), брой нива в игра.
  • В Python изглежда така: apples = 5
  1. Дробни числа (float – Floating point)

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

  • Примери: Цена на продукт (2.50), височина (1.65), успех в училище (5.75).
  • В Python изглежда така: price = 2.99
  1. Текст (str – String)

Всичко, което е заградено в кавички, се счита за текст (низ). Може да съдържа букви, цифри и символи.

  • Примери: Име ("Иван"), град ("София"), парола ("p@ss123").
  • В Python изглежда така: name = "Георги"
  1. Булев тип (bool – Boolean)

Това е най-лесният, но и най-важният тип за логиката. Той има само две възможни стойности: Истина или Лъжа.

  • Примери: Светната ли е лампата? (True/False), Преминат ли е изпитът?
  • В Python изглежда така: is_sunny = True

📊 Бърза справка

Тип в Python

Име

Какво представлява?

Пример

int

Integer

Цели числа

10, -5

float

Float

Дробни числа

3.14, 10.0

str

String

Текст в кавички

"Здравей!"

bool

Boolean

Логическа стойност

True или False

🛠️ Как да проверим типа в Python?

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

Python

x = 10

print(type(x))  # Ще изпише <class 'int'>

 

y = "10"

print(type(y))  # Ще изпише <class 'str'>, защото има кавички!

Важно за 7. клас: Обърнете внимание, че 10 и "10" са различни неща за компютъра! С първото можем да смятаме, а второто е просто картинка на числото.

 

Въпроси:

🎮 Ниво 1: „Кой е моят тип?“

Определи какъв тип данни (int, float, str или bool) е всяка от следните променливи:

  1. username = "Cyber_Knight"
  2. posts_count = 42
  3. rating = 4.8
  4. is_online = False
  5. phone_number = "0888123456"

🔍 Ниво 2: „Детектив в кода“

Един програмист е направил грешки в кода си. Можеш ли да познаеш кой ред ще даде грешка (Error) и защо?

Python

# Ред 1

print(5 + 10)

 

# Ред 2

print("5" + "10")

 

# Ред 3

print("5" + 10)

Подсказка: Компютърът е малко инатлив – не обича да смесва различни типове в една сметка.

🧪 Ниво 3: „Магьосникът на преобразуването“

Понякога се налага да променим типа на данните (това се нарича casting). Опитай се да отгатнеш какво ще изпише Python накрая:

Python

number_as_text = "20"

converted_number = int(number_as_text) # Променяме го на цяло число

 

result = converted_number + 5

print(result)

Какъв ще е крайният резултат?

🏆 Бонус предизвикателство (за отличници):

Каква е разликата между тези две променливи?

  • a = 5
  • b = 5.0

 

Решения:

🎮 Отговори: Ниво 1 (Кой е моят тип?)

  1. str (String) – Има кавички, значи е текст.
  2. int (Integer) – Цяло число (брой постове).
  3. float – Има десетична точка.
  4. bool (Boolean) – Логическо "Лъжа".
  5. str (String)Важно! Макар да виждаме цифри, те са в кавички. Телефоните често се записват като текст, защото не искаме да ги събираме или изваждаме, а и често започват с 0.

🔍 Отговори: Ниво 2 (Детектив в кода)

  • Ред 1: Ще изпише 15 (Нормално събиране на числа).
  • Ред 2: Ще изпише 510. Изненада! Когато събираме два текста, Python просто ги „залепя“ един за друг.
  • Ред 3: ГРЕШКА! 🚨 Python не знае как да събере текст ("5") с число (10). Все едно да те попитам: „Колко е 5 метра + 10 килограма?“. Няма логичен отговор.

🧪 Отговори: Ниво 3 (Магьосникът)

Резултатът е 25. Магията тук е във функцията int(). Тя взема текста "20", маха му кавичките и го превръща в истинско число. След това 20 + 5 си е чиста математика.

🏆 Бонус за отличници:

  • a = 5 е int (цели 5 лева).
  • b = 5.0 е float (5 лева и 0 стотинки). За нас е едно и също, но за компютъра 5.0 заема малко повече „място“ в паметта, защото винаги е готов да добави и други цифри след запетаята (например 5.12).

 

Да направим една малка програма, която пита потребителя за неговото име и години и ги подрежда в изречение?

Ще използваме две много важни команди:

  1. input() – за да зададем въпрос на потребителя.
  2. print() – за да покажем резултата.

 

# 1. Питаме за името (това автоматично е string/текст)

name = input("Как се казваш? ")

# 2. Питаме за годините

# ВНИМАНИЕ: input() винаги връща текст, затова го превръщаме в число с int()

age = int(input("На колко години си? "))

# 3. Изчисляваме след колко години ще станеш на 100

years_to_100 = 100 - age

# 4. Показваме резултата

print("Здравей, " + name + "!")

print("След " + str(years_to_100) + " години ще празнуваш своя 100-тен рожден ден! 🎂")

🕵️‍♂️ Какво се случва?

Когато програмата работи, тя обработва данните по следния начин:

  • Ред 2: Използваме int(input(...)). Ако не го направим, Python ще си мисли, че годините са текст (като "13"), и няма да може да извади 100 - "13".
  • Ред 4: Използваме str(years_to_100). Тук правим обратното – превръщаме числото в текст, за да можем да го „залепим“ към изречението с бутона +.

🚀 Предизвикателство за теб:

Опитай се да добавиш нов ред в програмата, който пита: "Колко е джобният ти за деня?".

  • Подсказка: Използвай тип float, защото джобните могат да бъдат 5.50 лв.
  • След това пресметни колко пари ще има потребителят след 7 дни (умножи ги по 7).

 

Ето как би изглеждал кодът, ако добавим и сметката за джобните. Обърни внимание на float(), защото парите често имат стотинки:

# Питаме за джобните и ги превръщаме в дробно число (float)

daily_money = float(input("Колко лева са джобните ти за един ден? "))

# Изчисляваме за една седмица (7 дни)

weekly_money = daily_money * 7

print("За една седмица ще имаш общо " + str(weekly_money) + " лева! 💸")

🤔 Защо използваме float() тук?

Ако потребителят напише, че получава 5.50 лв., и ние използваме int(), програмата ще „гръмне“ (ще даде грешка), защото int не разбира от десетични точки. float е по-сигурният избор за всичко, свързано с пари или измервания.

🍎 Домашно: Програма „Плодов Магазин“

Твоята задача:

Напиши програма на Python, която прави следното:

  1. Пита потребителя: „Кой плод купувате днес?“ (тип str)
  2. Пита за цената: „Каква е цената за 1 кг?“ (използвай float, защото цените имат стотинки).
  3. Пита за количеството: „Колко килограма искате?“ (може да е float, ако някой си купи 1.5 кг).
  4. Пресмята общата сума: Умножи цената по килограмите.
  5. Изписва резултата по следния начин:

„Вие купихте [плод] за общо [сума] лева. Приятен ден!“

 

Помощни насоки за кода:

  • Не забравяй да превърнеш входа (input) в число, преди да смяташ.
  • Когато показваш общата сума накрая, не забравяй да я превърнеш обратно в текст със str().

 

Ето го правилното решение на задачата стъпка по стъпка. Това е „класическият“ начин, по който се пишат малки програми за пресмятане:

 

# 1. Питаме за името на плода

fruit = input("Кой плод купувате днес? ")

# 2. Питаме за цената (превръщаме в float за стотинки)

price_per_kg = float(input("Каква е цената за 1 кг? "))

# 3. Питаме за количеството (също float, защото може да е 1.5 кг)

quantity = float(input("Колко килограма искате? "))

# 4. Пресмятаме общата сума

total_sum = price_per_kg * quantity

# 5. Изписваме крайния резултат

# Използваме str(), за да залепим числото към текста

print("Вие купихте " + fruit + " за общо " + str(total_sum) + " лева. Приятен ден!")

 

🔍 Защо това решение работи?

  1. Променливите: Създадохме три кутии (fruit, price_per_kg, quantity), за да пазим отговорите на потребителя.
  2. Математиката: Използвахме оператора * за умножение. Тъй като и двете числа са float, резултатът също ще бъде float.
  3. Сглобяването: Python не ни позволява да кажем директно "цена: " + 5.50. Затова използвахме str(total_sum), за да превърнем числото обратно в текст, преди да го покажем на екрана.

🚀 Какво следва?

Вече можеш да създаваш програми, които:

  • Приемат информация.
  • Обработват я (смятат).
  • Връщат отговор.

 

# 1. Питаме за името на плода

fruit = input("Кой плод купувате днес? ")

# 2. Питаме за цената

price_per_kg = float(input("Каква е цената за 1 кг? "))

# 3. Питаме за количеството

quantity = float(input("Колко килограма искате? "))

# 4. Пресмятаме общата сума и я ЗАКРЪГЛЯМЕ до 2 знака още тук

# Функцията round(число, 2) прави точно това

total_sum = round(price_per_kg * quantity, 2)

# 5. Изписваме крайния резултат по твоя начин

print("Вие купихте " + fruit + " за общо " + str(total_sum) + " лева. Приятен ден!")

 

Какво се случва тук?

  • Ако сметката е 2.66666, функцията round(..., 2) я превръща в 2.67.
  • След това str(total_sum) превръща това „чисто“ число в текст и го залепя към останалото изречение.

 

 Продължи с теста