بررسی تفاوتهای پایتون ۲ و پایتون ۳
در صورتی که شما به تازگی وارد دنیای پایتون شدهاید، ممکن است کمی در انتخاب نسخهی مناسب این زبان سردرگم شده باشید. اگرچه پایتون ۳ آخرین نسخهی این زبان است، اما هنوز هم بسیاری از برنامه نویسان از نسخهی ۲ آن استفاده میکنند (به دلیل وجود کتابخانههایی که در حال حاضر در پایتون ۳ وجود ندارد). هیچ پاسخ قطعی و کاملا درستی برای این سوال وجود ندارد که شما باید از کدام نسخهی پایتون استفاده نمایید. همه چیز به نیاز شما و زمینهای که میخواهید از پایتون در آن استفاده کنید بستگی دارد. ممکن است کدی که شما در پایتون ۲ مینویسید، نیاز باشد تا به گونهای دیگر در پایتون ۳ نوشته شود.
در این بخش، برخی از تفاوتهای اساسی پایتون ۲ و پایتون ۳ را بررسی میکنیم که به ما کمک میکند تا نسخهی جدید این زبان را بهتر یاد بگیریم.
- دستور print: این دستور در پایتون ۳ بر خلاف نسخهی ۲، یک تابع میباشد که باید متن یا متغیر خود را درون پرانتز قرار داده تا چاپ کنیم (برای نمایش یک متن در پایتون ۲ نیاز به استفاده از پرانتز نمیباشد). این بدین معناست که شما باید لیستی از آیتمهای مورد نیاز خود را با کاما از هم جدا کرده و آنها را برای نمایش درون پرانتز قرار دهید.
# Python 2.x print "Zero to Hero" # Python 3.x print ("Zero to Hero")
- تقسیم دو عدد صحیح: در پایتون ۲، زمانی که دو عدد صحیح را بر هم تقسیم میکنیم، نتیجهی خروجی یک عدد صحیح میشود. برای مثال، حاصل تقسیم عدد ۳ بر ۲ برابر ۱ خواهد بود. نه ۱٫۵! به این دلیل که پایتون تصور میکند خروجی مورد نظر شما باید یک عدد صحیح باشد و حاصل را به پایین رند میکند. برای بدست آوردن حاصل ۱٫۵ باید عدد ۳٫۰ را بر ۲٫۰ تقسیم نمایید تا پایتون بداند که خروجی مورد نظر شما باید یک عدد اعشاری باشد. اما در پایتون ۳ به صورت پیش فرض حاصل تقسیم عدد ۳ بر ۲ برابر ۱٫۵ خواهد و نیازی به مشخص نمودن اعداد به صورت اعشاری نمیباشد.
- پشتیبانی از یونیکد: پایتون ۳ رشتهها را به صورت پیش فرض به عنوان یونیکد (Unicode) ذخیره میکند. در حالی که در پایتون ۲، شما باید قبل از رشتهی متن خود، از حرف u استفاده کنید تا آن را به صورت یونیکد ذخیره نماید. رشتههای یونیکد نسبت به رشتههای ASCII (که پایتون ۲ به صورت پیش فرض از آن استفاده میکند)، کاربرد بیشتری داشته و فراگیر تر میباشند. در این حالت شما میتوانید به راحتی یک متن فارسی را در یک متغیر ذخیره کرده و آن را چاپ کنید و یا از شکلک (emoji) در متون خود استفاده نمایید.
- کنترل خطا و استثنائات (Raising Exceptions): در پایتون ۳، به منظور نمایش یک متن خطا به کاربر، شما باید پیغام خود را درون پرانتز بنویسید. اما در پایتون ۲ نیازی به استفاده از پرانتز نمیباشد.
# Python 2.x raise IOError, "error message" # Python 3.x raise IOError("error message")
- دریافت ورودی از کاربر: در پایتون ۳، تابع دریافت کنندهی ورودی از کاربر، input()، تمام مقادیر دریافت شده را بصورت رشته (str) ذخیره میکند. بدین منظور در پایتون ۲، مجبور بودیم از تابع raw_input() استفاده نماییم. چرا که استفاده از تابع input() در نسخهی ۲ این زبان، مقدار ورودی را همراه با نوع آن داده دریافت میکرد.
first_input = input('enter input1: ') type (first_input) second_input = raw_input('enter input2: ') # equivalent to python 3.x input() type (second_input) # Output: # enter input1: 123456 # <type 'int'> # enter input2: 123456 # <type 'str'>
میتوان گفت این موارد، بارز ترین تفاوتهای موجود بین این دو نسخه میباشد. از آنجا که پایتون ۲ قدمت بیشتری نسبت به پایتون ۳ دارد، تمام کتابخانههای موجود در آن هنوز به طور کامل در نسخهی ۳ این زبان وارد نشده است. علاوه بر این، برخی تغییرات در پایتون ۳ باعث شده است تا این نسخه از زبان برای یادگیری تازه کاران قابل درک تر و بهتر باشد. بنابراین افراد مبتدی که نیاز به استفاده از کتابخانههای خاصی را در ابتدای کار خود ندارند، شاید بهتر باشد از نسخهی ۳ این زبان استفاده کنند.
به طور کلی اگر قصد دارید تا از پایتون ۲ به پایتون ۳ مهاجرت کنید (یا برعکس)، نیاز به زمان زیادی ندارید تا دستورات نسخهی دیگر را یاد بگیرید. چرا که اکثر دستورات در هر دو نسخه شبیه یکدیگر هستند. به مرور زمان که پایتون ۳ بروز شده و بهبود مییابد، برنامه نویسان پایتون ۳ نیز افزایش مییابند. به هر حال این تصمیم شماست که قصد دارید به دستهی برنامه نویسان پایتون ۳ بپیوندید و یا به استفاده از پایتون ۲ ادامه داده و در صورت لزوم نسخهی زبان خود را تغییر دهید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.