مجموعه عظیم زبانهای برنامه نویسی موجود را براساس ویژگیها و قابلیتهایشان به دسته های مختلفی طبقه بندی کرده اند. دسته بندیهایی نظیر شيءگرا در برابر روالگرا یا اپن سورس در برابر منبع بسته، مستقل از پلتفرم در برابر وابسته به پلتفرم، ترجمه ای در برابر تفسیری و . . . هر یک از این دسته ها نشانگر ویژگیها و امکاناتی هستند که ممکن است از یک دیدگاه خاص بسیار مفید و ارزنده محسوب شده و از دیدگاهی دیگر به عنوان محدودیت شناخته شوند. همین امر انتخاب یک زبان را برای شروع یادگیری به انتخابی دشوار تبديل ميكند. دراين ميان، زبانهای مشهور یا زبانهای پرکاربرد لزوماً انتخابهای مناسبی نخواهندبود. به عنوان مثال، زبانهایی نظیر C یا ++C به برنامه نویس این امکان را میدهند که برنامه های خود را با جزئیات بسیار بالا نوشته و با سرعت فوق العاده ای اجرا كنند. اما این سرعت بالا و کنترل شدید برنامه نویس بر تمام جزئیات به قیمت صرف زمان بیشتر برای کدنویسی و رفع اشکال کد تمام خواهد شد. نکته جالب توجه اينكه در بسیاری از موارد سرعت اجرای برنامه ها چندان مهم نیست.

درحال حاضر نیز با ارزان شدن مداوم قدرت پردازش سیستمها، بسیاری از برنامه نویسان معتقدند، هدر رفتن درصدی از نیروی پردازش پردازنده در اثر استفاده از زبانهای سطح بالا و درعوض فراهم شدن زمان بیشتر برای تمرکز برنامه نویس بر فعالیت اصلی اش یعنی کدنویسی، معامله ا ی مقرون به صرفه است. زبانی که برای شروع یادگیری انتخاب میشود در ابتدا باید ساده باشد، به برنامه نویس تفکر سیستمی و منطقی را بیاموزد، اصول کدنویسی درست را به کاربر آموزش دهد، قادر به پاسخگویی به غالب نیازهای کاربر باشد و درنهايت اینکه بهتراست به سیستمعامل یا ابزار خاص و پیچیدهای وابسته نباشد.

برهمین اساس، بسیاری پایتون را بهترین زبان برای شروع یادگیری برنامه نویسی میدانند. پایتون زبانی سطح بالا، داینامیک، اسکریپتی، تفسیری، شيءگرا، آزاد، اپنسورس و مستقل از پلتفرم است که در سال 1991 توسط گوئيدو وان روسوم ابداع شد. باید توجه داشت که معرفی پایتون به عنوان زبان مناسب مبتدیان بهمعنای کم بودن قابلیتهای آن نیست. هماکنون پایتون به عنوان یکی از قدرتمندترین ابزارهای برنامه نویسی سیستمی، برنامه نویسی وب و... مورد استفاده قرار میگیرد.

چرا پایتون؟
اگرچه ممكن است بسیاری از برنامه نویسان قديمي که با زبانهایی نظیر جاوا و C سروکار داشته اند، برنامه نویسی با پایتون را چندان جدی نگیرند و حتی آن را کودکانه بدانند، اما این امر از قابلیتهای این زبان نخواهد کاست. درعوض، تعداد زیادی از برنامه نویسان (کسانی نظیر برنامه نویسان گوگل) پایتون را به دلیل سادگی، خوانایی و امکانات فراوان به هر زبان دیگری ترجیح میدهند. طرفداران پایتون که غالباً Pythonistas نامیده میشوند، معتقدند، این زبان به قدری کامل و کار با آن به قدری لذتبخش است که برای تمام نیازهای برنامه نویسی میتوان به آن مراجعه کرد. آنها برای این ادعا دلایل فنی هم ارائه میکنند که برخی از آنها به شرح زیر است:

