<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Python Архиви - The Fedya&#039; s page</title>
	<atom:link href="https://fedia.eu/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>https://fedia.eu/category/python/</link>
	<description>AI (ИИ), AI Галерия, криптовалути и операционни системи: Вашият изчерпателен източник</description>
	<lastBuildDate>Wed, 07 Jan 2026 03:27:39 +0000</lastBuildDate>
	<language>bg-BG</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://fedia.eu/wp-content/uploads/2023/06/cropped-202-205-max-32x32.png</url>
	<title>Python Архиви - The Fedya&#039; s page</title>
	<link>https://fedia.eu/category/python/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Как да получите текущата дата и час в Python</title>
		<link>https://fedia.eu/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d0%b5-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b0%d1%82%d0%b0-%d0%b4%d0%b0%d1%82%d0%b0-%d0%b8-%d1%87%d0%b0%d1%81-%d0%b2-python/</link>
					<comments>https://fedia.eu/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d0%b5-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b0%d1%82%d0%b0-%d0%b4%d0%b0%d1%82%d0%b0-%d0%b8-%d1%87%d0%b0%d1%81-%d0%b2-python/#respond</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Thu, 20 Feb 2025 08:42:43 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=2222</guid>

					<description><![CDATA[<p>Python е един от най-популярните езици за програмиране. Той е&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d0%b5-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b0%d1%82%d0%b0-%d0%b4%d0%b0%d1%82%d0%b0-%d0%b8-%d1%87%d0%b0%d1%81-%d0%b2-python/">Как да получите текущата дата и час в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="800" height="444" src="https://fedia.eu/wp-content/uploads/2025/02/python.png" alt="Как да получите текущата дата и час в Python" class="wp-image-2227" srcset="https://fedia.eu/wp-content/uploads/2025/02/python.png 800w, https://fedia.eu/wp-content/uploads/2025/02/python-300x167.png 300w, https://fedia.eu/wp-content/uploads/2025/02/python-768x426.png 768w, https://fedia.eu/wp-content/uploads/2025/02/python-720x400.png 720w, https://fedia.eu/wp-content/uploads/2025/02/python-520x289.png 520w, https://fedia.eu/wp-content/uploads/2025/02/python-320x178.png 320w" sizes="(max-width: 800px) 100vw, 800px" /></figure>



<p></p>



<p>Python е един от най-популярните езици за програмиране. Той е лесен за научаване и предлага много полезни функции.</p>



<p>Една от важните задачи в програмирането е работата с дата и час. Много приложения изискват тази информация за различни цели.</p>



<p>В тази статия ще научите как да получите текущата дата и час в Python. Ще разгледаме няколко метода и ще обясним всеки от тях.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">1. Защо е важно да получаваме текущата дата и час?</h2>



<p>Работата с дата и час е полезна в много случаи. Например:</p>



<ul class="wp-block-list">
<li>Записване на времето на дадено събитие</li>



<li>Изчисляване на разлика между дати</li>



<li>Организиране на данни по време</li>



<li>Генериране на уникални идентификатори</li>
</ul>



<p>Python предоставя няколко начина за работа с дата и час. Най-често използваните са модулите <code>datetime</code>, <code>time</code> и <code>calendar</code>.</p>



<p>Работата с дата и час е важна част от много програми.</p>



<p><strong><a href="https://fedia.eu/%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-python-%d0%b8-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/" target="_blank" rel="noreferrer noopener">Python</a></strong> предлага вградени инструменти за работа с дата и време.</p>



<p>Ще научим как да използваме тези инструменти по прост и разбираем начин.</p>



<p>Тази статия е подходяща за начинаещи в програмирането с Python.</p>



<h2 class="wp-block-heading">Основни концепции</h2>



<p>Първо трябва да разберем какво представлява модулът datetime в Python.</p>



<p>Модулът datetime е вграден инструмент в Python за работа с дати.</p>



<p>Той ни позволява да създаваме, манипулираме и форматираме дати и часове.</p>



<p>За да използваме този модул, първо трябва да го импортираме в нашата програма.</p>



<div class="inline-related-post">
                    <p>📖 <strong>Прочетете още:</strong> <a href="https://fedia.eu/python-3-14-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%b0%d0%b3%d0%b0-%d0%bd%d0%be%d0%b2-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bf%d1%80%d0%b5%d1%82%d0%b0%d1%82%d0%be%d1%80-%d1%81-330-%d0%bf%d0%be-%d0%b1%d1%8a/" target="_blank">Python 3.14 предлага нов интерпретатор с 3~30% по-бърз код</a></p>
                </div>



<h2 class="wp-block-heading">Импортиране на необходимите модули</h2>



<p>Нека започнем с импортирането на модула datetime.</p>



<pre class="wp-block-code"><code>from datetime import datetime</code></pre>



<p>Този ред код ни дава достъп до всички функции за работа с дата.</p>



<p>Можем също да импортираме целия модул по следния начин:</p>



<pre class="wp-block-code"><code>import datetime</code></pre>



<p>Разликата между двата начина е в това как достъпваме функциите след това.</p>



<h2 class="wp-block-heading">Получаване на текущата дата и час</h2>



<p>За да вземем текущата дата и час, използваме метода now().</p>



<pre class="wp-block-code"><code>current_datetime = datetime.now()</code></pre>



<p>Този ред създава обект, съдържащ информация за текущата дата и час.</p>



<p>Можем да отпечатаме резултата директно на екрана:</p>



<pre class="wp-block-code"><code>print(current_datetime)</code></pre>



<p>Резултатът ще изглежда примерно така: 2025-02-20 14:30:45.123456</p>



<h2 class="wp-block-heading">Достъп до отделните компоненти</h2>



<p>От обекта datetime можем да извлечем различни части от датата.</p>



<h3 class="wp-block-heading">Година</h3>



<pre class="wp-block-code"><code>current_year = current_datetime.year</code></pre>



<p>Този код ни дава текущата година като число.</p>



<h3 class="wp-block-heading">Месец</h3>



<pre class="wp-block-code"><code>current_month = current_datetime.month</code></pre>



<p>Получаваме номера на текущия месец (1-12).</p>



<h3 class="wp-block-heading">Ден</h3>



<pre class="wp-block-code"><code>current_day = current_datetime.day</code></pre>



<p>Така взимаме деня от месеца като число.</p>



<h3 class="wp-block-heading">Час</h3>



<pre class="wp-block-code"><code>current_hour = current_datetime.hour</code></pre>



<p>Часът се връща във 24-часов формат (0-23).</p>



<h3 class="wp-block-heading">Минути</h3>



<pre class="wp-block-code"><code>current_minute = current_datetime.minute</code></pre>



<p>Получаваме текущите минути като число (0-59).</p>



<h3 class="wp-block-heading">Секунди</h3>



<pre class="wp-block-code"><code>current_second = current_datetime.second</code></pre>



<p>Секундите също са достъпни като число (0-59).</p>



<h2 class="wp-block-heading">Форматиране на датата</h2>



<p>Python позволява да форматираме датата по различни начини.</p>



<p>Методът strftime() ни помага да представим датата в желания формат.</p>



<p>Ето някои често използвани формати:</p>



<pre class="wp-block-code"><code># Форматиране на датата
formatted_date = current_datetime.strftime("%d/%m/%Y")</code></pre>



<p>Този код ще покаже датата във формат ДД/ММ/ГГГГ.</p>



<pre class="wp-block-code"><code># Форматиране на часа
formatted_time = current_datetime.strftime("%H:%M:%S")</code></pre>



<p>Този формат показва часа във вид ЧЧ:ММ:СС.</p>



<h2 class="wp-block-heading">Работа с времеви зони</h2>



<p>Python позволява работа с различни времеви зони.</p>



<p>За целта трябва да импортираме допълнителен модул pytz.</p>



<pre class="wp-block-code"><code>from datetime import datetime
import pytz</code></pre>



<p>Можем да създадем обект за конкретна времева зона:</p>



<pre class="wp-block-code"><code>timezone = pytz.timezone('Europe/Sofia')</code></pre>



<p>След това получаваме местното време за тази зона:</p>



<pre class="wp-block-code"><code>local_time = datetime.now(timezone)</code></pre>



<h2 class="wp-block-heading">Практически примери</h2>



<p>Нека разгледаме няколко практически примера за работа с дати.</p>



<h3 class="wp-block-heading">Пример 1: Показване на текущата дата</h3>



<pre class="wp-block-code"><code>from datetime import datetime

current_date = datetime.now()
print(f"Днес е: {current_date.strftime('%d/%m/%Y')}")</code></pre>



<p>Този код ще покаже днешната дата във формат ДД/ММ/ГГГГ.</p>



<h3 class="wp-block-heading">Пример 2: Показване на текущия час</h3>



<pre class="wp-block-code"><code>from datetime import datetime

current_time = datetime.now()
print(f"Часът е: {current_time.strftime('%H:%M')}")</code></pre>



<p>Кодът извежда текущия час във формат ЧЧ:ММ.</p>



<pre class="wp-block-code"><code>Часът е: 08:01</code></pre>



<h3 class="wp-block-heading">Пример 3: Пълна информация за датата</h3>



<pre class="wp-block-code"><code>from datetime import datetime

now = datetime.now()
print(f"Ден: {now.day}")
print(f"Месец: {now.month}")
print(f"Година: {now.year}")
print(f"Час: {now.hour}")
print(f"Минути: {now.minute}")</code></pre>



<p></p>



<p>Това ще покаже нещо подобно:</p>



<pre class="wp-block-code"><code>Ден: 20
Месец: 2
Година: 2025
Час: 7
Минути: 59</code></pre>



<h2 class="wp-block-heading">Често срещани грешки</h2>



<p>Начинаещите често правят някои типични грешки при работа с дати.</p>



<p>Нека разгледаме как да ги избегнем.</p>



<h3 class="wp-block-heading">Грешка 1: Неправилно импортиране</h3>



<p>Грешно:</p>



<pre class="wp-block-code"><code>import datetime.datetime</code></pre>



<p>Правилно:</p>



<pre class="wp-block-code"><code>from datetime import datetime</code></pre>



<h3 class="wp-block-heading">Грешка 2: Объркване на формати</h3>



<p>Грешно:</p>



<pre class="wp-block-code"><code>date_string = datetime.now().strftime("%Y-%d-%m")</code></pre>



<p>Правилно:</p>



<pre class="wp-block-code"><code>date_string = datetime.now().strftime("%Y-%m-%d")</code></pre>



<h2 class="wp-block-heading">Полезни съвети</h2>



<p>Винаги проверявайте документацията за точните формати на датата.</p>



<p>Използвайте подходящи имена на променливите за по-добра читаемост.</p>



<p>Коментирайте кода си, за да обясните какво прави всяка част.</p>



<p>Тествайте кода с различни входни данни.</p>



<h2 class="wp-block-heading">Допълнителни функции</h2>



<p>Python предлага още много полезни функции за работа с дати.</p>



<h3 class="wp-block-heading">Сравняване на дати</h3>



<p>Можем да сравняваме дати използвайки стандартните оператори.</p>



<pre class="wp-block-code"><code>date1 = datetime.now()
date2 = datetime(2025, 1, 1)

if date1 &gt; date2:
    print("Първата дата е по-късно")</code></pre>



<h3 class="wp-block-heading">Изчисляване на разлика между дати</h3>



<pre class="wp-block-code"><code>from datetime import timedelta

tomorrow = datetime.now() + timedelta(days=1)</code></pre>



<div class="inline-related-post">
                    <p>📖 <strong>Прочетете още:</strong> <a href="https://fedia.eu/%d1%83%d0%b5%d0%b1-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%81-flask-%d0%b2-python/" target="_blank">Уеб разработка с Flask в Python</a></p>
                </div>



<h2 class="wp-block-heading">Заключение</h2>



<p>Работата с дати и часове в Python е лесна с подходящите инструменти.</p>



<p>Модулът datetime предоставя всички необходими функции за манипулация на дати.</p>



<p>Важно е да разбираме основните концепции и формати.</p>



<p>Практиката е ключът към успешното усвояване на тези умения.</p>



<h2 class="wp-block-heading">Допълнителни ресурси</h2>



<p>Официалната документация на Python е отличен източник за повече информация.</p>



<p>Онлайн форумите предлагат много примери и решения.</p>



<p>Практическите упражнения помагат за затвърждаване на наученото.</p>



<p>Експериментирайте с различни формати и функции за по-добро разбиране.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d0%b5-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b0%d1%82%d0%b0-%d0%b4%d0%b0%d1%82%d0%b0-%d0%b8-%d1%87%d0%b0%d1%81-%d0%b2-python/">Как да получите текущата дата и час в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d0%ba%d0%b0%d0%ba-%d0%b4%d0%b0-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b8%d1%82%d0%b5-%d1%82%d0%b5%d0%ba%d1%83%d1%89%d0%b0%d1%82%d0%b0-%d0%b4%d0%b0%d1%82%d0%b0-%d0%b8-%d1%87%d0%b0%d1%81-%d0%b2-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python 3.14 предлага нов интерпретатор с 3~30% по-бърз код</title>
		<link>https://fedia.eu/python-3-14-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%b0%d0%b3%d0%b0-%d0%bd%d0%be%d0%b2-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bf%d1%80%d0%b5%d1%82%d0%b0%d1%82%d0%be%d1%80-%d1%81-330-%d0%bf%d0%be-%d0%b1%d1%8a/</link>
					<comments>https://fedia.eu/python-3-14-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%b0%d0%b3%d0%b0-%d0%bd%d0%be%d0%b2-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bf%d1%80%d0%b5%d1%82%d0%b0%d1%82%d0%be%d1%80-%d1%81-330-%d0%bf%d0%be-%d0%b1%d1%8a/#respond</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Thu, 13 Feb 2025 04:34:14 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=2132</guid>

					<description><![CDATA[<p>Python 3.14 носи значителни подобрения в скоростта на изпълнение на&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/python-3-14-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%b0%d0%b3%d0%b0-%d0%bd%d0%be%d0%b2-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bf%d1%80%d0%b5%d1%82%d0%b0%d1%82%d0%be%d1%80-%d1%81-330-%d0%bf%d0%be-%d0%b1%d1%8a/">Python 3.14 предлага нов интерпретатор с 3~30% по-бърз код</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="576" src="https://fedia.eu/wp-content/uploads/2025/02/Python-3.14.png" alt="Python 3.14 предлага нов интерпретатор с 3~30% по-бърз код" class="wp-image-2133" srcset="https://fedia.eu/wp-content/uploads/2025/02/Python-3.14.png 1024w, https://fedia.eu/wp-content/uploads/2025/02/Python-3.14-300x169.png 300w, https://fedia.eu/wp-content/uploads/2025/02/Python-3.14-768x432.png 768w, https://fedia.eu/wp-content/uploads/2025/02/Python-3.14-720x405.png 720w, https://fedia.eu/wp-content/uploads/2025/02/Python-3.14-520x293.png 520w, https://fedia.eu/wp-content/uploads/2025/02/Python-3.14-320x180.png 320w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>Python 3.14 носи значителни подобрения в скоростта на изпълнение на програмите. Новият интерпретатор прави кода с 3 до 30% по-бърз. Това е важна стъпка напред за езика, който става все по-предпочитан за разработчиците.</p>



<p>В тази статия ще разгледаме основните промени в Python 3.14. Ще обясним как новият интерпретатор подобрява производителността и какви предимства носи за разработчиците.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Какво представлява интерпретаторът на Python?</h2>



<p>Интерпретаторът е програмата, която изпълнява <a href="https://fedia.eu/%d1%83%d0%b5%d0%b1-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%81-flask-%d0%b2-python/" target="_blank" rel="noreferrer noopener">Python</a> кода. Той превежда изходния код в машинни инструкции, които компютърът разбира.</p>



<p>Python традиционно използва CPython като основен интерпретатор. Всяка нова версия на езика се стреми да подобри скоростта и ефективността на този интерпретатор.</p>



<p>С Python 3.14 идват значителни подобрения, които увеличават бързодействието на езика.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как Python 3.14 ускорява изпълнението на кода?</h2>



<h3 class="wp-block-heading">1. <strong>Оптимизация на байткода</strong></h3>



<p>Python използва байткод – междинен код, който се изпълнява от интерпретатора. В новата версия байткодът е по-ефективен.</p>



<p>Това води до по-бързо изпълнение на програмите, защото процесорът обработва инструкциите по-оптимално.</p>



<h3 class="wp-block-heading">2. <strong>Подобрено управление на паметта</strong></h3>



<p>Python 3.14 използва нови алгоритми за управление на паметта. Това намалява времето, необходимо за освобождаване и разпределение на паметта.</p>



<p>Резултатът е по-гладка работа на програмите, особено при работа с големи обеми данни.</p>



<h3 class="wp-block-heading">3. <strong>По-бърза интерпретация на кода</strong></h3>



<p>Новият интерпретатор намалява времето за обработка на инструкциите. Това означава, че Python кодът се изпълнява с по-малко забавяне.</p>



<p>Тази промяна е особено полезна за интерактивни приложения и програми, които изискват бърза реакция.</p>



<h3 class="wp-block-heading">4. <strong>Подобрена работа с многопоточност</strong></h3>



<p>Python 3.14 прави работата с нишки (threads) по-ефективна. Това е важно за приложения, които изпълняват паралелни задачи.</p>



<p>Тази промяна води до по-добра производителност при многозадачност и по-добро използване на процесорните ядра.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Какви са предимствата за разработчиците?</h2>



<h3 class="wp-block-heading">1. <strong>По-бързо изпълнение на скриптове</strong></h3>



<p>Python 3.14 намалява времето за изпълнение на кода, което е полезно за всички програмисти.</p>



<p>Това позволява по-ефективно разработване и тестване на приложения.</p>



<h3 class="wp-block-heading">2. <strong>По-добра производителност на уеб приложения</strong></h3>



<p>Много уеб платформи, като Django и Flask, ще работят по-бързо с новата версия.</p>



<p>Това подобрява работата на сървъри и намалява времето за обработка на заявки.</p>



<h3 class="wp-block-heading">3. <strong>Оптимизация за машинно обучение</strong></h3>



<p>Python е широко използван в областта на машинното обучение. По-бързият интерпретатор намалява времето за изпълнение на модели и анализи.</p>



<p>Това е от голямо значение за научни изчисления и изкуствен интелект.</p>



<h3 class="wp-block-heading">4. <strong>По-лесно мащабиране на приложения</strong></h3>



<p>С по-бърза интерпретация на кода, Python 3.14 улеснява разгръщането на мащабни приложения.</p>



<p>Големи проекти, които обработват голям обем данни, ще работят по-ефективно.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Сравнение на производителността с предишни версии</h2>



<p>Python 3.14 е значително по-бърз от предходните версии.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Версия</th><th>Ускорение на кода</th></tr></thead><tbody><tr><td>Python 3.10</td><td>Базово ниво</td></tr><tr><td>Python 3.11</td><td>10–15% по-бърз</td></tr><tr><td>Python 3.12</td><td>15–25% по-бърз</td></tr><tr><td>Python 3.14</td><td>3–30% по-бърз</td></tr></tbody></table></figure>



<p>Тези резултати показват, че Python 3.14 предлага значително подобрение.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Как да преминем към Python 3.14?</h2>



<h3 class="wp-block-heading">1. <strong>Актуализиране на съществуващата инсталация</strong></h3>



<p>Потребителите могат да обновят Python чрез следната команда:</p>



<pre class="wp-block-preformatted"><code>pip install --upgrade python<br></code></pre>



<p>На Linux и macOS може да се използва:</p>



<pre class="wp-block-preformatted"><code>sudo apt update &amp;&amp; sudo apt upgrade python3<br></code></pre>



<h3 class="wp-block-heading">2. <strong>Проверка на версията</strong></h3>



<p>След обновяване, проверете инсталираната версия с командата:</p>



<pre class="wp-block-preformatted"><code>python --version<br></code></pre>



<p>Трябва да видите съобщение като:</p>



<pre class="wp-block-preformatted"><code>Python 3.14.0<br></code></pre>



<h3 class="wp-block-heading">3. <strong>Тестване на съвместимостта на кода</strong></h3>



<p>Някои библиотеки може да изискват промени. Препоръчително е да се тества съвместимостта на проектите преди пълната миграция.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">Заключение</h2>



<p>Python 3.14 предлага значителни подобрения в скоростта на изпълнение на кода. Новият интерпретатор прави програмите с 3 до 30% по-бързи.</p>



<p>Това улеснява разработката на уеб приложения, машинно обучение и мащабни проекти.</p>



<p>Препоръчително е всички разработчици да обновят своите среди към най-новата версия.</p>



<p>Python продължава да се развива, предлагайки по-добра производителност и нови възможности.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/python-3-14-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%b0%d0%b3%d0%b0-%d0%bd%d0%be%d0%b2-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bf%d1%80%d0%b5%d1%82%d0%b0%d1%82%d0%be%d1%80-%d1%81-330-%d0%bf%d0%be-%d0%b1%d1%8a/">Python 3.14 предлага нов интерпретатор с 3~30% по-бърз код</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/python-3-14-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%b0%d0%b3%d0%b0-%d0%bd%d0%be%d0%b2-%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d0%bf%d1%80%d0%b5%d1%82%d0%b0%d1%82%d0%be%d1%80-%d1%81-330-%d0%bf%d0%be-%d0%b1%d1%8a/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Уеб разработка с Flask в Python</title>
		<link>https://fedia.eu/%d1%83%d0%b5%d0%b1-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%81-flask-%d0%b2-python/</link>
					<comments>https://fedia.eu/%d1%83%d0%b5%d0%b1-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%81-flask-%d0%b2-python/#comments</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 19:06:40 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=1720</guid>

					<description><![CDATA[<p>Урок 7: Уеб разработка с Flask в Python В този&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d1%83%d0%b5%d0%b1-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%81-flask-%d0%b2-python/">Уеб разработка с Flask в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="1024" src="https://fedia.eu/wp-content/uploads/2024/07/Flask-в-Python.jpg" alt="Уеб разработка с Flask в Python" class="wp-image-1721" srcset="https://fedia.eu/wp-content/uploads/2024/07/Flask-в-Python.jpg 1024w, https://fedia.eu/wp-content/uploads/2024/07/Flask-в-Python-300x300.jpg 300w, https://fedia.eu/wp-content/uploads/2024/07/Flask-в-Python-150x150.jpg 150w, https://fedia.eu/wp-content/uploads/2024/07/Flask-в-Python-768x768.jpg 768w, https://fedia.eu/wp-content/uploads/2024/07/Flask-в-Python-80x80.jpg 80w, https://fedia.eu/wp-content/uploads/2024/07/Flask-в-Python-320x320.jpg 320w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading">Урок 7: Уеб разработка с Flask в Python</h3>



<p>В този урок ще се запознаем със Flask &#8211; микро уеб рамка за <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b1%d0%b0%d0%b7%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/" target="_blank" rel="noreferrer noopener">Python</a>, която позволява бързо и лесно създаване на уеб приложения. Ще научим как да създадем базово уеб приложение с Flask, как да работим с шаблони и как да изграждаме API.</p>



<h3 class="wp-block-heading">Въведение в Flask</h3>



<p>Flask е лека и гъвкава уеб рамка за Python, която е идеална за създаване на малки и средни уеб приложения. Тя предлага минималистичен подход към разработката на уеб приложения, като по този начин е лесна за изучаване и употреба.</p>



<h3 class="wp-block-heading">Инсталиране на Flask</h3>



<p>За да започнем, трябва да инсталираме Flask. Можем да го направим чрез pip:</p>



<pre class="wp-block-code"><code>pip install Flask
</code></pre>



<p></p>



<h3 class="wp-block-heading">Създаване на базово уеб приложение</h3>



<h4 class="wp-block-heading">Основен файл на приложението</h4>



<p>Създайте файл с име <code>app.py</code> и добавете следния код:</p>



<pre class="wp-block-code"><code>from flask import Flask

# Създаване на инстанция на Flask
app = Flask(__name__)

# Дефиниране на маршрути и функции за тях
@app.route('/')
def index():
    return 'Welcome to my Flask App!'

@app.route('/about')
def about():
    return 'This is an about page.'

# Стартиране на приложението
if __name__ == '__main__':
    app.run(debug=True)
</code></pre>



<p></p>



<h4 class="wp-block-heading">Обяснение</h4>



<ul class="wp-block-list">
<li><code>Flask</code> е импортиран от библиотеката <code>flask</code>.</li>



<li><code>app = Flask(__name__)</code> създава инстанция на Flask приложение.</li>



<li><code>@app.route('/')</code> и <code>@app.route('/about')</code> са декоратори, които асоциират URL маршрутите с функции.</li>



<li>Всяка функция, маркирана с декоратора <code>@app.route()</code>, се изпълнява при достъпване на съответния URL път.</li>



<li><code>app.run(debug=True)</code> стартира уеб приложението в режим на отладка.</li>
</ul>



<h3 class="wp-block-heading">Шаблони и рендериране</h3>



<p>Flask позволява използването на HTML шаблони за по-добро организиране на уеб приложението.</p>



<h4 class="wp-block-heading">Създаване на папка за шаблони</h4>



<p>Създайте нова папка <code>templates</code> в директорията на проекта. В нея ще съхранявате HTML шаблоните на вашето приложение.</p>



<h4 class="wp-block-heading">Използване на шаблони</h4>



<p>Променете файлът <code>app.py</code>, за да включите използването на шаблони:</p>



<pre class="wp-block-code"><code>from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html', title='Home', content='Welcome to my Flask App!')

@app.route('/about')
def about():
    return render_template('about.html', title='About')

if __name__ == '__main__':
    app.run(debug=True)
</code></pre>



<p></p>



<p>Пример на шаблон <code>index.html</code></p>



<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;{{ title }}&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;{{ content }}&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>



<p></p>



<h4 class="wp-block-heading">Пример на шаблон <code>about.html</code></h4>



<pre class="wp-block-code"><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
    &lt;title&gt;{{ title }}&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;h1&gt;About Page&lt;/h1&gt;
    &lt;p&gt;This is an about page for my Flask App.&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>



<p></p>



<h3 class="wp-block-heading">Изграждане на API с Flask</h3>



<p>Flask позволява лесно създаване на API чрез връзките между маршрути и функции.</p>



<h4 class="wp-block-heading">Пример за API</h4>



<pre class="wp-block-code"><code>from flask import Flask, jsonify

app = Flask(__name__)

# Пример за данни
books = &#91;
    {'title': 'Python Programming', 'author': 'Guido van Rossum'},
    {'title': 'Flask Essentials', 'author': 'O'Reilly Media'}
]

@app.route('/api/books', methods=&#91;'GET'])
def get_books():
    return jsonify(books)

if __name__ == '__main__':
    app.run(debug=True)
</code></pre>



<p></p>



<h4 class="wp-block-heading">Обяснение</h4>



<ul class="wp-block-list">
<li><code>jsonify()</code> конвертира Python обекти в JSON формат.</li>



<li>Методът <code>get_books()</code> връща списък от книги в JSON формат при достъпване на URL път <code>/api/books</code>.</li>
</ul>



<h4 class="wp-block-heading">Решения за стартиране на Flask приложение, което продължава да работи след затваряне на терминала:</h4>



<p>Когато стартирате Flask приложение в терминала и след това затворите терминала или излезете от сесията, приложението спира да работи, защото то е свързано с текущата сесия на терминала. Когато тази сесия приключи, всички свързани с нея процеси, включително Flask приложението, също спират.</p>



<h4 class="wp-block-heading">1. Използване на <code>nohup</code>:</h4>



<p>Можете да използвате командата <code>nohup</code>, за да стартирате Flask приложението и да го отделите от терминалната сесия. Това ще позволи на приложението да продължи да работи дори след като затворите терминала.</p>



<pre class="wp-block-code"><code>nohup python3 app.py &amp;
</code></pre>



<p></p>



<ul class="wp-block-list">
<li><code>nohup</code> (no hang up): Приложението ще продължи да работи след затваряне на терминала.</li>



<li><code>&amp;</code>: Това ще стартира приложението на заден план, така че да можете да продължите да използвате терминала за други задачи.</li>
</ul>



<h4 class="wp-block-heading">2. Използване на <code>screen</code>:</h4>



<p>Можете да използвате <code>screen</code>, за да стартирате Flask приложението в нова сесия, която продължава да работи след затваряне на терминала.</p>



<ol class="wp-block-list">
<li>Инсталирайте <code>screen</code>, ако още не е инсталиран:</li>
</ol>



<pre class="wp-block-code"><code>sudo apt-get install screen
</code></pre>



<p>2. Стартирайте нова <code>screen</code> сесия:</p>



<pre class="wp-block-code"><code>screen
</code></pre>



<p></p>



<p>3. Стартирайте Flask приложението:</p>



<pre class="wp-block-code"><code>python3 app.py
</code></pre>



<p></p>



<p>4. За да се отделите от сесията, без да я прекъсвате, натиснете <code>Ctrl + A</code>, последвано от <code>D</code>.</p>



<p>5. Можете да се върнете в сесията по-късно с командата:</p>



<pre class="wp-block-code"><code>screen -r
</code></pre>



<p></p>



<h3 class="wp-block-heading">Настройка на Flask с Gunicorn</h3>



<p>Flask по подразбиране използва вградения си уеб сървър, който не е предназначен за използване в производствени среди поддържа само една връзка. За да може вашето Flask приложение да обслужва множество връзки и да бъде по-устойчиво в производствени условия, трябва да го използвате заедно с по-стабилен уеб сървър и/или WSGI сървър като Gunicorn или uWSGI.</p>



<h3 class="wp-block-heading">Стъпки за настройка на Flask с Gunicorn</h3>



<p>Gunicorn е WSGI сървър, който е подходящ за производствени среди и може да обработва множество връзки едновременно.</p>



<h4 class="wp-block-heading">1. Инсталиране на Gunicorn</h4>



<p>Първо, инсталирайте Gunicorn с помощта на pip:</p>



<pre class="wp-block-code"><code>pip3 install gunicorn
</code></pre>



<p></p>



<h4 class="wp-block-heading">2. Стартиране на Flask приложението с Gunicorn</h4>



<p>След като инсталирате Gunicorn, можете да стартирате вашето Flask приложение с него:</p>



<pre class="wp-block-code"><code>gunicorn -w 4 -b 0.0.0.0:8000 app:app
</code></pre>



<p></p>



<p><code>-w 4</code>: Задава броя на работните процеси (workers). В този случай използваме 4 работни процеси. Броят на работниците зависи от броя на ядрата на вашия процесор. Общо правило е да използвате 2-4 работници на ядро.</p>



<p><code>-b 0.0.0.0:8000</code>: Свързва приложението на всички IP адреси на порт 8000</p>



<p>.<code>app:app</code>: Това казва на Gunicorn да зареди обекта <code>app</code> от модула <code>app.py</code>.</p>



<h3 class="wp-block-heading">Заключение</h3>



<p>В този урок научихме как да създадем базово уеб приложение с Flask, как да работим с HTML шаблони и как да изградим прост API. Flask предоставя множество възможности за разширяване на функционалността и създаване на различни типове уеб приложения. Практикувайте редовно и експериментирайте с различни маршрути и шаблони, за да затвърдите наученото.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d1%83%d0%b5%d0%b1-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%81-flask-%d0%b2-python/">Уеб разработка с Flask в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d1%83%d0%b5%d0%b1-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%ba%d0%b0-%d1%81-flask-%d0%b2-python/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Работа с бази данни в Python</title>
		<link>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b1%d0%b0%d0%b7%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/</link>
					<comments>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b1%d0%b0%d0%b7%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/#comments</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 16:27:26 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=1714</guid>

					<description><![CDATA[<p>Урок 6: Работа с бази данни в Python В този&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b1%d0%b0%d0%b7%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/">Работа с бази данни в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://fedia.eu/wp-content/uploads/2024/07/7.jpg" alt="Работа с бази данни в Python" class="wp-image-1715" srcset="https://fedia.eu/wp-content/uploads/2024/07/7.jpg 1024w, https://fedia.eu/wp-content/uploads/2024/07/7-300x300.jpg 300w, https://fedia.eu/wp-content/uploads/2024/07/7-150x150.jpg 150w, https://fedia.eu/wp-content/uploads/2024/07/7-768x768.jpg 768w, https://fedia.eu/wp-content/uploads/2024/07/7-80x80.jpg 80w, https://fedia.eu/wp-content/uploads/2024/07/7-320x320.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading"><strong>Урок 6: Работа с бази данни в Python</strong></h3>



<p>В този урок ще разгледаме как да работим с бази данни в <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b8-%d0%b2-python/" target="_blank" rel="noreferrer noopener">Python</a>. Ще научим как да създаваме и манипулираме бази данни, както и как да използваме SQL за заявяване и управление на данни. Ще използваме SQLite, вградена база данни, която не изисква допълнителна инсталация и е идеална за обучение и малки проекти.</p>



<h3 class="wp-block-heading">Запознаване със SQLite</h3>



<p>SQLite е лека библиотека за релационни бази данни, която се съхранява в един файл на диска. Тя е чудесна за прототипиране, тестване и малки приложения.</p>



<h3 class="wp-block-heading">Инсталиране на SQLite</h3>



<p>SQLite е включен в стандартната библиотека на Python, така че не е необходимо допълнително инсталиране. Ще използваме модула <code>sqlite3</code> за работа с базата данни.</p>



<h3 class="wp-block-heading">Свързване с база данни</h3>



<p>Първата стъпка е да се свържем с база данни. Ако базата данни не съществува, тя ще бъде създадена.</p>



<pre class="wp-block-code"><code>import sqlite3

# Свързване с база данни
conn = sqlite3.connect('example.db')

# Създаване на курсор
cursor = conn.cursor()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Създаване на таблица</h3>



<p>Създаваме таблица, като изпълним SQL заявка с метода <code>execute()</code>.</p>



<pre class="wp-block-code"><code># Създаване на таблица
cursor.execute('''CREATE TABLE IF NOT EXISTS users (
                    id INTEGER PRIMARY KEY,
                    name TEXT NOT NULL,
                    age INTEGER NOT NULL
                )''')

# Потвърждаване на промените
conn.commit()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Добавяне на записи</h3>



<p>Можем да добавяме записи в таблицата с SQL командата <code>INSERT</code>.</p>



<pre class="wp-block-code"><code># Добавяне на записи
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Alice", 30))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Bob", 25))

# Потвърждаване на промените
conn.commit()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Четене на записи</h3>



<p>Можем да четем данни от таблицата с командата <code>SELECT</code>.</p>



<pre class="wp-block-code"><code># Четене на всички записи
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()

for row in rows:
    print(row)
</code></pre>



<p></p>



<h3 class="wp-block-heading">Актуализиране на записи</h3>



<p>За актуализиране на данни използваме командата <code>UPDATE</code>.</p>



<pre class="wp-block-code"><code># Актуализиране на запис
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (35, "Alice"))

# Потвърждаване на промените
conn.commit()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Изтриване на записи</h3>



<p>За изтриване на данни използваме командата <code>DELETE</code>.</p>



<pre class="wp-block-code"><code># Изтриване на запис
cursor.execute("DELETE FROM users WHERE name = ?", ("Bob",))

# Потвърждаване на промените
conn.commit()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Затваряне на връзката</h3>



<p>След като приключим с работата с базата данни, трябва да затворим връзката.</p>



<pre class="wp-block-code"><code># Затваряне на връзката
conn.close()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Примерна програма: Управление на потребители</h3>



<p>Нека създадем програма за управление на потребители, която използва SQLite за съхранение на данни.</p>



<h4 class="wp-block-heading">Дефиниране на функции</h4>



<p><strong>database.py</strong></p>



<pre class="wp-block-code"><code>import sqlite3

def connect():
    return sqlite3.connect('users.db')

def create_table(conn):
    cursor = conn.cursor()
    cursor.execute('''CREATE TABLE IF NOT EXISTS users (
                        id INTEGER PRIMARY KEY,
                        name TEXT NOT NULL,
                        age INTEGER NOT NULL
                    )''')
    conn.commit()

def add_user(conn, name, age):
    cursor = conn.cursor()
    cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", (name, age))
    conn.commit()

def get_users(conn):
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    return cursor.fetchall()

def update_user(conn, user_id, age):
    cursor = conn.cursor()
    cursor.execute("UPDATE users SET age = ? WHERE id = ?", (age, user_id))
    conn.commit()

def delete_user(conn, user_id):
    cursor = conn.cursor()
    cursor.execute("DELETE FROM users WHERE id = ?", (user_id,))
    conn.commit()
</code></pre>



<p></p>



<h4 class="wp-block-heading">Основна програма</h4>



<p><strong>main.py</strong></p>



<pre class="wp-block-code"><code>import database

# Свързване с базата данни
conn = database.connect()

# Създаване на таблица
database.create_table(conn)

# Добавяне на потребители
database.add_user(conn, "Alice", 30)
database.add_user(conn, "Bob", 25)

# Изброяване на потребителите
users = database.get_users(conn)
print("Users:")
for user in users:
    print(user)

# Актуализиране на възрастта на потребител
database.update_user(conn, 1, 35)

# Изтриване на потребител
database.delete_user(conn, 2)

# Изброяване на потребителите след промените
users = database.get_users(conn)
print("\nUsers after updates:")
for user in users:
    print(user)

# Затваряне на връзката
conn.close()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Заключение</h3>



<p>В този урок разгледахме как да работим с бази данни в Python, използвайки SQLite. Научихме как да създаваме таблици, да добавяме, четем, актуализираме и изтриваме записи. Също така, създадохме примерна програма за управление на потребители. В следващите уроци ще разгледаме мрежово програмиране и уеб разработка с Python. Практикувайте редовно и експериментирайте с различни SQL заявки, за да затвърдите наученото.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b1%d0%b0%d0%b7%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/">Работа с бази данни в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b1%d0%b0%d0%b7%d0%b8-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Работа с файлове и директории в Python</title>
		<link>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b8-%d0%b2-python/</link>
					<comments>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b8-%d0%b2-python/#comments</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Sun, 14 Jul 2024 06:44:58 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=1703</guid>

					<description><![CDATA[<p>Урок 5: Работа с файлове и директории в Python В&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b8-%d0%b2-python/">Работа с файлове и директории в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://fedia.eu/wp-content/uploads/2024/07/OIG1.jpg" alt="Работа с файлове и директории в Python" class="wp-image-1704" srcset="https://fedia.eu/wp-content/uploads/2024/07/OIG1.jpg 1024w, https://fedia.eu/wp-content/uploads/2024/07/OIG1-300x300.jpg 300w, https://fedia.eu/wp-content/uploads/2024/07/OIG1-150x150.jpg 150w, https://fedia.eu/wp-content/uploads/2024/07/OIG1-768x768.jpg 768w, https://fedia.eu/wp-content/uploads/2024/07/OIG1-80x80.jpg 80w, https://fedia.eu/wp-content/uploads/2024/07/OIG1-320x320.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading"><strong>Урок 5: Работа с файлове и директории в Python</strong></h3>



<p>В този урок ще разгледаме как да работим с файлове и директории в <a href="https://fedia.eu/%d0%be%d0%b1%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%be-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%be%d0%be/" target="_blank" rel="noreferrer noopener">Python</a>. Ще научим как да четем и записваме файлове, както и как да манипулираме директории. Тези умения са основни за създаването на приложения, които трябва да съхраняват и извличат данни от файловата система.</p>



<h3 class="wp-block-heading">Четене и записване на текстови файлове</h3>



<p>Работата с текстови файлове в Python се осъществява чрез вградената функция <code>open()</code>.</p>



<h4 class="wp-block-heading">Отваряне на файл</h4>



<p>За да отворим файл за четене или запис, използваме функцията <code>open()</code>, която приема два основни аргумента: името на файла и режима на отваряне.</p>



<ul class="wp-block-list">
<li><code>r</code>: четене (read)</li>



<li><code>w</code>: запис (write) &#8211; създава нов файл или презаписва съществуващ</li>



<li><code>a</code>: добавяне (append) &#8211; добавя към края на файла</li>



<li><code>b</code>: двоичен режим (binary)</li>
</ul>



<pre class="wp-block-code"><code>file = open("example.txt", "r")  # Отваряме файла в режим на четене
</code></pre>



<p></p>



<h4 class="wp-block-heading">Четене на съдържание</h4>



<p>Можем да четем съдържанието на файла с методите <code>read()</code>, <code>readline()</code> или <code>readlines()</code>.</p>



<pre class="wp-block-code"><code>file = open("example.txt", "r")

# Четене на целия файл
content = file.read()
print(content)

# Четене на един ред
file.seek(0)  # Връщане на указателя в началото на файла
line = file.readline()
print(line)

# Четене на всички редове
file.seek(0)
lines = file.readlines()
print(lines)

file.close()  # Затваряне на файла
</code></pre>



<p></p>



<h4 class="wp-block-heading">Записване в файл</h4>



<p>За да записваме данни във файл, отваряме го в режим на запис или добавяне и използваме метода <code>write()</code>.</p>



<pre class="wp-block-code"><code>file = open("example.txt", "w")

file.write("Hello, world!\n")
file.write("This is a new line.")

file.close()  # Затваряне на файла
</code></pre>



<p></p>



<h3 class="wp-block-heading">Контекстни мениджъри</h3>



<p>Контекстните мениджъри са препоръчителен начин за работа с файлове, защото автоматично затварят файла след като сме приключили с него.</p>



<pre class="wp-block-code"><code>with open("example.txt", "r") as file:
    content = file.read()
    print(content)

# Файлът се затваря автоматично тук</code></pre>



<p></p>



<p><h3>Работа с двоични файловеДвоичните файлове се отварят в двоичен режим с добавяне на <code>b</code> към режима на отваряне.</h3></p>



<pre class="wp-block-code"><code># Записване в двоичен файл
with open("example.bin", "wb") as file:
    file.write(b'\xDE\xAD\xBE\xEF')

# Четене на двоичен файл
with open("example.bin", "rb") as file:
    content = file.read()
    print(content)
</code></pre>



<p></p>



<h3 class="wp-block-heading">Работа с директории</h3>



<p>Модулът <code>os</code> предоставя функции за работа с директории и файлове в тях.</p>



<h4 class="wp-block-heading">Проверка дали файл или директория съществува</h4>



<pre class="wp-block-code"><code>import os

# Проверка дали файл съществува
print(os.path.exists("example.txt"))  # True или False

# Проверка дали пътят е директория
print(os.path.isdir("example_directory"))  # True или False

# Проверка дали пътят е файл
print(os.path.isfile("example.txt"))  # True или False
</code></pre>



<p></p>



<p><strong>Създаване и изтриване на директории</strong></p>



<pre class="wp-block-code"><code># Създаване на нова директория
os.mkdir("new_directory")

# Изтриване на директория
os.rmdir("new_directory")
</code></pre>



<p></p>



<p><strong>Навигация в файловата система</strong></p>



<pre class="wp-block-code"><code># Получаване на текущата директория
print(os.getcwd())

# Промяна на текущата директория
os.chdir("new_directory")
print(os.getcwd())

# Връщане в предишната директория
os.chdir("..")
print(os.getcwd())
</code></pre>



<p></p>



<p><strong>Изброяване на файлове и директории</strong></p>



<pre class="wp-block-code"><code># Изброяване на всички файлове и директории в текущата директория
print(os.listdir("."))

# Изброяване на всички файлове и директории в конкретна директория
print(os.listdir("/path/to/directory"))
</code></pre>



<p></p>



<h3 class="wp-block-heading">Работа с модула <code>shutil</code></h3>



<p>Модулът <code>shutil</code> предоставя функции за копиране и изтриване на файлове и директории.</p>



<h4 class="wp-block-heading">Копиране на файл</h4>



<pre class="wp-block-code"><code>import shutil

# Копиране на файл
shutil.copy("example.txt", "example_copy.txt")
</code></pre>



<p></p>



<p><strong>Преместване на файл или директория</strong></p>



<pre class="wp-block-code"><code># Преместване на файл или директория
shutil.move("example.txt", "new_directory/example.txt")
</code></pre>



<p></p>



<p><strong>Изтриване на директория с цялото ѝ съдържание</strong></p>



<pre class="wp-block-code"><code># Изтриване на директория с цялото ѝ съдържание
shutil.rmtree("example_directory")
</code></pre>



<p></p>



<h3 class="wp-block-heading">Примерна програма: Управление на бележки</h3>



<p>Нека създадем програма за управление на бележки, която позволява добавяне, четене и изтриване на бележки.</p>



<h4 class="wp-block-heading">Дефиниране на функции</h4>



<p><strong>notes.py</strong></p>



<pre class="wp-block-code"><code>import os

def add_note(filename, content):
    with open(filename, "w") as file:
        file.write(content)

def read_note(filename):
    if os.path.exists(filename):
        with open(filename, "r") as file:
            return file.read()
    else:
        return "Note does not exist."

def delete_note(filename):
    if os.path.exists(filename):
        os.remove(filename)
        return "Note deleted."
    else:
        return "Note does not exist."

def list_notes(directory="."):
    return &#91;f for f in os.listdir(directory) if os.path.isfile(f)]
</code></pre>



<p></p>



<p><h4>Основна програма</h4></p>



<p><h4><strong>main.py</strong></h4></p>



<pre class="wp-block-code"><code>import notes

# Добавяне на бележки
notes.add_note("note1.txt", "This is the first note.")
notes.add_note("note2.txt", "This is the second note.")

# Четене на бележки
print(notes.read_note("note1.txt"))

# Изтриване на бележка
print(notes.delete_note("note1.txt"))

# Изброяване на бележки
print("Notes in directory:")
for note in notes.list_notes():
    print(note)
</code></pre>



<p></p>



<h3 class="wp-block-heading">Заключение</h3>



<p>В този урок разгледахме основните концепции за работа с файлове и директории в Python. Научихме как да четем и записваме текстови и двоични файлове, как да използваме контекстни мениджъри, и как да манипулираме директории с помощта на модулите <code>os</code> и <code>shutil</code>. В следващите уроци ще разгледаме работа с бази данни и мрежово програмиране, за да разширим още повече нашите знания и умения в Python. Практикувайте редовно и експериментирайте с различни операции с файлове и директории, за да затвърдите наученото.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b8-%d0%b2-python/">Работа с файлове и директории в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%84%d0%b0%d0%b9%d0%bb%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b4%d0%b8%d1%80%d0%b5%d0%ba%d1%82%d0%be%d1%80%d0%b8%d0%b8-%d0%b2-python/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Обектно-ориентирано програмиране (ООП) в Python</title>
		<link>https://fedia.eu/%d0%be%d0%b1%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%be-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%be%d0%be/</link>
					<comments>https://fedia.eu/%d0%be%d0%b1%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%be-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%be%d0%be/#comments</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Sun, 14 Jul 2024 04:35:19 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=1690</guid>

					<description><![CDATA[<p>Урок 4: Обектно-ориентирано програмиране (ООП) в Python Обектно-ориентираното програмиране (ООП)&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d0%be%d0%b1%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%be-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%be%d0%be/">Обектно-ориентирано програмиране (ООП) в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://fedia.eu/wp-content/uploads/2024/07/Python.jpg" alt="Обектно-ориентирано програмиране (ООП) в Python" class="wp-image-1675" srcset="https://fedia.eu/wp-content/uploads/2024/07/Python.jpg 1024w, https://fedia.eu/wp-content/uploads/2024/07/Python-300x300.jpg 300w, https://fedia.eu/wp-content/uploads/2024/07/Python-150x150.jpg 150w, https://fedia.eu/wp-content/uploads/2024/07/Python-768x768.jpg 768w, https://fedia.eu/wp-content/uploads/2024/07/Python-80x80.jpg 80w, https://fedia.eu/wp-content/uploads/2024/07/Python-320x320.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading"><strong>Урок 4: Обектно-ориентирано програмиране (ООП) в Python</strong></h3>



<p>Обектно-ориентираното програмиране (ООП) е парадигма за програмиране, която използва &#8222;обекти&#8220; и &#8222;класове&#8220;. Обектите са конкретни екземпляри на класовете и могат да съдържат данни и методи за работа с тези данни. В този урок ще се запознаем с основните концепции на ООП и ще разгледаме как да ги приложим в <a href="https://fedia.eu/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b8-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d0%b8-%d0%b2-python/" target="_blank" rel="noreferrer noopener">Python</a>.</p>



<h3 class="wp-block-heading">Класове и обекти</h3>



<h4 class="wp-block-heading">Дефиниране на клас</h4>



<p>Класовете в Python се дефинират с ключовата дума <code>class</code>, последвана от името на класа и двоеточие.</p>



<pre class="wp-block-preformatted">class Person:<br>    pass  # Използваме 'pass', за да създадем празен клас<br><code><br></code></pre>



<h4 class="wp-block-heading">Създаване на обект</h4>



<p>Обектите се създават като извикаме класа, като използваме скоби:</p>



<pre class="wp-block-preformatted">person1 = Person()<br>person2 = Person()</pre>



<h3 class="wp-block-heading">Конструктор и атрибути</h3>



<p>Конструкторът е специален метод, който се изпълнява при създаването на обект. В Python той се нарича <code>__init__</code>.</p>



<h4 class="wp-block-heading">Дефиниране на конструктор и атрибути</h4>



<pre class="wp-block-preformatted">class Person:<br>    def __init__(self, name, age):<br>        self.name = name  # Атрибут на класа<br>        self.age = age    # Атрибут на класа<code><br></code></pre>



<h4 class="wp-block-heading">Създаване на обект с параметри</h4>



<pre class="wp-block-preformatted">person1 = Person("Alice", 30)<br>person2 = Person("Bob", 25)<br><br>print(person1.name)  # Отпечатва "Alice"<br>print(person2.age)   # Отпечатва 25<code><br></code></pre>



<h3 class="wp-block-heading">Методи в класове</h3>



<p>Методите са функции, които са дефинирани в рамките на клас и оперират с обектите на този клас.</p>



<h4 class="wp-block-heading">Дефиниране на метод</h4>



<pre class="wp-block-preformatted">class Person:<br>    def __init__(self, name, age):<br>        self.name = name<br>        self.age = age<br><br>    def greet(self):<br>        print(f"Hello, my name is {self.name} and I am {self.age} years old.")<code><br></code></pre>



<h4 class="wp-block-heading">Извикване на метод</h4>



<pre class="wp-block-preformatted">person1 = Person("Alice", 30)<br>person1.greet()  # Отпечатва "Hello, my name is Alice and I am 30 years old."<code><br></code></pre>



<h3 class="wp-block-heading">Наследяване</h3>



<p>Наследяването е механизъм, при който един клас (подклас) наследява атрибутите и методите на друг клас (базов клас).</p>



<h4 class="wp-block-heading">Дефиниране на базов и подклас</h4>



<pre class="wp-block-preformatted">class Employee(Person):<br>    def __init__(self, name, age, job_title):<br>        super().__init__(name, age)  # Викаме конструктора на базовия клас<br>        self.job_title = job_title<br><br>    def work(self):<br>        print(f"{self.name} is working as a {self.job_title}.")<code><br></code></pre>



<h4 class="wp-block-heading">Създаване на обект на подклас</h4>



<pre class="wp-block-preformatted">employee1 = Employee("Charlie", 28, "Software Developer")<br>employee1.greet()  # Отпечатва "Hello, my name is Charlie and I am 28 years old."<br>employee1.work()   # Отпечатва "Charlie is working as a Software Developer."<code><br></code></pre>



<h3 class="wp-block-heading">Инкапсулация</h3>



<p>Инкапсулацията е концепция, при която данните в класа са скрити от външния свят и могат да бъдат достъпвани само чрез методи на класа.</p>



<h4 class="wp-block-heading">Пример за инкапсулация</h4>



<pre class="wp-block-preformatted">class Person:<br>    def __init__(self, name, age):<br>        self.__name = name  # Приватен атрибут<br>        self.__age = age    # Приватен атрибут<br><br>    def get_name(self):<br>        return self.__name<br><br>    def set_name(self, name):<br>        self.__name = name<br><br>    def get_age(self):<br>        return self.__age<br><br>    def set_age(self, age):<br>        if age > 0:<br>            self.__age = age<br>        else:<br>            print("Invalid age")<br><br>person1 = Person("Alice", 30)<br>print(person1.get_name())  # Отпечатва "Alice"<br>person1.set_age(35)<br>print(person1.get_age())   # Отпечатва 35<code><br></code></pre>



<h3 class="wp-block-heading">Полиморфизъм</h3>



<p>Полиморфизмът е концепция, при която различни класове могат да имат методи със същото име, но с различно поведение.</p>



<h4 class="wp-block-heading">Пример за полиморфизъм</h4>



<pre class="wp-block-preformatted">class Animal:<br>    def speak(self):<br>        pass<br><br>class Dog(Animal):<br>    def speak(self):<br>        return "Woof!"<br><br>class Cat(Animal):<br>    def speak(self):<br>        return "Meow!"<br><br>animals = [Dog(), Cat()]<br>for animal in animals:<br>    print(animal.speak())  # Отпечатва "Woof!" и "Meow!"<code><br></code></pre>



<h3 class="wp-block-heading">Абстракция</h3>



<p>Абстракцията е концепция, при която се дефинират абстрактни класове и методи, които трябва да бъдат имплементирани в подкласи.</p>



<h4 class="wp-block-heading">Пример за абстракция</h4>



<pre class="wp-block-preformatted">from abc import ABC, abstractmethod<br><br>class Shape(ABC):<br>    @abstractmethod<br>    def area(self):<br>        pass<br><br>class Rectangle(Shape):<br>    def __init__(self, width, height):<br>        self.width = width<br>        self.height = height<br><br>    def area(self):<br>        return self.width * self.height<br><br>class Circle(Shape):<br>    def __init__(self, radius):<br>        self.radius = radius<br><br>    def area(self):<br>        return 3.14 * self.radius * self.radius<br><br>shapes = [Rectangle(3, 4), Circle(5)]<br>for shape in shapes:<br>    print(shape.area())  # Отпечатва 12 и 78.5<code><br></code></pre>



<h3 class="wp-block-heading">Практическа програма: Управление на библиотека с ООП</h3>



<p>Нека създадем програма за управление на библиотека с книги, използвайки ООП концепциите.</p>



<h4 class="wp-block-heading">Дефиниране на класове</h4>



<p><strong>book.py</strong></p>



<pre class="wp-block-preformatted">class Book:<br>    def __init__(self, title, author):<br>        self.title = title<br>        self.author = author<br><br>    def __str__(self):<br>        return f"{self.title} by {self.author}"<code><br></code></pre>



<p><strong>library.py</strong></p>



<pre class="wp-block-preformatted">from book import Book<br><br>class Library:<br>    def __init__(self):<br>        self.books = []<br><br>    def add_book(self, book):<br>        self.books.append(book)<br><br>    def remove_book(self, title):<br>        self.books = [book for book in self.books if book.title != title]<br><br>    def list_books(self):<br>        for book in self.books:<br>            print(book)<code><br></code></pre>



<h4 class="wp-block-heading">Основна програма</h4>



<p><strong>main.py</strong></p>



<pre class="wp-block-preformatted">from book import Book<br>from library import Library<br><br>library = Library()<br><br>book1 = Book("The Great Gatsby", "F. Scott Fitzgerald")<br>book2 = Book("1984", "George Orwell")<br><br>library.add_book(book1)<br>library.add_book(book2)<br><br>print("Books in library:")<br>library.list_books()<br><br>library.remove_book("1984")<br><br>print("\nBooks in library after removal:")<br>library.list_books()<code><br></code></pre>



<h3 class="wp-block-heading">Заключение</h3>



<p>В този урок разгледахме основните концепции на обектно-ориентираното програмиране (ООП) в Python. Научихме как да дефинираме класове и обекти, как да използваме конструктори и методи, какво представлява наследяването, инкапсулацията, полиморфизмът и абстракцията. В следващите уроци ще продължим да разширяваме нашите знания за Python и ще се запознаем с работа с файлове, бази данни и мрежово програмиране. Практикувайте редовно и експериментирайте с различни класове и обекти, за да затвърдите наученото.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d0%be%d0%b1%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%be-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%be%d0%be/">Обектно-ориентирано програмиране (ООП) в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d0%be%d0%b1%d0%b5%d0%ba%d1%82%d0%bd%d0%be-%d0%be%d1%80%d0%b8%d0%b5%d0%bd%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%be-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%be%d0%be/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Функции и модули в Python</title>
		<link>https://fedia.eu/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b8-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d0%b8-%d0%b2-python/</link>
					<comments>https://fedia.eu/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b8-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d0%b8-%d0%b2-python/#comments</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Sun, 14 Jul 2024 04:16:39 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=1685</guid>

					<description><![CDATA[<p>Урок 3: Функции и модули в Python В този урок&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b8-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d0%b8-%d0%b2-python/">Функции и модули в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://fedia.eu/wp-content/uploads/2024/07/OIG4.bCgkqYuNWF5G6gx.jpg" alt="Функции и модули в Python" class="wp-image-1668" srcset="https://fedia.eu/wp-content/uploads/2024/07/OIG4.bCgkqYuNWF5G6gx.jpg 1024w, https://fedia.eu/wp-content/uploads/2024/07/OIG4.bCgkqYuNWF5G6gx-300x300.jpg 300w, https://fedia.eu/wp-content/uploads/2024/07/OIG4.bCgkqYuNWF5G6gx-150x150.jpg 150w, https://fedia.eu/wp-content/uploads/2024/07/OIG4.bCgkqYuNWF5G6gx-768x768.jpg 768w, https://fedia.eu/wp-content/uploads/2024/07/OIG4.bCgkqYuNWF5G6gx-80x80.jpg 80w, https://fedia.eu/wp-content/uploads/2024/07/OIG4.bCgkqYuNWF5G6gx-320x320.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading">Урок 3: Функции и модули в Python</h3>



<p>В този урок ще се запознаем с функциите и модулите в<a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b8-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b8-%d0%be%d1%82-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/" target="_blank" rel="noreferrer noopener"> Python</a>. Ще разгледаме как да създаваме, използваме и организираме функции, както и как да използваме модули за структуриране на кода и повторно използване на функционалност.</p>



<h3 class="wp-block-heading">Функции в Python</h3>



<p>Функциите са основен елемент в програмирането, който ни позволява да организираме кода си в многократно използваеми блокове. Те се дефинират с ключовата дума <code>def</code>.</p>



<h4 class="wp-block-heading">Дефиниране на функция</h4>



<p>Ето пример за проста функция, която отпечатва съобщение:</p>



<pre class="wp-block-code"><code>def greet():
    print("Hello, world!")
</code></pre>



<p></p>



<h4 class="wp-block-heading">Извикване на функция</h4>



<p>За да използваме функцията, просто я извикваме по име:</p>



<pre class="wp-block-code"><code>greet()  # Отпечатва "Hello, world!"
</code></pre>



<p></p>



<h4 class="wp-block-heading">Функции с параметри</h4>



<p>Функциите могат да приемат параметри, които им позволяват да работят с различни входни данни. Ето пример:</p>



<pre class="wp-block-code"><code>def greet(name):
    print(f"Hello, {name}!")

greet("Alice")  # Отпечатва "Hello, Alice!"
greet("Bob")    # Отпечатва "Hello, Bob!"
</code></pre>



<p></p>



<h4 class="wp-block-heading">Функции с връщане на стойност</h4>



<p>Функциите могат да връщат стойности с помощта на ключовата дума <code>return</code>. Ето пример за функция, която изчислява квадрата на дадено число:</p>



<pre class="wp-block-code"><code>def square(number):
    return number * number

result = square(4)
print(result)  # Отпечатва 16
</code></pre>



<p></p>



<h3 class="wp-block-heading">Обхват на променливите (Variable Scope)</h3>



<p>Променливите в Python имат различен обхват в зависимост от това къде са дефинирани.</p>



<h4 class="wp-block-heading">Локални променливи</h4>



<p>Локалните променливи се дефинират вътре в функция и съществуват само в нейните граници:</p>



<pre class="wp-block-code"><code>def my_function():
    local_var = 10
    print(local_var)

my_function()  # Отпечатва 10
print(local_var)  # Грешка: local_var не е дефинирана извън функцията
</code></pre>



<p></p>



<h4 class="wp-block-heading">Глобални променливи</h4>



<p>Глобалните променливи се дефинират извън функциите и могат да бъдат достъпвани от всяка част на кода:</p>



<pre class="wp-block-code"><code>global_var = 20

def my_function():
    print(global_var)

my_function()  # Отпечатва 20
print(global_var)  # Отпечатва 20
</code></pre>



<p></p>



<h3 class="wp-block-heading">Рекурсия</h3>



<p>Рекурсията е техника, при която функция извиква самата себе си. Тя е полезна за решаване на задачи, които могат да бъдат разделени на по-малки подзадачи.</p>



<p>Пример за рекурсивна функция, която изчислява факториал на число:</p>



<pre class="wp-block-code"><code>def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # Отпечатва 120
</code></pre>



<p></p>



<h3 class="wp-block-heading">Модули в Python</h3>



<p>Модулите са начин за организиране на кода в отделни файлове и повторно използване на функционалност. Всеки файл с разширение <code>.py</code> е модул.</p>



<h4 class="wp-block-heading">Импортиране на модули</h4>



<p>Можем да импортираме съществуващи модули с ключовата дума <code>import</code>. Пример с вградения модул <code>math</code>:</p>



<pre class="wp-block-code"><code>import math

print(math.sqrt(16))  # Отпечатва 4.0
</code></pre>



<p></p>



<h4 class="wp-block-heading">Импортиране на конкретни функции</h4>



<p>Можем да импортираме конкретни функции от модул:</p>



<pre class="wp-block-code"><code>from math import sqrt

print(sqrt(25))  # Отпечатва 5.0
</code></pre>



<p></p>



<h4 class="wp-block-heading">Създаване на собствен модул</h4>



<p>За да създадем собствен модул, просто създаваме файл с Python код и го импортираме в друг файл.</p>



<p>Пример:</p>



<p><strong>mymodule.py</strong></p>



<pre class="wp-block-code"><code>def greet(name):
    print(f"Hello, {name}!")
</code></pre>



<p></p>



<p><strong>main.py</strong></p>



<p></p>



<pre class="wp-block-code"><code>import mymodule

mymodule.greet("Alice")  # Отпечатва "Hello, Alice!"

</code></pre>



<p></p>



<h3 class="wp-block-heading">Полезни вградени модули</h3>



<p>Python предоставя множество вградени модули, които можем да използваме за различни задачи.</p>



<h4 class="wp-block-heading">Модулът <code>os</code></h4>



<p>Модулът <code>os</code> предоставя функции за работа с операционната система.</p>



<p>Пример:</p>



<pre class="wp-block-code"><code>import os

# Показване на текущата директория
print(os.getcwd())

# Създаване на нова директория
os.mkdir("new_directory")

# Промяна на текущата директория
os.chdir("new_directory")
print(os.getcwd())
</code></pre>



<p></p>



<h4 class="wp-block-heading">Модулът <code>datetime</code></h4>



<p>Модулът <code>datetime</code> предоставя функции за работа с дати и часове.</p>



<p>Пример:</p>



<pre class="wp-block-code"><code>import datetime

# Получаване на текущата дата и час
now = datetime.datetime.now()
print(now)

# Форматиране на дата
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted_date)
</code></pre>



<p></p>



<h3 class="wp-block-heading">Организация на кода</h3>



<p>Добрата организация на кода прави проектите по-лесни за поддържане и разбиране. Използването на функции и модули е ключово за тази цел.</p>



<h4 class="wp-block-heading">Структуриране на проект</h4>



<p>Добра практика е да организирате кода си в папки и файлове по следния начин:</p>



<pre class="wp-block-code"><code>project/
├── main.py
├── mymodule.py
└── utils/
    └── helper.py
</code></pre>



<h4 class="wp-block-heading">Използване на <code>__init__.py</code></h4>



<p>Файлът <code>__init__.py</code> се използва за обозначаване на директория като пакет. Това ни позволява да импортираме модули от тази директория.</p>



<p><strong>utils/init.py</strong></p>



<pre class="wp-block-code"><code># Този файл може да бъде празен или да съдържа код за инициализация на пакета
</code></pre>



<p></p>



<p><strong>main.py</strong></p>



<pre class="wp-block-code"><code>from utils.helper import helper_function

helper_function()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Примерна програма: Управление на библиотека</h3>



<p>Нека създадем програма за управление на библиотека с книги, която използва функции и модули.</p>



<p><strong>library.py</strong></p>



<pre class="wp-block-code"><code>books = &#91;]

def add_book(title, author):
    book = {"title": title, "author": author}
    books.append(book)

def remove_book(title):
    global books
    books = &#91;book for book in books if book&#91;"title"] != title]

def list_books():
    for book in books:
        print(f"Title: {book&#91;'title']}, Author: {book&#91;'author']}")
</code></pre>



<p></p>



<p><strong>main.py</strong></p>



<pre class="wp-block-code"><code>import library

library.add_book("The Great Gatsby", "F. Scott Fitzgerald")
library.add_book("1984", "George Orwell")

print("Books in library:")
library.list_books()

library.remove_book("1984")

print("\nBooks in library after removal:")
library.list_books()
</code></pre>



<p></p>



<p>В този урок разгледахме как да създаваме и използваме функции и модули в Python. Научихме как да организираме кода си и как да използваме вградени модули за различни задачи. В следващите уроци ще продължим да разширяваме нашите знания за Python и ще се запознаем с по-напреднали теми като обектно-ориентираното програмиране и работа с файлове. Практикувайте редовно и експериментирайте с различни функции и модули, за да затвърдите наученото.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b8-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d0%b8-%d0%b2-python/">Функции и модули в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b8-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d0%b8-%d0%b2-python/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Работа с данни и структури от данни в Python</title>
		<link>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b8-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b8-%d0%be%d1%82-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/</link>
					<comments>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b8-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b8-%d0%be%d1%82-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/#comments</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Sat, 13 Jul 2024 17:10:06 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=1682</guid>

					<description><![CDATA[<p>Урок 2: Работа с данни и структури от данни в&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b8-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b8-%d0%be%d1%82-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/">Работа с данни и структури от данни в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://fedia.eu/wp-content/uploads/2024/07/OIG4.jpg" alt="Работа с данни и структури от данни в Python" class="wp-image-1683" srcset="https://fedia.eu/wp-content/uploads/2024/07/OIG4.jpg 1024w, https://fedia.eu/wp-content/uploads/2024/07/OIG4-300x300.jpg 300w, https://fedia.eu/wp-content/uploads/2024/07/OIG4-150x150.jpg 150w, https://fedia.eu/wp-content/uploads/2024/07/OIG4-768x768.jpg 768w, https://fedia.eu/wp-content/uploads/2024/07/OIG4-80x80.jpg 80w, https://fedia.eu/wp-content/uploads/2024/07/OIG4-320x320.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h2 class="wp-block-heading">Урок 2: Работа с данни и структури от данни в Python</h2>



<p>В този урок ще разгледаме как да работим с различни видове данни в <a href="https://fedia.eu/%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-python-%d0%b8-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/" target="_blank" rel="noreferrer noopener">Python</a>. Ще се запознаем с основните структури от данни като списъци, кортежи, речници и множества.</p>



<h3 class="wp-block-heading">Списъци (Lists)</h3>



<p>Списъците са структури от данни, които могат да съдържат множество елементи от различни типове. Те се дефинират с квадратни скоби <code>[]</code>.</p>



<h4 class="wp-block-heading">Създаване на списък</h4>



<pre class="wp-block-code"><code>fruits = &#91;"apple", "banana", "cherry"]
</code></pre>



<p></p>



<h4 class="wp-block-heading">Достъп до елементи</h4>



<p>Елементите в списъка се достъпват чрез индекс, като индексирането започва от 0.</p>



<pre class="wp-block-code"><code>print(fruits&#91;0])  # Отпечатва "apple"
print(fruits&#91;1])  # Отпечатва "banana"
</code></pre>



<p></p>



<h4 class="wp-block-heading">Добавяне на елементи</h4>



<p>Можем да добавяме нови елементи в списъка с помощта на метода <code>append()</code>.</p>



<pre class="wp-block-code"><code>fruits.append("orange")
print(fruits)  # Отпечатва &#91;"apple", "banana", "cherry", "orange"]
</code></pre>



<p></p>



<h4 class="wp-block-heading">Премахване на елементи</h4>



<p>Можем да премахваме елементи с метода <code>remove()</code>.</p>



<pre class="wp-block-code"><code>fruits.remove("banana")
print(fruits)  # Отпечатва &#91;"apple", "cherry", "orange"]
</code></pre>



<p></p>



<h4 class="wp-block-heading">Дължина на списъка</h4>



<p>За да разберем колко елемента има в списъка, използваме функцията <code>len()</code>.</p>



<pre class="wp-block-code"><code>print(len(fruits))  # Отпечатва 3
</code></pre>



<p></p>



<h3 class="wp-block-heading">Кортежи (Tuples)</h3>



<p>Кортежите са подобни на списъците, но са неизменяеми (immutable). Те се дефинират с кръгли скоби <code>()</code>.</p>



<h4 class="wp-block-heading">Създаване на кортеж</h4>



<pre class="wp-block-code"><code>colors = ("red", "green", "blue")
</code></pre>



<p></p>



<pre class="wp-block-code"><code>Достъп до елементи
Кортежите се достъпват по същия начин като списъците.</code></pre>



<pre class="wp-block-code"><code>print(colors&#91;0])  # Отпечатва "red"
</code></pre>



<p></p>



<h4 class="wp-block-heading">Предимства на кортежите</h4>



<ul class="wp-block-list">
<li>Те са неизменяеми, което ги прави по-безопасни за използване в някои случаи.</li>



<li>Заемат по-малко памет от списъците.</li>
</ul>



<h3 class="wp-block-heading">Речници (Dictionaries)</h3>



<p>Речниците съхраняват данни като ключ-стойност двойки. Те се дефинират с къдрави скоби <code>{}</code>.</p>



<h4 class="wp-block-heading">Създаване на речник</h4>



<pre class="wp-block-code"><code>person = {
    "name": "Alice",
    "age": 25,
    "city": "New York"
}
</code></pre>



<p></p>



<h4 class="wp-block-heading">Достъп до стойности</h4>



<p>Стойностите в речника се достъпват чрез ключовете.</p>



<pre class="wp-block-code"><code>print(person&#91;"name"])  # Отпечатва "Alice"
print(person&#91;"age"])   # Отпечатва 25
</code></pre>



<p></p>



<h4 class="wp-block-heading">Добавяне на елементи</h4>



<p>Можем да добавяме нови ключ-стойност двойки по следния начин:</p>



<pre class="wp-block-code"><code>person&#91;"email"] = "alice@example.com"
print(person)
</code></pre>



<p></p>



<h4 class="wp-block-heading">Премахване на елементи</h4>



<p>Можем да премахваме елементи с помощта на ключовете.</p>



<pre class="wp-block-code"><code>del person&#91;"age"]
print(person)  # Отпечатва {'name': 'Alice', 'city': 'New York', 'email': 'alice@example.com'}
</code></pre>



<p></p>



<h3 class="wp-block-heading">Множества (Sets)</h3>



<p>Множествата са структури от данни, които съдържат уникални елементи. Те се дефинират с къдрави скоби <code>{}</code> или с функцията <code>set()</code>.</p>



<h4 class="wp-block-heading">Създаване на множество</h4>



<pre class="wp-block-code"><code>fruits = {"apple", "banana", "cherry"}
</code></pre>



<p></p>



<h4 class="wp-block-heading">Добавяне на елементи</h4>



<p>Можем да добавяме нови елементи с метода <code>add()</code>.</p>



<pre class="wp-block-code"><code>fruits.add("orange")
print(fruits)  # Отпечатва {'apple', 'orange', 'banana', 'cherry'}
</code></pre>



<p></p>



<h4 class="wp-block-heading">Премахване на елементи</h4>



<p>Можем да премахваме елементи с метода <code>remove()</code>.</p>



<pre class="wp-block-code"><code>fruits.remove("banana")
print(fruits)  # Отпечатва {'apple', 'orange', 'cherry'}
</code></pre>



<p></p>



<h4 class="wp-block-heading">Проверка за наличие на елемент</h4>



<p>Можем да проверим дали даден елемент е в множеството с оператор <code>in</code>.</p>



<pre class="wp-block-code"><code>print("apple" in fruits)  # Отпечатва True
print("banana" in fruits) # Отпечатва False
</code></pre>



<p></p>



<h3 class="wp-block-heading">Итерираме през структури от данни</h3>



<p>Можем да използваме цикли за итерираме през различни структури от данни.</p>



<h4 class="wp-block-heading">Итериране през списък</h4>



<pre class="wp-block-code"><code>for fruit in fruits:
    print(fruit)
</code></pre>



<p></p>



<p>Итериране през речник</p>



<pre class="wp-block-code"><code>for key, value in person.items():
    print(f"{key}: {value}")
</code></pre>



<p></p>



<h3 class="wp-block-heading">Примерна програма: Управление на контактна книга</h3>



<p>Нека създадем програма, която управлява контактна книга с имена и телефонни номера.</p>



<pre class="wp-block-code"><code># Създаваме празен речник за контактите
contacts = {}

# Функция за добавяне на контакт
def add_contact(name, phone):
    contacts&#91;name] = phone

# Функция за премахване на контакт
def remove_contact(name):
    if name in contacts:
        del contacts&#91;name]
    else:
        print(f"Контактът {name} не съществува.")

# Функция за показване на всички контакти
def show_contacts():
    for name, phone in contacts.items():
        print(f"{name}: {phone}")

# Добавяме контакти
add_contact("Alice", "123-456-789")
add_contact("Bob", "987-654-321")

# Показваме контактите
show_contacts()

# Премахваме контакт
remove_contact("Alice")

# Показваме контактите отново
show_contacts()
</code></pre>



<p></p>



<h3 class="wp-block-heading">Заключение</h3>



<p>В този урок научихме как да работим с различни структури от данни в Python. Списъците, кортежите, речниците и множествата са основни елементи в програмирането. Те позволяват съхраняване и обработка на данни по различни начини. В следващия урок ще разгледаме функции и модули в Python.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b8-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b8-%d0%be%d1%82-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/">Работа с данни и структури от данни в Python</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b8-%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%82%d1%83%d1%80%d0%b8-%d0%be%d1%82-%d0%b4%d0%b0%d0%bd%d0%bd%d0%b8-%d0%b2-python/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Въведение в Python и основи на програмирането</title>
		<link>https://fedia.eu/%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-python-%d0%b8-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/</link>
					<comments>https://fedia.eu/%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-python-%d0%b8-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/#comments</comments>
		
		<dc:creator><![CDATA[fedia]]></dc:creator>
		<pubDate>Sat, 13 Jul 2024 16:48:47 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">https://fedia.eu/?p=1674</guid>

					<description><![CDATA[<p>Урок 1: Въведение в Python и основи на програмирането Добре&#46;&#46;&#46;</p>
<p>Материалът <a href="https://fedia.eu/%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-python-%d0%b8-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/">Въведение в Python и основи на програмирането</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://fedia.eu/wp-content/uploads/2024/07/Python.jpg" alt="Въведение в Python и основи на програмирането" class="wp-image-1675" srcset="https://fedia.eu/wp-content/uploads/2024/07/Python.jpg 1024w, https://fedia.eu/wp-content/uploads/2024/07/Python-300x300.jpg 300w, https://fedia.eu/wp-content/uploads/2024/07/Python-150x150.jpg 150w, https://fedia.eu/wp-content/uploads/2024/07/Python-768x768.jpg 768w, https://fedia.eu/wp-content/uploads/2024/07/Python-80x80.jpg 80w, https://fedia.eu/wp-content/uploads/2024/07/Python-320x320.jpg 320w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h3 class="wp-block-heading"><strong>Урок 1: Въведение в Python и основи на програмирането</strong></h3>



<p><strong>Добре дошли в света на програмирането с Python!</strong></p>



<p>Този урок е предназначен за абсолютни начинаещи, които нямат предишен опит с програмиране. Ще ви преведем през основите на <a href="https://fedia.eu/kak-da-instalirame-python-na-windows-11/" target="_blank" rel="noreferrer noopener">Python</a>, като започнем от инсталирането му до писането на прости скриптове.</p>



<h3 class="wp-block-heading">Какво е Python?</h3>



<p>Python е популярен език за програмиране, известен със своята простота и четимост. Той е идеален за начинаещи и е широко използван в различни области като уеб разработка, наука за данни, изкуствен интелект и автоматизация.Използва се за различни задачи, включително:</p>



<ul class="wp-block-list">
<li><strong>Уеб разработка:</strong> Създаване на динамични уебсайтове и приложения.</li>



<li><strong>Анализ на данни:</strong> Обработка и анализ на големи набори от данни.</li>



<li><strong>Машинно обучение:</strong> Създаване на модели за прогнозиране и класификация.</li>



<li><strong>Автоматизация:</strong> Автоматизиране на задачи, които иначе биха отнели много време.</li>



<li><strong>Системно администриране:</strong> Управление на компютърни системи и мрежи.</li>
</ul>



<h3 class="wp-block-heading"><strong>Защо Python?</strong></h3>



<p>Има много причини да изберете Python за първия си език за програмиране:</p>



<ul class="wp-block-list">
<li><strong>Лесен за изучаване:</strong> Python има прост синтаксис, който е лесен за четене и разбиране.</li>



<li><strong>Безплатен и с отворен код:</strong> Python е безплатен за изтегляне и използване, и има голяма общност от разработчици, които допринасят за неговото развитие.</li>



<li><strong>Мощен:</strong> Python е мощен език, който може да се използва за решаване на широк спектър от задачи.</li>



<li><strong>Гъвкав:</strong> Python може да се използва за различни задачи, от уеб разработка до машинно обучение.</li>



<li><strong>Широко разпространен:</strong> Python се използва от много компании и организации, включително Google, Facebook и NASA.</li>
</ul>



<h3 class="wp-block-heading"><strong>Какво ще ви е необходимо?</strong></h3>



<p>За да започнете с Python, ще ви е необходима следното:</p>



<ul class="wp-block-list">
<li><strong>Компютър:</strong> Python може да работи на различни операционни системи, включително Windows, macOS и Linux.</li>



<li><strong>Текстов редактор:</strong> Ще ви е необходим текстов редактор за писане на Python код. Някои популярни опции са Notepad++ (Windows), Sublime Text (macOS/Windows/Linux) и Visual Studio Code (macOS/Windows/Linux).</li>



<li><strong>Интерпретатор на Python:</strong> Интерпретаторът е програма, която изпълнява Python код. Можете да изтеглите интерпретатор на Python от <a href="https://www.python.org/downloads/" target="_blank" rel="noreferrer noopener">https://www.python.org/downloads/</a>.</li>
</ul>



<h3 class="wp-block-heading"><strong>Инсталиране на Python</strong></h3>



<ol class="wp-block-list">
<li>Отидете на <a href="https://www.python.org/downloads/" target="_blank" rel="noreferrer noopener">https://www.python.org/downloads/</a>.</li>



<li>Изберете подходящата версия на Python за вашата операционна система.</li>



<li>Изтеглете и инсталирайте Python.</li>



<li>Уверете се, че сте отметнали опцията &#8222;Add Python to PATH&#8220;.</li>
</ol>



<h3 class="wp-block-heading"><strong>Първият ви Python скрипт</strong></h3>



<p>Нека започнем с проста програма, която отпечатва &#8222;Hello, World!&#8220;. Това е традиционният начин за започване на програмирането.</p>



<p>Нека започнем с проста програма, която отпечатва &#8222;Hello, World!&#8220;. Това е традиционният начин за започване на програмирането.</p>



<ol class="wp-block-list">
<li>Отворете текстов редактор (например Notepad, Notepad++ или VS Code).</li>



<li>Напишете следния код</li>
</ol>



<pre class="wp-block-code"><code>print("Hello, World!")
</code></pre>



<p></p>



<ol class="wp-block-list" start="3">
<li>Запазете файла с разширение <code>.py</code> (например <code>hello.py</code>).</li>



<li>Отворете командния ред или терминала и отидете до мястото, където сте запазили файла.</li>



<li>Изпълнете програмата с командата <code>python hello.py</code>  в <strong>Windows</strong> и <code>python3 hello.py</code> в <strong>Linux</strong>.</li>



<li>Трябва да се отпечата &#8222;Hello, World!&#8220; на вашия екран.</li>
</ol>



<ol class="wp-block-list"></ol>



<h3 class="wp-block-heading">Обяснение на кода</h3>



<ul class="wp-block-list">
<li><code>print()</code>: Това е функция в Python, която отпечатва текста в скобите на екрана.</li>



<li><code>"Hello, World!"</code>: Това е текстов низ (string), който искаме да отпечатаме.</li>
</ul>



<h3 class="wp-block-heading">Основи на синтаксиса в Python</h3>



<h4 class="wp-block-heading">Променливи и типове данни</h4>



<p>Променливите в Python се използват за съхранение на данни. Те не изискват деклариране на тип, защото Python е динамично типизиран език.</p>



<p>Примери за променливи и типове данни:</p>



<pre class="wp-block-code"><code># Цели числа (int)
x = 10

# Дробни числа (float)
y = 3.14

# Текстови низове (string)
name = "Alice"

# Булеви стойности (boolean)
is_student = True
</code></pre>



<p></p>



<h4 class="wp-block-heading">Оператори</h4>



<p>Операторите в Python се използват за извършване на аритметични, логически и други операции.</p>



<p>Примери за оператори:</p>



<pre class="wp-block-code"><code># Аритметични оператори
a = 5 + 3     # Събиране
b = 10 - 2    # Изваждане
c = 4 * 2     # Умножение
d = 8 / 2     # Деление

# Логически оператори
is_equal = (a == b)  # Равно на
is_greater = (a > b) # По-голямо от
</code></pre>



<p></p>



<h4 class="wp-block-heading">Коментари</h4>



<p>Коментарите се използват за обясняване на кода и се игнорират от интерпретатора.</p>



<pre class="wp-block-code"><code># Това е едноредов коментар

"""
Това е
многоредов
коментар
"""
</code></pre>



<p></p>



<h3 class="wp-block-heading">Условни оператори</h3>



<p>Условните оператори се използват за вземане на решения въз основа на условия.</p>



<p>Пример:</p>



<pre class="wp-block-code"><code>x = 10

if x > 5:
    print("x е по-голямо от 5")
else:
    print("x не е по-голямо от 5")
</code></pre>



<p></p>



<p>Обяснение:</p>



<ul class="wp-block-list">
<li><code>if</code> и <code>else</code> са ключови думи, които определят условието.</li>



<li>Условното изразяване се поставя в скоби след <code>if</code>.</li>



<li>Ако условието е вярно, се изпълнява кодът под <code>if</code>.</li>



<li>Ако условието не е вярно, се изпълнява кодът под <code>else</code>.</li>
</ul>



<h3 class="wp-block-heading">Цикли</h3>



<p>Циклите се използват за повторно изпълнение на блок от код.</p>



<h4 class="wp-block-heading">Цикъл <code>for</code></h4>



<p>Пример:</p>



<pre class="wp-block-code"><code>for i in range(5):
    print(i)
</code></pre>



<p></p>



<p>Обяснение:</p>



<ul class="wp-block-list">
<li><code>for</code> е ключова дума за започване на цикъл.</li>



<li><code>range(5)</code> генерира последователност от числа от 0 до 4.</li>



<li>Кодът в тялото на цикъла се изпълнява за всяко число в последователността.</li>
</ul>



<h4 class="wp-block-heading">Цикъл <code>while</code></h4>



<p>Пример:</p>



<pre class="wp-block-code"><code>count = 0

while count &lt; 5:
    print(count)
    count += 1
</code></pre>



<p></p>



<p>Обяснение:</p>



<ul class="wp-block-list">
<li><code>while</code> е ключова дума за започване на цикъл.</li>



<li>Условното изразяване след <code>while</code> се проверява преди всяко изпълнение на тялото на цикъла.</li>



<li>Цикълът продължава, докато условието е вярно.</li>
</ul>



<h3 class="wp-block-heading">Функции</h3>



<p>Функциите се използват за организиране на кода в по-малки, многократно използвани блокове.</p>



<p>Пример:</p>



<pre class="wp-block-code"><code>def greet(name):
    print(f"Hello, {name}!")

greet("Alice")
greet("Bob")
</code></pre>



<p></p>



<p>Обяснение:</p>



<ul class="wp-block-list">
<li><code>def</code> е ключова дума за дефиниране на функция.</li>



<li><code>greet</code> е името на функцията.</li>



<li><code>name</code> е параметър на функцията.</li>



<li>Кодът в тялото на функцията се изпълнява всеки път, когато функцията се извика.</li>
</ul>



<h3 class="wp-block-heading">Практически пример</h3>



<p>Нека създадем малка програма, която изчислява площта на правоъгълник.</p>



<pre class="wp-block-code"><code>def calculate_area(width, height):
    area = width * height
    return area

w = 5
h = 3
area = calculate_area(w, h)
print(f"Площта на правоъгълника е {area}")
</code></pre>



<p></p>



<p>Обяснение:</p>



<ul class="wp-block-list">
<li>Дефинираме функцията <code>calculate_area</code> с два параметъра: <code>width</code> и <code>height</code>.</li>



<li>Изчисляваме площта, като умножаваме ширината по височината.</li>



<li>Връщаме изчислената площ.</li>



<li>Присвояваме стойности на <code>w</code> и <code>h</code>.</li>



<li>Извикваме функцията и отпечатваме резултата.</li>
</ul>



<h3 class="wp-block-heading">Заключение</h3>



<p>В този урок научихме основите на Python и написахме няколко прости програми. В следващите уроци ще разгледаме по-сложни концепции и ще пишем по-интересни програми. Практикувайте редовно и експериментирайте с различни примери, за да затвърдите наученото.</p>
<style>
    .donate-button {
        background-color: yellow;
        color: black;
        font-weight: bold;
        padding: 10px 20px;
        border-radius: 7px;
        text-decoration: none;
        margin-right: 10px; /* Разтояние между бутоните */
    }

    /* Медиа заявка за резолюции под 1280px */
    @media screen and (max-width: 1280px) {
        .donate-button {
            display: block; /* Бутоните да бъдат блокови и един под друг */
            margin-top: 10px; /* Разтояние между бутоните при ниска резолюция */
            margin-right: 0; /* Изчистване на маргиналната дясна страна */
        }
    }
</style><p>Материалът <a href="https://fedia.eu/%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-python-%d0%b8-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/">Въведение в Python и основи на програмирането</a> е публикуван за пръв път на <a href="https://fedia.eu">The Fedya&#039; s page</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://fedia.eu/%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-python-%d0%b8-%d0%be%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b8%d1%80%d0%b0%d0%bd%d0%b5/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
