کتاب عصر پایتون/فصل اول: مقدمات پایتون
پایتون چیست؟
[ویرایش]پایتون یک زبان برنامهنویسی تفسیری، سطح بالا، شیءگرا و همچنین یک زبان تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگیها شبیه پرل، روبی (رابی)، اسکیم، اسمالتاک و تیسیال است و از مدیریت خودکار حافظه استفاده میکند.
پایتون به شکل پروژهای متنباز توسعه یافته است و توسط بنیاد نرمافزار پایتون مدیریت میگردد. نسخهٔ ۲.۴.۶ این زبان در تاریخ ۲۵ اکتبر ۲۰۰۹ منتشر شد.
تاریخچه
[ویرایش]نوشتن این زبان برای اولین بار در سال ۱۹۹۰ توسط فردی به نام گویدو ون رسوم کلید خورد. پایتون در یک محیط آموزشی ایجاد و توسعه یافته است. یعنی در کریسمس سال ۱۹۸۹ (میلادی) در مؤسسۀ ملی تحقیقات ریاضی و رایانۀ شهر آمستردام (CWI). در آن زمان گیدو یک محقق در CWI بود و در زمان بیکاری خود روی پروژۀ شخصیاش یعنی پایتون کار میکرد. اولین نسخۀ عمومی از پایتون در ماه فوریۀ سال ۱۹۹۱ منتشر شد. برای مدتی نسبتاً طولانی پایتون توسط مؤسسۀ ملی تحقیقات و ابتکارات (CNRI) واقع در رستون ایالات متحدۀ امریکا توسعه مییافت. تا اینکه در سال ۲۰۰۰ تیم توسعهدهندۀ پایتون به آزمایشگاههای پایتون منتقل شدند. نام پایتون از برنامۀ مورد علاقۀ سازندۀ آن یعنی مونتی پایتون که یک برنامۀ کمدی انگلیسی بود گرفته شده است.
ویژگیهای پایتون
[ویرایش]- شیءگرایی
پایتون یک زبان برنامهنویسی شیءگرا است و از ویژگیهای پیشرفتهای چون وراثت، چندشکلی، سربارگزاری عملگر و ... پشتیبانی میکند. یکی از ویژگیهای پایتون که لقب چسب را برای پایتون به ارمغان آورده امکان استفاده از کدها و کلاسهای نوشته شده در زبانهای دیگری چون سیپلاسپلاس و جاوا است که در حقیقت کار چسباندن قطعات کد جدا و فقط نوشتن بدنه اصلی به عهدۀ پایتون است.
- آزاد
پایتون یک زبان برنامهنویسی آزاد و متنباز هست. میتوانید متن آن و خود برنامه را از اینترنت دریافت یا در توسعۀ آن همکاری کنید.
- قابلیت حمل
چون پایتون با زبان قابل حمل C نوشته شده میتواند به صورت مجازی بر روی هر پردازشگری همگردانی و اجرا شود. ماشین مجازی (مفسر پایتون) متن برنامه را خوانده و همزمان تفسیر کرده و اجرا میکند. بنابراین شما میتوانید یک برنامه را در ویندوز بنویسید و سپس بدون تغییر روی لینوکس یا مکینتاش یا هر سیستم عامل و سختافزار دیگری که پایتون روی آن نصب باشد اجرا کنید.
- قدرتمند
پایتون زبانی چندرگه است که از زبانهای برنامهنویسی تفسیری (برای مثال: تیسیال، اسکیم، پرل) و زبانهای سیستمی (برای مثال: سیپلاسپلاس، سی و جاوا) مشتق شده. بنابراین تمام سادگی و راحتی کار زبانهای برنامهنویسی تفسیری و ویژگیها و قدرت زبانهای سطح پایین را داراست.
- درونیسازی و گسترش
این ویژگی یکی از پرکاربردترین و قویترین ویژگیهای پایتون است. شما میتوانید یک قطعه از کد را در زبانی چون سیپلاسپلاس، سی و جاوا نوشته سپس از آن در برنامۀ نوشته شده با پایتون استفاده کنید. و یا میتوان از توابع کتابخانهها و کامپوننتهایی چونCOM API استفاده کرد. البته سبک این نوع برنامهنویسی (ماژول) با برنامهنویسی معمولی هر زبان متفاوت است. میتوان از کدهای پایتون در زبانهای دیگر نیز استفاده کرد (درونیسازی)
- سهولت یادگیری و استفاده
بیشک و حداقل از نظر بسیاری از برنامهنویسان، این زبان یکی از آسانترین زبانها برای یادگیری و استفاده است. از آن به عنوان یک زبان سریع برنامهنویسی یاد میکنند. این زبان نیازی به کامپایلر ندارد و شما مستقیماً میتوانید پس از نوشتن کد و با یک دستور آن را اجرا کنید. دستورات این زبان بسیار نزدیک به زبان انسان است. برای مثال برنامۀ Hello World که اولین برنامۀ ساده است، را در دو زبان سی و پایتون مقایسه کنید:
Hello World در سی:
#include <stdio.h>
int main()
{
printf(" Hello world ");
return 0;
}
Hello World در پایتون:
print "Hello World !!"
البته در نسخه 3.0 به بعد گرامر تا حدودی فرق کرده و شما باید بنویسید:
print ("Hello World")
برنامه چیست؟
[ویرایش]یک برنامه، دنبالهای از دستورات است که نحوۀ انجام یک کار را برای رسیدن به هدفی از پیش تعیین شده بهصورت دقیق مشخص نماید. این دستورات ممکن است برای حل یک فرمول ریاضی، جستجوی یک داده، نمایش اطلاعات یا هر چیز دیگری بهکار رود. در اکثر زبانهای برنامهنویسی اهداف و مراحل مختلف و جداگانهای وجود دارد. یک برنامه در حالت کلی باید بتواند اعمال زیر را انجام دهد:
دریافت داده: دریافت اطلاعات از صفحهکلید، فایل یا سخت افزار و وسیلۀ دیگر
خروج اطلاعات: هر برنامه باید بتواند اطلاعاتی را به خروجی چون صفحۀ نمایش، فایل یا سختافزار و وسیلۀ دیگری ارسال کند
عملیات ریاضی: هر برنامه باید بتواند اعمال اصلی ریاضی چون ضرب، تقسیم و ... را انجام و نتیجه را محاسبه نماید.
بررسی شرط: هر برنامه باید بتواند عبارات منطقی را مقایسه و نتیجه را محاسبه کند. برای مثال محاسبۀ بزرگتر یا کوچکتر بودن
تکرار: هر برنامه باید توانایی تکرار محدودهای از کد را به تعداد مشخص داشته باشد.
تقریباً همۀ کارهایی که در طول فرایند اجرای یک برنامه انجام میگیرد یکی از حالتهای ذکر شده است. هنگام برنامهنویسی برنامهنویس مسئلۀ موجود را با استفاده از روشهای مختلف به بخشهای کوچکتری تبدیل و هر کدام را بهصورت جداگانه پیادهسازی مینماید. هر بخش دارای یک الگوریتم یا روش اجرا است که منطق اصلی و روش انجام کار آن بهصورت دقیق است.
خطایابی
[ویرایش]برنامهنویسی یک فرایند پیچیده است و چون این روند پیچیده و گاهی بسیار گسترده و عظیم توسط انسان انجام میگیرد؛ امکان اشتباه و بروز خطا امری بدیهی است. در اصطلاح برنامهنویسی، به مشکلات مختلف و متنوعی ـ که دلیل اتفاق آنها هم متفاوت است ـ باگ (bug) یا خطا گفته میشود. فرایند شناسایی و رفع خطاها و باگهای موجود در یک برنامه، خطایابی یا اشکالزدایی (Debugging) نامیده میشود.
در علم برنامهنویسی کامپیوتر سه نوع اصلی خطا یا باگ وجود دارد که عبارتند از:
- خطای منطقی (lagical error) ؛
- خطای زمان اجرا (runtime) ؛
- خطای معنایی (semantic error) ؛
- خطای نحوی (syntax error) .
مفسر پایتون فقط قادر به اجرای کدی است که از قواعد نحوی زبان پایتون تبعیت کند. در غیر این صورت اجرای روند اصلی برنامه متوقف شده و پیغام خطایی نمایش داده میشود. نحو یک زبان برنامه نویسی (language syntax) همان ساختار و قوانین آن زبان خاص است. برای مثال در زبان انگلیسی هر جملهای باید با حرف بزرگ شروع و با یک علامت خاتمه دهندۀ جمله چون نقطه پایان یابد. هرگونه ساختار متفاوت یک خطای نحوی است.
اگر در بخشی از برنامه خطای نحویای وجود داشته باشد، برنامه قابل اجرا نخواهد بود! در این حالت مفسر پایتون با چاپ کردن عبارتی سعی میکند محل وقوع خطا و نوع آن را مشخص کند تا برنامهنویس برای رفع آن اقدام نماید. در روند برنامهنویسی و ادامۀ کار با این نوع خطا به وفور برخورد خواهید کرد. به مرور زمان و پس از شناخت انواع مختلف خطاها و روشهای حل و خطایابی آن سرعت شما در خطایابی برنامه بهتر و بهتر خواهد شد.
خطای زمان اجرا (runtime error)
[ویرایش]خطای زمان اجرا که نام دیگر آن استثنا (exception) است، به نوعی از خطا اطلاق میشود که تا زمان اجرای برنامه نهفته باشد، و بههنگام اجرا در شرایطی خاص بروز نماید. این نوع خطاها در شرایط استثنایی رخ میدهند، و ممکن است در حالت عادی ایجاد نشوند. به همین دلیل، «استثنا» نامیده میشوند. برای مثال یک نوع بسیار معروف و معمول این نوع خطا، خطای تقسیم بر صفر است. اگر در روند اجرای برنامه بخواهید عددی را بر صفر تقسیم کنید با خطای زمان اجرا مواجه میشوید یا اصطلاحاً یک استثنا به وقوع میپیوندد. برنامه پیغام خطایی چاپ کرده و از روند عادی خارج می شود . پیدا کردن و رفع چنین خطاهایی نسبت به خطای نحوی سخت تر بوده و نیاز به وقت و بررسی بیشتری دارد .
خطای معنایی (semantic error)
[ویرایش]نوع سوم خطا با نام خطای معنایی شناخته میشود. در این حالت هیچگونه پیغام خطایی ظاهر نمیشود و برنامه بهصورت درست تفسیر میشود. اما نتایج حاصل از برنامه دور از انتظار است. این خطا زمانی پیش میآید که برنامهنویس به اشتباه کدی بنویسد که هدف اصلی برنامه نباشد یا باعث تولید خروجی غلط شود. این نوع خطا بدترین نوع خطا است، چون در این حالت مفسر پایتون هیچ کمکی به تشخیص خطا نمیکند و اصلاح خطا فقط به وسیلهی برنامهنویس صورت میگیرد. در این حالت برنامهنویس باید با توجه به خروجی موجود، خروجی مطلوب و ورودیها سعی در درک و شناسایی روند کار کرده، محل مشکل را شناسایی و مشکل را برطرف نماید.
برای خطایابی این نوع امکانات و روشهای مختلفی موجود است. برای مثال با استفاده از این روشها برنامهنویس میتواند با وارد کردن ورودی، روند برنامه و نحوۀ انجام دقیق تکتک دستورات را تا مرحلۀ خروج نتیجه، تحت نظر بگیرد. و یا برنامهنویس میتواند در بین دستورات از دستور print برای نمایش خروجی حاصل از هر دستور استفاده کند و به محض مشاهدۀ خطا در جهت اصلاح آن اقدام کند. ولی بهترین روش برای اصلاح چنین خطاهایی استفاده از اشکالزداها (debugger) است. مانند ollydbg [۱] که توسط آقای Oleh Yuschuk نوشته شده است.
مدیریت خطا
[ویرایش]پایتون برای مدیریت خطا از مدیریت استثنا (Exception handling) استفاده میکند. برای روشن شدن فایدۀ استفاده از مدیریت استثنا همین کافیست که بدانیم مفسر پایتون وقتی با استثنایی در برنامه مواجه میشود روند عادی برنامه را رها کرده و برنامه به یکباره پایان مییابد. ولی برنامه با استفاده از مدیریت استثنا میتواند از این فاجعه جلوگیری کند و در شرایط استثنایی فقط یک پیغام استثنا پرتاب کرده و به روند عادی برنامه برگردد. عبارت مورد نیاز برای کنترل استثناها در پایتون try و except است. به برنامۀ زیر توجه کنید:
s=raw_input('enter value')
try:
if type(int(s))==type(123):
print 'YES types are equal'
except:
print 'Types not equal..Throw exception..'
در این مثال ابتدا داده با استفاده از تابع ()raw_input از کاربر یک رشته درخواست میکند. و پس از این که کاربر کلید enter را میزند تابع رشتۀ ورودی را در s ذخیره میکند. (تابع ()raw_input با اعلان متن (enter value) از کاربر ورودی میگیرد.) اگر نوع دادۀ s برابر عدد صحیح باشد مقدار ‘YES types are equal’ در صفحه نمایش چاپ میشود و در غیر این صورت Types not equal..Throw exception..’ چاپ میشود. با استفاده از دستور except میتوان نوع استثنای مورد نظر را تعیین کرد که در صورت بروز آن استثنا، قطعه کد مربوط به مدیریت آن شروع شود. مثل except Type Error. اگر هیچ استثنایی را ننویسیم تمام حالات در نظر گرفته خواهد شد.
try و except همراه else
[ویرایش]دستورات try و except باید همیشه پشتسرهم در کد گنجانده شوند و بعد از آنها میتوان else نیز بهکار برد. در این حالت اگر استثنایی در دستور try رخ دهد (قسمت دوم اجرا شود) دیگر else اجرا نمیشود و فقط except اجرا میشود و اگر استثنایی در دستور try رخ ندهد except اجرا نمیشود. و else اجرا میشود.
مثال قبل همراه با else
s=raw_input('enter value')
try:
if type(int(s))==type(123):
print 'YES types are equal'
except:
print 'Types not equal..Throw exception..'
else:
print s
try و finally
[ویرایش]دستورات متعلق به finally در هر صورت اجرا میشوند و این قسمت معمولاً برای اعلان یک پیغام حاکی از اتمام استثنا و... استفاده میشود.
نکتۀ ۱: دستور finally مانند except میتواند یک استثنای پیشفرض بگیرد.
نکتۀ ۲: میتوان از دستورات try تودرتو استفاده کرد مانند مثال زیر:
s=raw_input('...')
try:
if type(int(s))==type(123):
print 'YES'
try :
print 10/0
except:
print'geeg'
finally:
try:
s=raw_input('...')
if type(int(s))==type(str):
print 'YES'
except:
print 'try..try..try'
یک مثال
شما در درسهای گذشته نمونههایی از پیامهای خطای پایتون را مشاهده نمودید. که شامل اطلاعاتی در مورد نوع و نحوۀ بروز اشکال و خطای موجود است. برای مثال اگر سعی کنید به اندیسی دسترسی یابید که تعریف نشده با پیغام خطایی مواجه خواهید شد.
>>> omelet["pate"]
Traceback (most recent call last):
File "<stdin>", line 1, in ?
KeyError: 'pate'
همانطور که مشاهده میکنید نوع خطا KeyError میباشد. شما میتوانید با استفاده از دستور ... try ... except خطاهای بوجود آمده را مدیریت نمایید در این حالت کدهای مورد نظر در داخل بخش try نوشته میشود و با استفاده از بخش except و تعیین نوع خطای بهوجود آمده دستوراتی را که باید هنگام بهوجود آمدن این خطا اجرا شوند را بنویسید. مثالی را مطرح کرده و در آن سعی میکنیم به اندیسی دسترسی یابیم که وجود ندارد.
>>> omelet={"egg":2,"pepper":1,"cheese":1, "milk":1}
>>> try:
... if omelet["mushroom"] > 0:
... print "Sure, it have some mushroom"
... except KeyError:
... print "Aww, there’s no mushroom. Lets go shopping !"
...
Aww, there’s no mushroom. Lets go shopping !
نصب پایتون
[ویرایش]توضیحات قبل از نصب
[ویرایش]تقریباً در همۀ توزیعهای مبتنی بر یونیکس و مک، مفسر پایتون بهصورت پیشفرض نصب است. در نتیجه نیازی به نصب و کامپایل مجدد مفسر نیست. اما کاربران ویندوز باید قبل از برنامهنویسی با پایتون مفسر مربوطه و در صورت نیاز ماژولها و ابزارهای مورد نیاز را دانلود و نصب نمایند. کاربران لینوکس نیز ممکن است جهت بهروزآوری مفسر و یا استفاده از امکانات جدیدتر مجبور به نصب مجدد مفسر و سایر ابزارها باشند. در این بخش نصب و کامپایل کلی مفسر اصلی پایتون توضیح داده خواهد شد. نحوۀ نصب سایر ماژولها و ابزارها در درس مربوطه ارائه خواهد شد.
همانطور که میدانید مفسر پایتون قابلیت اجرا در محدودۀ وسیعی از پلتفرمها را دارا میباشد که از آن جمله میتوان به ویندوز، مک و کلیۀ سیستمعاملهای مبتنی بر یونیکس مانند لینوکس اشاره کرد. همچنین نسخههایی نیز برای اجرا بر روی سولاریس، AS/400، Amiga، OS/2، BeOS و سختافزارها و پلتفرمهایی چون پلیاستیشن، Palm OS، Symbian OS، Pocket PC، iPodLinux و چندین پلتفرم دیگر (که شاید تا حدودی نام آنها برای ما عجیب و ناآشنا باشد) تدارک دیده شده است. با استفاده از این مزیت یعنی در دسترس بودن مفسر سازگار با سیستمهای مختلف و برخی تمهیدات دیگر تقریباً همۀ کدهای نوشته شده به زبان پایتون بدون نیاز به تغییر، قابلیت اجرا در سیستم عاملهای مختلف را دارند. در نتیجه پایتون زبانی قابل انتقال یا پورتابل میباشد.
پایتون در ویندوز
[ویرایش]کمپانی ActiveState یک نصاب مفسر پایتون با نام ActivePython ارائه کرده است که شامل مفسر پایتون و ابزار مجتمع برنامهنویسی (IDE) برای سهولت برنامهنویسی میباشد. این ابزار مجتمع برنامهنویسی شامل یک ویرایشگر کد به همراه ماژولها و بستههای ویژۀ ویندوز است. این بستههای ویژه امکان دسترسی و کار با جوانب منحصربهفرد و خاص سیستم عامل ویندوز چون سرویسها، APIها، رجیستری ویندوز و ... را فراهم مینماید. ActivePython نرم افزاری آزاد نمیباشد و کد منبع آن در دسترس نیست اما دانلود و نصب آن رایگان است. این ابزار معمولاً کمی قدیمیتر از آخرین نسخۀ مفسر رسمی پایتون است.
گزینۀ بعدی مفسر رسمی پایتون است که توسط توسعهدهندگان اصلی پایتون ایجاد و در دسترس قرار داده شده است. این مفسر آزاد بوده و بهصورت رایگان و متنباز در دسترس میباشد. همواره میتوانید آخرین نسخۀ آن را از بخش دانلود سایت رسمی پایتون دریافت نمایید.
نصب ActivePython در ویندوز
[ویرایش]مراحل زیر را برای نصب این ابزار دنبال کنید .
- ActivePython را از سایت رسمی آن دانلود کنید .
- اگر شما از ویندوز 95 ، 98 یا ME استفاده می کنید شما باید ابتدا نرم افزار Windows Installer 2.0 را نیز از اینجا دانلود و نصب کنید .
- بر روی فایل اصلی دانلود شده دابل کلیک کرده و فایل را اجرا کنید .
و مراحل نصب را طی نمایید .
- پس از خاتمۀ نرمافزار میتوانید برنامه را از طریق منوی شروع (Start−>Programs−>ActiveState ActivePython 2.2−>PythonWin IDE) اجرا نمایید.
شما باید خروجیای شبیه به این را مشاهده کنید:
PythonWin 2.2.2 (#37, Nov 26 2002, 10:24:37) [MSC 32 bit (Intel)] on win32.
Portions Copyright 1994−2001 Mark Hammond (mhammond@skippinet.com.au) −
see 'Help/About PythonWin' for further copyright information.
>>>
نصب مفسر رسمی پایتون در ویندوز
[ویرایش]- آخرین نسخۀ مفسر پایتون را از ftp سایت رسمی پایتون و یا بخش دانلود سایت python.org دانلود کنید.
- فایل Python−2.xxx.yyy.exe را اجرا کنید و مراحل نصب را طی نمایید.
- پس از خاتمۀ عملیات نصب میتوانید از طریق منوی شروع و از آدرس Start−>Programs−>Python 2.4−>IDLE (Python GUI) مفسر پایتون را اجرا نمایید در این حالت خروجی شبیه زیر خواهد بود:
Python 2.4.3 (#69, Mar 29 2006, 17:35:34) [MSC v.1310 32 bit (Intel)] on win32
Type "copyright", "credits" or «license()» for more information.
****************************************************************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
****************************************************************
IDLE 1.1.3
>>>
نصب پایتون در لینوکس بر اساس rpm
[ویرایش]نصب پایتون در سیستم عاملهای بر اساس یونیکس (پوسیکس) مانند لینوکس با استفاده از بستههای از پیش کامپایل شده بسیار ساده است. بستههای آماده و از قبل کامپایل شده برای اکثر توزیعهای معروف در دسترس میباشد. اما در هر توزیعی شما هموراه میتوایند سورس کد مفسر پایتون را کامپایل نمایید. قبل از نصب به این نکته توجه داشته باشید که معمولاً در همۀ توزیعهای لینوکس پایتون نصب است. پس دقت کنید که دوبارهکاری نکنید! در این حالت باز ممکن است بخواهید آخرین نسخۀ مفسر پایتون را از وبسایت رسمی آن یا سایر منابع غیررسمی موجود (برای مثال اینجا) دانلود کنید. اکنون با استفاده از دستور rpm بستۀ مورد نظر را نصب نمایید.
# rpm −Uvh python-2.5-12.i586.rpm
Preparing... ########################################### [100%]
1:python-2.5 ########################################### [100%]
اکنون از طریق دستور python در کنسول (یا ترمینال) مفسر محاورهای پایتون را اجرا نمایی.
$ python
Python 2.4.3 (#1, Jun 13 2006, 11:46:08)
[GCC 4.1.1 20060525 (Red Hat 4.1.1-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
اگر خروجی شبیه به این را مشاهده کردید پایتون با موفقیت در سیستم شما نصب شده است. برای خروج از مفسر بطور همزمان کلیدهای Ctrl+D را بفشارید.
نصب پایتون در لینوکس بر اساس deb
[ویرایش]شما میتوانید بهراحتی از ابزار apt برای نصب آخرین و پایدارترین نسخۀ مفسر پایتون اقدام کنید.
# apt−get install python
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
python2.3
Suggested packages:
python−tk python2.3−doc
The following NEW packages will be installed:
python python2.3
0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 0B/2880kB of archives.
After unpacking 9351kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Selecting previously deselected package python2.3.
(Reading database ... 22848 files and directories currently installed.)
Unpacking python2.3 (from .../python2.3_2.3.1−1_i386.deb) ...
Selecting previously deselected package python.
Unpacking python (from .../python_2.3.1−1_all.deb) ...
Setting up python (2.3.1−1) ...
Setting up python2.3 (2.3.1−1) ...
Compiling python modules in /usr/lib/python2.3 ...
Compiling optimized python modules in /usr/lib/python2.3 ...
اکنون برای تست دستور python را در ترمینال یا کنسول اجرا کنید. خروجی باید شبیه به حالت زیر باشد.
$ python
Python 2.4.3 (#2, Apr 27 2006, 14:43:32)
[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
برای خروج از مفسر بهطور همزمان کلیدهای Ctrl+D را بفشارید.
نصب پایتون از کد منبع (سورس)
[ویرایش]در صورتی که شما خودتان قصد نصب و کامپایل پایتون را دارید ابتدا فایل مربوط به آخرین نسخۀ سورس مفسر پایتون را از وبسایت رسمی آن یا ftp سایت python.org دانلود کنید (پسوند فایل منبع tgz خواهد بود). روند نصب بسته مربوط به مفسر پایتون با سایر بستهها یکسان است. یعنی کافیست دستورات make install , make , configure را بهترتیب اجرا کنید. ولی پیشنهاد میشود قبل از نصب مستندات مربوط به بسته را که در داخل بسته موجود است، مطالعه کنید. اگر در مراحل نصب مشکلی بهوجود آمد سعی کنید مشکل را برطرف نموده و دوباره سعی کنید. در صورت نیاز میتوانید سؤالات و مشکلات خود را در انجمنهای سایت pylearn مطرح کنید.
اولین برنامه
[ویرایش]قبلاً از پایتون به عنوان یک زبان برنامهنویسی یاد کردیم. اما پایتون نام یک بستۀ نرمافزاری به نام مفسر نیز هست که کار اصلی آن اجرای برنامه میباشد. مفسر سطر به سطر کد برنامه (Python) را خوانده و همزمان اجرا میکند. در حالت کلی یک برنامۀ پایتون به چهار طریق اجرا میشود:
- به حالت محاورهای
- به عنوان ماژول پایتون
- به عنوان فایل اسکریپت unix
- از داخل یک سیستم دیگر
- متدهای خاص یک سیستم عامل
- اجرای کد به حالت محاورهای
حالت محاورهای سادهترین روش اجرای کد پایتون است. کافیست عبارت پایتون را در ترمینال وارد کنید:
# python
و سپس دستورات خود را به صورت محاورهای وارد کنید:
>>> print "Hello world!"
Hello world!
>>>
برای خروج Ctrl-Z (در برخی سیستم عاملها Ctrl-D) را بفشارید.
البته در نسخۀ ۳٫۰ و بالاتر، نحو زبان تا حدودی فرق کرده و شما باید بنویسید:
>>>print ("Hello World")
اجرا به عنوان ماژول پایتون
[ویرایش]در روش دوم کدهای پایتون داخل یک فایل نوشته میشود. در حالت قبلی اگر اشتباهی در کد نوشته شده موجود باشد باید همه کدهای وارد شده را از اول وارد کنید. و نیز برنامۀ نوشته شده ذخیره نمیشود و با تمام شدن اجرای آن در حقیقت از بین میرود. هدف ما از نوشتن نرمافزار امکان استفادۀ مجدد از آن است. پس کد مورد نظر خود را در داخل یک فایل نوشته و با پسوند py ذخیره مینمائیم. این فایل میتواند توسط هر نرمافزار ویرایشگری ایجاد شود. از سادهترین برنامۀ تحت ترمینال vi تا IDE (محیطهای برنامه نویسی) حرفهای و پیشرفته. برای مثال کد زیر را در داخل یک فایل نوشته و با نام test1.py یا هر نام دیگری ذخیره کنید. نحوۀ اجرای این فایل نیز میتواند متفاوت باشد.
import sys
print sys.argv
در حالت عادی، بهسادگی میتوان این برنامۀ نوشته شده را از طریق ترمینال اجرا نمود.
# python test1.py –I eggs –o bacon
['test1.py', '-I', 'eggs', '-o', 'bacon']
این برنامه بسیار کوچک که با نام test1.py ذخیره شده است آرگومانهای خط فرمان را بهصورت یک لیست به نمایش میگذارد. اجرای آن در سیستمعامل دیگر نیز مشابه است. برای مثال برای اجرای این فایل در سیستم عامل ویندوز دستور زیر را وارد کنید.
C:\book\tests> python test1.py -i eggs -o bacon
['test1.py', '-i', 'eggs', '-o', 'bacon']
اجرا به عنوان فایل اسکریپت unix
[ویرایش]حالت سوم اجرا در حال اسکریپت است. این نوع فایل متنی حالت اجرایی دارد و مشخصۀ آن اولین خط آن میباشد. این روش در سیستمعاملهای مبتنی بر لینوکس قابل استفاده است و با مقداردهی مجوز اجرایی (x) به فایل مورد نظر امکان اجرا شدن مستقیم آن را محیا میسازد. در سیستمعاملهای دیگر مانند ویندوز هم چنین کاری ممکن است.
یک مثال ساده:
#!/usr/bin/env python
print 'The Bright Side of Life ...' # comment
دقت داشته باشید که اولین خط این برنامه کامنت (توضیحات) نیست. این سطر به این معنی است که کل کد ادامۀ فایل به برنامهای که آدرس آن پس از عبارت !# آمده فرستاده شده و به اجرا در میآید. پس این خط آدرس فایل اجرایی مفسر پایتون به همراه علامتهای !# است. سپس با استفاده از دستور chmod یا از طریق گرافیکی این فایل را به حالت اجرایی تبدیل کرده و اجرا کنید:
# chmod +x test2.py
# ./test2.py
The Bright Side of Life ...
با انواع پیشرفتۀ دیگر اجرای کدهای پایتون در درسها و مقالات بعدی آشنا خواهید شد. روشهای ذکر شده مهمترین و پرکاربردترین روشهای اجرای کد پایتون هستند.
اجرا در ویندوز py و pyw
[ویرایش]روی فایل با پسوند .py دوبار کلیک کرده و آن را مانند دیگر فایلهای ویندوز اجرا کنید.پسوند pyw برای ویندوز میباشد و با تیدیل py به pyw هنگام اجرای برنامه صفحه Cmd ویندوز باز نمی گردد.
ویراشگر کد (IDE)
[ویرایش]IDE چیست؟
[ویرایش]IDE یا Integrated development environment محیطی است که فرایند ساخت یک پروژه را آسان میکند. این محیط برای سادهسازی نوشتن کد و درنهایت ساخت برنامه امکانات زیادی را در اختیار شما قرار میدهد. در این جا چند نمونه از این امکانات که بهطور معمول در تمام IDEها وجود دارد را ذکر میکنیم:
- ویرایش و نوشتن کد بهصورت پیشرفته؛
به طور مثال رنگ کدهای مختلف با هم فرق دارد و این باعث سادهتر شدن برنامهنویسی خواهد شد یا با نوشتن حرف اول یک دستور نام کامل دستورهایی که وجود دارد لیست میشود
- کمک به رفع عیبهای نرمافزار و حل مشکلات آن؛
- ساخت یا کامپایل کردن نرمافزار و اجرای آن.
ضرورت IDE
[ویرایش]در حال حاضر اگر شما مفسر پایتون را نصب کرده باشید همراه آن IDEی پیشفرض خود پایتون به نام IDLE نصب میشود. بنابراین دیگر نیازی به IDE ندارید اما این IDE بسیار ضعیف است و شما میتوانید با نصب IDEهای دیگر سرعت برنامهنویسی خود را بالا برده و راحتتر و در محیطی زیباتر برنامه بنویسید.
کدام IDE
[ویرایش]بسیار خوب. مسئلۀ بعدی آن است که کدام IDE را انتخاب کنیم؛
۱. NetBeans IDE Dev Python که در دست ساخت است اما در حال حاضر نسخههایی از آن موجود است؛
۲. PyScripter for Python 2.6 ؛