وب

خوشبختانه امروزه برنامه نویسی برای وب با پایتون همانند سالهای قبل نیست

گرچه در ابتدا پایتون به عنوان یک زبان همه منظوره (از جمله با هدف برنامه نویسی وب) مطرح شد ولی در ابتدا امکانات اولیه ای که برای برنامه نویسی وب در آن قرار داده شده بود کم و ناقص بودند به همین علت فریم ورک هایی به وجود آمدند که کار برنامه نویسی وب با پایتون را راحت و دلپذیر کنند

بعد ها در سال 2007 با معرفی pep 333 رسما استانداردی برای برنامه نویسی وب با ایتون ایجاد شد ولی با توجه به پشرفت فریم ورک های پایتونی تا قبل از این تاریخ و نیز اینکه این استاندار با هدف هر چه بهتر کردن استفاده از فریم ورک ها طراحی شد برنامه نویسان حتی برای ساده ترین امور نیز از فریم ورکی که متناسب با کار ایسان است استفاده می کنند

با این توضیح افرادی که از پی اچ پی به پایتون مهاجرت کرده اند ممکن است تعجب کنند چرا که این افراد در بسیاری از موارد عادت دارد همه سایت را از ابتدا و بدون استفاده از فریم ورک ها برنامه نویسی کنند در حالی که در پایتون تقریبا هیچ کس را پیدا نمی کنند که سایتی را بدون استفاده از فریم ورک ها برنامه نویسی کند

دسکتاپ

در صورتیکه از محیط دسکتاپ سیستم عامل لینوکس استفاده می کنید بعید به نظر می رسد که از نرم افزار هایی که با ایتون نوشته شده است استفاده نکرده باشید

پایتون جزپی جدا نشدنی از لینوکس است ولی مشاهده می شود که بسیاری از نرم افزار های مشهور که در ویندوز نیز قابل استفاده است با پایتون نوشته شده است

برای ایجاد فرم های و پنجره ها در ویندوز و لینوکس بایستی از كتابخانه های گرافیکی استفاده شود. ابزارهاي متعددي براي اين منظور در دسترس هستند ولي هيچكدام كامل نيستند و البته متفاوت با هم. در ادامه به معرفي چند ابزار معروف و پركاربرد در اين زمينه مي پردازيم.

Tkinter

ابزاي قديمي و معروف در پايتون كه تقريبا همزمان با بوجود آمدن اين زبان ارائه شد. ابزاري چند سكويي،پايدار و قابل اعتماد كه به سادگي قابل يادگيري است. البته اين ابزار داراي كمبودهايي در widget هاي خود ميباشد.

امبدد(Embedded)

به طور کلی دو روش برای استفاده از پایتون به صورت embedded وجود دارد:

  • استفاده از زبان پایتون در برنامه کاربردی و توسعه و نوشتن برنامه های مورد نیاز آن برنامه به کمک پایتون و یا استفاده از پایتون برای پشتیبانی از آن برنامه و نوشتن کدهای با استفاده از این زبان

Embedding Python in Another Application

  • دستگاهایی که به اندازه کافی حافظه داشته باشند و دارای سرعت بالا برای اجرای لینوکس و انواع خاص آن می توانند از پایتون و یا CPython استفاده کنند. که در بعضی سخت افزارها که از پردازنده ARM استفاده می کنند هم استفاده شده است.

Embedded Python

PYTHON FOR ARM-LINUX

Python Embedded Tools

The Owl Embedded Python System

Building eLua in Linux

Python-on-a-Chip

PyMite

Python - Openmoko

AarLogic - Round Solutions

embedded Linux Gnublin

GSM/GPRS modem modules

How to port Python to VxWorks

VxWorks

Building Image Processing Embedded Systems using Python, Part 1

شبکه

