پایتون یک زبان برنامهنویسی سطح بالا و تفسیر شده است که به خاطر خوانایی، سادگی و چندمنظوره بودنش شناخته میشود. این زبان توسط گیدو ون روسوم ایجاد شده و اولین بار در سال 1991 منتشر شد. پایتون از چندین پارادایم برنامهنویسی پشتیبانی میکند، از جمله برنامهنویسی رویهای، شیگرا و تابعی. نحو آن به گونهای طراحی شده است که واضح و شهودی باشد و به مبتدیان و توسعهدهندگان با تجربه اجازه میدهد کدهای تمیز و قابل نگهداری بنویسند. کتابخانه استاندارد گسترده پایتون و اکوسیستم بزرگ بستههای شخص ثالث، آن را به انتخابی ترجیحی برای برنامههای مختلف، از توسعه وب و تحلیل دادهها تا هوش مصنوعی و محاسبات علمی تبدیل کرده است.
پایتون در اواخر دهه 1980 به عنوان جانشینی برای زبان برنامهنویسی ABC تصور شد. گیدو ون روسوم در تعطیلات کریسمس بر روی آن کار کرد و هدفش این بود که زبانی باشد که شکاف بین برنامهنویسی و قابلیت استفاده را پر کند و بسیاری از ویژگیهای ABC را در بر بگیرد، اما با پشتیبانی اضافی برای مدیریت استثناها و توابع. نسخه اول، پایتون 0.9.0، در فوریه 1991 منتشر شد و ویژگیهای کلیدی مانند کلاسها با وراثت، انواع دادههای پایه و مدیریت استثناها را به نمایش گذاشت.
پایتون به سرعت در جامعه برنامهنویسی به خاطر نحو آسان یادگیری و چندمنظوره بودنش محبوب شد. انتشار پایتون 2.0 در سال 2000 ویژگیهای جدید قابل توجهی مانند درک لیستها و جمعآوری زباله را معرفی کرد. پایتون 3.0، که در سال 2008 منتشر شد، به منظور اصلاح نقصهای ذاتی طراحی و بهبود وضوح ایجاد شد، هرچند که با پایتون 2.x سازگاری معکوس نداشت. این امر منجر به دورهای از همزیستی بین دو نسخه شد، اما پایتون 2 در ژانویه 2020 به پایان عمر خود رسید و توسعهدهندگان را به انتقال کامل به پایتون 3.x ترغیب کرد.
وضعیت کنونی پایتون نشاندهنده پذیرش گسترده آن در حوزههای مختلف است. این زبان به طور گستردهای در توسعه وب (Django، Flask)، علم داده (Pandas، NumPy، SciPy)، یادگیری ماشین (TensorFlow، scikit-learn) و اسکریپتنویسی استفاده میشود. اکوسیستم غنی پایتون، پشتیبانی وسیع جامعه و بهروزرسانیهای مداوم به بهبود قابلیتهای آن ادامه میدهد و آن را در چشمانداز همیشه در حال تغییر زبانهای برنامهنویسی مرتبط نگه میدارد.
یکی از ویژگیهای بارز پایتون تأکید بر خوانایی است. کد معمولاً شبیه به زبان انگلیسی ساده است و این امر فهم و نگهداری آن را برای توسعهدهندگان آسانتر میکند. به عنوان مثال، به جای استفاده از براکتها یا نقطهویرگولها، پایتون از تورفتگی برای تعریف بلوکهای کد استفاده میکند:
if x > 0:
print("مثبت")
else:
print("غیر مثبت")
پایتون از نوعگذاری پویا استفاده میکند، به این معنی که نوع متغیرها در زمان اجرا تعیین میشود. توسعهدهندگان نیازی به اعلام نوع متغیرها بهطور صریح ندارند:
number = 42 # این یک عدد صحیح است
number = "سلام" # حالا این یک رشته است
توابع در پایتون اشیاء کلاس اول هستند، به این معنی که میتوان آنها را به عنوان آرگومانها منتقل کرد، از توابع دیگر بازگرداند و به متغیرها اختصاص داد:
def greet(name):
return f"سلام، {name}"
def apply_function(func, value):
return func(value)
print(apply_function(greet, "جهان")) # خروجی: سلام، جهان
پایتون از درک لیستها پشتیبانی میکند، که روشی مختصر برای ایجاد لیستها از لیستهای موجود است:
squares = [x**2 for x in range(10)]
print(squares) # خروجی: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
پایتون یک مدل مدیریت استثنا قوی را با استفاده از بلوکهای try و except گنجانده است که مدیریت خطا را بهبود میبخشد:
try:
result = 10 / 0
except ZeroDivisionError:
print("نمیتوان بر صفر تقسیم کرد")
پایتون به طور کامل از برنامهنویسی شیگرا با کلاسها و وراثت پشتیبانی میکند و به این ترتیب امکان کپسولهسازی دادهها و متدها را فراهم میآورد:
class Animal:
def speak(self):
return "صدا"
class Dog(Animal):
def speak(self):
return "واق"
dog = Dog()
print(dog.speak()) # خروجی: واق
پایتون به توسعهدهندگان اجازه میدهد کد را به ماژولها و بستهها سازماندهی کنند و این امر به بهبود استفاده مجدد از کد کمک میکند:
# mymodule.py
def my_function():
return "سلام، ماژول"
# main.py
import mymodule
print(mymodule.my_function()) # خروجی: سلام، ماژول
پایتون دارای دکوراتورها است که اجازه میدهد توابع یا متدها تغییر یابند. آنها معمولاً برای ثبت وقایع، اعمال کنترل دسترسی یا ابزارسازی استفاده میشوند:
def decorator_function(original_function):
def wrapper_function():
print("دکوراتور قبل از {}".format(original_function.__name__))
return original_function()
return wrapper_function
@decorator_function
def display():
return "تابع نمایش اجرا شد"
print(display()) # خروجی: دکوراتور قبل از display /n تابع نمایش اجرا شد
تولیدکنندهها روشی بهینه از نظر حافظه برای ایجاد تکرارگرها با استفاده از عبارت yield
هستند که امکان ارزیابی تنبل توالیها را فراهم میآورند:
def countdown(num):
while num > 0:
yield num
num -= 1
for number in countdown(5):
print(number) # خروجی: 5 4 3 2 1
پایتون از مدیران زمینه با استفاده از عبارت with
پشتیبانی میکند که راهی برای مدیریت مؤثر منابع بدون نیاز به کد تمیزکاری صریح فراهم میآورد:
with open("file.txt") as file:
content = file.read()
print(content) # فایل به طور خودکار پس از بلوک بسته میشود
پایتون عمدتاً یک زبان تفسیر شده است که به انواع مختلفی از مفسرها، مانند CPython (پیادهسازی استاندارد)، PyPy (یک کامپایلر Just-In-Time) و Jython (که بر روی پلتفرم جاوا اجرا میشود) وابسته است. این زبان میتواند در محیطهای مختلفی از جمله رابطهای خط فرمان، سرورهای وب و محیطهای توسعه یکپارچه اجرا شود.
چندین محیط توسعه یکپارچه (IDE) از توسعه پایتون پشتیبانی میکنند و ویژگیهایی مانند تکمیل کد هوشمند، ابزارهای اشکالزدایی و مدیریت پروژه را ارائه میدهند. IDEهای محبوب شامل:
برای ساخت یک پروژه پایتون، توسعهدهندگان معمولاً از یک محیط مجازی برای مدیریت وابستگیها استفاده میکنند. ماژول venv
امکان ایجاد محیطهای ایزوله را فراهم میکند که در آنها میتوان وابستگیها را بدون تأثیر بر نصب پایتون در سطح سیستم نصب کرد.
python -m venv myenv
source myenv/bin/activate # در ویندوز، از `myenv\Scripts\activate` استفاده کنید
pip install -r requirements.txt # نصب وابستگیها
پایتون در طیف وسیعی از کاربردها استفاده میشود، از جمله اما نه محدود به:
پایتون اغلب با چندین زبان برنامهنویسی دیگر بر اساس استفاده و پارادایمهایشان مقایسه میشود.
هنگام در نظر گرفتن ترجمه منبع به منبع از پایتون به سایر زبانها، درک پارادایم و نحو زبان هدف ضروری است. چندین ابزار برای این منظور وجود دارد: