| .. | ||
| 02_variables_builtin_functions.md | ||
| 03_operators.md | ||
| 04_strings.md | ||
| 05_lists.md | ||
| 06_tuples.md | ||
| 07_sets.md | ||
| 08_dictionaries.md | ||
| 09_conditionals.md | ||
| 10_loops.md | ||
| 11_functions.md | ||
| 12_modules.md | ||
| 13_list_comprehension.md | ||
| 14_higher_order_functions.md | ||
| 15_python_type_errors.md | ||
| 16_python_datetime.md | ||
| 17_exception_handling.md | ||
| 18_regular_expressions.md | ||
| 19_file_handling.md | ||
| 20_python_package_manager.md | ||
| 21_classes_and_objects.md | ||
| 22_web_scraping.md | ||
| 23_virtual_environment.md | ||
| 24_statistics.md | ||
| 25_pandas.md | ||
| 26_python_web.md | ||
| 27_python_with_mongodb.md | ||
| 28_API.md | ||
| 29_building_API.md | ||
| 30_conclusions.md | ||
| readme.md | ||
🐍 ۳۰ روز پایتون
با پیوستن به <em>بوتکمپ کدنویسی</em> آینده، همراه با Asabeneh یاد بگیرید
| # روز | سرفصلها |
|---|---|
| 01 | مقدمه |
| 02 | متغیرها، توابع داخلی |
| 03 | عملگرها |
| 04 | رشتهها |
| 05 | لیستها |
| 06 | تاپلها |
| 07 | مجموعهها |
| 08 | دیکشنریها |
| 09 | دستورات شرطی |
| 10 | حلقهها |
| 11 | توابع |
| 12 | ماژولها |
| 13 | List Comprehension |
| 14 | توابع مرتبه بالا |
| 15 | خطاهای نوع در پایتون |
| 16 | تاریخ و زمان در پایتون |
| 17 | مدیریت استثناءها |
| 18 | عبارات باقاعده |
| 19 | کار با فایلها |
| 20 | مدیر بسته پایتون |
| 21 | کلاسها و اشیاء |
| 22 | Web Scraping |
| 23 | محیط مجازی |
| 24 | آمار |
| 25 | Pandas |
| 26 | وب در پایتون |
| 27 | پایتون با MongoDB |
| 28 | API |
| 29 | ساخت API |
| 30 | نتیجهگیری |
با پیوستن به <em>بوتکمپ کدنویسی</em> آینده، همراه با Asabeneh یاد بگیرید
🧡🧡🧡 کدنویسی خوش بگذره 🧡🧡🧡
<div>
<small>از <strong>نویسنده</strong> برای تولید محتوای آموزشی بیشتر حمایت کنید</small> <br />
<a href = "https://www.paypal.me/asabeneh"><img src='./images/paypal_lg.png' alt='لوگوی پیپال' style="width:10%"/></a>
</div>
<div align="center"> <h1> ۳۰ روز پایتون: روز ۱ - مقدمه</h1> <a class="header-badge" target="_blank" href="https://www.linkedin.com/in/asabeneh/"> <img src="https://img.shields.io/badge/style--5eba00.svg?label=LinkedIn&logo=linkedin&style=social"> </a> <a class="header-badge" target="_blank" href="https://twitter.com/Asabeneh"> <img alt="دنبال کردن در توییتر" src="https://img.shields.io/twitter/follow/asabeneh?style=social"> </a>
<sub>نویسنده: <a href="https://www.linkedin.com/in/asabeneh/" target="_blank">Asabeneh Yetayeh</a><br> <small> ویرایش دوم: جولای، ۲۰۲۱</small> </sub>
</div>
📘 روز ۱
خوشآمدید
تبریک میگویم که تصمیم گرفتید در چالش برنامهنویسی ۳۰ روز پایتون شرکت کنید. در این چالش، شما هر آنچه را که برای تبدیل شدن به یک برنامهنویس پایتون نیاز دارید و کل مفهوم برنامهنویسی را یاد خواهید گرفت. در پایان چالش، گواهینامه چالش برنامهنویسی 30DaysOfPython را دریافت خواهید کرد.
اگر میخواهید به طور فعال در این چالش شرکت کنید، میتوانید به گروه تلگرام چالش 30DaysOfPython بپیوندید.
مقدمه
پایتون یک زبان برنامهنویسی سطح بالا برای برنامهنویسی همهمنظوره است. این یک زبان برنامهنویسی متنباز، مفسری و شیءگرا است. پایتون توسط یک برنامهنویس هلندی به نام Guido van Rossum ساخته شد. نام زبان برنامهنویسی پایتون از یک مجموعه کمدی بریتانیایی به نام Monty Python's Flying Circus گرفته شده است. اولین نسخه آن در ۲۰ فوریه ۱۹۹۱ منتشر شد. این چالش ۳۰ روزه پایتون به شما کمک میکند تا آخرین نسخه پایتون، یعنی پایتون ۳ را قدم به قدم یاد بگیرید. مباحث به ۳۰ روز تقسیم شدهاند، که هر روز شامل چندین موضوع با توضیحات قابل فهم، مثالهای واقعی و تمرینات و پروژههای عملی فراوان است.
این چالش برای مبتدیان و حرفهایهایی طراحی شده است که میخواهند زبان برنامهنویسی پایتون را یاد بگیرند. تکمیل این چالش ممکن است ۳۰ تا ۱۰۰ روز طول بکشد. افرادی که به طور فعال در گروه تلگرام شرکت میکنند، احتمال بالایی برای تکمیل چالش دارند.
این چالش خوانا، به زبان انگلیسی محاورهای نوشته شده، جذاب، انگیزهبخش و در عین حال بسیار پرچالش است. برای به پایان رساندن این چالش نیاز به تخصیص زمان زیادی دارید. اگر یادگیرنده بصری هستید، میتوانید درسهای ویدیویی را در کانال یوتیوب <a href="https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw">Washera</a> مشاهده کنید. میتوانید از ویدیوی پایتون برای مبتدیان مطلق شروع کنید. کانال را سابسکرایب کنید، در ویدیوهای یوتیوب کامنت بگذارید و سوال بپرسید و فعال باشید، نویسنده در نهایت متوجه شما خواهد شد.
نویسنده دوست دارد نظر شما را درباره چالش بداند، با بیان افکارتان در مورد چالش 30DaysOfPython، نظر خود را با نویسنده به اشتراک بگذارید. میتوانید نظرات خود را در این لینک ثبت کنید.
چرا پایتون؟
این یک زبان برنامهنویسی است که بسیار به زبان انسان نزدیک است و به همین دلیل، یادگیری و استفاده از آن آسان است. پایتون توسط صنایع و شرکتهای مختلف (از جمله گوگل) استفاده میشود. از آن برای توسعه برنامههای وب، برنامههای دسکتاپ، مدیریت سیستم و کتابخانههای یادگیری ماشین استفاده شده است. پایتون زبانی است که به شدت در جامعه علم داده و یادگیری ماشین مورد استقبال قرار گرفته است. امیدوارم این دلایل برای متقاعد کردن شما برای شروع یادگیری پایتون کافی باشد. پایتون در حال تسخیر جهان است و شما قبل از اینکه شما را تسخیر کند، آن را از پا در میآورید.
آمادهسازی محیط
نصب پایتون
برای اجرای یک اسکریپت پایتون، باید پایتون را نصب کنید. بیایید پایتون را دانلود کنیم. اگر کاربر ویندوز هستید، روی دکمهای که با رنگ قرمز مشخص شده کلیک کنید.
اگر کاربر macOS هستید، روی دکمهای که با رنگ قرمز مشخص شده کلیک کنید.
برای بررسی اینکه آیا پایتون نصب شده است، دستور زیر را در ترمینال دستگاه خود بنویسید.
python --version
همانطور که از ترمینال میبینید، من در حال حاضر از نسخه پایتون ۳.۷.۵ استفاده میکنم. نسخه پایتون شما ممکن است با نسخه من متفاوت باشد اما باید ۳.۶ یا بالاتر باشد. اگر موفق به دیدن نسخه پایتون شدید، آفرین. پایتون بر روی دستگاه شما نصب شده است. به بخش بعدی بروید.
شل پایتون
پایتون یک زبان اسکریپتنویسی مفسری است، بنابراین نیازی به کامپایل شدن ندارد. این بدان معناست که کد را خط به خط اجرا میکند. پایتون با یک شل پایتون (شل تعاملی پایتون) ارائه میشود. از آن برای اجرای یک دستور پایتون و دریافت نتیجه استفاده میشود.
شل پایتون منتظر کد پایتون از کاربر است. وقتی کد را وارد میکنید، آن را تفسیر کرده و نتیجه را در خط بعدی نشان میدهد. ترمینال یا command prompt (cmd) خود را باز کرده و بنویسید:
python
شل تعاملی پایتون باز شده و منتظر است تا شما کد پایتون (اسکریپت پایتون) بنویسید. شما اسکریپت پایتون خود را در کنار این نماد <<< خواهید نوشت و سپس Enter را فشار میدهید. بیایید اولین اسکریپت خود را در شل اسکریپتنویسی پایتون بنویسیم.
آفرین، شما اولین اسکریپت پایتون خود را در شل تعاملی پایتون نوشتید. چگونه شل تعاملی پایتون را ببندیم؟ برای بستن شل، در کنار این نماد << دستور exit() را بنویسید و Enter را فشار دهید.
اکنون، شما میدانید چگونه شل تعاملی پایتون را باز کنید و چگونه از آن خارج شوید.
پایتون به شما نتایج را میدهد اگر اسکریپتهایی بنویسید که پایتون آنها را بفهمد، در غیر این صورت خطا برمیگرداند. بیایید یک اشتباه عمدی انجام دهیم و ببینیم پایتون چه چیزی برمیگرداند.
همانطور که از خطای بازگشتی میبینید، پایتون آنقدر هوشمند است که اشتباهی را که ما مرتکب شدیم و آن Syntax Error: invalid syntax بود را میشناسد. استفاده از x برای ضرب در پایتون یک خطای سینتکس است زیرا (x) یک سینتکس معتبر در پایتون نیست. به جای (x) ما از ستاره (*) برای ضرب استفاده میکنیم. خطای بازگشتی به وضوح نشان میدهد که چه چیزی را باید اصلاح کرد.
فرآیند شناسایی و حذف خطاها از یک برنامه، دیباگینگ نامیده میشود. بیایید با قرار دادن * به جای x آن را دیباگ کنیم.
باگ ما رفع شد، کد اجرا شد و نتیجهای که انتظار داشتیم را گرفتیم. به عنوان یک برنامهنویس، شما روزانه با چنین خطاهایی روبرو خواهید شد. خوب است که بدانید چگونه دیباگ کنید. برای اینکه در دیباگینگ خوب باشید، باید بفهمید با چه نوع خطاهایی روبرو هستید. برخی از خطاهای پایتون که ممکن است با آنها مواجه شوید عبارتند از SyntaxError، IndexError، NameError، ModuleNotFoundError، KeyError، ImportError، AttributeError، TypeError، ValueError، ZeroDivisionError و غیره. در بخشهای بعدی درباره انواع مختلف خطاهای پایتون بیشتر خواهیم دید.
بیایید بیشتر تمرین کنیم که چگونه از شل تعاملی پایتون استفاده کنیم. به ترمینال یا command prompt خود بروید و کلمه python را بنویسید.
شل تعاملی پایتون باز شده است. بیایید چند عملیات ریاضی پایه (جمع، تفریق، ضرب، تقسیم، باقیمانده، توان) انجام دهیم.
بیایید قبل از نوشتن هر کد پایتونی، ابتدا کمی ریاضی کار کنیم:
- ۲ + ۳ برابر است با ۵
- ۳ - ۲ برابر است با ۱
- ۳ * ۲ برابر است با ۶
- ۳ / ۲ برابر است با ۱.۵
- ۲ ** ۳ همان ۳ * ۳ است
در پایتون ما عملیات اضافی زیر را داریم:
- ۳ % ۲ = ۱ => که به معنای یافتن باقیمانده است
- ۳ // ۲ = ۱ => که به معنای حذف باقیمانده است
بیایید عبارات ریاضی بالا را به کد پایتون تبدیل کنیم. شل پایتون باز شده است و بیایید در همان ابتدای شل یک کامنت بنویسیم.
یک کامنت بخشی از کد است که توسط پایتون اجرا نمیشود. بنابراین میتوانیم متنی را در کد خود بگذاریم تا کد ما خواناتر شود. پایتون بخش کامنت را اجرا نمیکند. یک کامنت در پایتون با نماد هشتگ (#) شروع میشود. اینگونه در پایتون کامنت مینویسید
# کامنت با هشتگ شروع میشود
# این یک کامنت پایتون است، چون با نماد (#) شروع میشود
قبل از اینکه به بخش بعدی برویم، بیایید بیشتر روی شل تعاملی پایتون تمرین کنیم. شل باز شده را با نوشتن exit() در شل ببندید و دوباره آن را باز کنید و بیایید تمرین کنیم که چگونه متن را در شل پایتون بنویسیم.
نصب ویژوال استودیو کد
شل تعاملی پایتون برای امتحان و تست کدهای اسکریپت کوچک خوب است اما برای یک پروژه بزرگ مناسب نخواهد بود. در محیط کار واقعی، توسعهدهندگان از ویرایشگرهای کد مختلفی برای نوشتن کد استفاده میکنند. در این چالش ۳۰ روزه برنامهنویسی پایتون، ما از ویژوال استودیو کد استفاده خواهیم کرد. ویژوال استودیو کد یک ویرایشگر متن متنباز بسیار محبوب است. من از طرفداران vscode هستم و توصیه میکنم ویژوال استودیو کد را دانلود کنید، اما اگر طرفدار ویرایشگرهای دیگر هستید، با هر چیزی که دارید ادامه دهید.
اگر ویژوال استودیو کد را نصب کردهاید، بیایید ببینیم چگونه از آن استفاده کنیم. اگر ویدیو را ترجیح میدهید، میتوانید این آموزش ویدیویی ویژوال استودیو کد برای پایتون را دنبال کنید.
چگونه از ویژوال استودیو کد استفاده کنیم
ویژوال استودیو کد را با دوبار کلیک کردن روی آیکون آن باز کنید. وقتی آن را باز میکنید، با چنین رابط کاربری مواجه خواهید شد. سعی کنید با آیکونهای برچسبگذاری شده تعامل داشته باشید.
یک پوشه به نام 30DaysOfPython روی دسکتاپ خود ایجاد کنید. سپس آن را با استفاده از ویژوال استودیو کد باز کنید.
پس از باز کردن آن، میانبرهایی برای ایجاد فایلها و پوشهها در داخل دایرکتوری پروژه 30DaysOfPython خواهید دید. همانطور که در زیر میبینید، من اولین فایل به نام helloworld.py را ایجاد کردهام. شما هم میتوانید همین کار را انجام دهید.
پس از یک روز طولانی کدنویسی، میخواهید ویرایشگر کد خود را ببندید، درست است؟ اینگونه پروژه باز شده را خواهید بست.
تبریک میگویم، شما آمادهسازی محیط توسعه را به پایان رساندید. بیایید کدنویسی را شروع کنیم.
مبانی پایتون
سینتکس پایتون
یک اسکریپت پایتون میتواند در شل تعاملی پایتون یا در ویرایشگر کد نوشته شود. یک فایل پایتون پسوند .py دارد.
تورفتگی در پایتون
تورفتگی (Indentation) یک فضای خالی در متن است. تورفتگی در بسیاری از زبانها برای افزایش خوانایی کد استفاده میشود؛ با این حال، پایتون از تورفتگی برای ایجاد بلوکهای کد استفاده میکند. در زبانهای برنامهنویسی دیگر، برای ایجاد بلوکهای کد به جای تورفتگی از آکولاد استفاده میشود. یکی از باگهای رایج هنگام نوشتن کد پایتون، تورفتگی نادرست است.
کامنتها
کامنتها نقش مهمی در افزایش خوانایی کد دارند و به توسعهدهندگان اجازه میدهند یادداشتهایی را در کد خود بگذارند. در پایتون، هر متنی که قبل از آن نماد هشتگ (#) آمده باشد، به عنوان کامنت در نظر گرفته میشود و هنگام اجرای کد، اجرا نمیشود.
مثال: کامنت تک خطی
# این اولین کامنت است
# این دومین کامنت است
# پایتون در حال تسخیر جهان است
مثال: کامنت چند خطی
اگر به یک متغیر اختصاص داده نشود، میتوان از سه کوتیشن برای کامنت چند خطی استفاده کرد.
"""این یک کامنت چند خطی است
کامنت چند خطی چندین خط را در بر میگیرد.
پایتون در حال تسخیر جهان است
"""
انواع داده
در پایتون چندین نوع داده وجود دارد. بیایید با رایجترین آنها شروع کنیم. انواع دادههای مختلف در بخشهای دیگر به تفصیل پوشش داده خواهند شد. در حال حاضر، فقط بیایید انواع دادههای مختلف را مرور کنیم و با آنها آشنا شویم. لازم نیست اکنون درک کاملی داشته باشید.
عدد
- صحیح (Integer): اعداد صحیح (منفی، صفر و مثبت) مثال: ... -۳، -۲، -۱، ۰، ۱، ۲، ۳ ...
- اعشاری (Float): عدد اعشاری مثال ... -۳.۵، -۲.۲۵، -۱.۰، ۰.۰، ۱.۱، ۲.۲، ۳.۵ ...
- مختلط (Complex) مثال 1 + j، 2 + 4j
رشته (String)
مجموعهای از یک یا چند کاراکتر زیر یک کوتیشن تکی یا دوتایی. اگر یک رشته بیش از یک جمله باشد، از سه کوتیشن استفاده میکنیم.
مثال:
'Asabeneh'
'Finland'
'Python'
'I love teaching'
'I hope you are enjoying the first day of 30DaysOfPython Challenge'
بولین (Booleans)
یک نوع داده بولین یا مقدار True است یا False. T و F همیشه باید با حرف بزرگ باشند.
مثال:
True # آیا چراغ روشن است؟ اگر روشن باشد، مقدار True است
False # آیا چراغ روشن است؟ اگر خاموش باشد، مقدار False است
لیست (List)
لیست پایتون یک مجموعه مرتب است که اجازه میدهد آیتمهایی از انواع داده مختلف را ذخیره کند. یک لیست شبیه به یک آرایه در جاوا اسکریپت است.
مثال:
[0, 1, 2, 3, 4, 5] # همه از یک نوع داده هستند - لیستی از اعداد
['Banana', 'Orange', 'Mango', 'Avocado'] # همه از یک نوع داده هستند - لیستی از رشتهها (میوهها)
['Finland','Estonia', 'Sweden','Norway'] # همه از یک نوع داده هستند - لیستی از رشتهها (کشورها)
['Banana', 10, False, 9.81] # انواع داده مختلف در لیست - رشته، عدد صحیح، بولین و اعشاری
دیکشنری (Dictionary)
یک شیء دیکشنری پایتون، مجموعهای نامرتب از دادهها در قالب زوج کلید-مقدار است.
مثال:
{
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'country':'Finland',
'age':250,
'is_married':True,
'skills':['JS', 'React', 'Node', 'Python']
}
تاپل (Tuple)
تاپل یک مجموعه مرتب از انواع دادههای مختلف مانند لیست است اما تاپلها پس از ایجاد قابل تغییر نیستند. آنها غیرقابل تغییر (immutable) هستند.
مثال:
('Asabeneh', 'Pawel', 'Brook', 'Abraham', 'Lidiya') # نامها
('Earth', 'Jupiter', 'Neptune', 'Mars', 'Venus', 'Saturn', 'Uranus', 'Mercury') # سیارات
مجموعه (Set)
مجموعه، یک گردآوری از انواع داده شبیه به لیست و تاپل است. برخلاف لیست و تاپل، مجموعه یک گردآوری مرتب از آیتمها نیست. مانند ریاضیات، مجموعه در پایتون فقط آیتمهای منحصر به فرد را ذخیره میکند.
در بخشهای بعدی، به تفصیل در مورد هر یک از انواع دادههای پایتون صحبت خواهیم کرد.
مثال:
{2, 4, 3, 5}
{3.14, 9.81, 2.7} # ترتیب در مجموعه مهم نیست
بررسی انواع داده
برای بررسی نوع داده یک داده/متغیر خاص، از تابع type استفاده میکنیم. در ترمینال زیر انواع دادههای مختلف پایتون را مشاهده خواهید کرد:
فایل پایتون
ابتدا پوشه پروژه خود، 30DaysOfPython را باز کنید. اگر این پوشه را ندارید، یک پوشه به نام 30DaysOfPython ایجاد کنید. داخل این پوشه، یک فایل به نام helloworld.py ایجاد کنید. حال، بیایید کاری را که در شل تعاملی پایتون انجام دادیم، با استفاده از ویژوال استودیو کد انجام دهیم.
شل تعاملی پایتون بدون استفاده از print خروجی را چاپ میکرد اما در ویژوال استودیو کد برای دیدن نتیجه باید از تابع داخلی print() استفاده کنیم. تابع داخلی print() یک یا چند آرگومان را به صورت print('argument1', 'argument2', 'argument3') میگیرد. مثالهای زیر را ببینید.
مثال:
نام فایل helloworld.py است
# روز ۱ - چالش 30DaysOfPython
print(2 + 3) # جمع (+)
print(3 - 1) # تفریق (-)
print(2 * 3) # ضرب (*)
print(3 / 2) # تقسیم (/)
print(3 ** 2) # توان (**)
print(3 % 2) # باقیمانده (%)
print(3 // 2) # تقسیم صحیح (//)
# بررسی انواع داده
print(type(10)) # Int
print(type(3.14)) # Float
print(type(1 + 3j)) # Complex number
print(type('Asabeneh')) # String
print(type([1, 2, 3])) # List
print(type({'name':'Asabeneh'})) # Dictionary
print(type({9.8, 3.14, 2.7})) # Set
print(type((9.8, 3.14, 2.7))) # Tuple
برای اجرای فایل پایتون، تصویر زیر را بررسی کنید. شما میتوانید فایل پایتون را با کلیک روی دکمه سبز در ویژوال استودیو کد یا با تایپ python helloworld.py در ترمینال اجرا کنید.
🌕 شما شگفتانگیز هستید. شما به تازگی چالش روز اول را به پایان رساندید و در مسیر بزرگی قرار دارید. اکنون چند تمرین برای مغز و عضلات خود انجام دهید.
💻 تمرینات - روز ۱
تمرین: سطح ۱
- نسخه پایتونی که استفاده میکنید را بررسی کنید.
- شل تعاملی پایتون را باز کرده و عملیات زیر را انجام دهید. عملوندها ۳ و ۴ هستند.
- جمع (+)
- تفریق (-)
- ضرب (*)
- باقیمانده (%)
- تقسیم (/)
- توان (**)
- تقسیم صحیح (//)
- رشتههای زیر را در شل تعاملی پایتون بنویسید:
- نام شما
- نام خانوادگی شما
- کشور شما
- من از ۳۰ روز پایتون لذت میبرم
- نوع دادههای زیر را بررسی کنید:
- 10
- 9.8
- 3.14
- 4 - 4j
- ['Asabeneh', 'Python', 'Finland']
- نام شما
- نام خانوادگی شما
- کشور شما
تمرین: سطح ۲
- یک پوشه به نام day_1 در داخل پوشه 30DaysOfPython ایجاد کنید. داخل پوشه day_1، یک فایل پایتون به نام helloworld.py ایجاد کنید و سوالات ۱، ۲، ۳ و ۴ را تکرار کنید. به یاد داشته باشید که هنگام کار بر روی یک فایل پایتون از print() استفاده کنید. به دایرکتوریای که فایل خود را ذخیره کردهاید بروید و آن را اجرا کنید.
تمرین: سطح ۳
- برای انواع دادههای مختلف پایتون مانند عدد (صحیح، اعشاری، مختلط)، رشته، بولین، لیست، تاپل، مجموعه و دیکشنری یک مثال بنویسید.
- فاصله اقلیدسی بین (۲, ۳) و (۱۰, ۸) را پیدا کنید.
🎉 تبریک میگویم! 🎉