پایتون دو سطح برای دسترسی به شبکه فراهم می کند، در سطح پایین شما می توانید به سوکت ها دسترسی داشته باشید که به شما اجازه میدهد سرویس دهنده و سرویس گیرنده های تحت شبکه را پیاده سازی کنید، و در سطح بالا پایتون کتابخانه های دسترسی به پروتکل های لایه application مثل HTTP و FTP و … را فراهم می کند. پایتون دسترسی ساده به شبکه برای شما فراهم می‌کنند و برای برنامه نویسی سوکت ها به صورت RAW نیز امکانات فوق العاده ای در اختیار کاربر قرار می‌دهد. پایتون کتابخانه های فوق العاده ای در زمینه شبکه و امنیت دارد و امکان برنامه نویسی شبکه به صورت Non-blocking را به راحتی فراهم می‌کند. برای مثال کتاب‌خانه های شبکه پایتون :

Twisted

Eventlet

Requests

Scapy

و اشاره کرد.

پایتون همچنین ماژول های مختلفی برای شبکه دارد که به راحتی می‌توان با استفاده از آن ها بسیاری از کارها را با چند خط کد ساده انجام داد به طول مثال :

برای ایجاد یک سرور TCP یا UDP می‌توان از ماژول SocketServer استفاده کرد.

برای ایجاد یک وب سرور ساده می‌توان از ماژول SimpleHTTPServer استفاده کرد.

برای آشنایی بیشتر با نحوه برنامه نویسی شبکه در پایتون مطالب زیر شروع خوبی برای اینکار هستند:

Python socket – network programming tutorial

Socket Programming HOWTO

Python Network Programming

در ضمن کتاب Foundations of Python Network Programming به صورت مفصل تر به این موضوع پرداخته است، در این کتاب به پکیج‌های مفیدی معرفی شده که بعضی از آنها عبارتند از:

برای کار با نقشه‌های گوگل می توانید از بسته googlemaps استفاده کنید.

برای صحبت با پروتکل HTTP کتابخانه httplib استفاده کنید.

کتابخانه سوکت برای کار با شبکه در سطح پایین استفاده می شود.

همچنین در پایتون با بسته pydns می توانید با سرورهای DNS ارتباط برقرار کنید.

پایتون قابلیت کد کردن داده ها با JSON و فشرده کردن آنها با zlib و gzip را دارد.

رمزنگاری TLS و SSL با کتابخانه ssl انجام می شود.

با ماژول logging امکان ثبت رخدادهای برنامه وجود دارد.

برای برنامه نویسی behaviour-driven در پاتون بسته lancelot این امکان را فراهم می کند.

Twisted یک فریم‌ورک event-driven برای کار با شبکه است که از پروتکل های مختلف پشتیبانی می کند، برای اطاعات بیشتر در مورد Twisted به صفحه ویکی‌پیدا ‌ پروژه مراجعه کنید.

فریم‌ورک SocketServer برنامه نویسی سرور‌های شبکه را آسان می کند.

پایتون با بسته python-memcached امکان اتصال به سرویس‌دهنده memcached را فراهم می کند.

برای درهم سازی و hash کردن داده‌ها می توانید از hashlib استفاده کنید.

pyzmq امکان اتصال پایتون به ØMQ را می دهد.

کتاب‌خانه های urllib, urllib2 و urlparse امکان اتصال به پروتکل HTTP و کار با url ها را فراهم می کنند، بسته requests نیز این قابلیت را در سطح بالاتر و با سهولت بیشتر فراهم می کند.

در پایتون امکان ایجاد و اجرای اسکریپت‌های cgi در سرور HTTP با ماژول cgi وجود دارد.

cookielib نیز برای handle کوکی‌ کلاینت‌های HTTP استفاده می شود.

برای شبیه‌سازی قابلیت‌های مرورگرها و مرور وب با پایتون می توان از بسته mechanize استفاده کرد.

بانک‌های اطلاعاتی

امروزه اینکه برنامه ای را بنویسید و در آن نیاز به کار با بانک های اطلاعاتی یدا نکنید تعجب آور است

به طبع هر زبان برنامه نویسی امکاناتی را برای اتصال و استفاده از از بانک های اطلاعاتی فراهم می آورد بعضی از این امکانات به صورت داخلی و بعضی با استفاده از کتابخانه های خارجی مورد استفاده قرار می گیرند

بقیه بعدا که حوصله داشتم

ORM

خالی...

داده کاوی

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

