Skip to content

Commit 8b9c0f0

Browse files
author
Saeid Darvish
authored
Merge pull request #81 from saeiddrv/draft
added code challenges, basic
2 parents bce767d + c8d22aa commit 8b9c0f0

11 files changed

+264
-12
lines changed
Loading

source/_static/practice/students.csv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ID,Name,Age,Gender,Grade
1818
17,Ella,21,Female,84
1919
18,Harry,18,Non-binary,81
2020
19,Peter,20,Male,77
21-
20,Pat,19,Genderqueer,91
21+
20,Pat,19,Non-binary,91
2222
21,Alice,21,Female,89
2323
22,Linda,20,Female,93
2424
23,John,18,Male,85

source/_static/sitemap-index.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,11 @@
179179
<lastmod>2021-04-17T17:10:23+00:00</lastmod>
180180
<priority>0.64</priority>
181181
</url>
182+
<url>
183+
<loc>https://python.coderz.ir/challenges/python-code-challenges-basic.html</loc>
184+
<lastmod>2023-05-05T17:10:23+00:00</lastmod>
185+
<priority>0.64</priority>
186+
</url>
182187

183188

184189
</urlset>

source/_templates/sphinx_minoo_theme/includes/header.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
{% if theme_direction == "ltr" %}
4040
<link rel="stylesheet" type=text/css href="{{ pathto('_static/minoo-ltr.css', 1) }}">
4141
{% else %}
42-
<link rel="stylesheet" type=text/css href="{{ pathto('_static/minoo-20230424.css', 1) }}">
42+
<link rel="stylesheet" type=text/css href="{{ pathto('_static/minoo-20230505.css', 1) }}">
4343
{% endif %}
4444

4545
{%- block linktags %}
@@ -96,7 +96,7 @@
9696
gtag('config', 'G-25G1Z7B4EZ');
9797
</script>
9898

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

102102
<script async defer src="https://buttons.github.io/buttons.js"></script>

