حتما اسم پایتون رو قبلا شنیدید، بله اسم یک مار هست ...
خارج از مار بودن، نام یک زبان برنامهنویسی محبوب، رایگان و متنباز هم هست.
زبان برنامهنویسی که گوگل هم از اون استفاده میکنه.
یه تاریخچه کوچیک از پایتون بگم ...
تو سال 1991 توسط «خودو فان روسوم ( Guido van Rossum ) » ساخته شد. آقای روسوم هدف اصلیش از ساخت این زبان تنها خوانایی بالای کد برنامه ( شبیه زبان محاورهای ) و بازدهی نسبتا بالاش هست.
ایشون هم اکنون تو گوگل مشغول به کار هستند و روی پیشرفت و توسعه Python هم نظارت دارن.
( به آقای روسوم لقب «دیکتاتور خیر خواه» هم دادن، برای اطلاعات بیشتر به پینوشت مراجعه کنید )
این حرفی هست که درباره شروع پروژه پایتون گفته :
2 عکس از خالق پایتون ...
شش سال پیش، در دسامبر سال 1989، من دنبال یک «سرگرمی» برنامهنویسی بودم که من رو تو هفته کریسمس مشغول نگه داره. دفتر من ... بسته میبود ، اما یه کامپیوتر خانگی داشتم و چیز دیگری در دستم نبود. من تصمیم گرفتم که یک مفسر برای زبان برنامهنویسی جدیدی بنویسم که قبلا دربارش فکر کردم.
من نام Python رو به عنوان پروژهای که در حال کار روش هستم با یک خلق و خوی گستاخانه (و یک طرفدار بزرگ برنامه تلویزیونی Monty Python's Flying Circus ) انتخاب کردم.
( امیدوارم ترجمم درست بوده باشه )
پایتون یک زبانی هست که از پایه شیگرا طراحی شده، همه چیز در پایتون یک شی هست، از توابع و متغیرهایی که مینویسید تا ... همه در داخل پایتون شی هستند.
اگر دوست دارین بیشتر با شگفتیهای زبان Python آشناشین به ادامه نوشتار برین ...
ویرایش :
درباره توابع یادم رفت توضیح بدم، الان این بخش رو به انتهای نوشتار اضافه شد.
ویرایش 2 :
یادم رفت بگم که الان نسخه آخر پایتون 3.22 هست.
ویرایش 3 :
یکی از دوستان درخواست نمونه کد کرده بود، من 3 تا نمونه کد ساده ( بیشتر حلقه و تابع هست ) حاضر کردم.
کد ها رو تو سایت http://ideone.com با اجرا ذخیره کردم.
سادگی زبان پایتون به راحتی قابل مشاهده هست، همه ما زبانهای برنامهنویسی زیادی دیدیم یا حداقل با زبان های برنامهنویسی خانواده C ( مثل #C و ... ) آشنا هستیم. تو این جور زبانها برای شخص کردن یک بلاک Code از {} استفاده میکردیم.
مثلا تو دستور شرطی زیر :
if ( a == b )
{
// write your codes here
}
کد های ما باید بین {} نوشته بشن، اما پایتون روش دیگهای رو معرفی کرد ...
استفاده از فاصله !
مثلا کد زیر رو که با Syntax پایتون نوشته شده بینید :
if a == b:
# your codes here
else:
# your codes here
# rest codes ...
اگه همین کد رو بخوایم با #C بنویسیم این شکلی میشه ...
if ( a == b )
{
# your codes here
}
else
{
# your codes here
}
#rest codes ...
اگه به Syntax پایتون دقت کنید، میبنید که بعد از دستور شرطی یه ":" نوشته شده و بعد از اون کدهایی که مربوط به اون میشن ( به اون بلاک کد ) با یه فاصله به جلو مشخص شدن.
فقط یه نکتهای هست، اگر اولین خط رو به اندازه یه Space جلو بردین، بقیه خطهای اون بلاک هم باید تنها یه Space برن جلو، در غیر اینصورت مفسر پایتون توهم میزنه!
حالا کد #C رو با Python مقایسه کنید ...
2 تا پرانتز نداره، 2 تا براکت ... خوندنش هم راحت تره.
پایتون از نوع دادههای int ، float، complex، bool پشتیبانی میکنه، البته نوعهای دیگهای مثل str ، dict ، list ، tuple هم هست.
یه چیزی بگم، شاید جالب باشه !
دادهها در پایتون دو نوع هستند، تغییر پذیر و تغییر ناپذیر ...
این یعنی چی؟
اجازه بدین اول این نوع دادهها رو از هم جدا کنیم، بعد درباره اون صحبت میکنیم.
دادههای int ، float، bool تغییر ناپذیرن !
داده str هم تغییر پذیر.
بالاتر گفتیم که هر متغیری در پایتون یک شی هست، تو شیگرایی از قبل خوندیم که هر شی یک شناسه داره ( OID یا Object ID ).
به این کد دقت کنید.
b = 21
id(b)
#506090656
تو کد بالا، یه متغیر از نوع int ومقدار 21 تعریف کردم. ( الان متغیر b یک شی هست )
با استفاده از تابع id تو Python میشه شناسه یه Object رو بدست آورد، مثلا برای متغیر b به من عدد 506090656 برگردوند ...
حالا من به b یه مقدار جدید میدم و ببینید چی میشه !
b = 22
id(b)
#506090688
دوباره از Python میخوام که شناسه متغیر b رو به من بده ...
506090688
همونطور که دیدین id عوض شد!
این یعنی تغییر ناپذیر بودن، در حقیقت شما با انتساب جدید یک شی جدید بدست آوردین!
حالا یه چیز جالب تر ...
بالاتر گفتم هر چیزی که شما داخل پایتون مینویسین و تعریف میکنین شی هستن. از پایتون میخوام که شناسه عدد 22 رو به من بده !
id(22)
فکر میکنید خروجی چی باشه؟
506090688، همونطور که دقت میکنید شناسه عدد 22 با متغیر b یکی شد!!!
اگر شما 1000 تا متغیر با مقدار 22 تعریف کنید، باز پایتون به اون متغیرها همین شناسه رو میده.
تعریف متغیر :
a, b, c = 22, 0.75 , "Ali"
فکر کنم مشخص باشه، تو یه خط 3 تا متغیر با نامهای a ، b ، c تعریف کردیم، اولی از نوع int با مقدار 22 ، دومی از نوع float با مقدار 0.75 و آخری از نوع str با مقدار Ali ...
همین کد تو #C :
int a = 21;
double b = 0.75;
string c = "ALi";
حالا یه چیز باحال تر ...
میخوایم مقدار دو تا متغیر رو عوض کنیم ، یه متغیر داریم با نام a و یکی دیگه با نام b
مقدار a برابر با 21 هست و b برابر با 22 ...
کدش تو پایتون :
a = 21
b = 22
# swap
a, b = b, a
بله ، به همین راحتی، تنها به یک خط ...! ( بدون نیاز به متغیر کمکی ... )
همین کد تو #C :
int a = 21;
int b = 22;
// swap
int tmp = a;
a = b;
b = tmp
// zereshk !
فکر کنم وضوح کد و سادگی پایتون اینجا مشخص باشه.
تعریف تابع :
def نام تابع():
#کد ها ...
مثلا ، تابع جمع کردن 2 تا عدد :
def add(a, b):
return a + b
آروگومان اختیاری در پایتون :
بعضی وقتها، شده کدی دیدین که داخلش آرگومان اختیاری پشت سر هم داشته، مثلا اگه شما میخواستین آخرین آرگومان رو مقدار دهی کنید، مجبور بودین به بقیه آرگومانهای اختیاری دیگه هم مقدار بدین.
مثل کد زیر :
int add(a = 0, b = 0 , c = 0)
{
return a + b + c;
}
// فراخوانی
add(0, 0, 25);
اینجا اگه بخواین تابع رو فقط با مقدار c فراخوانی کنید، مجبورید به a و b هم مقدار بدین!
اما پایتون ...
def add(a = 0, b = 0, c =0):
return a + b + c;
کافیه تو فراخوانی به شکل زیر عمل کنید :
add( c = 25 )
کلا زبون خوش دستیه!
من تنها به یه بخش کوچیک از Syntax و 2، 3 تا امکان ساده از پایتون اشاره کردم، پایتون زبان برنامهنویسی قوی هست و امکانات زیادی داره.
یسری سایت فارسی هم برای آموزش پایتون هست که الان حضور ذهن ندارم. :|
پینوشت 1 :
دیکتاتور خیرخواه یا Benevolent Dictator for Life : این لقبی هست که به تعداد کمی از رهبرهای پروژههای متنباز دادن. آقای روسوم هم مثل یه پدر بالاسر پایتون وایستاده و اجازه نمیده هرکی از سر راه اومد هر بلایی خواست سر پایتون بیاره!
پینوشت 2 :
Monty Python's Flying Circus یه برنامه کمدی تلویزین بوده!
پینوشت 3 :
زبانهای برنامهنویسی که گوگلاستفاده میکنه :
++C
Java
و پایتون دوست داشتنی ...
یعنی زیاد قوانین نداره؟ میشه یه قطعه کد کوچیک ازش بذارید؟ ممنون میشم
چرا قوانین داره، اما بقدری ساده و خوانا طراحی شده که آدم تعجب میکنه!
الان یه نمونه کد مینویسم.
چقدر به این زبان برنامه نویسی علاقه مند شدم . از این سر به راه تر نمی تونست باشه . دستتون درد نکنه . هم شما هم اون آقای خیرخواه
یکی از علایق شخصی من زبان Python هست، واقعا از نظر خوانایی خیلی سادست !
خواهش میکنم.
البته لقب دیکتاتور خیرخواه برای چند نفر دیگر هم هست، مثل خالق لینوکس و چند نفر دیگه.
به این صفحه از ویکیپدیا مراجعه کنید :
http://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life
من یه سوال دارم .
چرا وقتی یه زبان راحت و محاوره ای مثل این هست هنوز زبان های قدیمی تو بعضی کارا جوابگوتره؟
خیلی خوبه عالیه ممنون از کد ها
خواهش میکنم
خوب هر زبانی برای یه هدف خاص طراحی میشه.
اینطوری نمیشه گفت که جوابگوتر هست !
مثلا اگه بخواید برنامه سیستمی بنویسید هیچ چیزی نمیتونه جای C و اسمبلی رو بگیره ...
ولی از اون طرف برای نوشتن یه برنامه تحت وب با C باید رنج دوران برد، در حالی که میشه به راحتی با PHP، Python و ... یه برنامه تحت وب نوشت!
همینطور Windows Application ...
شما گه بخواید یه برنامه ساده گرافیکی با ++C با فریمورک های MFC یا Qt بنویسید ، باید کلی خط کد تنها برای محیط گرافیکی بنویسید، بعد از اون قید و شرط های C میاد وسط!
از یه نظر دیگه، شما فرض کنید طبق سیاستهای خودتون بخواید یه برنامهای بنویسید که روی همه پلتفرمها ( ویندوز، لینوکس ، مک ) اجرا بشه.
مطمئتا سمت .net نمیرین چون فقط تو ویندوز اجرا میشه.
گزینههایی که میمونه :
++C با فریمورک های +Gtk یا Qt
Java !
یه چیز دیگه رو هم مد نظر باید داشته باشین، یکسری زبانها کامپایلری هستند و یکسری مفسری ...
در کل هم بستگی به سیاست داره و هم نیاز برنامهنویس.
از یه طرف دیگه، وضعیت ایران با دنیا متفاوت هست ...
پایتون :
یه سایتی هست به اسم DropBox ...
این سایت توسط یه ایرانی به نام آرش فردوسی یکه دانشجو دانشگاه M.I.T آمریکا هست راه اندازی شده.
شاید جالب باشه که بدونید این سایت با Python پیادهسازی شده!
یکی از برترین سایتهای مدیریت فایل هست.
http://en.wikipedia.org/wiki/Dropbox_(service)
این زبونو می خواستم چند سال پیش تقریبا ۸۵-۸۶ یاد بگیرمش حتی برنامه با کتابشو گرفته بودم
از این برنامه واسه برنامه نویسی رباط هایی که تو کارخونه های صنعتی هستن استفاده می کنن
شاید دوباره زد به سرم که برم دنبالش
فکر کنم دربارش یه چیزایی داشته باشم پیدا کنم میزارم بچه ها استفاده کنن
کاربرد زیاد داره ...