پایتون یک زبان آسان برای یاد گرفتن و برای برنامه نویسی قدرتمند می باشد. داده ساختار های کارای سطح بالایی دارد که برای برنامه نویسی object-oriented مناسب می باشند. syntax زیبا و dynamic typing و اینکه این زبان یک زبان مفسری است باعث می شود این زبان برای نوشتن script و application های سریع مناسب باشد. پایتون یک زبان قابل گسترش می باشد به این معنی که اگر لازم باشد یک تکه کد خیلی سریع باشد می توان آن را با c یا ++c نوشت و آن را به برنامه ای که با زبان پایتون نوشته شده ترکیب کرد.
همچنین می توان از آن برای نوشتن script در زبان های دیگر استفاده کرد.
تاریخچه
پیاده سازی زبان پایتون توسط Guido van RossumدرCWI در هلند، سال 1989 آغاز شد. این زبان error handling بالا داشته .نویسنده ی اصلی این زبان Rossum شناخته شد و نقش مرکزی این فرد در تعیین مسیر پایتون در لقبی که جامعیت پایتون به او دادند مشخص است که این لقب Benevolent Dictator for Life می باشد.2.0 python در 16 oct سال 2000 با ویژگی های بزرگی مثل garbage collector و پشتیبانی Unicode .
Rossum در سال 1991 کد خود را با ورژن 0.9.0 انتشار عمومی داد .
انواع تایپ های موجود در پایتون
در پایتون همانند جاوا تایپ string وجود دارد و عملیات مختلفی می توان روی آن انجام داد. به طور مثال:
>>> 'machine'.upper() 'MACHINE' >>> 'HELP'.lower() 'help' >>> len('Help') 4
انواع تایپ های built-in در پایتون :
1-list : در لیست ها اندیس منفی هم می توانیم داشته باشیم. و داده های داخل لیست می توانند انواع مختلفی داشته باشند حتی می توان لیست ای از لیست ها ایجاد کرد.
مثال ای از لیست و عملیات روی آن:
>>> lstOfLsts = [['a','b','c'],[1,2,3],['one','two','three']] >>> lstOfLsts[1][2] 3 >>> lstOfLsts[0].pop() 'c' >>> lstOfLsts [['a', 'b'],[1, 2, 3],['one', 'two', 'three']]
2-tuples : این داده ساختار شبیه لیست است با این تفاوت که فقط در هنگام ایجاد می توان به آن مقدار داد و مقدار آن غیر قابل تغییر می باشد. در syntax هم تفاوت ای که دارند این است که در هنگام تعریف از پرانتز به جای براکت استفاده می شود.
>>> pair = (3,5) >>> pair[0] 3 >>> x,y = pair >>> x 3 >>> y 5 >>> pair[1] = 6 TypeError: object does not support item assignment
3-set : در set عضو تکراری نگه داشته نمی شود و syntax آن به صورت زیر است:
>>> shapes = ['circle','square','triangle','circle'] >>> setOfShapes = set(shapes) >>> setOfShapes set(['circle','square','triangle'])
4- dictionary : داده ساختاری است که یک نوع( object (key را نوع دیگری (value) نظیر می کند. key باید یک type تغییز ناپذیر باشد ( string - tuple - number) باشد اما (value) هر نوع داده ای می تواند باشد.
>>> studentIds = {'knuth': 42.0, 'turing': 56.0} >>> studentIds['turing'] 56.0
1-if
در پایتون هم if یکی از ساختار های کنترلی محسوب می شود و همچنین از آن به عنوان switch -case هم استفاده می شود.
کلمه ی کلیدی elif مختصر شده ی else if می باشد که مثال زبر استفاده از آن را نشان می دهد.
>>> x = int(raw_input("Please enter an integer: ")) Please enter an integer: 42 >>> if x < 0: ... x = 0 ... print 'Negative changed to zero' ... elif x == 0: ... print 'Zero' ... elif x == 1: ... print 'Single' ... else: ... print 'More' ... More
2- for
for در پایتون با زبان های دیگر کمی متفاوت می باشد . در for ، می توان در iteration آن از item هایی از هر نوع استفاده کرد.مثلا لیست ای از string .
>>> for w in words[:]: # Loop over a copy of the entire list. ... if len(w) > 6: ... words.insert(0, w) ... >>> words ['defenestrate', 'cat', 'window', 'defenestrate']
برخی از ویژگی های زبان پایتون
1-lambda function
زبان پایتون اجازه تعریف function های بی نام در زمان اجرا می دهد. این امکان را با دستوری به نام lambda فراهم می کند. lambda در زبان پایتون دقیقا مثل lambda در زبان های functional نمی باشد.
قطعه کد زیر تفاوت lambda و function معمولی را نشان می دهد.
>>> def f (x) : return x**2; ... >>> print f(8) 64 >>> >>> g = lambda x : x**2 >>> >>> print g(8) 64
2- for
همان طور که در مثال مشخص است این تابع و lambda مثل هم عمل می کنند . ولی در return ، lambda
وجود ندارد و همیشه در lambda یک statement وجود دارد که برگرداننده می شود.
3- multi -inheritance
در زبان پایتون بر خلاف جاوا که فقط یک کلاس می تواند extend از یک کلاس باشد ، در اینجا یک کلاس می تواند از چند کلاس extend شده باشد.
به طور مثال:
class First(object):
def __init__(self):
print "first"
class Second(object):
def __init__(self):
print "second"
class Third(First, Second):
def __init__(self):
super(Third, self).__init__()
print "that's it"
4- fixed format
پایتون را می توان تقریبا در دسته ی زبان های fixed format قرار داد البته به طور کامل fixed format نیست چون اگر space در بعضی موارد کم یا زیاد شود error نمی گیرد ولی با استفاده از tab به جای کروشه دستور های موجود در for یا if را مشخص می کند و وجود tab برای این کار ضروری است .
5- اضافه کردن field
در پایتون این اجازه به برنامه نویس داده می شود که یک کلاسی که قبلا تعریف کرده در جایی دیگر به یک instance از آن یک item دیگر اضافه کند.
class Student: pass std = Student () std.name = "John Smith!"
اگر نام این field در زمان اجرا مشخص می شود:
field_name = ... #read from input setattr (std, field_name, 5);