Skip to content

Commit

Permalink
Merge pull request #81 from saeiddrv/draft
Browse files Browse the repository at this point in the history
added code challenges, basic
  • Loading branch information
Saeid Darvish committed May 5, 2023
2 parents bce767d + c8d22aa commit 8b9c0f0
Show file tree
Hide file tree
Showing 11 changed files with 264 additions and 12 deletions.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion source/_static/practice/students.csv
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ID,Name,Age,Gender,Grade
17,Ella,21,Female,84
18,Harry,18,Non-binary,81
19,Peter,20,Male,77
20,Pat,19,Genderqueer,91
20,Pat,19,Non-binary,91
21,Alice,21,Female,89
22,Linda,20,Female,93
23,John,18,Male,85
Expand Down
5 changes: 5 additions & 0 deletions source/_static/sitemap-index.xml
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,11 @@
<lastmod>2021-04-17T17:10:23+00:00</lastmod>
<priority>0.64</priority>
</url>
<url>
<loc>https://python.coderz.ir/challenges/python-code-challenges-basic.html</loc>
<lastmod>2023-05-05T17:10:23+00:00</lastmod>
<priority>0.64</priority>
</url>


</urlset>
4 changes: 2 additions & 2 deletions source/_templates/sphinx_minoo_theme/includes/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
{% if theme_direction == "ltr" %}
<link rel="stylesheet" type=text/css href="{{ pathto('_static/minoo-ltr.css', 1) }}">
{% else %}
<link rel="stylesheet" type=text/css href="{{ pathto('_static/minoo-20230424.css', 1) }}">
<link rel="stylesheet" type=text/css href="{{ pathto('_static/minoo-20230505.css', 1) }}">
{% endif %}

{%- block linktags %}
Expand Down Expand Up @@ -96,7 +96,7 @@
gtag('config', 'G-25G1Z7B4EZ');
</script>

<script type="text/javascript" src="{{ pathto('_static/minoo-20230422.js', 1) }}"></script>
<script type="text/javascript" src="{{ pathto('_static/minoo-20230505.js', 1) }}"></script>
<script type="text/javascript" src="{{ pathto('_static/modernizr.min.js', 1) }}"></script>

<script async defer src="https://buttons.github.io/buttons.js"></script>
Original file line number Diff line number Diff line change
Expand Up @@ -290,3 +290,6 @@ a.hover{background-color:#4CAF50;}
.toctree-wrapper li.make-black>ul>li>a,.toctree-wrapper li.make-black>ul>li>ul>li>a{background-color:#90a4ae;}
.toctree-wrapper li.make-black>ul>li>a:hover,.toctree-wrapper li.make-black>ul>li>ul>li>a:hover{border-right:5px #37474f solid;}

.gist-container{position:relative;overflow:hidden;filter:blur(3px);transition:filter 0.3s ease-in-out;}
.gist-container.active{filter:none;}
.gist-container:hover{filter:none;cursor: pointer;}
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ $( document ).ready(function() {
if ($(this).text().indexOf("پیش‌گفتار")>=0) {
$(this).parent().addClass('make-red');
}
if ($(this).text().indexOf("چالش")>=0) {
$(this).parent().addClass('make-black');
}
if ($(this).text().indexOf("گزارش حمایت‌های مالی")>=0) {
$(this).parent().addClass('make-red');
}
Expand Down
222 changes: 222 additions & 0 deletions source/challenges/python-code-challenges-basic.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
.. role:: emoji-size

.. meta::
:description: پایتون به پارسی - کتاب آنلاین و آزاد آموزش زبان برنامه‌نویسی پایتون - چالش کد پایتون، پایه
:keywords: پایتون, آموزش, آموزش برنامه نویسی, آموزش پایتون, برنامه نویسی, کتاب آموزش, آموزش فارسی, کتاب آزاد


.. _code-challenges-basic:

چالش کد پایتون: پایه
==========================

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

پاسخ‌ها به صورت gist از سرویس GitHub قرار داده شده‌اند. بنابراین این امکان وجود دارد که نظر و یا راه حل خود را در مورد هر یک از مسئله‌ها، با دیگران نیز به اشتراک بگذارید.

موفق باشد :)


----

.. contents:: مسئله‌ها
:depth: 2

----


.. _area-of-the-circle:

مساحت دایره
------------------------------------

برنامه‌ای بنویسید که شعاع یک دایره را از کاربر دریافت و مساحت آن را محاسبه نماید.

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/dae7126a0bc86f8e4d58e1135e3eba79.js"></script>
</div>



.. _divisible-by-8:

اعداد بخش‌پذیر بر هشت
------------------------------------

برنامه‌ای بنویسید که یک عدد صحیح از کاربر دریافت و تمام اعداد صحیح و بخش‌پذیر بر 8 از یک تا آن عدد را چاپ نماید.


.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/e6bc5fbc1724a0b5828bc6ab1cda3a25.js"></script>
</div>


.. _female-student-avg:

میانگین نمره دانش‌آموزان (فایل CSV)
------------------------------------

فایل [`students.csv </_static/practice/students.csv>`__] را دانلود نمایید. این یک فایل CSV حاوی اطلاعات دانش آموزان یک کلاس است. بدون استفاده از ماژول ``csv`` پایتون، یک برنامه بنویسید که این فایل را پردازش و میانگین نمرات دانش آموزان دختر (Female) این کلاس را محاسبه کند.

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/e64a15b66b8b92f4aa27e451fa52aa1b.js"></script>
</div>


.. _find-common-numbers:

اشتراک دو لیست از اعداد
------------------------------------

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


نمونه::

list 1 = [1, 2, 3, 4, 5, 6]
list 2 = [1, 2, 5, 9, 8, 3, 4, 7]
result = [1, 2, 3, 4, 5]

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/a2f022d255fa11bee90ff4997c4ffc9d.js"></script>
</div>


.. _grade-converter:

تبدیل نمره
------------------------------------

برنامه‌ای بنویسید که نمره کاربر را از ورودی دریافت (مانند 72) و معادل حرفی آن (مانند C) را چاپ نماید.

* نمره‌هایی که بیشتر یا برابر 90 و کمتر یا برابر با 100 هستند: A
* نمره‌هایی که بیشتر یا برابر 80 و کمتر از 90 هستند: B
* نمره‌هایی که بیشتر یا برابر 70 و کمتر از 80 هستند: C
* نمره‌هایی که بیشتر یا برابر 60 و کمتر از 70 هستند: D
* نمره‌هایی که کمتر از 60 هستند: F


.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/f7f473292a55fb60144c610f5e06cf53.js"></script>
</div>


.. _max-min-diff:

تفاضل بزرگترین و کوچکترین عضو یک لیست از اعداد
----------------------------------------------------

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

نمونه::

[1, 5, 3, 2, 8, 16, 20, 18, 3, 0, 4]
max = 20
min = 0
max - min = 20

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/2dc69d2172afbee354312568756beff1.js"></script>
</div>


.. _n-plus-nn-plus-nnn:

محاسبه عبارت n+nn+nnn
----------------------------------------------------

برنامه‌ای بنویسید که یک عدد صحیح مانند n را از کاربر دریافت و سپس حاصل عبارت n+nn+nnn را محاسبه نماید. برای نمونه چنانچه کاربر عدد 2 را وارد کرد، حاصل عبارت 222+22+2 محاسبه و در خروجی نمایش داده شود: 246

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/37af43f0ce2b3a72b72a6f53594004e0.js"></script>
</div>


.. _name-in-reverse-order:

وارونه‌سازی اسم
----------------------------------------------------

برنامه‌ای بنویسید که نام کاربر را از ورودی دریافت و سپس آن را وارونه کرده و در خروجی چاپ نماید. برای نمونه چنانچه کاربر saeid را وارد کرد، در خروجی مقدار dieas چاپ گردد.

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/345507e78ca020262609b394d89e8f81.js"></script>
</div>


.. _palindrome-checker:

پالیندروم
----------------------------------------------------

برنامه‌ای بنویسید که یک کلمه را از ورودی دریافت و سپس بررسی نماید که آن کلمه پالیندروم (Palindrome) است یا خیر. کلمه‌ای پالیندروم خواهد بود که با وارونه خودش برابر باشد مانند: Madam

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/3984d5731d1ed62251befba1746dba57.js"></script>
</div>


.. _student-analysis:

گزارش دانش‌آموزان
----------------------------------------------------

فایل [`students.csv </_static/practice/students.csv>`__] را دانلود نمایید. این یک فایل CSV حاوی اطلاعات دانش آموزان یک کلاس است. بدون استفاده از ماژول ``csv`` پایتون، یک برنامه بنویسید که این فایل را پردازش و موارد روبرو را محاسبه نماید و در قالب یک شی دیکشنری بر روی خروجی نمایش دهد: کمترین سن دانش‌آموز، بیشترین سن دانش‌آموز، کمترین نمره و بالاترین نمره

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/91dc2e2a137e92c20885604d36886a82.js"></script>
</div>


.. _count-vowels:

شمارش حروف صدادار
----------------------------------------------------

برنامه‌ای بنویسید که یک متن از کاربر دریافت کرده، سپس تعداد حروف صدادار انگلیسی (Vowels) را در آن بشمارد و عدد حاصل را در خروجی نمایش دهد. حروف صدادار انگلیسی عبارتند از: ``'a','e','i','o','u'``

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/c9e1480f1062654c53d830891bf4e7d6.js"></script>
</div>



.. _khayyam-pascal-triangle:


رسم مثلث خیام-پاسکال
----------------------------------------------------

برنامه‌ای بنویسید که یک عدد صحیح از کاربر دریافت و مثلث خیام-پاسکال را تا عمق آن سطر محاسبه و رسم نماید. از طریق منابع مختلف، ویکی‌پدیا یا تصویر پایین (تا سطر 5)، می‌توانید با ساختار مثلث خیام-پاسکال [`ویکی‌پدیا <https://en.wikipedia.org/wiki/Pascal%27s_triangle>`__] آشنا شوید:

.. image:: /_static/practice/PascalTriangleAnimated2.gif
:align: center

.. raw:: html

<div class="gist-container">
<script src="https://gist.github.com/saeiddrv/2b57267f8543089d306d7ea7127df42b.js"></script>
</div>
9 changes: 9 additions & 0 deletions source/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@
=============


.. raw:: html

<p class="rubric" id="00138" ><a class="reference external" href="#00138">00138</a> - جمعه ۱۵ اردیبهشت ۱۴۰۲</p>

* نخستین بخش از Code Challenges به کتاب افزوده شد. بخش پایه که برای حل آن نیاز به دانستن دروس ابتدایی تا یازدهم می‌باشد.


----

.. raw:: html

<p class="rubric" id="00137" ><a class="reference external" href="#00137">00137</a> - جمعه ۸ اردیبهشت ۱۴۰۲</p>
Expand Down
3 changes: 2 additions & 1 deletion source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

.. meta::
:description: پایتون به پارسی - کتاب آنلاین و آزاد آموزش زبان برنامه‌نویسی پایتون - صفحه نخست
:keywords: پایتون, آموزش, آموزش برنامه نویسی, آموزش پایتون, برنامه نویسی, کتاب آموزش, آموزش فارسی, کتاب آزاد, پایتون نسخه
:keywords: پایتون, آموزش, آموزش برنامه نویسی, آموزش پایتون, برنامه نویسی, کتاب آموزش, آموزش فارسی, کتاب آزاد


.. _home-page:
Expand Down Expand Up @@ -43,6 +43,7 @@
lessons/l09-control-flow-statements-in-python
lessons/l10-input-print-and-files-in-python
lessons/l11-python-standard-library
challenges/python-code-challenges-basic
lessons/l12-function-in-python
lessons/l13-decorator-generator-and-lambda-with-python-functions
lessons/l14-recursive-functions-and-memoization-in-python
Expand Down
17 changes: 17 additions & 0 deletions source/lessons/l07-string-and-bytes-in-python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -768,6 +768,23 @@
برخی از متدهای کاربردی یک شی رشته
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


* ``()strip`` [`اسناد پایتون <https://docs.python.org/3/library/stdtypes.html#str.strip>`__] - یک کپی از رشته که کارکترهای فضای خالی (whitespace) را از ابتدا و انتهای رشته حذف شده است را بر می‌گرداند::

>>> a = " python string methods "
>>> a.strip()
'python string methods'


همچنین می‌توان با استفاده از این متد، کاراکترهای دیگری نیز بنابر نیاز خود از ابتدا یا انتهای یک رشته حذف کنیم::

>>> a = "python string methods"
>>> a.strip('sdyp')
'thon string metho'

دو متد [`lstrip <https://docs.python.org/3/library/stdtypes.html#str.lstrip>`__] و [`rstrip <https://docs.python.org/3/library/stdtypes.html#str.rstrip>`__] نیز عملکردی مشابه دارند با این تفاوت که عملیات حذف را تنها در سمت چپ (left) یا راست (right) به انجام می‌رسانند.


* ``()capitalize`` [`اسناد پایتون <http://docs.python.org/3/library/stdtypes.html#str.capitalize>`__] - یک کپی از رشته که نخستین حرف آن به صورت بزرگ (Capital) نوشته شده است را برمی‌گرداند::

>>> a = "python string methods"
Expand Down
8 changes: 0 additions & 8 deletions source/lessons/l10-input-print-and-files-in-python.rst
Original file line number Diff line number Diff line change
Expand Up @@ -723,14 +723,6 @@ JSON
در پایتون می‌توان به سادگی با استفاده از ماژول ``json`` [`اسناد پایتون <https://docs.python.org/3/library/json.html>`__] از کتابخانه استاندارد آن، با این نوع فایل کار کرد. البته ابزارهای دیگری نیز توسط دیگر کاربران پایتون توسعه داده شده است که در صورت نیاز یا علاقه می‌توانید با کمی جستجو آنها را بیابید.


.. admonition:: تمرین

فایل [`students.csv </_static/practice/students.csv>`__] را دانلود نمایید. این یک فایل CSV حاوی اطلاعات دانش آموزان یک کلاس است. بدون استفاده از ماژول ``csv`` پایتون و تنها با تکیه بر آنچه آموخته‌اید، یک برنامه بنویسید که این فایل را پردازش و میانگین نمرات دانش آموزان دختر (Female) این کلاس را محاسبه کند.


** یادآوری: تابع ``open`` ، حلقه ``for`` ، دستورهای انتخاب مانند ``if`` و متد ``split`` از شی رشته


|
----
Expand Down

0 comments on commit 8b9c0f0

Please sign in to comment.