Python
- Детайли
- Написана от К. Димитров
- Категория: Python
- Какво е списък (List)?
Представи си списъка като голяма кутия с отделения. Във всяко отделение можеш да сложиш различно нещо – име, число или дори друг списък. В Python списъците се ограждат с квадратни скоби [], а елементите се разделят със запетая.
Пример:
Python
plodove = ["ябълка", "банан", "череша"]
chisla = [1, 2, 3, 4, 5]
mesheno = ["Иван", 14, True]
- Индексиране (Как да намерим елемент?)
Всеки елемент в списъка си има точно място, наречено индекс.
Важно: В програмирането броенето винаги започва от 0, а не от 1!
- plodove[0] е "ябълка"
- plodove[1] е "банан"
- plodove[2] е "череша"
- Основни операции със списъци
Ето най-често използваните команди, които ще ти трябват за упражненията:
|
Команда |
Какво прави? |
Пример |
|
len(spisak) |
Намира дължината (броя елементи). |
len(plodove) -> 3 |
|
.append(елемент) |
Добавя нов елемент накрая. |
plodove.append("киви") |
|
.insert(индекс, елемент) |
Вмъква елемент на конкретно място. |
plodove.insert(1, "портокал") |
|
.remove(елемент) |
Изтрива елемент по неговото име. |
plodove.remove("банан") |
|
del spisak[индекс] |
Изтрива елемент по неговия индекс. |
del plodove[0] |
- Практическа задача
Опитай се да напишеш следната програма (или я проиграй наум):
- Създай списък klasс три имена на твои съученици.
- Добави още едно име накрая с append.
- Промени второто име в списъка (индекс 1) на "Петър".
- Принтирай колко е дълъг списъкът накрая.
Решение:
Python
klas = ["Ани", "Боян", "Виктор"]
klas.append("Георги")
klas[1] = "Петър"
print("Списъкът е:", klas)
print("Брой ученици:", len(klas))
Какво е range()?
В Python range() (от англ. обхват) е вградена функция, която генерира поредица от числа. Тя е изключително полезна, когато искаш да направиш списък с числа или да повториш нещо определен брой пъти.
- Как се използва?
Функцията може да приема до три параметъра: range(старт, край, стъпка).
- range(n): Генерира числа от 0 до n-1. (Числото n не се включва!).
- range(5) -> 0, 1, 2, 3, 4
- range(start, end): Започва от start и спира преди end.
- range(2, 6) -> 2, 3, 4, 5
- range(start, end, step): Добавя числото step при всяко следващо число.
- range(1, 10, 2) -> 1, 3, 5, 7, 9 (само нечетните)
- Как да превърнем rangeв истински списък?
Ако просто напишеш print(range(5)), Python ще ти отговори малко странно: range(0, 5). За да го превърнеш в истински списък, който можеш да видиш и променяш, използваме функцията list().
Примери:
Python
# Списък с числата от 0 до 9
chisla = list(range(10))
print(chisla) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# Списък с десетиците от 10 до 50
desetitsi = list(range(10, 51, 10))
print(desetitsi) # [10, 20, 30, 40, 50]
- Защо ни е нужно това? (Приложение)
Най-често range се използва в цикли, но в 7. клас е важно да знаеш как бързо да генерираш данни.
Задача за теб: Представи си, че трябва да направиш списък с всички четни числа от 2 до 20 включително. Вместо да пишеш [2, 4, 6...], можеш да го направиш на един ред!
Опитай този код:
Python
chetni = list(range(2, 21, 2))
print("Четните числа са:", chetni)
🛠️ Малко предизвикателство с range:
Можеш ли да създадеш списък, който брои назад? Подсказка: Стъпката трябва да бъде отрицателно число (например -1).
- Детайли
- Написана от К. Димитров
- Категория: Python
Как работи отрицателното индексиране?
В Python (и в много други езици за програмиране) можем да броим елементите в списъка по два начина:
-
Отляво надясно (Положителни индекси): Започваме от 0. Първият е 0, вторият е 1 и т.н.
-
Отдясно наляво (Отрицателни индекси): Започваме от -1. Това е "бърз път" за достъп до последния елемент в списъка, без да е необходимо да знаем точно колко елемента има в него.
Разбор на твоя пример:
Нека погледнем списъка dogs от учебника:
dogs = ["корги", "лабрадор", "пудел", "джак ръсел"]
-
dogs[0]е "корги" -
dogs[1]е "лабрадор" -
dogs[2]е "пудел" -
dogs[3]е "джак ръсел"
Отрицателното броене започва отзад напред:
-
dogs[-1] ->"джак ръсел" (последният елемент) -
dogs[-2] ->"пудел" -
dogs[-3] ->"лабрадор" -
dogs[-4] ->"корги" (първият елемент)
Накратко за списъците (обобщение от учебника):
-
Подредба: Всеки елемент има точно определена позиция (индекс).
-
Индекси: Започват от 0 и стигат до дължината на списъка минус 1 ($len(списък) - 1$).
-
Достъп: Ако се опиташ да достъпиш индекс, който не съществува (например
dogs[4]), Python ще изведе съобщение за грешка (IndexError).
- Детайли
- Написана от К. Димитров
- Категория: Python
📦 Урок: Основни типове данни в Python
Представете си, че правите списък за пазаруване или пишете съобщение на приятел. В програмирането всяко парче информация има своята „категория“.
- Цели числа (int – Integer)
Това са числата без запетая. Използваме ги, когато броим неща, които не могат да бъдат „половинки“.
- Примери: Брой ученици в клас (25), години (13), брой нива в игра.
- В Python изглежда така: apples = 5
- Дробни числа (float – Floating point)
Това са числата с десетична запетая (в програмирането използваме точка .). Използваме ги за измервания.
- Примери: Цена на продукт (2.50), височина (1.65), успех в училище (5.75).
- В Python изглежда така: price = 2.99
- Текст (str – String)
Всичко, което е заградено в кавички, се счита за текст (низ). Може да съдържа букви, цифри и символи.
- Примери: Име ("Иван"), град ("София"), парола ("p@ss123").
- В Python изглежда така: name = "Георги"
- Булев тип (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) е всяка от следните променливи:
- username = "Cyber_Knight"
- posts_count = 42
- rating = 4.8
- is_online = False
- 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 (Кой е моят тип?)
- str (String) – Има кавички, значи е текст.
- int (Integer) – Цяло число (брой постове).
- float – Има десетична точка.
- bool (Boolean) – Логическо "Лъжа".
- 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).
Да направим една малка програма, която пита потребителя за неговото име и години и ги подрежда в изречение?
Ще използваме две много важни команди:
- input() – за да зададем въпрос на потребителя.
- 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, която прави следното:
- Пита потребителя: „Кой плод купувате днес?“ (тип str)
- Пита за цената: „Каква е цената за 1 кг?“ (използвай float, защото цените имат стотинки).
- Пита за количеството: „Колко килограма искате?“ (може да е float, ако някой си купи 1.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) + " лева. Приятен ден!")
🔍 Защо това решение работи?
- Променливите: Създадохме три кутии (fruit, price_per_kg, quantity), за да пазим отговорите на потребителя.
- Математиката: Използвахме оператора * за умножение. Тъй като и двете числа са float, резултатът също ще бъде float.
- Сглобяването: 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) превръща това „чисто“ число в текст и го залепя към останалото изречение.
- Детайли
- Написана от К. Димитров
- Категория: Python
1. Какво е Python?
Python (Пайтън) е език за програмиране от високо ниво. Той е един от най-популярните в света, защото се чете почти като английски език. Използва се за изкуствен интелект, създаване на игри и уебсайтове.
2. Средата за разработка (IDLE)
За да пишем на Python, използваме програма, наречена IDLE. Тя има два основни режима:
-
Интерактивен режим (Shell): Тук компютърът изпълнява командите веднага след като натиснете Enter. Подходящ е за бързи пресмятания.
-
Редакторски режим (Script Mode): Тук пишем цяла програма (код), записваме я като файл с разширение .py и след това я пускаме наведнъж (с клавиша F5).
3. Първи стъпки: Функцията print()
Най-важната команда в началото е print(). Тя казва на компютъра да изведе (изпише) нещо на екрана.
Важни правила:
-
Текстът винаги се поставя в кавички:
"Здравей!" -
Числата могат да бъдат без кавички.
print("Здравей, 6. клас!")
print(2026)
4. Python като калкулатор
Python може да смята много бързо. Използваме стандартните знаци, но с малки разлики:
-
+(събиране) -
-(изваждане) -
*(умножение) -
/(деление)
Пример: print(15 * 3) ще изведе резултат 45.
5. Променливи – „кутии“ за информация
Представете си променливата като кутия с етикет, в която държим стойност.
-
ime = "Иван" -
godini = 12
Практическа задача (Упражнение)
Опитайте се да напишете програма, която прави следното:
-
Създайте променлива
gradи ѝ дайте стойност името на вашия град. -
Създайте променлива
temperaturaи запишете число. -
Използвайте
print(), за да изпишете изречението: "В град ... днес е ... градуса."
Примерен код:
grad = "София"
temperatura = 15
print("В град", grad, "днес е", temperatura, "градуса.")
💡 Бърз съвет за отличници:
В Python всяко малко нещо има значение – ако забравите кавичка или скоба, програмата ще даде Syntax Error (синтактична грешка). Не се плашете, това е просто начинът на компютъра да каже: „Не те разбрах, опитай пак!“
Математическите операции в Python са изключително интуитивни. Те следват стандартните правила на математиката, които познаваш от часовете, но с няколко специфични знака, които трябва да запомниш.
Ето как Python „мисли“, когато решава задачи:
1. Основни аритметични оператори
В Python използваме следните символи за основните пресмятания:
| Операция | Символ | Пример | Резултат |
| Събиране | + |
10 + 5 |
15 |
| Изваждане | - |
20 - 8 |
12 |
| Умножение | * |
4 * 3 |
12 |
| Деление | / |
10 / 4 |
2.5 |
Важно: Резултатът от делението (
/) в Python винаги е число с десетична запетая (типfloat), дори ако се дели точно (например4 / 2ще даде2.0).
2. Специални оператори за деление
Учебникът на „Домино“ обръща специално внимание на тези два оператора, които са много полезни при решаване на задачи с цели числа:
-
Целочислено деление (
//): Пресмята колко пъти едно число се съдържа в друго и премахва остатъка.-
Пример:
13 // 4резултат3(защото 4 влиза 3 пъти в 13).
-
-
Остатък при деление (
%): Намира само това, което остава след делението.-
Пример:
13 % 4резултат1(защото $4 \times 3 = 12$ и остава1до 13).
-
3. Степенуване
Ако искаш да повдигнеш число на степен (например $5^2$), в Python използваш двойна звездичка:
-
5 ** 2резултат25 -
2 ** 3резултат8
4. Ред на действията
Python спазва стандартния математически приоритет:
-
Скоби
()(винаги се изчисляват първи). -
Степенуване
**. -
Умножение, деление, остатък (
*,/,//,%). -
Събиране и изваждане (
+,-).
Пример:
print(2 + 3 * 4) # Резултат: 14 (първо умножението)
print((2 + 3) * 4) # Резултат: 20 (първо скобите)
Практическо предизвикателство:
Представи си, че имаш 26 ябълки и искаш да ги разпределиш поравно в 5 щайги.
-
Колко ябълки ще има в една щайга? (Използвай
//) -
Колко ябълки ще останат извън щайгите? (Използвай
%)
В Python имаме три вида деление. Нека ги разгледаме в детайли:
1. Стандартно деление: /
Това е делението, което познаваш от калкулатора. То винаги дава точен резултат, дори и с десетична запетая.
-
Пример:
7 / 2 = 3.5 -
Пример:
10 / 5 = 2.0(Обърни внимание, че Python добавя.0, за да покаже, че е извършено деление).
2. Целочислено деление: // (Две наклонени черти)
Този оператор ни казва колко цели пъти едно число се съдържа в друго. Той просто "отрязва" всичко след десетичната запетая, без да закръгля.
-
Пример:
7 // 2 = 3(2 влиза точно 3 пъти в 7). -
Пример:
10 // 3 = 3(3 влиза 3 пъти в 10, остатъкът не ни интересува тук).
3. Остатък при деление: % (Процент)
Това е операторът, който често обърква учениците в началото, но всъщност е много логичен. Той ни дава само остатъка, който получаваме, след като сме извършили целочисленото деление.
-
Пример:
7 % 2 = 1 -
Пример:
10 % 3 = 1 -
Пример:
12 % 4 = 0
Таблица за сравнение
| Операция | Код | Резултат | Обяснение |
| Деление | 17 / 5 |
3.4 | Точен резултат |
| Цяла част | 17 // 5 |
3 | Колко петици има в 17? (3) |
| Остатък | 17 % 5 |
2 | Какво остава? (17 - 15 = 2) |
За какво се използват в програмирането?
-
Проверка за четност: Ако
число % 2е равно на0, значи числото е четно. Ако е1, значи е нечетно. -
Работа с време: Ако имаш 70 секунди, как да разбереш колко минути са?
-
70 // 60 = 1минута. -
70 % 60 = 10секунди. -
Резултат: 1 минута и 10 секунди.
-
-
Разделяне на цифри: Ако имаш числото
45:-
45 // 10ще ти даде първата цифра (4). -
45 % 10ще ти даде втората цифра (5).
-
Малко предизвикателство за теб:
Ако имаш променлива total_eggs = 28 и искаш да ги подредиш в кори по 6 яйца:
-
Кой оператор ще използваш, за да разбереш колко пълни кори ще имаш?
-
Кой оператор ще ти каже колко яйца ще останат, за да си направиш омлет?
- Детайли
- Написана от К. Димитров
- Категория: Python
a=1
b=1000
k=0
for i in range (a, b+1):
print (i,"---->",end=" ")
for j in range (1, i+1):
if i%j==0:
print (" ",j, end=" ")
k=k+1
print(" ---->",k, "делители")
if k==2:
print("просто число")
print("\n")
k=0





