
تفاوت پایتون 2 و 3 با معرفی پایتون 3 یعنی در سال 2008 مطرح شد. پایتون 3 موفق شد نسخه ای از پایتون را معرفی کند که علاوه بر بهره مندی از امکانات فراوان، زبان برنامه نویسی را نیز ساده کرد. ناگفته نماند که این نسخه جدید کار را برای برنامه نویسانی که با پایتون 2 برنامه نویسی می کردند دشوار می کرد. چون به طور کلی سینتکس پایتون 2 با پایتون 3 متفاوت است حال سوال مهم این است که کدام یک از نسخه های مختلف پایتون مفیدتر است؟ در این مقاله وبلاگ پارس پک، 6 نمونه از تفاوت های پایتون 2 و 3 را بررسی خواهیم کرد. پس تا انتها همراه ما باشید.
تفاوت بین پایتون 2 و 3
تفاوت بین Python 2 و 3 را می توان از جنبه های مختلف بررسی کرد. با معرفی پایتون 3 در سال 2008، تفاوت هایی بین این نسخه و پایتون 2 ظاهر شد. به طور کلی، سینتکس پایتون 3 تغییر کرده است و سعی می شود برنامه نویسی پایتون را آسان تر کند. در ادامه، 6 تفاوت اصلی بین پایتون 2 و 3 را بررسی خواهیم کرد.

1. عملکرد چاپ
در بررسی اولین تفاوت پایتون 2 و پایتون 3 به عملکرد چاپ این دو نسخه خواهیم پرداخت. در پایتون 2، تابع چاپ به عنوان دستور شناخته می شود. در حالی که در پایتون 3 یک تابع است. به عبارت دیگر، در پایتون 2، برای استفاده از دستور Print، لازم نیست آن را داخل پرانتز قرار دهید. یعنی با یا بدون پرانتز دستور در پایتون 2 اجرا می شود در ضمن اگر از پرانتز در پایتون 3 بدون پرانتز استفاده کنید برنامه با خطا مواجه می شود. مثال های زیر به درک این موضوع کمک می کند:
#Python 2.7 print 'Python', python_version() print 'Hello, World!' print('Hello, World!') print "text", ; print 'some more text here'
خروجی دستور چاپ در پایتون 2.7.6
خارج شوید
Python 2.7.6 سلام دنیا! سلام دنیا! متن چاپ متن بیشتر در اینجا Python 3 import sys print(“نسخه پایتون %s.%s.%s است” %sys.version_info[:3]) print(‘Hello world!’) print(“some text,” end=””) print(‘متن بیشتر در اینجا”)
نتیجه دستور Print در پایتون نسخه 3.6.1
خارج شوید
نسخه پایتون 3.6.1 سلام دنیا! مقداری متن مقداری متن بیشتر اینجا >>> چاپ “Hello” خطای نحوی: پرانتزهای موجود در فراخوانی برای “چاپ” وجود ندارد
2. تقسیم دو عدد صحیح
در مقایسه پایتون 2 و 3 در مورد تقسیم دو عدد صحیح باید بگوییم که اگر قصد دارید برنامه ای بنویسید که دقیقاً نتیجه تقسیم دو عدد صحیح تقسیم ناپذیر را محاسبه کند، پایتون 2 برای شما کار نخواهد کرد. تفاوت دیگر پایتون 2 و 3 این است که در پایتون 2 نتایج حاصل از تقسیم اعداد صحیح و اعداد اول به صورت رند نمایش داده می شود. یعنی ارقام بعد از نقطه اعشار در پایتون 2 نمایش داده نمی شوند. این مشکل می تواند روی نتایج تقسیم و برنامه ای که نوشته اید تأثیر منفی بگذارد.
برای مثال، فرض کنید می خواهید عبارت را بر 2/3 تقسیم کنید. اگر کد تقسیم 3 بر 2 را در پایتون 2 بنویسید، نتیجه تقسیم به جای 1.5 عدد صحیح 1 خواهد بود. برای نوشتن این برنامه در پایتون 3 پیشنهاد می کنیم از (float(x) به جای x استفاده کنید. همچنین می توانید از قسمت from __future__ در پایتون 2 برای دستور split استفاده کنید. مثال های زیر به درک بهتر این بخش کمک می کند:
دستور split در پایتون 2
print 'Python', python_version() print '3 / 2 =', 3 / 2 print '3 // 2 =', 3 // 2 print '3 / 2.0 =', 3 / 2.0 print '3 // 2.0 =', 3 // 2.0
نتیجه دستور split در پایتون 2.7.6
خارج شوید
پایتون 2.7.6 3 / 2 = 1 3 // 2 = 1 3 / 2.0 = 1.5 3 // 2.0 = 1.0
دستور split در پایتون 3.6.1
import sys print('Python %s.%s.%s' %sys.version_info[:3]) print('3 / 2 =', 3 / 2) print('3 // 2 =', 3 // 2) print('3 / 2.0 =', 3 / 2.0) print('3 // 2.0 =', 3 // 2.0)
خروجی دستور split در پایتون 3.6.1
Python 3.6.1 3 / 2 = 1.5 3 // 2 = 1 3 / 2.0 = 1.5 3 // 2.0 = 1.0
3. ذخیره رشته ها در پایتون
بررسی تفاوت بین پایتون 2 و 3 ما را به بخش ذخیره رشته ها در پایتون می رساند. به طور پیش فرض، Python 3 رشته ها را به صورت Unicode (aUTF-8) ذخیره می کند. در حالی که برای ذخیره رشته کدها در پایتون 2 باید از حرف “u” استفاده شود.
رشته های یونیکد در پایتون 3 در مقایسه با رشته های پیش فرض پایتون 2 که به صورت ASCII (ASCII) ذخیره می شوند، انعطاف پذیری قابل توجهی دارند. زیرا در پایتون 3 به راحتی می توانید کدهای زبان خارجی، شکلک ها، حروف یا اعداد رومی استاندارد را رمزگذاری کنید. به مثال زیر توجه کنید:
ذخیره کد در پایتون 2
>>> print type(unicode('this is like a python3 str type')) <type 'unicode'> >>> print type(b'byte type does not exist') <type 'str'> >>> print 'they are really' + b' the same' they are really the same
ذخیره کد در پایتون 3
import sys print('Python %s.%s.%s' %sys.version_info[:3]) print('strings are now utf-8 u03BCnicou0394é!') print('Python %s.%s.%s' %sys.version_info[:3], end="") print(' has', type(b' bytes for storing data')) print('Python %s.%s.%s' %sys.version_info[:3], end="") print(' also has', type(bytearray(b'bytearrays')))
برای ذخیره کد در پایتون 3 خارج شوید
خارج شوید
رشته های پایتون 3.6.1 اکنون utf-8 μnicoΔé هستند! پایتون 3.6.1 دارد
خروجی ذخیره کد در پایتون 2
>>> print ('they are really' + b' the same') Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> print ('they are really' + b' the same') TypeError: must be str, not bytes
4. تفاوت پایتون 2 و 3 در نمایش متغیرهای حلقه
تکرار حلقه یا For Loop در پایتون 2، نام متغیری که در سراسر کد استفاده میکنید ممکن است با متغیر نهایی متفاوت باشد. این در حالی است که مشکل مذکور در پایتون 3 حل شده است. بنابراین میتوانید از نام متغیری که قبلاً استفاده کردهاید به عنوان متغیر For Loop بدون نگرانی در مورد تغییر مقدار متغیر نهایی استفاده کنید. برای درک بهتر این مشکل به مثال زیر توجه کنید:
کد دستوری در پایتون 2
#Python 2 print 'Python', python_version() i = 1 print 'before: i =', i print 'comprehension: ', [i for i in range(5)] print 'after: i =', i
خروجی در پایتون 2.7.6
خارج شوید
Python 2.7.6 قبل: i = 1 درک: [0, 1, 2, 3, 4] بعد از: i = 4
کد دستوری در پایتون 3
import sys print('Python %s.%s.%s' %sys.version_info[:3]) i = 1 print('before: i =', i) print('comprehension:', [i for i in range(5)]) print('after: i =', i)
خروجی در پایتون 3.6.1
خارج شوید
Python 3.6.1 قبل: i = 1 درک: [0, 1, 2, 3, 4] بعد از: i = 1
5. آرگومان استثنا را نمایش دهید (Raise Exception)
در پایتون 3، برای نشان دادن استثناها، باید آنها را مانند شکل زیر در پرانتز قرار دهید:
raise IOError(“your error message”)
کد بالا را می توان برای هر دو نسخه پایتون استفاده کرد. در حالی که کد زیر فقط برای Python 2 مفید خواهد بود. این بدان معنی است که برای استفاده از Raise Exceptions، فقط می توانید آنها را بدون پرانتز در Python 2 استفاده کنید:
raise IOError, “your error message”
6. کتابخانه در نسخه های مختلف پایتون
بسیاری از کتابخانه های ایجاد شده در پایتون 2 با پایتون 3 سازگار نیستند و این ناسازگاری باعث ایجاد مشکل در انتقال کتابخانه پایتون 2 به 3 شده است همچنین اگر قصد دارید پروژه را از پایتون 2 به پایتون 3 تبدیل کنید، باید تمام کتابخانه ها را تبدیل کنید. از پایتون
به دلیل منسوخ شدن پایتون 2، مشکلات زبان برنامه نویسی آن در پایتون 3 برطرف شده است. بنابراین انتظار می رود پایتون 2 در چند سال آینده کاملاً منسوخ شود.

جدول تفاوت های پایتون 2 و 3
با مشاهده جدول زیر می توانید تفاوت نسخه های پایتون را بهتر درک کنید.
پارامتر | پایتون 2 | پایتون 3 |
سال صدور | منتشر شده در سال 2000 | منتشر شده در سال 2008 |
یک ویژگی کاربردی مانند چاپ | به عنوان دستور بدون پرانتز | به عنوان تابع و با پرانتز |
رشته کد را ذخیره کنید | پیش فرض ASCII (ASCII) است. | پیش فرض یونیکد است |
تقسیم اعداد اول | اعداد بعد از اعشار را حذف کنید | عدد صحیح با اعشار |
متغیر حلقه نمایش | تغییر در مقادیر متغیر | مقادیر متغیر ثابت هستند |
استثنا برای طرح استدلال | نیازی به براکت نیست | با براکت |
کتابخانه | ناسازگاری بسیاری از کتابخانه ها با Forward | دارای کتابخانه های پیشرفته پایتون است |
کاربرد پایتون چیست و چرا محبوب است؟ برای استفاده بهتر از پایتون به چه نکاتی باید توجه کنیم؟ در مقاله زیر بخوانید.
پایتون چیست؟
پایتون 2 یا 3؛ کدام نسخه از پایتون بهتر است؟
در مورد تفاوت بین نسخه های پایتون، بدون شک پایتون 3 برنده خواهد بود. این مشکل به خصوص از سال 2020 و زمانی که پایتون 2 در دسترس نبود حل شد. علاوه بر این، به دلیل پشتیبانی ضعیفتر از پایتون ۲ و ارتقا به پایتون ۳، پیشنهاد میکنیم همیشه از آخرین نسخه پایتون استفاده کنید.
درک آسان و استفاده از Python 3 باعث افزایش محبوبیت این نسخه شد. با این حال، ممکن است با پروژه ای روبرو شوید که از پایتون 2 استفاده می کند. بنابراین، به عنوان یک توسعه دهنده، شما همچنین باید بدانید که چگونه با نسخه قدیمی پایتون کار کنید.

نتیجه
تفاوت بین Python 2 و 3 شامل عملکرد توابع با وضعیت سازگاری کتابخانه های دو نسخه است. در این مقاله از وبلاگ پارس پاک به ۶ تفاوت اصلی نسخه های پایتون پرداختیم. پایتون 2.7 به عنوان آخرین نسخه پایتون در سال 2020 متوقف شد.
پایتون 3 که در سال 2008 منتشر شد، به عنوان یک زبان برنامه نویسی جدید تا حد زیادی مشکلات نسخه ناسازگار قبلی خود را برطرف کرده است. با این حال، مشکلاتی در انتقال پروژه ها از پایتون 2 به پایتون 3 وجود دارد و رشد و توسعه پایتون 3 به زودی آن را به جایگزینی قدرتمند برای پایتون 2 تبدیل خواهد کرد.
به نظر شما کدام نسخه از پایتون برای برنامه نویسان کارآمدتر و قدرتمندتر خواهد بود؟ نظر خود را از طریق نظرات با ما در میان بگذارید.
نسخه جدید پایتون برنامه نویسان را متحول کرد. با معرفی نسخه جدید، برنامه نویسانی که قبلا با پایتون 2 کار می کردند باید علاوه بر دانستن تفاوت بین پایتون 2 و 3، دانش برنامه نویسی خود را به روز کنند. از تفاوت های موجود در کتابخانه های فعلی پایتون تا استفاده از دستورات و متغیرها، برنامه نویسی در پایتون 3 ساده تر شد.
سوالات متداول
1. تفاوت پایتون 2 و 3 چیست؟
ساده ترین و اساسی ترین تفاوت بین نسخه های پایتون در دستور Print است. زیرا در پایتون 2 این به عنوان یک دستور و در پایتون 3 به عنوان یک تابع شناخته می شود.
2. کدام پایتون نسخه 2 یا 3 سریعتر است؟
پایتون 3 به طور کلی سریعتر از پایتون 2 است.
3. آیا امکان نصب پایتون 2 و 3 وجود دارد؟
بله، هر دو نسخه را می توان بدون نگرانی در مورد تداخل برنامه های آنها بر روی یک رایانه نصب کرد.
4. آیا پایتون 3 همان CPython است؟
بله، CPython نسخه اصلی و جدید پایتون است.