اصطلاح Data Mining همان طور که از ترجمه آن به معنی داده کاوی مشخص می‌شود به مفهوم استخراج اطلاعات نهان و یا الگوها وروابط مشخص در حجم زیادی از داده‌ها در یک یا چند بانک اطلاعاتی بزرگ است.

Linux system mining using Python

Data mining

Tutorials | Kaggle

داده‌کاوی

داده كاوي چيست ؟

محاسباتی

اغلب افراد پایتون را زبان تخصصی مورد استفاده مهندسین کامپیوتر می دانند ولی استفاده این زبان در کاربردهای دانشگاهی شگفت آور است

اگر در دانشگاه های شهر تهران به سراغ دانشجویان رشته ریاضی یا آمار بروید بعید به نظر می رسد که مفسر زبان پایتون به همراه numpy رو بر روی لپ تاپ آنهاپیدا نگنید

یا اگر به سراغ دانشجویان سنجش از دور یا جغرافی بروید احتمالا همه آن همرا ه با نصب arcGIS نسخه ای از پایتون را نیر بر روی رایانه مورد استفاده خود نصب کرده اند

این زبان به علت کارایی بالا در کنار سهولت یاد گیری مورد توجه خاص افرادی است که رشته تخصصی آنها چیزی به غیر از زمینه های مرتبط با کامپیوتر است از علوم ایه و و شاخه های مرتبط با ریاضیات مانند راضی و آمار و فیزیک تا علوم تجربی مانند جغرافی

امنیت

در زمینه امنیت از زبان پایتون استفاده های بسیاری می‌شود. یکی از دلایلی که به زبان پایتون اهمیت زیادی داده می‌شود تعداد کد های کمی هست که برای رسیدن به مقصود لازم است برنامه نویس بنویسد با کمک این قابلیت می‌توان از جزئیات بسیار پیاده سازی گذر کنیم و به نحوه کار برنامه بیشتر بپردازیم این در بحث Proof of concept و Rapid prototyping بسیار مهم است زیرا اجازه می‌دهد که ایده هایی که برای حمله و نفوذ وجود دارد را در سریع ترین زمان مورد بررسی قرار دهیم که ممکن است با زبانی مثل C نیاز به یک روز کار برای تست عملی بودن یک ایده داشته باشیم.

در زمینه امنیت پایتون کتاب‌خانه های قدرتمندی دارد و در تمامی زمینه ها امنیت ابزارهای قدرتمندی با پایتون ساخته شدند بسیاری از Exploit هایی که نوشته می‌شوند هم این روزها با این زبان توسعه پیدا می‌کنند.

در زمینه شبکه و امنیت از کتاب‌خانه ها و ابزارهای زیر استفاده می‌شود

Scapy برای Sniff و فرستادن و ایجاد بسته ها Injection استفاده می‌شود که از آن می‌توان به صورت Interactive Shell و یا به صورت module استفاده کرد.

pypcap و Pcapy و pylibpcap برای ارتباط و استفاده از libpcap

Pytbull فریم ورک برای تست IPS و IDS ها استفاده می‌شود

مهندسی معکوس و دیباگ کردن Fuzzing کتاب خانه های وب Forensics آنالیز بد افزار ها

وب‌آموز

کلاس های مجازی با حضور استاد و دانشجویان به صورت کاملا آنلاین در این سایت عرضه می‌شود که در دروه مقدماتی به مفاهیم پایه برنامه نویسی و مفاهیم شبکه و برنامه نویسی شبکه در پایتون پرداخته می‌شود و در دوره پیشرفته بیشتر مباحث امنیت و تکنیک های آن بررسی می‌شوند.

دوره مقدماتی

دوره پیشرفته

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

استاندارد کد نویسی در پایتون

استانداردها و رسوم کدنویسی، گایدلاین ها (راهنما و دستورالعمل) برای زبان های برنامه نویسی هستند که شیوه های خاصی برای کدنویسی را توصیه می کنند. این گایدلاین ها توصیه هایی برای کامنت گذاری، فاصله گذاری، تعریف و نام گذاری متغیرها (variable)، چگونگی فضاهای خالی و … دارند.

بسیار توصیه می شود که برنامه نویسان نرم افزارها حتما از این استانداردها استفاده کنند تا کدهایشان به آسانی توسط سایرین خوانده شود.

برای آشنایی بیشتر با لزوم استفاده از استانداردها می‌توانید به مطلب زیر مراجعه کنید:

معاهده‌های کدنویسی (Coding conventions)

چرا استاندارد نویسی اهمیت دارد؟

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

  • برنامه نویسان به راحتی می توانند روی کدهایی که توسط دیگران نوشته شده کار کنند. زیرا کدها به روشی نوشته شده اند که هر یک از برنامه نویسان با آن آشنا است.
  • اگر شخص جدیدی وارد تیم پروژه شود، به راحتی می تواند با کدها کار کند (به شرطی که با کدنویسی استاندارد آشنایی داشته باشد.)
  • رعایت استانداردها گاهی از ایجاد اشتباه در کدنویسی نیز جلوگیری می کند.

pep8 - Python style guide checker

PEP 257 docstring style checker

در لینک های زیر با استانداردها و توصیه های کدنویسی در پایتون آشنا می شوید:

Style Guide for Python Code

Google Python Style Guide

Code Style

Code Like a Pythonista: Idiomatic Python

How not to write Python code

Python Idioms and Efficiency

Python Coding Standards

Docstring Conventions

کدام IDE؟

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

ویرایشگرهای ساده

  • IDLE
  • Notepad++‎
  • Gedit
  • Kate
  • ...

به جز IDLE که یک ویراستار میانه در بین ویراستار های ساده و ویراستار های پیشرفته است باقی این ویراستار ها تنها امکانات ساده و اولیه مانند رنگ بندی و حد اکثرفرمت بندی کد ها را فراهم می کنند

ویرایشگرهای پیشرفته

در این بین ویژوال استادیو مایکروسافت تنها بر روی ویندوز قابل استفاده است ولی دیگر ویراستار ها هم بر روی ویندوز و هم بر روی لینوکس قابل استفاده هستند

Comparison of integrated development environments for Python

What IDE to use for Python?

The Best Python IDEs You Can Use for Development

Best Python IDE

IntegratedDevelopmentEnvironments - Python Wiki

از کجا شروع کنیم؟

پایتون زبان به شدت راحتی است و بسیار خوش ساخت و منطقیست. برای همین یادگیری اش هم بسیار راحت و لذت بخش است.

یک کتاب بخوانید. کلا کتاب ها خیلی ساده همه چیز رو توضیح داده اند.

مقاله

مجموعه آموزشهای برنامه نویسی در پایتون

از این پس پایتون

Beginner's guide to Python

The Hitchhiker's guide to Python

Learn Python the hard way

Learn Python

Google's Python class

Python for Beginners

Best way to learn python

Python Tips, tools and resources

Learn X in Y minutes - Python

Python Practice book

کتاب

Some free books on Python

Some list of paid books on python

Invent with Python

Think Python

Byte of Python

Snake Wrangling for Kids

Data Structures and Algorithms with Object-Oriented Design Patterns in Python

Python programming on wikibooks

Dive Into Python 3

Programming Computer Vision with Python

Python for you and me

Program Arcade Games With Python And Pygame

Python Essential Reference

Core Python Programming

The Python Standard Library by Example (Developer's Library)‎

Pro Python (Expert's Voice in Open Source)‎

Programming Python

Beginning Python: From Novice to Professional

Python Cookbook

Head First Python

Python Algorithms: Mastering Basic Algorithms in the Python Language

Python for Unix and Linux System Administration

Dive Into Python

البته اینجا یک سری منبع آزاد خوب گذاشته اس

BeginnersGuide / Programmers

من که انگلیسی بلد نیستم؟

در اولین فرصت یا زبان انگلیسی تان را باید قوی کنید یا کلا بی خیال برنامه نویسی و ... شوید. :D هزار تا کار بهتر هست، مثلا برید شرکت تولیدی بزنید یا کار هایی که هم پولش بهتره، هم نیاز به این همه سوسول بازی نداره :D را انجام بدید. این جواب نبود فقط یک نکته کلی بود :D

سایت های مرجع فارسی:

مرجع فارسی زبان پایتون

زبان برنامه نویسی پایتون

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

منابع آموزشی

انجمن برنامه نویس: بخش پایتون

آموزش پایتون

فيلم آموزش برنامه نويسي پایتون

آموزش پایتون به زبان فارسی

آموزش پایتون توسط گوگـــل

آموزش پایتون قسمت های ۱-۳ تا ۵-۳

پایتون - آپارات

برگرفته شده از http://blog.efazati.org/post/how-learn-python

آموزشگاه های پایتون

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

به عنوان مثال مشاهده می شود که انجمن های علمی در دانشگاه های دولتی سطح شهر اقدام به برگزاری دوره های آموزشی با کیفیت مناسب و قیمت کم در مقایسه با آموزشگاه های آزاد می کنند

در صورتی که در آموزشگاهی این زبان را می آموزید و از کیفیت آموزش آنجا راضی هستید اطلاعات مربوط به این آموزشگاه را برای استفاده دیگران قرار دهید.

آموزش آنلاین

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

برای یادگیری پایتون منابع بسیاری در وب وجود دارند که بیشتر آنها کاملا رایگان هستند. در اینجا به چند سایت خوب برای یادگیری آنلاین پایتون اشاره می کنیم:

Codecademy

Codecademy یکی از مشهورترین سایتها برای یادگیری برنامه نویسی به صورت محاوره ای یا interactive است که دارای رابط کاربری خوب به همراه دوره های متنوع و در سطوح مختلف است.

LearnStreet

LearnStreet is an early-stage startup focused on changing the way people of all backgrounds and skill levels learn how to code.

We are a small, passionate team of product craftsmen, hackers and designers doing what we love—building a service that inspires users to tap into their amazing potential. We believe putting the power of coding in more hands can unleash a wave of creativity that makes the world a better place for all of us. We’re proud to have already received some kind words from the folks at LAUNCHedu.

LearnStreet adopts command prompt-styled code interpreters with human language to explain function and encourage you whenever possible, the kind of command prompt you want for your own local machine. However, the code interpreter could be as rude as standard command prompt, as most of the times it requires you to type in the absolute same code and content it asks for.

Other than that, it’s truly friendly and enjoyable, and most importantly, free.

CodingBat

CodingBat is a free site of live coding problems to build coding skill in Java, and now in Python (example problem), created by Nick Parlante who is computer science lecturer at Stanford. The coding problems give immediate feedback, so it's an opportunity to practice and solidify understanding of the concepts. The problems could be used as homework, or for self-study practice, or in a lab, or as live lecture examples. The problems, all listed off the CodingBat home, have low overhead: short problem statements (like an exam) and immediate feedback in the browser. The idea for CodingBat came from my experience teaching CS at Stanford combined with seeing how student's used unit-tests in more advanced courses, and crystalized when I saw an Owen Astrachan demo of a unit-testing thing he uses with his Duke students.

Online Python Tutor

Online Python Tutor is a free educational tool that helps students overcome a fundamental barrier to learning programming: understanding what happens as the computer executes each line of a program's source code. Using this tool, a teacher or student can write a Python program directly in the web browser and visualize what the computer is doing step-by-step as it executes the program.

PythonMonk

In a world where teaching and learning is no longer a one-off transaction, CodeMonk aims to fill the gap by helping programmers learn and level up continuously.

Maktabkhooneh

هدف مکتب خونه در دسترس قرار دادن آموزش با کیفیت بالا برای همه ی فارسی زبانان است. ما اعتقاد داریم که هیچ کس نباید به خاطر هیچ چیز از لذت یاد گرفتن محروم شود. نباید سن و سال یا مکان و موقعیت و امکانات مالی افرادی را از یاد گرفتن و موفقیت باز دارد.

مکتب خونه بنا دارد تا بستری نرم افزاری مناسبی بسازد که در آن هر کس بتواند یاد بدهد و یاد بگیرد. اگر آموزگار هستید بتوانید کلاس خود را ایجاد کنید و به هزاران دانش آموز از سرتاسر جهان یاد بدهید و اگر دانش آموز هستید در کلاس های دلخواهتان شرکت کنید و درباره ی هزاران موضوع یاد بگیرید.

Runestone

Runestone Interactive is the home for several projects that provide interactive textbooks for computer science. We currently have two books in use for our Introductory Computer Science classes. You can link to them from the library on the right.

In addition to the books we are also have a set of tools for creating interactive eBooks. The tools as well as the book are open source and available for you to use. If you do use the tools to create a book let us know and we'll add a link.

پایتون کجا قابل استفاده است

پایتون زبانی انعطاف‌پذیر است که به علت مفسری بودن آن برنامه‌های نوشته شده به این زبان براحتی در بسیاری از پلتفرم‌ها قابل استفاده است. لیستی از پلتفرم‌هایی که پایتون در آنها قابل استفاده است:

  • Linux
  • Windows
  • Android
  • Mac OS
  • iOS

همچنین با این زبان در محیط‌ها زیر کاربرد دارد:

  • Web
  • Desktop
  • Mobile
  • Scientific computing
  • 3D animation scripting
  • ArcGIS
  • Artificial intelligence
  • Information security
  • Raspberry Pi

List of Python software

اصلا چرا پایتون؟

به عقیده ی نویسنده ی یکی از کتاب های پایتون, برنامه نویس کسی است که از برنامه نویسی لذت می برد و با استفاده از هر ابزاری این کار را انجام می دهد. در نتیجه کاری را انجام دهید که از آن لذت می برید.

زبان پایتون یک زبان آزاد و متن باز است؛ پس برای استفاده ی بدون محدودیت به راحتی در دسترس است.

اگر می خواهید یک جستجوی ساده انجام دهید و یا با تعداد زیادی فایل مثل عکس های یادگاریتان کار کنید؛ نیاز به یک دیتابیس ساده و رابط کاربری آسان دارید می توانید از پایتون به عنوان زبان اسکریپت نویسی استفاده کنید. این امکان حتی برای انجام کارهای SysAdmin هم می تواند بسیار مفید باشد.

اگر یک برنامه نویس حرفه ای هستید و از زبانها و ماژولهای مختلفی برای انجام کارهایتان استفاده می کنید. می توانید از این زبان بر طیف گسترده ای از سیستمها استفاده کنید و حتی می توانید از پایتون به صورت یک زبان (به صورت embedded ) در برنامه خود استفاده کنید و جهت توسعه آنرا بکار ببندید.

پایتون زبانی است که از تعداد زیادی ساختار, پشتیبانی می کند. شما می توانید به راحتی از ابزارهای مختلف آن سود ببرید. حتی در صورتی که هنوز از C استفاده می کنید و یا می خواهید قدرت آن را هم, در دستان خود داشته باشید! می توانید قسمتهایی از برنامه را به کمک زبان C بنویسید و از آنها در برنامه خود استفاده کنید. بعضی از ساختارهای زبان پایتون باعث شده است که, بعضی آن را بهتر از Perl بدانند و در حل مشکلات بزرگ از آن استفاده کنند.

پایتون امکان تقسیم بندی برنامه به ماژول های مختلف را دارد. شما می توانید از این ماژول ها مثل کار با فایلها ، ورودی و خروجی ها، سوکت ها و رابطهای متفاوت ( حتی گرافیکی) در برنامه های دیگر خود به راحتی استفاده کنید.

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

Readability یا خوانا بودن. نوع مفسری که پایتون دارد برنامه نویس را مجبور می کند که بصورتی کد نویسی کند که در پایان خواندن برنامه بسیار آسان باشد. در صورتی که در خیلی از زبانهای دیگر شما به راحتی می توانید چندین خط را در یک خط ادغام کرده و یا همه خطهای برنامه را در یک ستون بنویسید! ( این امر خواندن برنامه را بسیار سخت می کند)

چرا پایتون؟

Python Success Stories

Why Python - Slideshare

What is Python and Why Python

Why Python? | Meet the GIMP!

Why such popularity with Python?

Why was Python's popularity so sudden?

5 Reasons Why You Should Learn Python Programming

Why Python? | Programming For Biologists

Python. Why Did it Have to be Python?

پایتون ۲ یا ۳

پایتون ۳ یا ۳۰۰۰ یا py3k نسخه ای از پایتون است که تغییرات زیاد و پایه ای دارد و در کل backward compatibilly ندارد.

فهرست برخی از تغییرات عمده پایتون ۳ به نقل از ویکیپدیا

تغییر پرینت چون یک تابع غیر قابل انتقال است نه یک توضیح. این باعث می‌شود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت، آسان باشد و بنابراین ایجاد نحو منظم تر می‌شود. در پایتون ۲٫۶ این امکان با تایپ کردن from – future – import print – function فراهم شد. اضافه شدن حمایت از یادآوری تابع انتخابی که می‌تواند برای معرفی تایپ خصوصی یا اهداف دیگر استفاده شود. یکسان کردن تایپ str/Unicode، به نمایندگی از یک متن، و معرفی یک تایپ byte تغییر ناپذیر؛ با یک تایپ مطابق با bytearray تغییر پذیر، که هر دو آرایه از بایت را ارائه می‌کنند. از بین بردن خصوصیات سازگاری معکوس، شامل کلاس‌های به فرم قبل، قسمت کردن اعداد صحیح، استثناءهای رشته‌ای، و گزارش‌های نسبتاً نا آشکار.

در سایت اصلی پایتون اینگونه نوشته شده است که اگر کارتونو توانستنید با پایتون ۳ انجام دهید. دمتون گرم. ادامه بدهید.

در کل پایتون ۳ با مشکل پشتیبانی محدود کتابخانه ها مواجه است. هنوز کتابخانه‌هایی هستند که به پایتون ۳ port نشده‌اند. از طرفی اکثر سرور ها از سری python 2.x پشتیبانی می کنند. در کل پایتون ۳ زبان کاملی است و پشتیبانی خیلی بهتری از unicode دارد. از طرفی ابزار هایی مثل 2to3 کمک می کند کد های قدیمیتان را به پایتون ۳ تبدیل کنید (البته نه خیلی راحت)

2to3 - Automated Python 2 to 3 code translation

چه کتابخانه هایی هنوز به پایتون ۳ منتقل نشده اند؟

gevent - Python networking library

Twisted

البته یک سری از کتابخانه ها به صورت غیر رسمی port شده‌اند:

Some unofficial binaries are available for Python 3 PIL

کتابخانه مهمی که به پایتون ۳ منتقل شده‌اند:

Django‎

PySide

PyGObject

PyQt4

py2exe

CherryPy — A Minimalist Python Web Framework

Pylons Project

Python Imaging Library (PIL)‎

مقایسه در کد

قدیمی:

print "The answer is", 2 * 2
print x,           # Trailing comma suppresses newline
print              # Prints a newline
print >> sys.stderr, "fatal error"
print (x, y)       # prints repr((x, y))

جدید:

print("The answer is", 2 * 2)
print(x, end=" ")  # Appends a space instead of a newline
print()            # You must call the function!
print("fatal error", file=sys.stderr)
print((x, y))      # Not the same as print(x, y)!

What’s New in Python

نتیجه گیری

در کل پایتون ۲ با پایتون ۳ تفاوت خیلی زیادی در کد ندارند و برنامه نویس پایتون ۲ به راحتی می تواند پایتون ۳ را یاد بگیرد. اما منابع آموزشی مربوط به پایتون ۲ بسیار زیاد تر. ابزار بیشتر و ... دارند. توصیه آخرم این است که تازه وارد ها با پایتون ۲ کار کنند و فقط از پایتون ۳ استفاده کنند که دقیقا می دانند می خواهند چه استفاده ای از پایتون ۳ بکنند. یعنی تمامی نیاز مندی کارشان را در نظر بگیرند.

مقالات مرتبط

How to support both Python 2 and 3

How CherryPy supports Python 2 and 3

($) Porting to Python 3 - The Book Site

Let's talk about Python 3.0

Pros and Cons about Python 3

Python2orPython3

Python 2 vs Python 3 and Tutorial

Should I learn Python 2 before 3, or start directly from Python 3?

Differences between Python 2.x and Python 3.x