برنامه نویسی و ITپایتون

انجام چند پروژه ساده پایتون به صورت عملی

زبان برنامه نویسی پایتون یک زبان همه‌کاره و مبتدی پسند محسوب می‌شود که به دلیل سادگی و خوانایی‌اش شناخته شده است. این زبان برنامه نویسی به‌طور گسترده‌ای برای برنامه‌های مختلف از جمله توسعه وب، تجزیه‌وتحلیل داده‌ها و امور اتوماسیون استفاده می‌شود. پروژه‌های پایتون شامل ایجاد برنامه‌ها، اسکریپت‌ها یا راه‌حل‌های نرم‌افزاری با استفاده از کتابخانه‌ های پایتون و چارچوب‌های آن برای دستیابی به اهداف خاص به‌طور کارآمد و مؤثر هستند. در این مطلب از مکتب خونه می‌خواهیم که چند پروژه ساده پایتون را ارائه کرده و توضیحات لازم برای هر پروژه بیان کنیم. این پروژه‌های تمرینی پایتون بسیار حائز اهمیت هستند.

انواع پروژه‌های پایتون

کاربردهای پایتون بسیار زیاد هستند و پروژه‌های پایتون طیف گسترده‌ای از برنامه‌ها را پوشش می‌دهند که برخی از آن‌ها عبارت‌اند از:

آموزش پایتون مقدماتی با جادی

 

  • توسعه وب: ایجاد وب‌سایت‌ها، برنامه‌های کاربردی وب و API ها با استفاده از چارچوب‌های پایتون مانند جنگو، فلاسک یا هرمید.
  • تجزیه‌وتحلیل داده‌ها و مصورسازی آن‌ها: استفاده از کتابخانه‌های پایتون مانند Pandas، NumPy و Matplotlib برای تجزیه‌وتحلیل و مصورسازی داده‌ها از منابع مختلف به کار می‌روند.
  • یادگیری ماشین و هوش مصنوعی: ساخت مدل‌های پیش‌بینی و سیستم‌های هوشمند با استفاده از کتابخانه‌هایی مانند TensorFlow، Keras و Scikit-learn.
  • اتوماسیون و اسکریپت: نوشتن اسکریپت برای خودکارسازی وظایف تکراری و ساده کردن فرآیندها.
  • توسعه بازی: توسعه بازی‌ها با استفاده از کتابخانه‌هایی مانند Pygame یا موتورهای بازی مانند Unity و Godot.
  • اینترنت اشیا (IoT): ساخت برنامه‌های IoT برای کنترل و نظارت بر دستگاه‌ها با استفاده از پایتون و پلتفرم‌هایی مانند Raspberry Pi.
  • پردازش زبان طبیعی (NLP): ایجاد برنامه‌هایی که زبان انسان را با استفاده از کتابخانه‌هایی مانند NLTK یا spaCy درک و پردازش می‌کنند.
  • رباتیک: ساخت سیستم‌های رباتیک و کنترل آن‌ها با پایتون.
  • برنامه‌های دسکتاپ: توسعه برنامه‌های دسکتاپ بین پلتفرمی با استفاده از چارچوب‌هایی مانند Tkinter، PyQt یا wxPython.
  • وب اسکراپینگ: استخراج داده‌ها از وب‌سایت‌ها با استفاده از کتابخانه‌های پایتون مانند BeautifulSoup یا Scrapy.

این‌ها تنها چند نمونه پروژه پایتون هستند و به دلیل تطبیق‌پذیری و اکوسیستم گسترده پایتون انجام این پروژه‌ها نسبتاً ساده است. در ادامه چند پروژه ساده پایتون برای اهداف بالا ارائه خواهد شد.

پیشنهاد مطالعه: آموزش دستورات شرطی در پایتون به زبان ساده

آموزش انجام پروژه با پایتون

برای شروع و انجام یک پروژه ساده پایتون، موضوعی را انتخاب کنید که به آن علاقه دارید. محدوده و قابلیت‌های پروژه را برنامه‌ریزی کرده و اصول پایتون و کتابخانه‌های مرتبط را بیاموزید. همچنین بهتر است که پروژه را به وظایف قابل مدیریت تقسیم کنید. در ادامه این بخش چند پروژه python ارائه می‌شود.

آموزش انجام پروژه با پایتون

انجام چند پروژه ساده با پایتون

به عنوان نوعی تمرین برنامه نویسی پایتون در این مطلب از مجله مکتب خونه چند تا پروژه ساده پایتون ارائه می‌کنیم. توجه به نکات و جزئیات هریک از این پروژه‌ها می‌تواند به کاربران کمک کند که به اصول پایتون بیشتر و بهتر مسلط شوند.

پروژه ساده وب با پایتون

برنامه وب پیش‌بینی آب‌وهوا یک پروژه وب ساده است که با Python، Flask و OpenWeatherMap API ساخته شده است. این برنامه به کاربران امکان می‌دهد نام شهر را وارد کرده و آب‌وهوای فعلی و پیش‌بینی آب‌وهوای 5 روزه را دریافت کنند.

الزامات پروژه:

قطعه کد این پروژه به صورت زیر است:

<span class="token keyword">import</span> requests

<span class="token keyword">from</span> flask <span class="token keyword">import</span> Flask<span class="token punctuation">,</span> render_template<span class="token punctuation">,</span> request

app <span class="token operator">=</span> Flask<span class="token punctuation">(</span>__name__<span class="token punctuation">)</span>


<span class="token comment"># OpenWeatherMap API key (Get your API key by signing up at https://home.openweathermap.org/users/sign_up)</span>

api_key <span class="token operator">=</span> <span class="token string">"YOUR_API_KEY_HERE"</span>


