بسم‌الله‌الرحمن‌الرحيم


بحث اول : پايتون چيست ؟


قبل از هر حرف ديگه‌اى بگم كه منظور من از Python توي تمام مباحثي كه مطرح مي‌كنم همون Pys60 هست يعني ويرايشي از پايتونكه براي اجرا روي سيستم عامل Symbian S60 ارائه شده . توي بحثها اون جاهائيكه مطلب مورد بحث بين سيمبين سري 6 و 7 و 8 ( 1st & 2nd Edition ) و 9.1 و 9.2 و 9.3 ( 3rd edition ) مشترك هست كه هيچ ! ولي در غير اينصورت ( يعني در صورتي كه بحث فقط مربوط به هر كدوم از ورژنهاي ذكر شده از پايتون بود ) حتما مي‌گم تا باعث سردرگمي دوستان عزيز نشه .

پايتون هم مثل C++ ، دلفي ، VB و اكثر زبانهاي برنامه‌نويسي فعلي يك زبان برنامه‌نويسي «شي‌گرا» يا همون Object Oriented هست . خوب اين شي‌گرا يعني چي ؟‌ با يه مثال ساده شرح اين ويژگي رو شروع مي‌كنم : ما براي اشاره كردن و نام بردن از هر شي‌اي از يك اسم مربوط به اون شي استفاده مي‌كنيم ، مثلا مي‌گيم دسته صندلي ، پايه صندلي ، پشتى صندلي و ... خوب براي اينكه اين اشيا بهتر معرفي بشن و توي ذهن شنونده نقش ببندند و البته كار معرفي راحتتر باشه ميشه اول « صندلي » رو تعريف كرد و بعد اشيا مذكور رو به شي اصلي يا شي «والد» مربوط كرد . مثلا وقتي « صندلي » تعريف شد ديگه دسته صندلي شي‌اي است كه مربوط به صندلي ميشه و در صورتي كه كسي تا حالا دسته صندلي رو نديده باشه و ندونه چيه ( !! ) مي‌تونه به شي والد مراجعه و اون قسمت مورد نظر رو ببينه .

توي زبانهاي برنامه‌نويسي « شي‌گرا »‌هم براي راحتي كار برنامه‌نويسي و رند‌شدن كد و هم براي كمتر شدن حجم برنامه يه سري اشيا تعريف ميشن ( فقط يه بار براي هر شي لازمه ) ، بعد اون اشيا به عنوان اشيا والد محسوب شده ، ويژگي‌هايي به اونها مربوط شده ، اشيا ديگري زير مجموعه آنها شده (‌مثل دسته صندلي در مثال قبل ) تابعهايي زيرمجموعه هر كدوم ميشن و در پايان ميشه هر چند بار كه دلمون بخواد ، در هر برنامه‌اي كه ميخوايم بنويسيم از اونها استفاده كنيم .

احساس ميكنم بازم يه مثال لازمه ؛ يه مثال ساده ميزنم ، ممكنه ما توي برنامه‌هامون به‌وفور احتياج به « به توان n رسوندن يك عدد داشته باشيم » ، ميدونيم كه هيچكدوم از زبونهاي برنامه‌نويسي خودشون همچين تابعي رو ندارن ( يا حداقل من خبر ندارم ! ) ولي ميشه با استفاده از يه حلقه ساده كه n بار تكرار ميشه ، پايه رو n بار در خودش ضرب كرد و در اصل به توان n رسوند . خوب اگر اين كار فقط يكبار و توي يه برنامه لازم بود خوب كد مربوطه رو مستقيما توي برنامه مينوشتيم و استفاده مي‌كرديم ، ولي ما مي‌خوايم كه بارها و بارها از اين تابع استفاده كنيم . در عين حال توابع ديگه‌اي هم مثل ريشه nام عدد ، لگاريتم عدد ، n فاكتوريل و ... مورد نياز هستند ؛ خوب كاري كه ميشه كرد اينه كه يه شي والد يا همون « كلاس »‌ مثلا با اسم « عمليات رياضي » معرفي كنيم و اشيا و تابعهايي كه لازم داريم رو توي اون تعريف كنيم ( همون به توان n و ... ) و توي برنامه‌هامون با ساختن يك نمونه از شي « عمليات رياضي »‌ از امكاناتش استفاده كنيم .



خوب اين رو هم بايد بگم كه اونايي كه زبان پايتون رو ابداع كردند كار رو خيلي براي ما راحت كردند و بيشتر توابع اوليه و پايه مورد نياز رو توي « مدول » هايي كه ارائه ميدن قرار دادن و ما تنها كاري كه مي‌كنيم اينه كه از اونها استفاده كنيم !

و حالا يه مثال نزديكتر و يه جورايي عملي ! فرض كنيد ما كلاس عمليات رياضيمون رو با اين اسم درست كرديم :

کد:
amaliate_riazi
نكته : توي زبان برنامه‌نويسي پايتون بايد اسم كلاسها تماما با حروف كوچيك وارد بشه ، چون زبان پايتون نسبت به بزرگ يا كوچيك بودن حروف حساس است . براي جدا كردن و خوانا كردن اسم كلاسها يا ... فقط ميشه از _ ( آندرلاين ) استفاده كرد نه خط فاصله يا فاصله .

حالا زيركلاس يا همون شي وارث ريشه nام رو هم اينطور تعريف مي‌كنيم :

کد:
Root ( n , r )
نكته : به عبارت بالا توجه كنين و ياد بگيرين كه توي پايتون براي دادن مقدار به توابع ، مقاديرمون رو توي پرانتز يادداشت كنيم و براي جدا كردن مقادير از هم از « كاما » استفاده كنيم .

حالا وقتي كه ميخوايم از تابع root استفاده كنيم اين كد رو وارد ميكنيم :

کد:
Amaliate_riazi . root( n , r )
نكته : خوب اين كد خودش چندتا نكته داره :
1. براي اتصال و نشان دادن اينكه يك شي وارث يك شي ديگست بايد اسم شي والد يا بزرگتر را وارد كرده و بعد از قرار دادن يك نقطه يا همون دات اسم شي وارث يا كوچكتر را وارد كنيم .
2. قبل و بعد از نقطه به صورت دلخواه ميشه از فاصله استفاده كرد يا نكرد . اگر ديدين كه اونطوري خواناتر ميشه حتما استفاده كنين .
3. بازم تاكيد ميكنم به كوچيك بودن حروف ، آندرلاين ، نقطه ، پرانتز و كاما توجه كنين ؛ اينا نكات مهمي هستند كه قسمتي از دستور زبان پايتون رو تشكيل ميدن و اگر درست متوجه نشين بعدا دچار مشكل مي‌شين .
4. توي پايتون آخر هر خط كد ( برخلاف اكثر زبانهاي برنامه‌نويسي )‌ لازم نيست علامت مشخصي گذاشته بشه تا انتهاي خط مشخص بشه و فط لازمه به خط بعد بريد .


حالا براي مثال چند نمونه عيني از پايتون براتون ميارم :
کد:
Sysinfo .  free_ram()
اين تابع يعني free_ram() كه يه وارث و يا فرزندي از شي والد sysinfo هست مقدار فضاي آزاد رم گوشي رو بهمون ميده .
توجه كنين كه اين تابع احتياج به مقدار ورودي ما نداره پس داخل پرانتز هيچ مقدار يا « آرگوماني » لازم نيست وارد بشه ، ولي بودن خود ()‌ لازمه .
مثال بعد :
کد:
Appuifw.note('Salam')
خوب اينجا هم همونطور كه پيداست شي وارث note استفاده شده كه توي شي والد appuifw قرار داره ، تابع note رشته متني كه بهش داده ميشه رو به عنوان پيغام روي صفحه گوشي نشون ميده (‌يه چيزي تو مايه‌هاي error هاي گوشي )

نكته : نكته‌اي كه در مورد اين كد بايد بگم اينه كه توي پايتون براي وارد كردن يك متن يا عبارت مورد نظر بايد از اين دستور زبان استفاده كرد :

کد:
' متن'
يا

کد:
"متن"


البته شايد يكم گيج شده باشين و به اسمهايي برخورده باشين كه زياد براتون ماْنوس نباشن و از پايتون دلزده ! ولي من توصيه ميكنم زود تصميم نگيرين ، هنوز قسمتهاي شيرين و جذاب كار باقي مونده كه من قول ميدم از اونها لذت ببرين ... ولي خوب ميدونين كه براي هر كاري بايد اول اصول اون كار رو ياد گرفت تا در نهايت در اون زمينه موفق باشي !
اينايي كه توي اين اولين بحث گفتم مثل يادگرفتن الفبا توي كلاس اول دبستانه ، هنوز مونده تا بتونيم از شعراي نيما و سهراب سپهري لذت ببريم !

پس تا جلسه بعد ... يا حق



منبع این پست : سایت موبایلستان