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

۱ مطلب با موضوع «هفته‌ی دوم :: فهیمه» ثبت شده است

پایتون یک زبان آسان برای  یاد گرفتن و برای برنامه نویسی قدرتمند می باشد. داده ساختار های کارای سطح بالایی دارد که برای برنامه نویسی 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);
۲ نظر موافقین ۰ مخالفین ۰ ۰۴ آذر ۹۱ ، ۱۷:۰۷
فهیمه هاجری