سادگی
پایتون زبانی بسیار ساده و مینی مالیستی است. خواندن یک برنامه خوب پایتون همانند خواندن یک متن انگلیسی است. این طبیعت شبه کد (Pseudo-Code) یکی از بزرگترین نقاط قوت پایتون است و به شما این امکان را میدهد که به جای تمرکز روی زبان بر روش حل مسئله تمرکز کنید.

سهولت یادگیری
سادگی این زبان باعث میشود، یادگیری آن از غالب زبانهای موجود ساده تر باشد. برخی عقیده دارند ، یک روز تعطیلي آخر هفته برای یادگیری دستور و قواعد زبان پایتون و بخشی از کتابخانه استاندارد آن کافی است.

آزاد و اپن سورس بودن (FLOSS)
یکی از بارزترین نمونه هایFLOSS (سرنام Free/Libre and Open Source Software) پايتون است. به عبارت ساده تر، شما میتوانید نسخه هایی از این نرم افزار را آزادانه توزیع کنید، کدهای منبع آن را بخوانید، تغییر دهید و از آن در برنامه هايتان استفاده کنید. اساس FLOSS برجامعه ای بنا شده که افراد آن دانش خود را با یکدیگر به اشتراک میگذارند. یکی از دلایل برتری پایتون نیز همین است که به صورت مداوم توسط جامعه ای که تنها خواسته اش بهتر شدن این زبان است، بررسی شده و بهبود داده میشود.

سطح بالا بودن (High-Level)
هنگام کدنویسی در پایتون لازم نیست نگران جزئیات سطح پایین باشید. مدیریت حافظه، جمع آوری پسماندها (Garbage Collection) و... همه توسط خود زبان انجام خواهدشد.

قابلیت حمل (Portable)
به واسطه طبیعت اپن سورس پایتون، این زبان به بسیاری از پلتفرمها انتقال داده شده است. تمام برنامه های شما میتوانند بدون هیچ تغییری روی تمامی این پلتفرمها اجرا شوند. البته به شرطی که با هوشیاری از قابلیتهای خاص وابسته به پلتفرم پرهیزکنید. برنامه های پایتون شما به سادگی روی لینوکس، ویندوز، FreeBSD، مک، سولاریس، آمیگا، پلی استیشن، Pocket PC و... قابل اجرا هستند.

تفسیری بودن (Interpreted)
برنامه ای که با یکی از زبانهای ترجمه ای نظیر C یا #C نوشته میشود، توسط کامپایلر و تنظیم تعداد زیادی گزینه و Flag به زبان قابل فهم ماشین تبدیل میشود. وقتی برنامه را اجرا میکنید، Loader/Linker برنامه، آن را به حافظه کپی کرده و اجرا میکند.

برخلاف این زبانها پایتون به مترجم نيازي ندارد و برنامه شما به طورمستقيم از روی کد اجرا میشود. درواقع در پشت پرده، مفسر پایتون برنامه شما را به حالتی واسطه ای به نام ByteCode تبدیل کرده و سپس اجرامیكند.

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

شيء گرایی (Object Oriented)
پایتون از هر دو شیوه برنامه نویسی شيءگرا و روالگرا به خوبی پشتیبانی میکند. در زبانهای روالگرا، برنامه برمبنای تعدادی روال یا تابع ساخته میشود که درواقع چیزی جزء قطعات کد با قابلیت استفاده دوباره نیستند. در زبانهای شيءگرا برنامه برپایه اشیايی ساخته میشود که اطلاعات و عملکرد را یکجا نگهداری میکنند. پایتون در مقایسه با زبانهایی نظیر #C یا جاوا روش بسیار ساده تری برای برنامه نویسی OOP دارد.

قابلیت توسعه (Extensible)
اگر در برنامه شما قطعه کدی حساس وجود دارد که لازم است با سرعت بالایی اجرا شود یا میخواهید الگوریتم به کاررفته در آن را مخفی کنید، میتوانید آن قسمت را به زبانC یا #C بنویسید و آن را از داخل برنامه پایتون اجرا کنید.

قابلیت جاسازی (Embeddable)
میتوان پایتون را به صورت توکار (Embedded) در برنامه های C یا #C یا زبانهای دیگر به کار برد و از اين طريق به استفادهكنندگان برنامه قابلیت اسکریپت نویسی را هدیه کرد.

کتابخــانــه استــانــــدارد غنــــــی (Extensive Library)
کتابخانه استاندارد پایتون بسیار گسترده و غنی است. این کتابخانه که به همراه نصب استاندارد پایتون در دسترس خواهد بود، میتواند گستره عظیمی از امور را نظیر Regular Expression، Document Generation، UnitTesting،Threading،Database،Web Browsing،FTP، XML، HTML ،Cryptography ،GUI وEmail پوشش دهد.

در کنار کتابخانه استاندارد پایتون، تعداد زیادی کتابخانه خوش ساخت دیگر نظیر wxPython (برای ساخت رابط گرافیکی)، Twisted (فریم ورک توسعه اینترنت)، PIL یا Python Imaging Library (برای ویرایش تصاویر) نیز در دسترس شما است.اما درنهایت شاید مهمترین دلیل طرفداران پایتون هیچ یک از موارد فوق نباشد. آنچه آنها را شیفته این زبان میکند لذتی است که از کار با چنین زبان ساده و قدرتمندی نصیب برنامه نویس خواهد شد.

چه کسانی از پایتون استفاده میکنند؟
به دلیل ماهیت اپنسورس و رایگان بودن، آمار دقیقی از استفاده کنندگان این زبان در دسترس نیست، اما شاید نامبردن تعدادی از بزرگترین شرکتهای مرتبط و غیرمرتبط با IT که از این زبان استفاده میکنند تا حدی نشاندهنده عمومیت و قدرت این زبان باشد.

مشهورترین کاربر زبان پایتون غول دنیای اینترنت یعنی گوگل است. پایتون به عنوان زبان موردعلاقه برنامه نویسان گوگل شناخته میشود. موتور پردازش ابری گوگل با نام Google App Engine از پایتون پشتیبانی میکند. شما میتوانید برنامه هایی را که به محاسبه هاي سنگین و پیچیده نياز دارند با پایتون نوشته و از طریق App Engine اجرای آن را به سرورهای قدرتمند گوگل بسپارید. ناسا نیز از دیگر استفاده کنندگان پایتون است. به صورت دقیقتر شرکت United Space Alliance شرکت اصلی پیمانکار مسئول نگهداری شاتلها در ناسا از پایتون برای برنامه نویسی های علمی، طراحی رابط کاربر و توسعه سریع نرم افزار بهره میبرد. همچنین شرکت اتودسك که از بزرگترین تولیدکنندگان نرم افزارهای طراحي به كمك كامپيوتر (CAD) و مصورسازي است، از پایتون برای ایجاد قابلیت اسکریپت نویسی در محیط مايا استفاده میکند. اما تصور نکنید که استفاده از پایتون تنها به محاسبه هاي علمی و کاربردهای مهندسی محدود است؛ جرج لوكاس شرکت ILM (سرنام Industrial Light and Magic) را در سال 1975 برای ایجاد جلوه های ویژه فیلم اصلی جنگ ستارگان تأسیس كرد. اين شركت هم اکنون برای ایجاد جلوه های ویژه، گرافیک کامپیوتری و مدیریت سیستمها از پایتون استفاده میکند. و درنهایت میتوان از شرکت فيليپس نام برد. این توليدكننده سرشناس وسایل الکترونیکی و مصرفی برای توسعه سریع نرم افزار، کنترل خط تولید و سیستم کنترل کیفیت خود از پایتون بهره میبرد. براي مشاهده فهرست کاملی از کاربران مشهور پایتون براساس زمینه فعالیت به همراه خلاصه ای کوتاه از نحوه استفاده و دلایل به کارگیری این زبان ميتوانيد به آدرسhttp://python.org/about/success مراجعه كنيد.

کدام پایتون ؟ کدام ابزار؟
زبان پایتون درحال حاضر در دو ويرايش متفاوت منتشر میشود. ويرايش اول سری2.x پایتون است که اکنون توزیع استاندارد پایتون به شمارمي آيد وبه نسخه 7/2 رسیده است. توسعه در این دسته برمبنای حفظ سازگاری با نسخه های قبلی انجام میشود. ويرايش دوم سری 3.x پایتون است که از ابتدا بدون سازگاری با نسخه های 2.x و با هدف ایجاد قابلیتهای بیشتر و به روزتر در زبان تولیدشده و اکنون به نسخه 1/3 رسیده است. این نسخه هنوز همانند سری دوم عمومیت نیافته و به همین دلیل در این مجموعه مقاله ها از سری 2.x استفاده خواهدشد.

به يقين تمام کدهای نوشته شده در این مجموعه با هر نسخه اي بالاتر از 2/2 سازگار بوده و قابل اجرا هستند.این سری مقاله ها برمبنای سیستم عامل لینوکس (به صورت خاص اوبونتو) نوشته شده اند. اما تمام کدها روی تمام سیستمها قابل اجرا هستند. اگر در کدها از توابع و ویژگیهای خاص وابسته به سیستم عامل استفاده شده باشد، دركنار کد به آن اشاره خواهدشد. درصورتیکه شما از یکی از توزیع های مشهور لینوکس استفاده میکنید، به احتمال زیاد پایتون از پیش روی سیستم شما نصب شده است. برای سیستم عاملهای ویندوز و مک میتوانید با مراجعه به سایت رسمی پایتون(www.python.org) نسخه مناسب سیستم عامل خود را دانلود کرده و نصب كنيد.

کار با زبان برنامه نویسی پایتون به هیچ ابزار یا امکانات خاصی احتیاج ندارد. تنها با داشتن یک ویرایشگر متن ساده نظیر Gedit در لینوکس یا Notepad در ویندوز میتوانید شروع به کدنویسی کنید. اما درصورتیکه ویرایشگر شما از رنگبندی کد (Syntax Highlight) و سیستم تورفتگی خودکار (Auto Indent) پشتیبانی کند، سرعت کدنویسی و تصحیح شما بسیار بالاتر خواهدرفت. غالب ویرایشگرهای متن لینوکس نظیر Kate (در محيط KDE)و (Gedit (GNOME از هر دوی این قابلیتها پشتیبانی میکنند. در ویندوز میتوانید از ++Notepad که نرم افزاری آزاد و رایگان است استفاده کنید. همچنین در ویندوز و مک نصب استاندارد پایتون محیط برنامه نویسی پیشفرض پایتون یا IDLE را نیز به همراه خواهدداشت که بسیار فراتر از یک ویرایشگر متن ساده در نوشتن و تصحیح کد به شما کمک خواهدکرد. در تمام توزیعهای لینوکس، این برنامه از مخازن سیستم به سادگی قابل نصب است. با مراجعه به آدرس http://wiki.python.org/moin/PythonEditors میتوانید فهرست ویرایشگرها و محیطهای توسعه موجود را برای پایتون مشاهده کنید.

مثال مقدماتی 5 دقیقهای
نمونه کد پایتون
فرض کنید میخواهیم حاصل عبارت (g(x)=x/(1-x را برای مقادیر x معادل 0.9 ، ...، 0.3 ، 0.2 ، 0.1 بیابیم. کافی است در یک فایل متنی مثلاً با نام fme.py کد موجود در فهرست 1 را نوشته و در خط فرمان با تایپ دستور زیر آن را اجرا کنید.

python fme.py $

خروجی برنامه مانند فهرست 2 خواهد بود (میتوانید این عملیات را در IDLE نیز انجام دهید. کافی است پس از بازکردن برنامه از منوی File گزینه New Window را انتخاب كرده، کد موردنظر را تایپ كرده و پس از ذخیره کردن با F5 اجرا كنيد).

for i in rage (10) :
x=0.1*i
print x
print x/ (1-x*x)
فهرست 1

>>>
0.0
0.0
0.1
0.10101010101
0.2
0.208333333333
0.3
0.32967032967
0.4
0.47619047619
0.5
0.666666666667
0.6
0.9375
0.7
1.37254901961
0.8
2.22222222222
0.9
4.73684210526
>>>
فهرست 2



ليستها در پایتون
این برنامه چگونه کار میکند؟ در ابتدا تابع ()range پایتون نمونه ای از استفاده ليستها را در این زبان نشان میدهد. در زبان پایتون ليست چیزی شبیه آرایه است. ليستها یکی از انواع بنیادی پایتون هستند. تابع ()range درواقع یک ليست را برمیگرداند که در اینجا عبارت است از [0,1,2,3,4,5,6,7,8,9] . به علامتهای [] توجه کنید.

این روش رسمی پایتون برای نشان دادن یک ليست است. ليست درواقع ردیفی از اشیاي مختلف (هر تعداد شيء با هر ترتیب و هر نوعی) است که داخل [] قرار دارند و با کاما از یکدیگر جدا شده اند. پس دستور اول کد ما در واقع معادل عبارت زیر است:

:[for i in [0,1,2,3,4,5,6,7,8,9

همانطور که حدس میزنید این کد باعث ده بار گردش حلقه میشود که در بار نخست i برابر صفر و در بار دهم برابر9 است. پایتون یک ساختار while هم دارد (البته بدون until). همچنین مانند C++/C دستور break برای خروج کامل از حلقه دردسترس است (فهرست3).

>>> x=5
>>> while 1:
x += 1
if x == 8:
print x
break

8
>>>
فهرست 3



تعریف بلوک در پایتون
حال به علامت دونقطه انتهای دستور for توجه کنید که شروع یک بلوک کد را اعلام میکند. برخلاف زبانهایی نظیر C++/C یا حتی Perl ، که از {} برای تعریف بلوک استفاده میکنند، پایتون از ترکیب دونقطه و تورفتگی برای تعریف بلوکها استفاده میکند. ما با دونقطه به پایتون میگوییم که قصد داریم یک بلوک کد را آغاز کنیم و با تورفتگی ابتدای خطوط دستورات آن بلوک را تعریف میکنیم. برای تورفتگی میتوانیم از 3 یا 4 یا 10 فضای خالی استفاده کنیم. میزان این فضای خالی تا زمانی که در تمام کد رعایت شود، اهمیتی ندارد.

بنابراین، درصورت وارد کردن کد (فهرست4) با خطای دستوری پایتون مواجه میشویم، زیرا تنها در صورتی میتوانیم در یک بلوک از تورفتگی استفاده کنیم که بخواهیم بلوک دیگری در دل آن ایجادکنیم (فهرست5).


>>> for i in range (10) :
print 0.1*i
print g(0.1*i)
File “”, line 3
print g(0.1*i)
IndentationError: unexpected indent
>>>
فهرست 4


>>> for i in range (10) :
if i%2 == 1 :
print 0.1*i

0.1
0.3
0.5
0.7
0.9
>>>
فهرست 5


در این حالت فقط زمانی که متغیر i یک عدد فرد است ما دستور چاپ را اجرا ميكنيم. عملكرد % یا mod همانند C++/C باقیمانده تقسیم را بازمیگرداند. دوباره به علامت دونقطه در انتهای دستور if و فاصله گذاری ابتدای دستور print دقت کنید. همینطور دقت داشته باشید که مانند C++/C/perl احتیاجی به علامت نقطه کاما در انتهای دستورات نیست. هر خط جدید به معنای دستوری جدید خواهد بود. درصورتیکه خطی طولانی دارید میتوانید برای شکستن آن از علامت"\" استفاده کنید (فهرست 6).


>>> y=7
>>> z=12.5
>>> x = y + \
z
>>>
>>> x
19.5
فهرست 6



پوسته تعاملی (خط فرمان پایتون)
یکی از قابلیتهای جذاب پایتون خط فرمان تعاملی آن است. شما به صورت معمول زیاد از این قابلیت استفاده نمیکنید، اما برای بررسی برخی امکانات و آزمايش سریع دستورات بسیار مفید خواهد بود. هرگاه به عملکرد درست قسمتی شک دارید باید از سیستم آزمایش و خطا استفاده کنید و بهترین و سریعترین روش آزمودن استفاده از خط فرمان تعاملی پایتون است. به جای نوشتن کد در فایل متنی و اجرای آن ما کد را در پوسته پایتون نوشته و اجرا میکنیم. با تایپ دستور Python بهتنهایی یا اجرای IDLE به پوسته پایتون دسترسی خواهیم داشت (شکل زير).



در اینجا با اجرای پایتون اعلان حالت تعاملی یعنی >>> به نمایش درمی آید. سپس شروع به تایپ خط به خط کد میکنیم. هر زمان که داخل یک بلوک کد باشیم اعلان ویژه " ..." به نمایش درمی آید. وقتی درانتهای کد یک خط خالی را وارد کنیم، پایتون متوجه اتمام کد شده و آن را اجرا میكند. درباره پوسته تعاملی توجه داشته باشید که بین پلتفرمهای مختلف تفاوتهای کمی وجود دارد. به عنوان مثال، ممکن است فاصله گذاری به صورت خودکار انجام نشود یا در ویندوز شما با تایپ CTRL + Z از پوسته خارج میشوید، اما در لینوکس باید از CTRL + D استفاده کنید. همچنین توجه کنید که در IDLE اعلان " . . ." به نمایش درنمیآید. در حالت تعاملی ارجاع به یک شیء یا ساخت یک شیء یا نوشتن یک عبارت بدون نسبت دادن آن به یک متغیر باعث چاپ شدن مقدار آن میشود (فهرست7).


>>>for i in range (4) :
3*i

0
3
6
9
>>> open (“x.txt”)

>>>
فهرست 7


در مثال دوم ما فایل x.txt را باز کرده ایم که نتیجه حاصل یک شیء فایل است و چون آن را به متغیری (معمولاً f) نسبت نداده ایم، شیء فایل چاپ شده است (فایل x.txt باید در مسیر جستوجوی پایتون موجود باشد).پایتون به عنوان یک ماشین حساب یکی از قابلیتهای دیگر پوسته تعاملی امکان استفاده از آن بهعنوان یک ماشین حساب سریع است. به عنوانمثال، برای محاسبه مقدار 88.88 به علاوه پنج درصد کافی است، عبارت اول را تایپ کنیم (فهرست8 ) یا برای تبدیل اعداد بین مبنای 10 و 16 از دستورات قسمت دوم استفاده کنیم.
>>> 1.05*88.88
93.323999999999998
>>>
>>>
>>> 0x12
18
>>> hex (18)
'0x12'
>>>

فهرست 8

اگر به محاسبه هاي ریاضی خاصی احتیاج داشته باشیم باید ابتدا کتابخانه math را از مجموعه کتابخانه های استاندارد پایتون import کنیم. دقیقاً همانند سیستمی که در سي يا سي شارپ با دستور include# پیاده میشود، سپس میتوانیم با سیستم نشانه گذاری نقطه ای از توابع تعریف شده در کتابخانه math استفاده کنیم. در شكل زير استفاده از توابع ()sin و ()sqrt نشانداده شده است. همچنین توجه کنید که در محیط IDLE با تایپ math و علامت نقطه و مکثی کوتاه فهرست توابع موجود کتابخانه ظاهرمیشود.

شما اکنون تا حدودی با زبان پایتون آشنا شده اید و کم وبیش تواناییها و قابلیتهای آن را میشناسید.