زبانی به شیرینی عید!!

به نظرم یکی از جذاب‌ترین کارایی که یک برنامه نویس تو ایام تعطیلی و بیکاریش و بخصوص تعطیلات عید میتونه انجام بده, یادگیری یک زبان برنامه‌نویسی جدیده.این مطلب به خاطر داشتن نمونه کد در محیط ویرگول خوب نمایش داده نمیشود. برای مشاهده کامل نوشته به آدرس نوشته در بلاگم مراجعه کنین.http://ashkanam.ir/blog/sweet_python/منم چند وقتی بود دنبال یک فرصت مناسب میگشتم تا با خیال راحت بشینم و اطلاعاتمو در مورد یکی از شیرین‌ترین زبان‌های موجود یعنی پایتون تکمیل کنم.توی این پست میخوام در مورد پایتون یکم بنویسم, اما قطعن نمیخوام مثله بقیه جاها شروع کنم و از تاریخچه بگم و کی خلقش کرده و اینجور حرفا … این چیزا با یک سرچ ساده توی نت پیدا میشن.پایتون که یک زبان متن‌بازه (Open Source) , میشه گفت جزو معدود زبان‌هایی هست که برای خلق و توسعش از یک فلسفه و ایدئولوژیک خاصی پیروی میکنه و همیشه سعی میکنه خودشو توی همون مسیر نگه داره. واسه همین یک سری جذابیت‌های خاصی داره که جای دیگه کمتر میبینین. مثلن اعتقاد به خوانایی و سادگی هر چه بیشتر کد, نزدیک کردنش به زبان انسان, ساختار قابل فهم و بدون پیچیدگی, پرهیز از تکرار کردن بیخود کد و اینکه برای هر کاری سعی کرده فقط یک راه حل بزاره و برنامه‌نویس رو با متدها و توابع اضافه و بی‌کاربرد گیج نکنه.با این زبان و دنیای عظیم کتابخونه‌ها و فریم‌ورک‌هایی که واسش نوشته شده تقریبن میتونین تو هر حوزه ای که دوست داشتین ازش باقدرت استفاده کنین. اگه بخوام به چند نمونه از پرکاربردترین‌ها و معروف‌تریناش اشاره کنم میشه به:اتصال چندسکویی PyQt برای طراحی رابط‌کاربری و برنامه های تحت دسکتاپ(لینوکس-ویندوز-مک) – جایگزین خوبی برای PyGTK, wxpython, Tkinterفریم‌ورک Kivy برای اپلیکیشن های موبایلی (Android-ios-windows-mac-Raspberry Pi)فریم‌ورک Flask, Django برای توسعه برنامه های تحت وبکتابخانه NumPy , SciPy برای داده‌کاوی و یادگیری‌ماشین و کارهای آماری با داده‌های بزرگ (توی این زمینه کتابخانه‌های مشتق‌شده قوی زیادی هستن)کتابخانه Matplotlib برای مصورسازی داده‌ها و رسم گراف و نمودار برای داده‌های بزرگ (توی این زمینه هم کتابخانه‌های مشتق‌شده قوی زیادی هستن)کتابخانه Panda3D برای ساخت بازی های سه بعدی و pygame برای بازی‌های دوبعدیاشاره کرد.اینارو گفتم تا ببینین که این زبان چه طیف وسیع و بزرگی از دنیای برنامه‌نویسی رو شامل میشه و با مسلط شدن بهش تقریبن یک آچارفرانسه همه کاره میشین.حالا برای اینکه یکم کاربردی‌تر با فلسفه این زبان مفسریه (+) شیرین, بیشتر آشنا بشین یک چندتا مثال عملی توی کد میزنم تا به چشمتون جذابیت رو ببینین.اینجا یک مثال برای swap کردن مقادیر دومتغییر رو میبینین:1234a = 5b = 10a, b = b, aprint(a, b) #Output Print a = 10 , b = 5اینم یک کد دیگه که توی اون قدرت حلقه‌های پایتون رو میبینین:123456789101112131415161718192021people = ['Jonas', 'Julio', 'Mike', 'Mez']ages = [25, 30, 31, 39]nationalities = ['Belgium', 'Spain', 'England', 'Bangladesh']for person, age, nationality in zip(people, ages, nationalities): print(person, age, nationality)"""#Output :Jonas 25 BelgiumJulio 30 SpainMike 31 EnglandMez 39 Bangladesh"""for position, person in enumerate(people): print(position, person)"""#Output :۰ Jonas۱ Julio۲ Mike۳ Mez"""با این چندخط کد زیر هم به راحتی یک آرایه رو مرتب، برعکس کرده و در آخرم چاپشون میکنه:1234elements = [22, 333, 0, -22, 1000]view = reversed(sorted(elements))for element in view: print(element)با این چندخط کد ساده زیر هم یک رشته رو وارون میکنیم و چاپ میکنیمش:1234myString = "Ashkanam.ir"myString_Reverse = myString[::-1]print(myString_Reverse)# Output: ri.manakhsAاینجاهم اول شکل ساده دستور شرطی توی پایتون رو میبینین:123456age = 15if age < 18: print("kid")else: print("adult")# Output: kidکه میشه همین دستور رو به شکل زیر بنویسم و تقریبن شده یک متن انگلیسی ?123age = 15print('kid' if age < 18 else 'adult')# Output: kidتمام این حرفارو زدیم تا تهش به این نتیجه برسیم که اگر تاحالا سمت این زبان نرفتین, حتمن یک تست بزنین … خودش دیگه شمارو میکشونه تا تهش. واسه شروع هم منابع خوب فارسی کم نیست و باز هم با یک سرچ ساده توی نت به سایت‌ها, ویدئوها و کتابای جالبی هم به زبان فارسی و هم انگلیسی دست پیدا میکنین.البته حتمن دقت کنین که آموزش‌هایی که دارین از روش جلو میرین منطبق با نسخه ۳ پایتون باشه. یکسری تفاوت‌های جزئی(کلی :)) ) با نسخه‌های قبلیش داره که برای شروع زیاد مهم نیستن و قطعن بهینه‌تر و کاملتر شده اما خب هنوز خیلی از کتابخانه‌های نوشته شده, از نسخه۳ پشتیبانی نمیکنن. این نکته رو حتمن باید قبل از استارت‌زدن برای پروژه‌های بزرگ دقت کنین که بعدش به مشکل نخورین و البته یکی دیگه از اون اصول جالب پایتون اینه که میگه اگر دیدین کدتون داره کار میکنه و اتفاقی نیفتاد, ولش کنین و نیازی نیس با نسخه خاصی منطبقش کنین ?این زبان هم مثه خیلی از زبان‌های دیگه براش IDE های زیادی هست که بسته به کاربرد و سلیقه کاربر میشه ازشون استفاده کرد اما در نهایت پیشنهادم برای IDE این زبان که برای شروع بسیار مناسبه و باهاش به راحتی میتونین از فریم ورک‌ها و کتابخانه‌های مختلف این زبان استفاده کنین, PyCharm هستش که متاسفانه پولیه, اما با ایمیل دانشجویی بهتون لایسنس رایگان یکساله میده ?اگرم از لینوکس استفاده میکنین که پایتون از اول روش نصب هست, ولی بازم PyCharm پیشنهاد میشه.پ.ن: شاید بگین اون عکس بالای پست چه ربطی به پایتون داره؟! اما کاملن مرتبطه. اون افرادی که بالا میبینین بازیگرای سریال کمدی Monty Python’s Flying Circus هستن که آقای راسوم(Guido Van Rossum) به دلیل علاقش به این سریال اسم پایتون رو انتخاب کرده و لوگوی پایتون که عکس یک مار پایتون هست, در واقع هیچ ربطی به فلسفه اسمش نداره :))