<span class="token decorator annotation punctuation">@app<span class="token punctuation">.</span>route</span><span class="token punctuation">(</span><span class="token string">"/"</span><span class="token punctuation">,</span> methods<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">"GET"</span><span class="token punctuation">,</span> <span class="token string">"POST"</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token keyword">def</span> <span class="token function">index</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>

    <span class="token keyword">if</span> request<span class="token punctuation">.</span>method <span class="token operator">==</span> <span class="token string">"POST"</span><span class="token punctuation">:</span>

        city <span class="token operator">=</span> request<span class="token punctuation">.</span>form<span class="token punctuation">[</span><span class="token string">"city"</span><span class="token punctuation">]</span>

        weather_data <span class="token operator">=</span> get_weather_data<span class="token punctuation">(</span>city<span class="token punctuation">)</span>

        <span class="token keyword">return</span> render_template<span class="token punctuation">(</span><span class="token string">"index.html"</span><span class="token punctuation">,</span> weather_data<span class="token operator">=</span>weather_data<span class="token punctuation">)</span>

    <span class="token keyword">return</span> render_template<span class="token punctuation">(</span><span class="token string">"index.html"</span><span class="token punctuation">)</span>

<span class="token keyword">def</span> <span class="token function">get_weather_data</span><span class="token punctuation">(</span>city<span class="token punctuation">)</span><span class="token punctuation">:</span>

    url <span class="token operator">=</span> <span class="token string-interpolation"><span class="token string">f"http://api.openweathermap.org/data/2.5/forecast"</span></span>

    params <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token string">"q"</span><span class="token punctuation">:</span> city<span class="token punctuation">,</span> <span class="token string">"appid"</span><span class="token punctuation">:</span> api_key<span class="token punctuation">,</span> <span class="token string">"units"</span><span class="token punctuation">:</span> <span class="token string">"metric"</span><span class="token punctuation">}</span>

    response <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>url<span class="token punctuation">,</span> params<span class="token operator">=</span>params<span class="token punctuation">)</span>

    data <span class="token operator">=</span> response<span class="token punctuation">.</span>json<span class="token punctuation">(</span><span class="token punctuation">)</span>

    <span class="token keyword">if</span> data<span class="token punctuation">[</span><span class="token string">"cod"</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string">"200"</span><span class="token punctuation">:</span>

        weather_data <span class="token operator">=</span> <span class="token punctuation">{</span>

            <span class="token string">"city"</span><span class="token punctuation">:</span> data<span class="token punctuation">[</span><span class="token string">"city"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"name"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>

            <span class="token string">"country"</span><span class="token punctuation">:</span> data<span class="token punctuation">[</span><span class="token string">"city"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"country"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>

            <span class="token string">"forecast"</span><span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>

        <span class="token punctuation">}</span>

        <span class="token keyword">for</span> forecast <span class="token keyword">in</span> data<span class="token punctuation">[</span><span class="token string">"list"</span><span class="token punctuation">]</span><span class="token punctuation">:</span>

            weather_data<span class="token punctuation">[</span><span class="token string">"forecast"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>append<span class="token punctuation">(</span><span class="token punctuation">{</span>

                <span class="token string">"date"</span><span class="token punctuation">:</span> forecast<span class="token punctuation">[</span><span class="token string">"dt_txt"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>

                <span class="token string">"temperature"</span><span class="token punctuation">:</span> forecast<span class="token punctuation">[</span><span class="token string">"main"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"temp"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>

                <span class="token string">"description"</span><span class="token punctuation">:</span> forecast<span class="token punctuation">[</span><span class="token string">"weather"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"description"</span><span class="token punctuation">]</span><span class="token punctuation">,</span>

                <span class="token string">"icon"</span><span class="token punctuation">:</span> forecast<span class="token punctuation">[</span><span class="token string">"weather"</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token string">"icon"</span><span class="token punctuation">]</span>

            <span class="token punctuation">}</span><span class="token punctuation">)</span>

        <span class="token keyword">return</span> weather_data

    <span class="token keyword">return</span> <span class="token boolean">None</span>

<span class="token keyword">if</span> __name__ <span class="token operator">==</span> <span class="token string">"__main__"</span><span class="token punctuation">:</span>

    app<span class="token punctuation">.</span>run<span class="token punctuation">(</span>debug<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>

قطعه کد HTML پروژه به صورت زیر است:

<span class="token operator"><</span><span class="token operator">!</span><span class="token constant">DOCTYPE</span> html<span class="token operator">></span>
<span class="token operator"><</span>html<span class="token operator">></span>
<span class="token operator"><</span>head<span class="token operator">></span>
    <span class="token operator"><</span>title<span class="token operator">></span><span class="token maybe-class-name">Weather</span> <span class="token maybe-class-name">Forecast</span><span class="token operator"><</span><span class="token operator">/</span>title<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>head<span class="token operator">></span>
<span class="token operator"><</span>body<span class="token operator">></span>
    <span class="token operator"><</span>h1<span class="token operator">></span><span class="token maybe-class-name">Weather</span> <span class="token maybe-class-name">Forecast</span><span class="token operator"><</span><span class="token operator">/</span>h1<span class="token operator">></span>
    <span class="token operator"><</span>form method<span class="token operator">=</span><span class="token string">"POST"</span><span class="token operator">></span>
        <span class="token operator"><</span>input type<span class="token operator">=</span><span class="token string">"text"</span> name<span class="token operator">=</span><span class="token string">"city"</span> placeholder<span class="token operator">=</span><span class="token string">"Enter city name"</span> required<span class="token operator">></span>
        <span class="token operator"><</span>button type<span class="token operator">=</span><span class="token string">"submit"</span><span class="token operator">></span><span class="token maybe-class-name">Get</span> <span class="token maybe-class-name">Forecast</span><span class="token operator"><</span><span class="token operator">/</span>button<span class="token operator">></span>
    <span class="token operator"><</span><span class="token operator">/</span>form<span class="token operator">></span>

    <span class="token punctuation">{</span><span class="token operator">%</span> <span class="token keyword control-flow">if</span> weather_data <span class="token operator">%</span><span class="token punctuation">}</span>
        <span class="token operator"><</span>h2<span class="token operator">></span><span class="token maybe-class-name">City</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">{</span> weather_data<span class="token punctuation">.</span><span class="token property-access">city</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">{</span> weather_data<span class="token punctuation">.</span><span class="token property-access">country</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>h2<span class="token operator">></span>
        <span class="token operator"><</span>ul<span class="token operator">></span>
            <span class="token punctuation">{</span><span class="token operator">%</span> <span class="token keyword control-flow">for</span> forecast <span class="token keyword">in</span> weather_data<span class="token punctuation">.</span><span class="token property-access">forecast</span> <span class="token operator">%</span><span class="token punctuation">}</span>
                <span class="token operator"><</span>li<span class="token operator">></span>
                    <span class="token operator"><</span>strong<span class="token operator">></span><span class="token punctuation">{</span><span class="token punctuation">{</span> forecast<span class="token punctuation">.</span><span class="token property-access">date</span> <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>strong<span class="token operator">></span>
                    <span class="token operator"><</span>img src<span class="token operator">=</span><span class="token string">"http://openweathermap.org/img/w/{{ forecast.icon }}.png"</span> alt<span class="token operator">=</span><span class="token string">"{{ forecast.description }}"</span><span class="token operator">></span>
                    <span class="token punctuation">{</span><span class="token punctuation">{</span> forecast<span class="token punctuation">.</span><span class="token property-access">description</span> <span class="token punctuation">}</span><span class="token punctuation">}</span> <span class="token operator">-</span> <span class="token punctuation">{</span><span class="token punctuation">{</span> forecast<span class="token punctuation">.</span><span class="token property-access">temperature</span> <span class="token punctuation">}</span><span class="token punctuation">}</span>°<span class="token constant">C</span>
                <span class="token operator"><</span><span class="token operator">/</span>li<span class="token operator">></span>
            <span class="token punctuation">{</span><span class="token operator">%</span> endfor <span class="token operator">%</span><span class="token punctuation">}</span>
        <span class="token operator"><</span><span class="token operator">/</span>ul<span class="token operator">></span>
    <span class="token punctuation">{</span><span class="token operator">%</span> endif <span class="token operator">%</span><span class="token punctuation">}</span>
<span class="token operator"><</span><span class="token operator">/</span>body<span class="token operator">></span>
<span class="token operator"><</span><span class="token operator">/</span>html<span class="token operator">></span>

نحوه کار پروژه ساده پایتون بالا به صورت زیر است:

  1. کاربران به برنامه وب دسترسی پیدا می‌کنند و با یک فیلد ورودی برای واردکردن نام شهر نمایش داده می‌شوند.
  2. پس از ارسال فرم، Flask route index()‎ ورودی کاربر را پردازش می‌کند.
  3. تابع get_weather_data()‎ درخواستی را به OpenWeatherMap API ارسال می‌کند تا داده‌های آب‌وهوا را برای شهر وارد شده دریافت کند.
  4. پاسخ API تجزیه می‌شود و اطلاعات مربوط به آب‌وهوا برای آب‌وهوای فعلی و پیش‌بینی 5 روزه استخراج می‌شود.
  5. سپس داده‌های آب‌وهوا با استفاده از قالب HTML در صفحه وب ارائه می‌شود.
  6. کاربران جزئیات آب‌وهوای فعلی و پیش‌بینی پنج روز آینده را مشاهده می‌کنند.

این پروژه تمرینی پایتون یک مثال ساده اما کاربردی از استفاده از Python با Flask و یک API در پایتون برای ایجاد یک برنامه وب را نشان می‌دهد که پیش‌بینی آب‌وهوا را بر اساس ورودی کاربر در زمان واقعی ارائه می‌دهد. کاربران می‌توانند به‌راحتی اطلاعات آب‌وهوای شهرهای مختلف را بررسی کرده و آن را به یک پروژه وب قابل‌اجرا و مفید تبدیل کنند.

پیشنهاد مطالعه: یادگیری هوش مصنوعی با پایتون

پروژه ساده پایتون در تحلیل و مصورسازی داده‌ها

پروژه تجزیه‌وتحلیل داده و مصورسازی آن‌ها در این مثال شامل کاوش مجموعه داده معروف تایتانیک با استفاده از کتابخانه‌های Pandas، NumPy و Matplotlib پایتون است. هدف آن تجزیه‌وتحلیل مجموعه داده، به دست آوردن بینش و مصورسازی الگوهای مربوط به بقای مسافران در کشتی تایتانیک است.

آموزش پایتون پیشرفته با جادی

 

الزامات پروژه:

  • نصب پایتون
  • کتابخانه پانداس
  • کتابخانه نامپای
  • کتابخانه Matplotlib

قطعه کد این پروژه ساده پایتون به صورت زیر است:

<span class="token keyword">import</span> pandas <span class="token keyword">as</span> pd
<span class="token keyword">import</span> numpy <span class="token keyword">as</span> np
<span class="token keyword">import</span> matplotlib<span class="token punctuation">.</span>pyplot <span class="token keyword">as</span> plt

<span class="token comment"># Load Titanic dataset</span>
url <span class="token operator">=</span> <span class="token string">"https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv"</span>
df <span class="token operator">=</span> pd<span class="token punctuation">.</span>read_csv<span class="token punctuation">(</span>url<span class="token punctuation">)</span>

<span class="token comment"># Data Exploration</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>df<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>  <span class="token comment"># Display the first few rows of the dataset</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>df<span class="token punctuation">.</span>info<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>  <span class="token comment"># Get information about columns and data types</span>
<span class="token keyword">print</span><span class="token punctuation">(</span>df<span class="token punctuation">.</span>describe<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>  <span class="token comment"># Summary statistics of numerical columns</span>

<span class="token comment"># Data Visualization</span>
<span class="token comment"># Example: Plot the age distribution of passengers</span>
plt<span class="token punctuation">.</span>figure<span class="token punctuation">(</span>figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>hist<span class="token punctuation">(</span>df<span class="token punctuation">[</span><span class="token string">"Age"</span><span class="token punctuation">]</span><span class="token punctuation">.</span>dropna<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> bins<span class="token operator">=</span><span class="token number">20</span><span class="token punctuation">,</span> edgecolor<span class="token operator">=</span><span class="token string">"k"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>xlabel<span class="token punctuation">(</span><span class="token string">"Age"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>ylabel<span class="token punctuation">(</span><span class="token string">"Count"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>title<span class="token punctuation">(</span><span class="token string">"Age Distribution of Passengers"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span>

نحوه انجام کار پروژه بالا به صورت زیر است:

  • این پروژه مجموعه داده تایتانیک را از یک منبع آنلاین با استفاده از Pandas، یک کتابخانه قدرتمند دست‌کاری داده‌ها در پایتون، بارگیری می‌کند.
  • کاوش داده‌ها با نمایش چند ردیف اول شروع می‌شود و یک نمای کلی از داده‌های موجود ارائه می‌دهد.
  • تابع info()‎ به درک ساختار مجموعه داده، از جمله نام ستون‌ها و انواع داده‌ها کمک می‌کند.
  • تابع describe()‎ آمار خلاصه‌ای را برای ستون‌های عددی مانند میانگین، انحراف استاندارد، حداقل، حداکثر و غیره تولید می‌کند.
  • مصورسازی داده‌ها با استفاده از Matplotlib، یک کتابخانه رسم محبوب انجام می‌شود. در این مثال، یک هیستوگرام برای مصورسازی توزیع سنی مسافران ایجاد شده است.
  • هیستوگرام بینش‌هایی را در مورد جمعیت سنی مسافران در کشتی تایتانیک نشان می‌دهد.

خروجی این پروژه به صورت تصاویر زیر است:

پروژه ساده پایتون در تحلیل داده ها

همچنین تصویر زیر:

پروژه مصورسازی داده ها با پایتون

این پروژه مقدمه‌ای عملی برای تجزیه‌وتحلیل و تجسم داده‌ها با پایتون است. کاربران به‌راحتی می‌توانند از مجموعه داده‌های تایتانیک یا مجموعه‌های داده مشابه کاوش کرده و بینش‌هایی به دست آورند و با کسب مهارت، پروژه را برای انجام تحلیل‌ها و مصورسازی‌های پیچیده‌تر گسترش دهند.

پیشنهاد مطالعه: آشنایی با بهترین کتاب‌های آموزش پایتون انگلیسی و فارسی

پروژه ساده هوش مصنوعی و یادگیری ماشین با پایتون

این پروژه ساده پایتون در یادگیری ماشین و هوش مصنوعی شامل ساخت یک طبقه‌بندی ساده برای پیش‌بینی گونه‌های گل زنبق بر اساس ابعاد کاسبرگ و گلبرگ آن‌ها است. ما از Python، کتابخانه scikit-learn و مجموعه داده معروف Iris برای این کار استفاده خواهیم کرد.

الزامات پروژه:

  • نصب پایتون
  • کتابخانه scikit-learn

کد این پروژه ساده پایتون به صورت زیر است:

<span class="token keyword">import</span> pandas <span class="token keyword">as</span> pd
<span class="token keyword">from</span> sklearn<span class="token punctuation">.</span>model_selection <span class="token keyword">import</span> train_test_split
<span class="token keyword">from</span> sklearn<span class="token punctuation">.</span>neighbors <span class="token keyword">import</span> KNeighborsClassifier
<span class="token keyword">from</span> sklearn<span class="token punctuation">.</span>metrics <span class="token keyword">import</span> accuracy_score<span class="token punctuation">,</span> classification_report

<span class="token comment"># Load Iris dataset</span>
url <span class="token operator">=</span> <span class="token string">"https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/iris.csv"</span>
df <span class="token operator">=</span> pd<span class="token punctuation">.</span>read_csv<span class="token punctuation">(</span>url<span class="token punctuation">)</span>

<span class="token comment"># Prepare data</span>
X <span class="token operator">=</span> df<span class="token punctuation">.</span>drop<span class="token punctuation">(</span><span class="token string">"species"</span><span class="token punctuation">,</span> axis<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">)</span>
y <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">"species"</span><span class="token punctuation">]</span>

<span class="token comment"># Split data into training and testing sets</span>
X_train<span class="token punctuation">,</span> X_test<span class="token punctuation">,</span> y_train<span class="token punctuation">,</span> y_test <span class="token operator">=</span> train_test_split<span class="token punctuation">(</span>X<span class="token punctuation">,</span> y<span class="token punctuation">,</span> test_size<span class="token operator">=</span><span class="token number">0.2</span><span class="token punctuation">,</span> random_state<span class="token operator">=</span><span class="token number">42</span><span class="token punctuation">)</span>

<span class="token comment"># Create and train the K-Nearest Neighbors classifier</span>
knn <span class="token operator">=</span> KNeighborsClassifier<span class="token punctuation">(</span>n_neighbors<span class="token operator">=</span><span class="token number">3</span><span class="token punctuation">)</span>
knn<span class="token punctuation">.</span>fit<span class="token punctuation">(</span>X_train<span class="token punctuation">,</span> y_train<span class="token punctuation">)</span>

<span class="token comment"># Make predictions on the test set</span>
y_pred <span class="token operator">=</span> knn<span class="token punctuation">.</span>predict<span class="token punctuation">(</span>X_test<span class="token punctuation">)</span>

<span class="token comment"># Evaluate the model</span>
accuracy <span class="token operator">=</span> accuracy_score<span class="token punctuation">(</span>y_test<span class="token punctuation">,</span> y_pred<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Accuracy:"</span><span class="token punctuation">,</span> accuracy<span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"\nClassification Report:\n"</span><span class="token punctuation">,</span> classification_report<span class="token punctuation">(</span>y_test<span class="token punctuation">,</span> y_pred<span class="token punctuation">)</span><span class="token punctuation">)</span>

خروجی پروژه ساده پایتون فوق به صورت زیر است:

پروژه ساده هوش مصنوعی و یادگیری ماشین با پایتون

توضیحات پروژه بالا به صورت زیر است:

  • این پروژه مجموعه داده عنبیه را بارگذاری می‌کند که شامل اندازه‌گیری سه گونه مختلف گل زنبق (Setosa، Versicolor و Virginica) است.
  • داده‌ها با جداسازی ویژگی‌ها (ابعاد کاسبرگ و گلبرگ) و متغیر هدف (گونه) تهیه می‌شوند.
  • مجموعه داده با استفاده از train_test_split از scikit-learn به یک مجموعه آموزشی و یک مجموعه آزمایشی تقسیم می‌شود. این برای ارزیابی عملکرد مدل بر روی داده‌های دیده نشده ضروری است.
  • طبقه‌بندی کننده K-Nearest Neighbors (KNN) بر روی داده‌های آموزشی با استفاده از روش برازش ایجاد و آموزش داده شده است.
  • سپس از مدل آموزش‌دیده برای پیش‌بینی مجموعه آزمون استفاده می‌شود.
  • دقت مدل با استفاده از accuracy_score محاسبه می‌شود و یک گزارش طبقه‌بندی دقیق با استفاده از classification_report ایجاد می‌شود.

این پروژه یک مقدمه عملی برای طبقه‌بندی یادگیری ماشین با استفاده از یک الگوریتم ساده و محبوب، K-Nearest Neighbors (KNN) ارائه می‌دهد. کاربران می‌توانند با طبقه‌بندی‌کننده‌های مختلف آزمایش کنند، فراپارامترها را تنظیم کنند و مجموعه داده‌های پیچیده‌تری را برای درک بیشتر مفاهیم یادگیری ماشین و هوش مصنوعی کاوش کنند.

پروژه ساده بازی با پایتون

پروژه ساده پایتون زیر ایجاد یک بازی اساسی Snake با استفاده از Python و کتابخانه Pygame است. بازیکن یک مار را روی صفحه کنترل می‌کند و هدف این است که غذا بخورد (که با یک نقطه نشان داده می‌شود) تا طولانی‌تر شود. اگر مار با مرز صفحه یا خودش برخورد کند، بازی به پایان می‌رسد.

الزامات پروژه:

  • نصب پایتون
  • کتابخانه Pygame

قطعه کد این پروژه به صورت زیر است:

<span class="token keyword">import</span> pygame
<span class="token keyword">import</span> random

pygame<span class="token punctuation">.</span>init<span class="token punctuation">(</span><span class="token punctuation">)</span>

<span class="token comment"># Screen settings</span>
screen_width<span class="token punctuation">,</span> screen_height <span class="token operator">=</span> <span class="token number">640</span><span class="token punctuation">,</span> <span class="token number">480</span>
screen <span class="token operator">=</span> pygame<span class="token punctuation">.</span>display<span class="token punctuation">.</span>set_mode<span class="token punctuation">(</span><span class="token punctuation">(</span>screen_width<span class="token punctuation">,</span> screen_height<span class="token punctuation">)</span><span class="token punctuation">)</span>
pygame<span class="token punctuation">.</span>display<span class="token punctuation">.</span>set_caption<span class="token punctuation">(</span><span class="token string">"Snake Game"</span><span class="token punctuation">)</span>

<span class="token comment"># Colors</span>
white <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">)</span>
red <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span>
green <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span>

<span class="token comment"># Snake settings</span>
snake_block <span class="token operator">=</span> <span class="token number">10</span>
snake_speed <span class="token operator">=</span> <span class="token number">15</span>

<span class="token comment"># Snake function</span>
<span class="token keyword">def</span> <span class="token function">snake</span><span class="token punctuation">(</span>snake_block<span class="token punctuation">,</span> snake_list<span class="token punctuation">)</span><span class="token punctuation">:</span>
    <span class="token keyword">for</span> x <span class="token keyword">in</span> snake_list<span class="token punctuation">:</span>
        pygame<span class="token punctuation">.</span>draw<span class="token punctuation">.</span>rect<span class="token punctuation">(</span>screen<span class="token punctuation">,</span> green<span class="token punctuation">,</span> <span class="token punctuation">[</span>x<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">,</span> x<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">,</span> snake_block<span class="token punctuation">,</span> snake_block<span class="token punctuation">]</span><span class="token punctuation">)</span>

<span class="token comment"># Game loop</span>
<span class="token keyword">def</span> <span class="token function">game_loop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    game_over <span class="token operator">=</span> <span class="token boolean">False</span>
    game_close <span class="token operator">=</span> <span class="token boolean">False</span>

    snake_list <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
    snake_length <span class="token operator">=</span> <span class="token number">1</span>

    snake_x<span class="token punctuation">,</span> snake_y <span class="token operator">=</span> screen_width <span class="token operator">//</span> <span class="token number">2</span><span class="token punctuation">,</span> screen_height <span class="token operator">//</span> <span class="token number">2</span>
    snake_x_change<span class="token punctuation">,</span> snake_y_change <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span>

    food_x<span class="token punctuation">,</span> food_y <span class="token operator">=</span> <span class="token builtin">round</span><span class="token punctuation">(</span>random<span class="token punctuation">.</span>randrange<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> screen_width <span class="token operator">-</span> snake_block<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">10.0</span><span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token builtin">round</span><span class="token punctuation">(</span>random<span class="token punctuation">.</span>randrange<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> screen_height <span class="token operator">-</span> snake_block<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">10.0</span><span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token number">10.0</span>

    clock <span class="token operator">=</span> pygame<span class="token punctuation">.</span>time<span class="token punctuation">.</span>Clock<span class="token punctuation">(</span><span class="token punctuation">)</span>

    <span class="token keyword">while</span> <span class="token keyword">not</span> game_over<span class="token punctuation">:</span>

        <span class="token keyword">while</span> game_close<span class="token punctuation">:</span>
            screen<span class="token punctuation">.</span>fill<span class="token punctuation">(</span>white<span class="token punctuation">)</span>
            font_style <span class="token operator">=</span> pygame<span class="token punctuation">.</span>font<span class="token punctuation">.</span>SysFont<span class="token punctuation">(</span><span class="token boolean">None</span><span class="token punctuation">,</span> <span class="token number">50</span><span class="token punctuation">)</span>
            message <span class="token operator">=</span> font_style<span class="token punctuation">.</span>render<span class="token punctuation">(</span><span class="token string">"You Lost! Press Q-Quit or C-Play Again"</span><span class="token punctuation">,</span> <span class="token boolean">True</span><span class="token punctuation">,</span> red<span class="token punctuation">)</span>
            screen<span class="token punctuation">.</span>blit<span class="token punctuation">(</span>message<span class="token punctuation">,</span> <span class="token punctuation">(</span>screen_width <span class="token operator">//</span> <span class="token number">6</span><span class="token punctuation">,</span> screen_height <span class="token operator">//</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">)</span>

            pygame<span class="token punctuation">.</span>display<span class="token punctuation">.</span>update<span class="token punctuation">(</span><span class="token punctuation">)</span>

            <span class="token keyword">for</span> event <span class="token keyword">in</span> pygame<span class="token punctuation">.</span>event<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
                <span class="token keyword">if</span> event<span class="token punctuation">.</span><span class="token builtin">type</span> <span class="token operator">==</span> pygame<span class="token punctuation">.</span>KEYDOWN<span class="token punctuation">:</span>
                    <span class="token keyword">if</span> event<span class="token punctuation">.</span>key <span class="token operator">==</span> pygame<span class="token punctuation">.</span>K_q<span class="token punctuation">:</span>
                        game_over <span class="token operator">=</span> <span class="token boolean">True</span>
                        game_close <span class="token operator">=</span> <span class="token boolean">False</span>
                    <span class="token keyword">if</span> event<span class="token punctuation">.</span>key <span class="token operator">==</span> pygame<span class="token punctuation">.</span>K_c<span class="token punctuation">:</span>
                        game_loop<span class="token punctuation">(</span><span class="token punctuation">)</span>

        <span class="token keyword">for</span> event <span class="token keyword">in</span> pygame<span class="token punctuation">.</span>event<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
            <span class="token keyword">if</span> event<span class="token punctuation">.</span><span class="token builtin">type</span> <span class="token operator">==</span> pygame<span class="token punctuation">.</span>QUIT<span class="token punctuation">:</span>
                game_over <span class="token operator">=</span> <span class="token boolean">True</span>
            <span class="token keyword">if</span> event<span class="token punctuation">.</span><span class="token builtin">type</span> <span class="token operator">==</span> pygame<span class="token punctuation">.</span>KEYDOWN<span class="token punctuation">:</span>
                <span class="token keyword">if</span> event<span class="token punctuation">.</span>key <span class="token operator">==</span> pygame<span class="token punctuation">.</span>K_LEFT<span class="token punctuation">:</span>
                    snake_x_change <span class="token operator">=</span> <span class="token operator">-</span>snake_block
                    snake_y_change <span class="token operator">=</span> <span class="token number">0</span>
                <span class="token keyword">elif</span> event<span class="token punctuation">.</span>key <span class="token operator">==</span> pygame<span class="token punctuation">.</span>K_RIGHT<span class="token punctuation">:</span>
                    snake_x_change <span class="token operator">=</span> snake_block
                    snake_y_change <span class="token operator">=</span> <span class="token number">0</span>
                <span class="token keyword">elif</span> event<span class="token punctuation">.</span>key <span class="token operator">==</span> pygame<span class="token punctuation">.</span>K_UP<span class="token punctuation">:</span>
                    snake_y_change <span class="token operator">=</span> <span class="token operator">-</span>snake_block
                    snake_x_change <span class="token operator">=</span> <span class="token number">0</span>
                <span class="token keyword">elif</span> event<span class="token punctuation">.</span>key <span class="token operator">==</span> pygame<span class="token punctuation">.</span>K_DOWN<span class="token punctuation">:</span>
                    snake_y_change <span class="token operator">=</span> snake_block
                    snake_x_change <span class="token operator">=</span> <span class="token number">0</span>

        <span class="token keyword">if</span> snake_x <span class="token operator">&</span>gt<span class="token punctuation">;</span><span class="token operator">=</span> screen_width <span class="token keyword">or</span> snake_x <span class="token operator">=</span> screen_height <span class="token keyword">or</span> snake_y  snake_length<span class="token punctuation">:</span>
            <span class="token keyword">del</span> snake_list<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>

        <span class="token keyword">for</span> x <span class="token keyword">in</span> snake_list<span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">:</span>
            <span class="token keyword">if</span> x <span class="token operator">==</span> snake_head<span class="token punctuation">:</span>
                game_close <span class="token operator">=</span> <span class="token boolean">True</span>

        snake<span class="token punctuation">(</span>snake_block<span class="token punctuation">,</span> snake_list<span class="token punctuation">)</span>

        pygame<span class="token punctuation">.</span>display<span class="token punctuation">.</span>update<span class="token punctuation">(</span><span class="token punctuation">)</span>

        <span class="token keyword">if</span> snake_x <span class="token operator">==</span> food_x <span class="token keyword">and</span> snake_y <span class="token operator">==</span> food_y<span class="token punctuation">:</span>
            food_x<span class="token punctuation">,</span> food_y <span class="token operator">=</span> <span class="token builtin">round</span><span class="token punctuation">(</span>random<span class="token punctuation">.</span>randrange<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> screen_width <span class="token operator">-</span> snake_block<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">10.0</span><span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token number">10.0</span><span class="token punctuation">,</span> <span class="token builtin">round</span><span class="token punctuation">(</span>random<span class="token punctuation">.</span>randrange<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> screen_height <span class="token operator">-</span> snake_block<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">10.0</span><span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token number">10.0</span>
            snake_length <span class="token operator">+=</span> <span class="token number">1</span>

        clock<span class="token punctuation">.</span>tick<span class="token punctuation">(</span>snake_speed<span class="token punctuation">)</span>

    pygame<span class="token punctuation">.</span>quit<span class="token punctuation">(</span><span class="token punctuation">)</span>
    quit<span class="token punctuation">(</span><span class="token punctuation">)</span>

game_loop<span class="token punctuation">(</span><span class="token punctuation">)</span>

خروجی پروژه ساده پایتون بالا به صورت زیر است:

ساخت بازی اسنک با پایتون

توضیحات پروژه بالا به شرح زیر است:

  • این پروژه از کتابخانه Pygame برای ایجاد پنجره بازی و مدیریت رویدادهای بازی استفاده می‌کند.
  • بازیکن با استفاده از کلیدهای جهت‌دار مار را برای تغییر جهت آن (چپ، راست، بالا یا پایین) کنترل می‌کند.
  • حلقه بازی به‌طور مداوم موقعیت مار را به روز کرده، برخورد با مرز و خودش را بررسی می‌کند و مصرف غذا را کنترل خواهد کرد.
  • مار هر زمان که غذا را مصرف کند طولانی‌تر می‌شود (نقطه قرمز) که به‌طور تصادفی روی صفحه ظاهر می‌شود.
  • اگر مار با مرز صفحه یا خودش برخورد کند، بازی به پایان می‌رسد. بازیکن می‌تواند انتخاب کند که دوباره بازی کند یا بازی را ترک کند.

این پروژه مقدمه‌ای عملی برای توسعه بازی‌های پایه با پایتون ارائه می‌دهد. کاربران می‌توانند جنبه‌های مختلف، مانند اندازه پنجره بازی، سرعت مار، یا اضافه کردن ویژگی‌های اضافی را برای بهبود عملکرد و تجربه کاربری بازی، سفارشی کنند.

پیشنهاد مطالعه: تبدیل فایل پایتون به exe

پروژه پردازش زبان طبیعی با پایتون

پروژه پردازش زبان طبیعی (NLP) با پایتون شامل ساخت یک مدل تجزیه‌وتحلیل احساسات با استفاده از پایتون و کتابخانه محبوب Natural Language Toolkit (NLTK) است. این مدل نقدهای فیلم را بر اساس احساسات بیان شده در متن به عنوان مثبت یا منفی طبقه‌بندی می‌کند.

الزامات این پروژه ساده پایتون به صورت زیر است:

  • نصب پایتون
  • کتابخانه NLTK
  • داده‌های NLTK برای تجزیه‌وتحلیل احساسات

کد این پروژه ساده پایتون به صورت زیر است:

<span class="token keyword">import</span> nltk
<span class="token keyword">from</span> nltk<span class="token punctuation">.</span>sentiment <span class="token keyword">import</span> SentimentIntensityAnalyzer

nltk<span class="token punctuation">.</span>download<span class="token punctuation">(</span><span class="token string">"vader_lexicon"</span><span class="token punctuation">)</span>

<span class="token comment"># Sentiment Analyzer</span>
sid <span class="token operator">=</span> SentimentIntensityAnalyzer<span class="token punctuation">(</span><span class="token punctuation">)</span>

<span class="token keyword">def</span> <span class="token function">analyze_sentiment</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span><span class="token punctuation">:</span>
    score <span class="token operator">=</span> sid<span class="token punctuation">.</span>polarity_scores<span class="token punctuation">(</span>text<span class="token punctuation">)</span>
    <span class="token keyword">if</span> score<span class="token punctuation">[</span><span class="token string">"compound"</span><span class="token punctuation">]</span> <span class="token operator">&</span>gt<span class="token punctuation">;</span><span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">:</span>
        <span class="token keyword">return</span> <span class="token string">"Positive"</span>
    <span class="token keyword">else</span><span class="token punctuation">:</span>
        <span class="token keyword">return</span> <span class="token string">"Negative"</span>

<span class="token comment"># Example usage</span>
reviews <span class="token operator">=</span> <span class="token punctuation">[</span>
    <span class="token string">"The movie was fantastic, and I loved it!"</span><span class="token punctuation">,</span>
    <span class="token string">"This film is terrible, and I regret watching it."</span><span class="token punctuation">,</span>
    <span class="token string">"I am not sure how I feel about this movie."</span><span class="token punctuation">,</span>
    <span class="token string">"The acting was good, but the plot was weak."</span><span class="token punctuation">,</span>
<span class="token punctuation">]</span>

<span class="token keyword">for</span> review <span class="token keyword">in</span> reviews<span class="token punctuation">:</span>
    sentiment <span class="token operator">=</span> analyze_sentiment<span class="token punctuation">(</span>review<span class="token punctuation">)</span>
    <span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Review: '</span><span class="token interpolation"><span class="token punctuation">{</span>review<span class="token punctuation">}</span></span><span class="token string">'\nSentiment: </span><span class="token interpolation"><span class="token punctuation">{</span>sentiment<span class="token punctuation">}</span></span><span class="token string">\n"</span></span><span class="token punctuation">)</span>

خروجی کد بالا به صورت زیر است:

پروژه پردازش زبان طبیعی با پایتون

توضیحات این پروژه به صورت زیر است:

  • این پروژه از کتابخانه NLTK، به ویژه واژگان VADER (Valence Aware Dictionary and Sentiment Reasoner) استفاده می‌کند که برای تجزیه‌وتحلیل احساسات از قبل آموزش دیده است.
  • تابع analyze_sentiment یک متن (بررسی فیلم) را به عنوان ورودی می‌گیرد و امتیاز احساسات آن را با استفاده از واژگان VADER محاسبه می‌کند.
  • نمره احساسات یک مقدار مرکب بین 1- (منفی‌ترین) و 1 (مثبت‌ترین) است. اگر امتیاز >= 0 باشد، بررسی به عنوان مثبت طبقه‌بندی می‌شود. در غیر این صورت، به عنوان منفی برچسب‌گذاری می‌شود.
  • استفاده از مثال نشان می‌دهد که چگونه تابع تحلیل احساسات می‌تواند نقدهای چند فیلم را بر اساس محتوای آن‌ها به عنوان مثبت یا منفی طبقه‌بندی کند.

این پروژه ساده پایتون یک مقدمه عملی برای تجزیه‌وتحلیل احساسات در NLP با استفاده از پایتون و کتابخانه NLTK است. کاربران می‌توانند پروژه را برای تجزیه‌وتحلیل مجموعه داده‌های بزرگ‌تر گسترش دهند یا از تکنیک‌های پیشرفته NLP برای مقابله با وظایف مختلف NLP مانند طبقه‌بندی متن، شناسایی موجودیت و موارد دیگر استفاده کنند.

پیشنهاد مطالعه: pycharm چیست؟ آموزش کار با pycharm از صفر

پروژه ساده پایتون ساخت برنامه دسکتاپ

پروژه ساخت برنامه دسکتاپ با پایتون شامل ساختن یک برنامه لیست کارهای اساسی با استفاده از Python و کتابخانه Tkinter است. کاربران می‌توانند وظایف را اضافه کنند، آن‌ها را به عنوان تکمیل شده علامت‌گذاری کرده و وظایف را در یک رابط کاربری گرافیکی حذف کنند.

آموزش یادگیری ماشین با پایتون

 

الزامات پروژه:

  • نصب پایتون
  • بدون نیاز به کتابخانه اضافی چون Tkinter با نصب‌های استاندارد پایتون گنجانده شده است.

قطعه کد پروژه فوق به صورت زیر است:

<span class="token keyword">import</span> tkinter <span class="token keyword">as</span> tk
<span class="token keyword">from</span> tkinter <span class="token keyword">import</span> messagebox

<span class="token keyword">def</span> <span class="token function">add_task</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    task <span class="token operator">=</span> entry<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token keyword">if</span> task<span class="token punctuation">.</span>strip<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
        listbox<span class="token punctuation">.</span>insert<span class="token punctuation">(</span>tk<span class="token punctuation">.</span>END<span class="token punctuation">,</span> task<span class="token punctuation">)</span>
        entry<span class="token punctuation">.</span>delete<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> tk<span class="token punctuation">.</span>END<span class="token punctuation">)</span>
    <span class="token keyword">else</span><span class="token punctuation">:</span>
        messagebox<span class="token punctuation">.</span>showwarning<span class="token punctuation">(</span><span class="token string">"Warning"</span><span class="token punctuation">,</span> <span class="token string">"Please enter a task!"</span><span class="token punctuation">)</span>

<span class="token keyword">def</span> <span class="token function">mark_as_completed</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    selected_index <span class="token operator">=</span> listbox<span class="token punctuation">.</span>curselection<span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token keyword">if</span> selected_index<span class="token punctuation">:</span>
        listbox<span class="token punctuation">.</span>itemconfig<span class="token punctuation">(</span>selected_index<span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token string">"bg"</span><span class="token punctuation">:</span> <span class="token string">"light green"</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
    <span class="token keyword">else</span><span class="token punctuation">:</span>
        messagebox<span class="token punctuation">.</span>showwarning<span class="token punctuation">(</span><span class="token string">"Warning"</span><span class="token punctuation">,</span> <span class="token string">"Please select a task to mark as completed!"</span><span class="token punctuation">)</span>

<span class="token keyword">def</span> <span class="token function">delete_task</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    selected_index <span class="token operator">=</span> listbox<span class="token punctuation">.</span>curselection<span class="token punctuation">(</span><span class="token punctuation">)</span>
    <span class="token keyword">if</span> selected_index<span class="token punctuation">:</span>
        listbox<span class="token punctuation">.</span>delete<span class="token punctuation">(</span>selected_index<span class="token punctuation">)</span>
    <span class="token keyword">else</span><span class="token punctuation">:</span>
        messagebox<span class="token punctuation">.</span>showwarning<span class="token punctuation">(</span><span class="token string">"Warning"</span><span class="token punctuation">,</span> <span class="token string">"Please select a task to delete!"</span><span class="token punctuation">)</span>

<span class="token comment"># Create the main application window</span>
app <span class="token operator">=</span> tk<span class="token punctuation">.</span>Tk<span class="token punctuation">(</span><span class="token punctuation">)</span>
app<span class="token punctuation">.</span>title<span class="token punctuation">(</span><span class="token string">"To-Do List"</span><span class="token punctuation">)</span>

<span class="token comment"># Create UI elements</span>
listbox <span class="token operator">=</span> tk<span class="token punctuation">.</span>Listbox<span class="token punctuation">(</span>app<span class="token punctuation">,</span> width<span class="token operator">=</span><span class="token number">50</span><span class="token punctuation">)</span>
entry <span class="token operator">=</span> tk<span class="token punctuation">.</span>Entry<span class="token punctuation">(</span>app<span class="token punctuation">,</span> width<span class="token operator">=</span><span class="token number">50</span><span class="token punctuation">)</span>
add_button <span class="token operator">=</span> tk<span class="token punctuation">.</span>Button<span class="token punctuation">(</span>app<span class="token punctuation">,</span> text<span class="token operator">=</span><span class="token string">"Add Task"</span><span class="token punctuation">,</span> command<span class="token operator">=</span>add_task<span class="token punctuation">)</span>
mark_button <span class="token operator">=</span> tk<span class="token punctuation">.</span>Button<span class="token punctuation">(</span>app<span class="token punctuation">,</span> text<span class="token operator">=</span><span class="token string">"Mark as Completed"</span><span class="token punctuation">,</span> command<span class="token operator">=</span>mark_as_completed<span class="token punctuation">)</span>
delete_button <span class="token operator">=</span> tk<span class="token punctuation">.</span>Button<span class="token punctuation">(</span>app<span class="token punctuation">,</span> text<span class="token operator">=</span><span class="token string">"Delete Task"</span><span class="token punctuation">,</span> command<span class="token operator">=</span>delete_task<span class="token punctuation">)</span>

<span class="token comment"># Pack UI elements into the window</span>
listbox<span class="token punctuation">.</span>pack<span class="token punctuation">(</span>pady<span class="token operator">=</span><span class="token number">10</span><span class="token punctuation">)</span>
entry<span class="token punctuation">.</span>pack<span class="token punctuation">(</span>pady<span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">)</span>
add_button<span class="token punctuation">.</span>pack<span class="token punctuation">(</span>pady<span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">)</span>
mark_button<span class="token punctuation">.</span>pack<span class="token punctuation">(</span>pady<span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">)</span>
delete_button<span class="token punctuation">.</span>pack<span class="token punctuation">(</span>pady<span class="token operator">=</span><span class="token number">5</span><span class="token punctuation">)</span>

<span class="token comment"># Start the main event loop</span>
app<span class="token punctuation">.</span>mainloop<span class="token punctuation">(</span><span class="token punctuation">)</span>

خروجی این پروژه ساده پایتون به صورت زیر است:

پروژه ساده پایتون ساخت برنامه دسکتاپ

توضیحات پروژه بالا به صورت زیر است:

  • این پروژه از کتابخانه Tkinter، که با نصب‌های استاندارد پایتون ارائه می‌شود، برای ایجاد یک رابط کاربری گرافیکی برای برنامه To-Do List استفاده می‌کند.
  • کاربران می‌توانند وظایف را در فیلد ورودی وارد کرده و روی “Ad task” کلیک کنند تا آن‌ها را به لیست باکس اضافه کنند. اگر ورودی خالی باشد، یک پیام هشدار نمایش داده می‌شود.
  • برای علامت‌گذاری یک کار به عنوان انجام شده، کاربران می‌توانند آن را در لیست باکس انتخاب کرده و روی «علامت‌گذاری به عنوان تکمیل شده» کلیک کنند. رنگ پس‌زمینه کار انتخاب‌شده به سبز روشن تغییر می‌کند.
  • کاربران همچنین می‌توانند یک کار را با انتخاب آن در لیست باکس و کلیک بر روی “Delete Task” حذف کنند.
  • پنجره برنامه تا زمانی که کاربر آن را ببندد باز و پاسخگو خواهد بود.

این پروژه مقدمه‌ای عملی برای ایجاد برنامه‌های دسکتاپ با استفاده از Python و Tkinter ارائه می‌دهد. کاربران می‌توانند با افزودن ویژگی‌های بیشتر، مانند ذخیره وظایف در یک فایل یا افزودن ویژگی تاریخ/زمان برای مهلت‌های کار، برنامه را سفارشی کنند.

ویدیوی پیشنهادی: آموزش توابع لامبدا در پایتون

پروژه‌های کاربردی و کوچک با پایتون

پروژه‌های کوچک و کاربردی با پایتون پروژه‌های کوچکی هستند که پیاده‌سازی نسبتاً آسانی دارند و برای اهداف عملی طراحی شده‌اند. این پروژه‌ها برای توسعه‌دهندگان پایتون مبتدی و متوسط بسیار عالی هستند تا مهارت‌های خود را به کار ببرند و تجربه عملی را در حین حل مشکلات دنیای واقعی کسب کنند. پروژه‌های کوچک حس ملموسی از موفقیت را ارائه می‌دهند و راهی عالی برای تقویت مفاهیم و کتابخانه‌های پایتون هستند. در اینجا چند نمونه از پروژه‌های کوچک و کاربردی با پایتون آورده شده است:

  • برنامه فهرست کارها: یک برنامه کاربردی ساده در خط فرمان یا مبتنی بر رابط کاربری گرافیکی ایجاد کنید که به کاربران امکان می‌دهد وظایف خود را اضافه، مشاهده و مدیریت کنند.
  • برنامه پیش‌بینی آب ‌و هوا با پایتون: برنامه‌ای بسازید که داده‌های آب‌وهوا را با استفاده از یک API واکشی می‌کند و آب‌وهوا و پیش‌بینی فعلی را برای یک مکان خاص نمایش می‌دهد.
  • کوتاه کننده URL: یک سرویس کوتاه کننده URL ایجاد کنید که URL های طولانی را به عنوان ورودی دریافت می‌کند و لینک‌های کوتاه، منحصربه‌فرد و قابل اشتراک‌گذاری ایجاد می‌کند.
  • تولید کننده رمز با پایتون: یک مولد رمز عبور ایجاد کنید که رمزهای عبور تصادفی با طول و پیچیدگی مشخص را تولید کند.
  • ساخت مبدل ارز با پایتون: یک مبدل ارز بسازید که یک ارز را با استفاده از نرخ‌های تبدیل لحظه‌ای به ارز دیگر تبدیل کند.
  • ساخت دانلودر عکس با پایتون: یک اسکریپت ایجاد کنید که تصاویر را از یک URL صفحه وب داده شده یا فهرستی از URL ها دانلود کرده و آن‌ها را در یک فهرست محلی ذخیره می‌کند.
  • برنامه سازمان‌دهی فایل با پایتون: برنامه‌ای را توسعه دهید که فایل‌ها را بر اساس انواع آن‌ها در یک فهرست سازمان‌دهی می‌کند (به عنوان مثال، تصاویر، اسناد، موسیقی و غیره).
  • فیدخوان RSS: یک فیدخوان RSS بسازید که آخرین مقالات خبری را از منابع مختلف واکشی و نمایش می‌دهد.
  • شمارشگر فرکانس تعداد کلمات ورد: برنامه‌ای بنویسید که یک سند متنی را تجزیه‌وتحلیل می‌کند و فرکانس هر کلمه استفاده شده را می‌شمارد.
  • GitHub Repository Analyzer: ابزاری ایجاد کنید که داده‌ها را از مخازن GitHub مانند تعداد ستاره‌ها، فورک‌ها و مسائل واکشی کرده و در قالبی کاربرپسند ارائه می‌کند.
  • ساخت برنامه وب اسکراپر: برای استخراج داده‌ها از وب‌سایت‌ها و ذخیره آن در فایل CSV یا JSON، یک وب اسکراپر بسازید.
  • ارسال کننده ایمیل خودکار: اسکریپتی را ایجاد کنید که ایمیل‌های خودکار را به فهرستی از گیرندگان با محتوای قابل تنظیم ارسال می‌کند.
  • ساخت برنامه نقل‌قول خودکار: برنامه‌ای ایجاد کنید که نقل‌قول‌های تصادفی را از یک مجموعه تولید و نمایش دهد.
  • ماشین‌ حساب با پایتون: یک ماشین‌حساب ساده با پایتون طراحی کنید که محاسبات پایه را انجام دهد.

در مطلب کدهای آماده پایتون میتوانید چند تا از تمرینات پایتون بالا را مشاهده بفرمایید.

پروژه های تمرینی پایتون

این پروژه‌های مقدماتی پایتون فرصت‌های ارزشمندی را برای به‌کارگیری مهارت‌های پایتون، آزمایش با کتابخانه‌های مختلف و کسب تجربه عملی فراهم می‌کنند که می‌تواند در پروژه‌های پیچیده‌تر در آینده گسترش یابد. همان‌طور که روی این پروژه‌ها کار می‌کنید، از کشف ویژگی‌های اضافی، بهبود رابط‌های کاربری یا استفاده از مفاهیم پیشرفته‌تر برای افزایش عملکرد و جذابیت آن‌ها استفاده کنید.

پیشنهاد مطالعه: چند نمونه تمرین پایتون همراه با جواب

پروژه‌های انجام شده با پایتون

هدف از انجام چند پروژه ساده پایتون بالا تمرین و یادگیری بهتر زبان برنامه نویسی پایتون به ویژه یادگیری پایتون مقدماتی است. با انجام این پروژه‌ها کاربران قادر خواهند بود که مهارت‌های خود را در کدنویسی پایتون بهبود ببخشند. این پروژه‌های انجام شده با پایتون در این مطلب به خصوص برای افراد مبتدی و تازه وارد به حوزه برنامه نویسی پایتون از اهمیت بسیار بالایی برخوردار هستند. همچنین انجام پروژه‌های توصیه شده در بخش قبل به عنوان یک تمرین نیز بسیار اهمیت زیادی دارند. برای انجام پروژه‌های حرفه‌ای پایتون باید ابتدا پروژه‌های ساده پایتون را درک کنید.

ویدیوی پیشنهادی: آموزش رایگان کار با فایل در پایتون

آموزش پایتون

اگر به فکر یادگیری پایتون از صفر تا صد هستید و دوست دارید در کمترین زمان ممکن مهارت‌های پایتون خود را افزایش دهید، استفاده از دوره‌های آموزش پایتون به شما توصیه می‌شود. استفاده از دوره‌های آموزش پایتون به شما امکان می‌دهد در هزینه و زمان خود صرفه‌جویی کنید. برای این هدف در پلتفرم آموزشی مکتب خونه انواع دوره آموزشی با اهداف گوناگون در دسترس است. از دوره‌های پایتون مقدماتی گرفته تا دوره‌های پیشرفته پایتون به صورت رایگان و پولی در مکتب خونه موجود است. همچنین آموزش فریمورک‌های محبوب پایتون، آموزش پایتون برای هوش مصنوعی و یادگیری ماشین و غیره نیز از دوره‌های موجود در مکتب خونه محسوب می‌شوند. هم‌اکنون از طریق صفحه آموزش پایتون می‌توانید از این آموزش‌ها دیدن کنید.

کامل بهرامی

کامل بهرامی دانش‌آموخته کارشناسی ارشد رشته مهندسی کامپیوتر گرایش نرم‌افزار از دانشگاه ارومیه است. به تولید محتوا در حوزه کامپیوتر، برنامه‌نویسی و هوش مصنوعی علاقه‌مند‌ است و هم اکنون به عنوان عضو تیم سئو و مدیر تیم نویسنده‌های مکتب خونه در این مجموعه فعالیت می‌کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا