محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
شنبه, ۲۷ خرداد ۱۳۹۱، ۱۰:۱۸ ق.ظ

پایتون ۲ یا پایتون ۳؟

پایتون ۳ یا ۳۰۰۰ یا py3k نسخه ای از پایتون است که تغییرات زیاد و پایه ای دارد و در کل backward compatibilly ندارد.

فهرست برخی از تغییرات عمده پایتون ۳٫۰ به نقل از ویکی پدیا


در سایت اصلی پایتون اینگونه نوشته شده است که اگر کارتونو توانستنید با پایتون ۳ انجام دهید. دمتون گرم. ادامه بدهید.

در کل پایتون ۳ با مشکل پشتیبانی محدود کتابخانه ها مواجه است. هنوز library هایی هستند که به python3 port نشده اند.
از طرفی اکثر سرور ها از سری python 2.x پشتیبانی می کنند.
در کل پایتون ۳ زبان کاملی است و پشتیبانی خیلی بهتری از unicode دارد.
از طرفی ابزار هایی مثل 2to3 کمک می کند کد های قدیمیتان را به پایتون ۳ تبدیل کنید (البته نه خیلی راحت)

 

چه کتابخانه هایی هنوز به پایتون ۳ منتقل نشده اند؟
 

Django framework
این فریم ورک طراحی وب هنوز نسخه پایتون ۳ نداده است ولی در برنامه دارند این کار را انجام دهند.

خبری در hackernews هست که بیشتر زمان را مشخص می کند. هرچند خیلی رسمی نیست


البته یک سری از کتابخانه ها به صورت غیر رسمی port شده اند.



کتابخانه مهمی که به پایتون ۳ منتقل شده اند


مقایسه در کد

Old: print "The answer is", 2*2
New: print("The answer is", 2*2)

Old: print x,           # Trailing comma suppresses newline
New: print(x, end=" ")  # Appends a space instead of a newline

Old: print              # Prints a newline
New: print()            # You must call the function!

Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)

Old: print (x, y)       # prints repr((x, y))
New: print((x, y))      # Not the same as print(x, y)!

 

نتیجه گیری
در کل پایتون ۲ با پایتون ۳ تفاوت خیلی زیادی در کد ندارند و برنامه نویس پایتون ۲ به راحتی می تواند پایتون ۳ را یاد بگیرد. اما منابع آموزشی مربوط به پایتون ۲ بسیار زیاد تر. ابزار بیشتر و ... دارند.
توصیه آخرم این است که تازه وارد ها با پایتون ۲ کار کنند و فقط از پایتون ۳ استفاده کنند که دقیقا می دانند می خواهند چه استفاده ای از پایتون ۳ بکنند. یعنی تمامی نیاز مندی کارشان را در نظر بگیرند.

 

مقالات مرتبط

 

 



نوشته شده توسط محمد افاضاتی
ساخت وبلاگ در بلاگ بیان، رسانه متخصصان و اهل قلم

محمد افاضاتی

دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس
محمد افاضاتی
محمد افاضاتی برنامه نویس python php دیتابیس های postgresql mongodb و ...

رونوشتی از علاقه مندی هایم برای ماندگار تر شدن!

تبلیغات

طبقه بندی موضوعی

Feedburner RSS

Others

توییتر

پایتون ۲ یا پایتون ۳؟

شنبه, ۲۷ خرداد ۱۳۹۱، ۱۰:۱۸ ق.ظ

پایتون ۳ یا ۳۰۰۰ یا py3k نسخه ای از پایتون است که تغییرات زیاد و پایه ای دارد و در کل backward compatibilly ندارد.

فهرست برخی از تغییرات عمده پایتون ۳٫۰ به نقل از ویکی پدیا

  •     تغییر پرینت چون یک تابع غیر قابل انتقال است نه یک توضیح. این باعث می‌شود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت، آسان باشد و بنابراین ایجاد نحو منظم تر می‌شود. در پایتون ۲٫۶ این امکان با تایپ کردن from – future – import print – function فراهم شد.
  •     اضافه شدن حمایت از یادآوری تابع انتخابی که می‌تواند برای معرفی تایپ خصوصی یا اهداف دیگر استفاده شود.
  •     یکسان کردن تایپ str/Unicode، به نمایندگی از یک متن، و معرفی یک تایپ byte تغییر ناپذیر؛ با یک تایپ مطابق با bytearray تغییر پذیر، که هر دو آرایه از بایت را ارائه می‌کنند.
  •     از بین بردن خصوصیات سازگاری معکوس، شامل کلاس‌های به فرم قبل، قسمت کردن اعداد صحیح، استثناءهای رشته‌ای، و گزارش‌های نسبتاً نا آشکار.


در سایت اصلی پایتون اینگونه نوشته شده است که اگر کارتونو توانستنید با پایتون ۳ انجام دهید. دمتون گرم. ادامه بدهید.

در کل پایتون ۳ با مشکل پشتیبانی محدود کتابخانه ها مواجه است. هنوز library هایی هستند که به python3 port نشده اند.
از طرفی اکثر سرور ها از سری python 2.x پشتیبانی می کنند.
در کل پایتون ۳ زبان کاملی است و پشتیبانی خیلی بهتری از unicode دارد.
از طرفی ابزار هایی مثل 2to3 کمک می کند کد های قدیمیتان را به پایتون ۳ تبدیل کنید (البته نه خیلی راحت)

 

چه کتابخانه هایی هنوز به پایتون ۳ منتقل نشده اند؟
 

Django framework
این فریم ورک طراحی وب هنوز نسخه پایتون ۳ نداده است ولی در برنامه دارند این کار را انجام دهند.

خبری در hackernews هست که بیشتر زمان را مشخص می کند. هرچند خیلی رسمی نیست


البته یک سری از کتابخانه ها به صورت غیر رسمی port شده اند.



کتابخانه مهمی که به پایتون ۳ منتقل شده اند


مقایسه در کد

Old: print "The answer is", 2*2
New: print("The answer is", 2*2)

Old: print x,           # Trailing comma suppresses newline
New: print(x, end=" ")  # Appends a space instead of a newline

Old: print              # Prints a newline
New: print()            # You must call the function!

Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)

Old: print (x, y)       # prints repr((x, y))
New: print((x, y))      # Not the same as print(x, y)!

 

نتیجه گیری
در کل پایتون ۲ با پایتون ۳ تفاوت خیلی زیادی در کد ندارند و برنامه نویس پایتون ۲ به راحتی می تواند پایتون ۳ را یاد بگیرد. اما منابع آموزشی مربوط به پایتون ۲ بسیار زیاد تر. ابزار بیشتر و ... دارند.
توصیه آخرم این است که تازه وارد ها با پایتون ۲ کار کنند و فقط از پایتون ۳ استفاده کنند که دقیقا می دانند می خواهند چه استفاده ای از پایتون ۳ بکنند. یعنی تمامی نیاز مندی کارشان را در نظر بگیرند.

 

مقالات مرتبط

 

 

موافقین ۰ مخالفین ۰ ۹۱/۰۳/۲۷
محمد افاضاتی vs python2 compare python3 python

نظرات  (۱۵)

 ممنون محمد‌جان
واقعا بهش نیاز داشتم و دنبال این بودم که ۲ یا ۳ رو استفاده کنم
به نظرم من مهم‌ترین کتابخانه‌ای که پورت شده به ۳ این PyQt هست
البته امیدوارم که django هم پورت بشه
ممنون
۲۸ خرداد ۹۱ ، ۰۹:۳۷ محمد افاضاتی
 خواهش می کنم. در متن هم گفتم که مهمترین نکته پایتون ۳ اینه که بدونی می خواهی باهاش چیکار کنی
 هیچکدوم
فقط PHP
پاسخ:
مثل اینه که صندلی رو با پورشه مقایسه کنی :D کارایی هاشون اصلا فرق داره :D هرچند خیلی چیزا فقط fun هست و کارایی خاصی ندارند :D :D

پانوشت: فقط برای شوخی! :D
با نظر بالایی موافقم.
php:
print 'PHP'; == print('PHP');
:D
۰۱ تیر ۹۱ ، ۲۳:۴۱ اکبر عباس علی
 داش ممد این تگ code برای مطالب کجاس؟
می خوام چند خط کد ++C بزارم داخل مطلب پیداش نی
۰۱ تیر ۹۱ ، ۲۳:۴۲ یوشا آل ایوب
 پیام قبلی مال منه :D
این کامنتینگتون هوشمند نی
من داخل ادمین بلاگم login کردم، ولی اینجا منو نشناخته
DAMNED!
پاسخ:
علتش اینه که دامنه من فرق می کنه و cookie روی این دامنه نیست ... ورود داره بالای پست. روش فقط کلیک کنی درست میشه
۰۱ تیر ۹۱ ، ۲۳:۴۵ یوشا آل ایوب
 درست شد
عین این بدبخت بیچاره ها دستی کردمش داخل یک تگ pre خشک

۰۱ تیر ۹۱ ، ۲۳:۴۹ یوشا آل ایوب
ای بابا نشد
ممد این pre نادان کدمو نصف میکنه!
چشه؟!
پاسخ:
نصف یعنی چی؟ پهناش کمه؟ اون یه style می خواد که بگی pre به پهنای صفحات باشه.
۰۲ تیر ۹۱ ، ۱۲:۴۹ محمد افاضاتی
 یه چیز هست تو ادیتور (ckeditor که من هستم) به اسم formating بزارش رو فرمت شده. همون که h1 و ... رو تعریف می کنی
۰۳ تیر ۹۱ ، ۲۰:۵۲ یوشا آل ایوب
 نصف یعنی، نیمی از کل کد رو قرار میده - بقیه رو cut میکنه
formating رو ندیدم
یه edit css style هست واسه تعریف استایل :(
۳۱ تیر ۹۱ ، ۰۳:۱۰ محمد علی اکبری
اولا صندلی گرون تر از پورشه هم داریم. دوما پایتون؟! چی هست؟
پاسخ:
تو مسابقات فرومول یک و اینا استفاده میشه :D
۲۵ مرداد ۹۱ ، ۱۰:۳۹ یوشا آل ایوب
 بزرگترین مار پایتون دنیا: D:

msnbc.msn.com/id/3845750/ns/world_news/t/-foot-python-captured-indonesia/

49 فوت!
سلام
اگه ممکنه آموزش gtk+3 با پایتون 3 رو قرار بدید 
خیلی گیج شدم، هی اینو نصب کن، اونو نصب کن D:
دادا رضا از tkinter تحت پایتون 2 استفاده کن البته اگر برای ویندوز میخوای بنویسی . به احتمال زیاد برای لینوکس هم بشه بنویسی .
واقعا ممنون
بعضی از کدهای پایتون2 تو پایتون3 جواب نمیداد

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی