پایتون نه تنها همه کاره ترین زبان بلکه انعطاف پذیر ترین زبان در ترکیب ویژگی های مختلف هم هست. دستور یا کامند های جادویی هم یکی از ویژگی های جدید پایتونه.
دستور های جادویی دقیقا چی هستند؟ دستور های جادویی که توسط هسته ipython اراعه شدن و به پایتون معمولی اضافه شده اند.
این دستور های جادویی معمولا با پیشوند % مشخص میشوند
این دستورات جادویی میانبر هایی هستند که برای حل مساعل معمولی به وجود امده اند.
دو نوع دستور جادویی وجود دارد. انهایی که پیشوند % دارند و انهایی که پیشوند%% دارند.
پیشوند % نشون میده که این دستور روی یک خط اجرا میشود و پیشوند %% اجازه میده که این دستور روی یک سلول(بلوک) اجرا بشه
در ادامه لیستی از دستورات جادویی و پیاده سازی انها در محیط jupyter notebook اورده شده است.
همون طور که داریم در محیط ژوپیتر کار میکنیم میخوایم که یک فایل خارجی رو اجرا کنیم .
فایلی به اسم myCode.py داریم که دستورات بالا را اجرا میکند.
با دستور run% فایل myCode.py اجرا میشه. اگر این فایل در جای دیگری بود باید مسیر یا path اون رو هم ذکر کنیم. خودتون میدونید که . مثلا C:/myfolder/myCode.py.
با %run میتونیم یک jupyter notebooks خارجی رو هم اجرا کنیم.
ایا تا حالا فکر کردید یک سلول از کد شما چقدر زمان میبره تا اجرا بشه؟
دستور جادویی time زمان اجرا یک بلوک از کد شما رو محاسبه میکنه.
از انجا که ما با یک سلول کد سر و کار داریم از پیشوند %% قبل از time استفاده میکنیم.
سلول بالا یک حلقه داره که یه کاری رو انجام میده. time%% زمان لازم برای اجرا این حلقه رو محاسبه میکنه.
بعضی وقت ها نیاز داریم محتوایک سلول رو در یک فایل خارجی ذخیره کنیم.
به جای کپی کردن همه چیز و ایجاد یک فایل جدید میتونیم با دستورwritefile مستقیما محتوا سلول رو در اون فایل جایگزین یا overwrite کنیم.
دقت کنید که %% رو باید قبل از دستوری که به محتوا یک فایل اشاره میکنه قرار بدیم
وقتی فایلی به اسم myCode.py وجود داشته باشد عبارت"Overwriting myCode.py" نمایش داده میشود که میگه : محتوا این سلول در فایل myCode.py جایگزین یا overwrite میشه.
گاهی اوقات نیاز داریم که محتوا یک فایل خارجی رو در کد مون کپی کنیم. به جای فرایند زمانبر پیدا کردن , باز کردن و کپی کردن محتوا مورد نیاز میتوانیم از دستو pycat% استفاده کنیم.
این همه محتوا فایل myCode.py رو نمایش میده. میشه گفت این دستور برعکس دستور writefile% عمل میکنه.
محکم بنشینید . هوز چند تا دستور جادوی دیگه داریم.
این دستور جادویی لیست همه متغیر های تعریف شده در کل notebook رو نمایش میدهد.
فرض کنید سه تا متغیر داریم.
a = "hello" b = "Good Morning" c = 1
با دستور who% میتونیم لیست همه متغیر های تعریف شده رو ببینیم.
البته میتونیم لیست نوع خاصی از متغیر ها رو هم ببینیم. نوع متغیر باید بعد از دستور نوشته شود.
این دستور جادویی اجازه میده که متغیر ها رو بین jupyter notebook های مختلف به اشتراک بگذاریم. با دستور store% باید متغیر اصلی رو مشخص کنیم.
حالا میتونیم از notebook دیگه از این متغیر استفاده کنیم.
دستور html%% اجازه میده که در یک سلول کد html بنویسیم. اون سلول الان مثل یک ادیتور html عمل میکنه.
کد زیر یک جدول ساده رو با html نشون میده.
%%html <html> <body> <table> <tr> <th>Name</th> <th>Country</th> <th>Age</th> </tr> <tr> <td>Sid</td> <td>India</td> <td>22</td> </tr> <tr> <td>Dave</td> <td>UK</td> <td>28</td> </tr> </table> </body> </html>
نکته : میتونید کد های جاوااسکریپت رو هم با دستور جادویی js%% اجرا کنید. مثل دستور جادویی html
دستور جادویی %matplotlib inline یکی از محبوب ترین هاست. این دستور به Jupyter notebook اجازه میده که نمودار های matplotlib در این محیط نمایش داده بشه.
import random import matplotlib.pyplot as plt %matplotlib inline
کتابخانه هایی که لازم داریم رو import کردیم.
حالا دو تا لیست از نقطه های رندوم رو ایجاد میکنیم.
a = [] b = [] for i in range(10): a.append(random.randint(0,10)) b.append(random.randint(0,10))
حالا نمودار پراکندگی نقاط رو میکشیم.
plt.scatter(a,b)
دستور جادویی %matplotlib inline اجازه میده که نمودار رو در محیط notebook ببینیم.
اطلاعات شی ها
دستور جادویی pinfo% اطلاعاتی در مورد یک شی که بهش پاس شده رو نمایش میده. مثل متد object?.
در ادامه من یک a که یک String است رو به این دستور پاس کردم تا اطلاعات اش رو ببینم.
a = "The World Makes Sense!" %pinfo a
خروجی این دستور همه اطلاعات موجود این String رو نمایش میدهد.
به کمک دستور lsmagic% میتونید همه دستور های جاویی رو ببینید.
%lsmagic
این بود ۹ دستور جادویی برتر که کمک میکنه بهره وری رو افزایش بدید و برای خودتون زمان بخرید.
منبع: Medium