PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : گام به گام با پیتون سری 60



TAHA
09-21-2009, 11:11 PM
برای شروع بهتره اول زمینه برنامه نویسی رو توی موبایل ایجاد کنیم. پیتون روی موبایلهای سری 60 بطور پیش فرض نصب نیست و شما باید اونو دانلود و نصب کنید. دانلود پیتون مجانیه. برای استفاده از پیتون به این چیزا نیاز دارید :
- یک تلفن همراه نوکیا بر اساس سری 60 ویرایش دوم یا سوم
- یک مموری کارت برای تلفن
- کامپیوتری که ویندوز، مک یا لینوکس داشته باشه
- یه کابل USB یا دانگل Bluetooth برای ارتباط موبایل با کامپیوتر

دانلود و نصب فایلها
اولین کاری که باید انجام بدیم، دانلود دو فایل از اینترنت به کامپیوتره و از اونجا هم انتقال فایلها به تلفن. این فایلها رو میتونید از صفحه پروژه SourceForge برای پیتون سری 60 از آدرس PyS60 | Get PyS60 at SourceForge.net (http://sourceforge.net/projects/pys60) دانلود کنید. نسخه های زیادی از این فایل برای دانلود ارائه شده. دو فایلی که شما باید برای تلفن خودتون دانلود کنید مفسر (PyS60 Interpreter) و رابط کاربریه (Pythin Script Shell) برای مفسر پیتون

اسم فایلها سه قسمت داره
- نام
- نسخه، برای مثال 1.4.0 (آخرین نسخه رو انتخاب کنید)
- ویرایش (برای مثال 3rdEd برای ویرایش سوم)

اگه فرض کنیم که نسخه 1.4.0 آخرین نسخه باشه، باید فایلهای PythonForS60_1_4_0_3rdEd.SIS و PythonScriptShell_1_4_0_3rdEd.SIS رو دانلود کنید. هر دو فایل باید ساین بشن تا بتونید روی تلفن نصب کنید. ساین کردن رو میتونید توی انجمن جستجو کنید.


فایلها رو روی تلفن همراه خودتون نصب کنید.
از این به بعد میتونیم با اجرای مفسر پیتون به برنامه نویسی بپردازیم. میتونیم اسکریپت های پیتون رو توی کامپیوتر بنویسیم. برای این کار ConTEXT یا PythinWin پیشنهاد شده که از اینترنت براحتی قابل دانلوده.
برای امتحان پیتون، این کد رو توی ادیتور بنویسید به بنام hello.py ذخیره کنید.

كد:

print "Hello! World!"
حالا باید فایل hello.py رو به تلفن منتقل کنیم. این کار رو به کمک فایل منجر انجام میدیم و فایل رو به مسیر E:\python کپی کنید. حالا اسکریپت آماده تسته.
پیتون رو روی تلفن خودتون اجرا کنید. وقتی بالا اومد، از منوی Options گزینه Run Script رو انتخاب کنید و اسکریپت خودتونو انتخاب کنید و OK کنید.
تبریک میگم. ما اولین کد خودمونو اجرا کردیم.

TAHA
09-21-2009, 11:12 PM
اسکریپت دومی که می نویسیم، یه برنامه خیلی ساده است برای پیتون سری 60
این برنامه سه خط داره و این کارها رو میکنه :
1 – یه جایی برای ورود متن ایجاد میکنه و میگه که اسمتون رو تایپ کنید.
2 – یه پیغام نشون میده که جمله Greetings From : و بعد اسم شما رو می نویسه

اسکریپت این برنامه به این صورته :


كد:

import appuifw
كد:
name = appuifw.query(u"Type Your Name: ", "text")
كد:

appuifw.note(u"Hello! World! Greetings From: " + str(name), "info")



حالا بیایید این کد رو بررسی کنیم
خط اول کد، ماجول appuifw رو بارگذاری میکنه که عناصر رابط کاربر رو مثل فیلدهای ورود متن و نت های پاپ آپ رو تو خودش داره.
خط دوم کد، یه جعبه محاوره تک خطی می سازه که برای این کار از تایع query() از ماجول appuifw استفاده میکنه که دو تا پارامتر براش مشخص میشه : برچسب و نوع. برای پارامتر اول، یعنی برچسب، ما متن u"Type Your Name:" رو استفاده میکنیم. U برای این قرار داده میشه که تلفن فقط متن هایی رو که بصورت Unicode باشن تشخیص میده. علامت های کوتیشن (") هم برای این استفاده میشن که پارامترهای برچسب باید بصورت رشته (مجموعه ای از کاراکترها – متن) ارسال بشن. پارامتر دوم، یعنی نوع، ما از "text" استفاده کردیم که نشون بدیم فیلد ورودی یه ورودی متنه. انواع دیگه ای هم وجود دارن، مثل "number" برای عدد، "date" برای تاریخ، "time" برای زمان، "query" برای استعلام ها و "code" برای کدها. دو پارامتر با کاما از هم جدا شدن. این خط از کد یه متغیر به نام name هم ایجاد میکنه که نتیجه اجرای تابع که متن وارد شده توسط کاربره، تو اون قرار میگیره.
خط سوم کد یه پاپ آپ ایجاد میکنه. این کار با تابع note() از ماجول appuifw انجام میشه که اینم دو تا پارامتر داره:
برچسب و نوع. پارامتر اول، یعنی برچسب، حاوی عبارت u"Hello! World! Greetings From: " + str(name) هست. این متنیه که توی پاپ آپ نمایش داده شده، نوشته میشه. بازم توجه کنید که متن باید توی علامت کوتیشن باشه. به دنبال متن، نوشته کاربر تو پاپ آپ قبلی هم نمایش داده میشه. پس ما محتویات متغیر name رو هم به متن خودمون اضافه می کنیم. این کار رو با دستور str(name) انجام میدیم. پارامتر دوم، یا نوع، ما از "info" استفاده می کنیم که نشون بدیم خروجی ما یه information یا جعبه اطلاعاته. با این کار علامت ! سبز رنگی کنار نوشته ما نمایش داده میشه. انواع دیگری هم میشه استفاده کرد مثل "error" برای خطاها که علامت تعجب قرمز رنگ نشون میده و "conf" برای تاییدیه که یه علامت سوال نشون میده. این دو تا قسمت هم با کاما از هم جدا شدن.

TAHA
09-21-2009, 11:12 PM
قسمت سوم
نکته دیگه ای که میخوایم در مورد پیتون موبایل یاد بگیریم اینه که تو این سبک برنامه نویسی، هیچ آکولاد یا مشخص کننده ای برای تعیین شروع یه بلوک برنامه وجود نداره. مثلاً اگه بخوایم از یه عبارت شرطی مثل if استفاده کنیم که اگر شرایط خاصی پیش اومد، چند تا کار رو باهم بکنه، تنها را استفاده از تورفتگی ها توی برنامه است. به کد زیر دقت کنید
كد:

if x < 5 :


كد:

print "x is greater than 5"


كد:

print "also this line belongs to the if-clause"


كد:

print "this line does not belong to the if-clause"



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

TAHA
09-21-2009, 11:13 PM
قسمت چهارم
همونطوری که دیدید، میتونیم با استفاده از ماژول appuifw به رابط سری 60 دسترسی پیدا کنیم. ماژون فایلیه که مجموعه ای از توابع و گروه های داده رو توی خودش داره. PyS60 مجموعه کاملی از ماژولها رو داره. مثلاً messaging برای استفاده از قابلیت های SMS یا camera برای عکاسی و appuifw که برای کار با عناصر رابط کاربری استفاده شد. ماژولها و توابعی که توی اونا هستن رو میشه تو Python Library Refrence و مستندات Python for S60 API پیدا کرد که البته زیاد نگران اونا نباشید چون به مرور با همشون آشنا میشیم.
برای اینکه بتونیم از ماژولی تو برنامه خودمون استفاده کنیم، همونطور که دیدی از دستور import استفاده کردیم. مثلاً import appuifw
برای استفاده از یه تابع از یه ماژول هم اول اسم ماژول رو می نویسیم، بعد یه نقطه، و بعد اسم تابع. مثلاً appuifw.query(laber,type)
اینجا appuifw اسم ماژوله و query تابع داخل اونه که ما استفاده میکنیم. داخل پرانتز هم آرگومانهای این تابع نوشته میشه.
میشه دوتا یا چند تا ماژول رو توی یه دستور آورد. مثلاً import appuifw, e32

ما قبلاً از توابع query() و note() استفاده کردیم که مال ماژول appuifw بودن. این توابع عناصر رابط کاربری، دیالوگ ها و علامت هایی رو برای ما ایجاد کردن. میخوام تو قسمت های بعدی به تک تک این توابع مادر با جزئیات بیشتری بپردازم.

TAHA
09-21-2009, 11:14 PM
قسمت پنجم، دیالوگ تک فیلدی query
رسم الخط :
كد:


query(label, type [,initial value])

مثال :
كد:


appuifw.query(u"Type a word: ", "text", u"Foo")

تشریح :
این تابع یه جعبه محاوره تکی نشون میده. این جعبه میتون حاوی متن راهنمایی باشه که بصورت رشته به جای قسمت label تابع داده میشه. نوع جعبه محاوره، بعنوان پارامتر دوم یعنی type داده میشه. این مقدار میتونه "text"، "number"، "date"، "time"، "code"، "query" یا "float" باشه.
میشه از یه مقدار اولیه استفاده کرد که موقع نمایش جعبه، تو قسمت ورود متن قرار داره. این کار رو میتونیم با قرار دادن عبارت مورد نظر بجای initial value انجام بدیم. به مثال زده شده دقت کنید

خروجی تابع appuifw.query() بستگی به پارامتر type داره :
برای جعبه های ورود متن (text یا code) خروجی بصورت رشته Unicode ارائه میشه.
برای قسمت های عددی، خروجی به عدده صحیحه
برای فیلد های date، تعداد ثانیه ها از مبدا (0:00 در اول ژانویه 1970) که به نزدیکترین نیمه شب محلی گرد میشه

تمرین
این اسکریپت رو بنویسید و اجرا کنید. انواع مختلف ورودی رو مشاهده خواهید کرد. سعی کنید این برنامه رو تحلیل کنید.
كد:


import appuifw

appuifw.query(u"Type a word:", "text")

appuifw.query(u"Type a number:", "number")

appuifw.query(u"Type a date:", "date")

TAHA
09-21-2009, 11:14 PM
قسمت ششم - دیالوگ تذکر : note
رسم الخط :
كد:


note(text[, type[, global]])

کد نمونه :
كد:


appuifw.note(u"Upload Done", "conf")

این تابع یه دیالوگ تذکر رو روی موبایل کاربر با متن مشخص شده نشون میده. وقتی کد نمونه رو اجرا کنیم، عبارت Upload Done نشون داده میشه. این کار با دادن یه رشته متنی یونیکد بعنوان پارامتر ورودی text به تابع انجام میشه.
حالت های دیگه ای برای type وجود داره. مثل "info" یا "error" یا "conf". هر نوع یه سمبل متفاوت رو توی جعبه نمایش میده. مقدار پیش فرض برای type روی info تنظیم شده که اگه type مشخص نشه، بطور اتوماتیک ایجاد میشه.

تمرین : انواع مختلف note
این کد رو روی موبایلتون اجرا کنید و نتیجه رو ببینید :
كد:


import appuifw

appuifw.note(u"hello")

appuifw.note(u"File Not Found", "error")

appuifw.note(u"Upload Done", "conf")


__________________