source/_templates/sphinx_minoo_theme/static/minoo-20230424.css renamed to source/_templates/sphinx_minoo_theme/static/minoo-20230505.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,3 +290,6 @@ a.hover{background-color:#4CAF50;}
290290
.toctree-wrapper li.make-black>ul>li>a,.toctree-wrapper li.make-black>ul>li>ul>li>a{background-color:#90a4ae;}
291291
.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;}
292292

293+
.gist-container{position:relative;overflow:hidden;filter:blur(3px);transition:filter 0.3s ease-in-out;}
294+
.gist-container.active{filter:none;}
295+
.gist-container:hover{filter:none;cursor: pointer;}

source/_templates/sphinx_minoo_theme/static/minoo-20230422.js renamed to source/_templates/sphinx_minoo_theme/static/minoo-20230505.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ $( document ).ready(function() {
129129
if ($(this).text().indexOf("پیش‌گفتار")>=0) {
130130
$(this).parent().addClass('make-red');
131131
}
132+
if ($(this).text().indexOf("چالش")>=0) {
133+
$(this).parent().addClass('make-black');
134+
}
132135
if ($(this).text().indexOf("گزارش حمایت‌های مالی")>=0) {
133136
$(this).parent().addClass('make-red');
134137
}
Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
.. role:: emoji-size
2+
3+
.. meta::
4+
:description: پایتون به پارسی - کتاب آنلاین و آزاد آموزش زبان برنامه‌نویسی پایتون - چالش کد پایتون، پایه
5+
:keywords: پایتون, آموزش, آموزش برنامه نویسی, آموزش پایتون, برنامه نویسی, کتاب آموزش, آموزش فارسی, کتاب آزاد
6+
7+
8+
.. _code-challenges-basic:
9+
10+
چالش کد پایتون: پایه
11+
==========================
12+
13+
زمان به چالش کشیدن دانش خود از پایتون رسیده است. در این بخش چند مسئله (بدون هیچ ترتیب خاصی) قرار داده شده است که شما می‌بایست برای آن‌ها یک راه حل پایتونی ارایه دهید. البته برای هر کدام، یک پاسخ نیز قرار داده شده است که در صورت تمایل می‌توانید راه حل خود را با آن مقایسه کنید یا از درستی نتیجه نهایی مطمئن گردید. به یاد داشته باشید همواره چندین راه حل برای حل یک مسئله وجود خواهد داشت.
14+
15+
پاسخ‌ها به صورت gist از سرویس GitHub قرار داده شده‌اند. بنابراین این امکان وجود دارد که نظر و یا راه حل خود را در مورد هر یک از مسئله‌ها، با دیگران نیز به اشتراک بگذارید.
16+
17+
موفق باشد :)
18+
19+
20+
----
21+
22+
.. contents:: مسئله‌ها
23+
:depth: 2
24+
25+
----
26+
27+
28+
.. _area-of-the-circle:
29+
30+
مساحت دایره
31+
------------------------------------
32+
33+
برنامه‌ای بنویسید که شعاع یک دایره را از کاربر دریافت و مساحت آن را محاسبه نماید.
34+
35+
.. raw:: html
36+
37+
<div class="gist-container">
38+
<script src="https://gist.github.com/saeiddrv/dae7126a0bc86f8e4d58e1135e3eba79.js"></script>
39+
</div>
40+
41+
42+
43+
.. _divisible-by-8:
44+
45+
اعداد بخش‌پذیر بر هشت
46+
------------------------------------
47+
48+
برنامه‌ای بنویسید که یک عدد صحیح از کاربر دریافت و تمام اعداد صحیح و بخش‌پذیر بر 8 از یک تا آن عدد را چاپ نماید.
49+
50+
51+
.. raw:: html
52+
53+
<div class="gist-container">
54+
<script src="https://gist.github.com/saeiddrv/e6bc5fbc1724a0b5828bc6ab1cda3a25.js"></script>
55+
</div>
56+
57+
58+
.. _female-student-avg:
59+
60+
میانگین نمره دانش‌آموزان (فایل CSV)
61+
------------------------------------
62+
63+
فایل [`students.csv </_static/practice/students.csv>`__] را دانلود نمایید. این یک فایل CSV حاوی اطلاعات دانش آموزان یک کلاس است. بدون استفاده از ماژول ``csv`` پایتون، یک برنامه بنویسید که این فایل را پردازش و میانگین نمرات دانش آموزان دختر (Female) این کلاس را محاسبه کند.
64+
65+
.. raw:: html
66+
67+
<div class="gist-container">
68+
<script src="https://gist.github.com/saeiddrv/e64a15b66b8b92f4aa27e451fa52aa1b.js"></script>
69+
</div>
70+
71+
72+
.. _find-common-numbers:
73+
74+
اشتراک دو لیست از اعداد
75+
------------------------------------
76+
77+
برنامه‌ای بنویسید که دو لیست از اعداد صحیح را از کاربر دریافت و سپس اعداد مشترک در هر دو لیست را چاپ نماید. (در هنگام ورود اعداد، آن‌ها را با استفاده از یک فضای خالی جدا نمایید)
78+
79+
80+
نمونه::
81+
82+
list 1 = [1, 2, 3, 4, 5, 6]
83+
list 2 = [1, 2, 5, 9, 8, 3, 4, 7]
84+
85+
result = [1, 2, 3, 4, 5]
86+
87+
.. raw:: html
88+
89+
<div class="gist-container">
90+
<script src="https://gist.github.com/saeiddrv/a2f022d255fa11bee90ff4997c4ffc9d.js"></script>
91+
</div>
92+
93+
94+
.. _grade-converter:
95+
96+
تبدیل نمره
97+
------------------------------------
98+
99+
برنامه‌ای بنویسید که نمره کاربر را از ورودی دریافت (مانند 72) و معادل حرفی آن (مانند C) را چاپ نماید.
100+
101+
* نمره‌هایی که بیشتر یا برابر 90 و کمتر یا برابر با 100 هستند: A
102+
* نمره‌هایی که بیشتر یا برابر 80 و کمتر از 90 هستند: B
103+
* نمره‌هایی که بیشتر یا برابر 70 و کمتر از 80 هستند: C
104+
* نمره‌هایی که بیشتر یا برابر 60 و کمتر از 70 هستند: D
105+
* نمره‌هایی که کمتر از 60 هستند: F
106+
107+
108+
.. raw:: html
109+
110+
<div class="gist-container">
111+
<script src="https://gist.github.com/saeiddrv/f7f473292a55fb60144c610f5e06cf53.js"></script>
112+
</div>
113+
114+
115+
.. _max-min-diff:
116+
117+
تفاضل بزرگترین و کوچکترین عضو یک لیست از اعداد
118+
----------------------------------------------------
119+
120+
برنامه‌ای بنویسید که یک لیست از اعداد صحیح را از کاربر دریافت و سپس تفاضل بین بزرگترین و کوچکترین عضو آن را محاسبه و در خروجی چاپ نماید. (در هنگام ورود اعداد، آن‌ها را با استفاده از یک فضای خالی جدا نمایید)
121+
122+
نمونه::
123+
124+
[1, 5, 3, 2, 8, 16, 20, 18, 3, 0, 4]
125+
max = 20
126+
min = 0
127+
max - min = 20
128+
129+
.. raw:: html
130+
131+
<div class="gist-container">
132+
<script src="https://gist.github.com/saeiddrv/2dc69d2172afbee354312568756beff1.js"></script>
133+
</div>
134+
135+
136+
.. _n-plus-nn-plus-nnn:
137+
138+
محاسبه عبارت n+nn+nnn
139+
----------------------------------------------------
140+
141+
برنامه‌ای بنویسید که یک عدد صحیح مانند n را از کاربر دریافت و سپس حاصل عبارت n+nn+nnn را محاسبه نماید. برای نمونه چنانچه کاربر عدد 2 را وارد کرد، حاصل عبارت 222+22+2 محاسبه و در خروجی نمایش داده شود: 246
142+
143+
.. raw:: html
144+
145+
<div class="gist-container">
146+
<script src="https://gist.github.com/saeiddrv/37af43f0ce2b3a72b72a6f53594004e0.js"></script>
147+
</div>
148+
149+
150+
.. _name-in-reverse-order:
151+
152+
وارونه‌سازی اسم
153+
----------------------------------------------------
154+
155+
برنامه‌ای بنویسید که نام کاربر را از ورودی دریافت و سپس آن را وارونه کرده و در خروجی چاپ نماید. برای نمونه چنانچه کاربر saeid را وارد کرد، در خروجی مقدار dieas چاپ گردد.
156+
157+
.. raw:: html
158+
159+
<div class="gist-container">
160+
<script src="https://gist.github.com/saeiddrv/345507e78ca020262609b394d89e8f81.js"></script>
161+
</div>
162+
163+
164+
.. _palindrome-checker:
165+
166+
پالیندروم
167+
----------------------------------------------------
168+
169+
برنامه‌ای بنویسید که یک کلمه را از ورودی دریافت و سپس بررسی نماید که آن کلمه پالیندروم (Palindrome) است یا خیر. کلمه‌ای پالیندروم خواهد بود که با وارونه خودش برابر باشد مانند: Madam
170+
171+
.. raw:: html
172+
173+
<div class="gist-container">
174+
<script src="https://gist.github.com/saeiddrv/3984d5731d1ed62251befba1746dba57.js"></script>
175+
</div>
176+
177+
178+
.. _student-analysis:
179+
180+
گزارش دانش‌آموزان
181+
----------------------------------------------------
182+
183+
فایل [`students.csv </_static/practice/students.csv>`__] را دانلود نمایید. این یک فایل CSV حاوی اطلاعات دانش آموزان یک کلاس است. بدون استفاده از ماژول ``csv`` پایتون، یک برنامه بنویسید که این فایل را پردازش و موارد روبرو را محاسبه نماید و در قالب یک شی دیکشنری بر روی خروجی نمایش دهد: کمترین سن دانش‌آموز، بیشترین سن دانش‌آموز، کمترین نمره و بالاترین نمره
184+
185+
.. raw:: html
186+
187+
<div class="gist-container">
188+
<script src="https://gist.github.com/saeiddrv/91dc2e2a137e92c20885604d36886a82.js"></script>
189+
</div>
190+
191+
192+
.. _count-vowels:
193+
194+
شمارش حروف صدادار
195+
----------------------------------------------------
196+
197+
برنامه‌ای بنویسید که یک متن از کاربر دریافت کرده، سپس تعداد حروف صدادار انگلیسی (Vowels) را در آن بشمارد و عدد حاصل را در خروجی نمایش دهد. حروف صدادار انگلیسی عبارتند از: ``'a','e','i','o','u'``
198+
199+
.. raw:: html
200+
201+
<div class="gist-container">
202+
<script src="https://gist.github.com/saeiddrv/c9e1480f1062654c53d830891bf4e7d6.js"></script>
203+
</div>
204+
205+
206+
207+
.. _khayyam-pascal-triangle:
208+
209+
210+
رسم مثلث خیام-پاسکال
211+
----------------------------------------------------
212+
213+
برنامه‌ای بنویسید که یک عدد صحیح از کاربر دریافت و مثلث خیام-پاسکال را تا عمق آن سطر محاسبه و رسم نماید. از طریق منابع مختلف، ویکی‌پدیا یا تصویر پایین (تا سطر 5)، می‌توانید با ساختار مثلث خیام-پاسکال [`ویکی‌پدیا <https://en.wikipedia.org/wiki/Pascal%27s_triangle>`__] آشنا شوید:
214+
215+
.. image:: /_static/practice/PascalTriangleAnimated2.gif
216+
:align: center
217+
218+
.. raw:: html
219+
220+
<div class="gist-container">
221+
<script src="https://gist.github.com/saeiddrv/2b57267f8543089d306d7ea7127df42b.js"></script>
222+
</div>

source/changelog.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@
1212
=============
1313

1414

15+
.. raw:: html
16+
17+
<p class="rubric" id="00138" ><a class="reference external" href="#00138">00138</a> - جمعه ۱۵ اردیبهشت ۱۴۰۲</p>
18+
19+
* نخستین بخش از Code Challenges به کتاب افزوده شد. بخش پایه که برای حل آن نیاز به دانستن دروس ابتدایی تا یازدهم می‌باشد.
20+
21+
22+
----
23+
1524
.. raw:: html
1625

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

source/index.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

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

77

88
.. _home-page:
@@ -43,6 +43,7 @@
4343
lessons/l09-control-flow-statements-in-python
4444
lessons/l10-input-print-and-files-in-python
4545
lessons/l11-python-standard-library
46+
challenges/python-code-challenges-basic
4647
lessons/l12-function-in-python
4748
lessons/l13-decorator-generator-and-lambda-with-python-functions
4849
lessons/l14-recursive-functions-and-memoization-in-python

source/lessons/l07-string-and-bytes-in-python.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -768,6 +768,23 @@
768768
برخی از متدهای کاربردی یک شی رشته
769769
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
770770

771+
772+
* ``()strip`` [`اسناد پایتون <https://docs.python.org/3/library/stdtypes.html#str.strip>`__] - یک کپی از رشته که کارکترهای فضای خالی (whitespace) را از ابتدا و انتهای رشته حذف شده است را بر می‌گرداند::
773+
774+
>>> a = " python string methods "
775+
>>> a.strip()
776+
'python string methods'
777+
778+
779+
همچنین می‌توان با استفاده از این متد، کاراکترهای دیگری نیز بنابر نیاز خود از ابتدا یا انتهای یک رشته حذف کنیم::
780+
781+
>>> a = "python string methods"
782+
>>> a.strip('sdyp')
783+
'thon string metho'
784+
785+
دو متد [`lstrip <https://docs.python.org/3/library/stdtypes.html#str.lstrip>`__] و [`rstrip <https://docs.python.org/3/library/stdtypes.html#str.rstrip>`__] نیز عملکردی مشابه دارند با این تفاوت که عملیات حذف را تنها در سمت چپ (left) یا راست (right) به انجام می‌رسانند.
786+
787+
771788
* ``()capitalize`` [`اسناد پایتون <http://docs.python.org/3/library/stdtypes.html#str.capitalize>`__] - یک کپی از رشته که نخستین حرف آن به صورت بزرگ (Capital) نوشته شده است را برمی‌گرداند::
772789

773790
>>> a = "python string methods"

source/lessons/l10-input-print-and-files-in-python.rst

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -723,14 +723,6 @@ JSON
723723
در پایتون می‌توان به سادگی با استفاده از ماژول ``json`` [`اسناد پایتون <https://docs.python.org/3/library/json.html>`__] از کتابخانه استاندارد آن، با این نوع فایل کار کرد. البته ابزارهای دیگری نیز توسط دیگر کاربران پایتون توسعه داده شده است که در صورت نیاز یا علاقه می‌توانید با کمی جستجو آنها را بیابید.
724724

725725

726-
.. admonition:: تمرین
727-
728-
فایل [`students.csv </_static/practice/students.csv>`__] را دانلود نمایید. این یک فایل CSV حاوی اطلاعات دانش آموزان یک کلاس است. بدون استفاده از ماژول ``csv`` پایتون و تنها با تکیه بر آنچه آموخته‌اید، یک برنامه بنویسید که این فایل را پردازش و میانگین نمرات دانش آموزان دختر (Female) این کلاس را محاسبه کند.
729-
730-
731-
** یادآوری: تابع ``open`` ، حلقه ``for`` ، دستورهای انتخاب مانند ``if`` و متد ``split`` از شی رشته
732-
733-
734726
|
735727
736728
----

0 commit comments

Comments
 (0)