Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lectures/_toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ parts:
chapters:
- file: about_py
- file: getting_started
# - file: python_by_example
- file: python_by_example
# - file: functions
# - file: python_essentials
# - file: oop_intro
Expand Down
75 changes: 53 additions & 22 deletions lectures/about_py.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,15 @@ _ کریس ویگینس
در این درس:


* پایتون را معرفی خواهیم کرد

پایتون را معرفی خواهیم کرد
* برخی از ویژگی های پایتون را نشان خواهیم داد

برخی از ویژگی های پایتون را نشان خواهیم داد
* در رابطه با ارتباط پایتون و هوش مصنوعی بحث خواهیم کرد

در رابطه با ارتباط پایتون و هوش مصنوعی بحث خواهیم کرد

توضیح می دهیم که چرا پایتون زبان محبوب ما برای محاسبات علمی است

و شما را به ادامه ی مسیر و اهدافتان تشویق می کنیم.
* توضیح می دهیم که چرا پایتون زبان محبوب ما برای محاسبات علمی است

* و شما را به ادامه ی مسیر و اهدافتان تشویق می کنیم.

همچنین شما نیازی به درک همه ی مواردی که در این درس خواهید دید، ندارید؛ زیرا در ادامه ی دروس تمامی جزئیات را آموزش خواهیم داد.

Expand All @@ -60,17 +58,41 @@ _ کریس ویگینس

این موضوع مهم است زیرا:

پولمان را پس انداز می کند، به جای یک شرکت انتفاعی، توسط جامعه ی کاربران کنترل می شود و قابلیت تکثیر و [علم باز](https://en.wikipedia.org/wiki/Open_science) را تشویق می کند.
* پولمان را پس انداز می کند

* به جای یک شرکت انتفاعی، توسط جامعه ی کاربران کنترل می شود

* و قابلیت تکثیر و [علم باز](https://en.wikipedia.org/wiki/Open_science) را تشویق می کند.

### کاربردهای رایج پایتون

پایتون یک زبان همه منظوره است که تقریبا در همه ی حوزه های کاربردی از جمله موارد زیر استفاده می شود:

هوش مصنوعی، محاسبات علمی، ارتباطات، توسعه ی وب، CGI و رابط های کاربری گرافیکی، توسعه ی بازی، محتوای چندرسانه ای و غیره.
* هوش مصنوعی

* محاسبات علمی

* ارتباطات

* توسعه ی وب

* رابط های کاربری گرافیکی و CGI

* توسعه ی بازی

* محتوای چندرسانه ای

* و غیره.

همچنین بطور گسترده ای توسط شرکت های زیر و بسیاری دیگر از شرکت ها مورد استفاده و پشتیبانی قرار می گیرد:

[Google](https://www.google.com/)، [OpenAI](https://openai.com/)، [Netflix](https://www.netflix.com/)، [Meta](https://opensource.fb.com/)، [Dropbox](https://www.dropbox.com/)، [Amazon](https://www.amazon.com/)، [Reddit](https://www.reddit.com/)
* [Google](https://www.google.com/)
* [OpenAI](https://openai.com/)
* [Netflix](https://www.netflix.com/)
* [Meta](https://opensource.fb.com/)
* [Dropbox](https://www.dropbox.com/)
* [Amazon](https://www.amazon.com/)
* [Reddit](https://www.reddit.com/)


### جایگاه محبوبیت
Expand Down Expand Up @@ -276,7 +298,15 @@ value

همچنین می توانید نمونه های بیشتری را در [گالری تصاویر Matplotlib](https://matplotlib.org/stable/gallery/index.html) بیابید.

سایر کتابخانه های گرافیکی عبارتند از [seaborn](https://seaborn.pydata.org/)، [Plotly](https://plot.ly/python/) (یک رابط سطح بالا برای Matplotlib می باشد)، [Altair](https://altair-viz.github.io/) و [Bokeh](http://bokeh.pydata.org/en/latest/) .
سایر کتابخانه های گرافیکی عبارتند از:

* [Plotly](https://plot.ly/python/)

* [seaborn](https://seaborn.pydata.org/)(یک رابط سطح بالا برای Matplotlib می باشد)

* [Altair](https://altair-viz.github.io/)

* [Bokeh](http://bokeh.pydata.org/en/latest/) .

همچنین برای مشاهده نمونه های بیشتری از نمودارهای رسم شده با استفاده از کتابخانه های مختلف، می توانید به [گالری نمودارهای پایتون](https://www.python-graph-gallery.com/) مراجعه کنید.

Expand Down Expand Up @@ -323,26 +353,27 @@ plt.show()

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

[SymPy](http://www.sympy.org/): برای جبر نمادین، از جمله محاسبه ی حد، مشتق و انتگرال
* [SymPy](http://www.sympy.org/): برای جبر نمادین، از جمله محاسبه ی حد، مشتق و انتگرال

* [statsmodels](http://statsmodels.sourceforge.net/): برای توابع آماری

[statsmodels](http://statsmodels.sourceforge.net/): برای توابع آماری
* [scikit-learn](http://scikit-learn.org/): برای یادگیری ماشین

[scikit-learn](http://scikit-learn.org/): برای یادگیری ماشین
* [Keras](https://keras.io/): برای یادگیری ماشین

[Keras](https://keras.io/): برای یادگیری ماشین
* [Pyro](https://pyro.ai/) و [PyStan](https://pystan.readthedocs.org/en/latest/): برای تحلیل داده های بیزی

[Pyro](https://pyro.ai/) و [PyStan](https://pystan.readthedocs.org/en/latest/): برای تحلیل داده های بیزی
* [GeoPandas](https://geopandas.org/en/stable/): برای تحلیل داده های مکانی

[GeoPandas](https://geopandas.org/en/stable/): برای تحلیل داده های مکانی
* [Dask](https://docs.dask.org/en/stable/): برای پردازش موازی

[Dask](https://docs.dask.org/en/stable/): برای پردازش موازی
* [Numba](http://numba.pydata.org/): اجرای پایتون با سرعت برابر با کدهای سطح پایین قابل اجرا توسط سخت افزار

[Numba](http://numba.pydata.org/): اجرای پایتون با سرعت برابر با کدهای سطح پایین قابل اجرا توسط سخت افزار
* [CVXPY](https://www.cvxpy.org/): برای بهینه سازی محدب

[CVXPY](https://www.cvxpy.org/): برای بهینه سازی محدب
* [scikit-image](https://scikit-image.org/) و [OpenCV](https://opencv.org/): برای پردازش و تحلیل داده های تصویری

[scikit-image](https://scikit-image.org/) و [OpenCV](https://opencv.org/): برای پردازش و تحلیل داده های تصویری
* [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/): XML و HTML برای استخراج داده ها از فایل های

[BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/): XML و HTML برای استخراج داده ها از فایل های

در این مجموعه خواهیم آموخت که چگونه از بسیاری از این کتابخانه ها برای کارهای محاسباتی علمی در اقتصاد و امور مالی استفاده کنیم.
88 changes: 49 additions & 39 deletions lectures/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,18 @@ kernelspec:
# بیاین شروع کنیم

## مقدمه
در این بخش شما خواهید آموخت که چگونه:

از پایتون در فضای ابری استفاده کنید
در این بخش شما خواهید آموخت که چگونه:

یک محیط محلی پایتون راه اندازی و اجرا کنید
1. از پایتون در فضای ابری استفاده کنید

دستورات ساده ی پایتون را اجرا کنید
1. یک محیط محلی پایتون راه اندازی و اجرا کنید

یک نمونه از برنامه را اجرا کنید
1. دستورات ساده ی پایتون را اجرا کنید

1. یک نمونه از برنامه را اجرا کنید

کتابخانه های برنامه نویسی موردنیاز برای این دوره را نصب کنید
1. کتابخانه های برنامه نویسی موردنیاز برای این دوره را نصب کنید


## پایتون در فضای ابری
Expand Down Expand Up @@ -55,8 +56,9 @@ kernelspec:
نکات:


اطمینان حاصل کنید که نسخه ی مناسب سیستم عامل خود را نصب می کنید.
اگر در طول فرایند نصب از شما پرسیده شد که آیا آناکوندا را به عنوان نصب پیش فرض پایتون انتخاب می کنید، گزینه "بله" را انتخاب کنید.
* اطمینان حاصل کنید که نسخه ی مناسب سیستم عامل خود را نصب می کنید.

* اگر در طول فرایند نصب از شما پرسیده شد که آیا آناکوندا را به عنوان نصب پیش فرض پایتون انتخاب می کنید، گزینه "بله" را انتخاب کنید.


### به روزرسانی آناکوندا
Expand All @@ -65,7 +67,7 @@ kernelspec:

1. یک ترمینال باز کنید

2.عبارت ` conda update anaconda ` را تایپ کنید
1. عبارت ` conda update anaconda ` را تایپ کنید


برای اطلاعات بیشتر درباره کوندا، در ترمینال عبارت " conda help " را تایپ کنید.
Expand All @@ -74,9 +76,11 @@ kernelspec:
[ژوپیتر](http://jupyter.org/) نوت بوک ها یکی از چندین راه های قابل دسترس برای ارتباط برقرار کردن با پایتون هستند.
ژوپیتر نوت بوک ها از یک رابط مبتنی بر مرورگر برای دسترسی به پایتون استفاده می کنند که دارای ویژگی های زیر است:

قابلیت نوشتن و اجرای دستورات پایتون
خروجی قالب بندی شده در مرورگر، شامل جداول، نمودارها، انیمیشن ها و غیره
امکان ترکیب متن قالب بندی شده و نمایش عبارات ریاضی
* قابلیت نوشتن و اجرای دستورات پایتون

* خروجی قالب بندی شده در مرورگر، شامل جداول، نمودارها، انیمیشن ها و غیره

* امکان ترکیب متن قالب بندی شده و نمایش عبارات ریاضی


به دلیل این قابلیت ها، امروزه ژوپیتر یکی از ابزارهای مهم در اکوسیستم محاسبات علمی محسوب می شود.
Expand All @@ -86,10 +90,13 @@ kernelspec:

درحالیکه ژوپیتر تنها روش برنامه نویسی در پایتون نیست، اما بهترین گزینه برای موقعیت هایی است که:

می خواهید برنامه نویسی با پایتون را شروع کنید
ایده های جدید را آزمایش کنید یا فقط بخش های کوچکی از کد را بررسی کنید
قصد دارید از محیط های تعاملی قدرتمند آنلاین مانند <a href="https://research.google.com/colaboratory/">Google Colab</a> استفاده کنید
می خواهید ایده های علمی خود را با دانشجویان یا همکاران خود به اشتراک بگذارید و با آنها همکاری کنید
* می خواهید برنامه نویسی با پایتون را شروع کنید

* ایده های جدید را آزمایش کنید یا فقط بخش های کوچکی از کد را بررسی کنید

* قصد دارید از محیط های تعاملی قدرتمند آنلاین مانند [Google Colab](https://research.google.com/colaboratory/) استفاده کنید

* می خواهید ایده های علمی خود را با دانشجویان یا همکاران خود به اشتراک بگذارید و با آنها همکاری کنید

این مجموعه دروس نیز برای اجرا در ژوپیتر نوت بوک ها طراحی شده اند.

Expand All @@ -99,19 +106,20 @@ kernelspec:

برای اینکار می توانید:

در منوی برنامه های خود به دنبال Jupyter بگردید
یک ترمینال باز کنید و دستور <code>jupyter notebook</code>را اجرا کنید
* در منوی برنامه های خود به دنبال Jupyter بگردید

**کاربران ویندوز باید به جای "ترمینال" از "Anaconda Command Prompt" استفاده کنند.**
* یک ترمینال باز کنید و دستور `jupyter notebook`را اجرا کنید
* کاربران ویندوز باید به جای "ترمینال" از "Anaconda Command Prompt" استفاده کنند.

اگر روش دوم را انتخاب کنید، با چیزی مشابه تصویر زیر رو به رو خواهید شد.

![ترمینال](images/getting-started/starting_nb.png)

خروجی نشان می دهد که نوت بوک در `/http://localhost:8888` در حال اجرا است.

<code>localhost</code> اسم رایانه ی محلی شماست
8888 <a href="https://research.google.com/colaboratory/">شماره پورتی</a> است که رایانه ی شما از آن استفاده می کند
* `localhost` اسم رایانه ی محلی شماست

* `8888` [شماره پورتی](https://en.wikipedia.org/wiki/Port_%28computer_networking%29) است که رایانه ی شما از آن استفاده می کند


بنابراین، هسته ی ژوپیتر در حال دریافت دستورات پایتون از طریق پورت 8888 در رایانه ی محلی شماست.
Expand Down Expand Up @@ -155,22 +163,25 @@ kernelspec:

دوحالت اصلی وجود دارد:

1.حالت ویرایش (Edit mode)
1. حالت ویرایش (Edit mode)

* با یک کادر سبز دور سلول و یک مکان نمای چشمک زن مشخص می شود.

با یک کادر سبز دور سلول و یک مکان نمای چشمک زن مشخص می شود.
هر چیزی که تایپ کنید، به همان شکل در سلول نوشته می شود.
* هر چیزی که تایپ کنید، به همان شکل در سلول نوشته می شود.


2.حالت فرمان (Command mode)
1. حالت فرمان (Command mode)

کادر سبز با یک کادر آبی جایگزین می شود.
کلیدهای صفحه کلید به عنوان فرمان تفسیر می شوند. (مثلا با زدن کلید <code>b</code> ، یک سلول جدید در زیر سلول فعلی ایجاد می شود).
* کادر سبز با یک کادر آبی جایگزین می شود.

* کلیدهای صفحه کلید به عنوان فرمان تفسیر می شوند. (مثلا با زدن کلید `b` ، یک سلول جدید در زیر سلول فعلی ایجاد می شود).


برای جا به جایی بین حالت ها:

برای رفتن از حالت ویرایش به حالت فرمان: کلید <code>Esc</code> یا <code>Ctrl + M</code> را بزنید.
برای رفتن از حالت فرمان به حالت ویرایش: کلید <code>Enter</code> را فشار دهید یا درون یک سلول کلیک کنید.
* برای رفتن از حالت ویرایش به حالت فرمان: کلید `Esc` یا `Ctrl-M` را بزنید.

* برای رفتن از حالت فرمان به حالت ویرایش: کلید `Enter` را فشار دهید یا درون یک سلول کلیک کنید.

وقتی به این رفتار حالت محور عادت کنید، کار با ژوپیتر نوت بوک بسیار سریع و کارآمد خواهد بود.

Expand Down Expand Up @@ -223,13 +234,12 @@ plt.show()
در جلسه ی قبل این خط از کد را اجرا کردیم: `import numpy as np`


Numpy یک کتابخانه ی عددی است که به طور گسترده با آن کار خواهیم کرد.
* Numpy یک کتابخانه ی عددی است که به طور گسترده با آن کار خواهیم کرد.


بعد از این دستور، می توانیم به توابع کتابخانه Numpy با استفاده از نحو `np.function_name`دسترسی داشته باشیم.

برای مثال بیاید دستور <code>np.random.randn(3)</code> را امتحان کنید.

* برای مثال بیاید دستور `np.random.randn(3)` را امتحان کنید.

می توانیم ویژگی های مختلف `np` را با استفاده از کلید Tab بررسی کنیم.

Expand Down Expand Up @@ -383,9 +393,9 @@ print("foobar")

اگر با کدی مواجه شدید که در یک فایل با پسوند `*.py` ذخیره شده است، لازم است به این دو سوال توجه کنید:

1.چگونه باید آن را اجرا کرد؟
1. چگونه باید آن را اجرا کرد؟

2.چگونه می توان آن را ویرایش یا تغییری در آن اعمال کرد؟
1. چگونه می توان آن را ویرایش یا تغییری در آن اعمال کرد؟

برای این کارها شما دو گزینه پیش روی خود دارید!

Expand All @@ -410,8 +420,8 @@ print("foobar")
یک ویرایشگر خوب امکانات زیر را ارائه می دهد:


فرمان های کارآمد برای ویرایش متن(مثل کپی، جایگذاری، جست وجو و جایگزینی)
برجسته سازی نحوی (syntax highlighting) برای خوانایی بهتر کد و امکانات مشابه دیگر
* فرمان های کارآمد برای ویرایش متن(مثل کپی، جایگذاری، جست وجو و جایگزینی)
* برجسته سازی نحوی (syntax highlighting) برای خوانایی بهتر کد و امکانات مشابه دیگر


در حال حاضر، یکی از محبوب ترین ویرایشگرهای متنی برای برنامه نویسی [VS Code](https://code.visualstudio.com/) است، که کاربری بسیار آسانی دارد و افزونه های باکیفیت زیادی برای آن عرضه شده است.
Expand All @@ -434,14 +444,14 @@ print("foobar")

اکنون وقت آن است که:

1.مرورگر خود را اجرا کنید (یا اگر باز است، یک تب جدید باز کنید.)
1. مرورگر خود را اجرا کنید (یا اگر باز است، یک تب جدید باز کنید.)

2.آدرسی که در مرحله قبل داده شده (مثلا `http://localhost:8888`) را در نوار آدرس وارد کنید.
1. آدرسی که در مرحله قبل داده شده (مثلا `http://localhost:8888`) را در نوار آدرس وارد کنید.

اکنون باید بتوانید یک جلسه ی معمولی از نوت بوک ژوپیتر را اجرا کنید.

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

```{exercise-end}
```
Expand Down
Binary file added lectures/images/python_by_example/pbe_ex2_fig.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading