آموزش موارد جدید در برنامه نویسی پایتون ۳

3 سال پیش

 آموزش موارد جدید در برنامه نویسی پایتون ۳

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش موارد جدید در برنامه نویسی پایتون ۳ خواهیم پرداخت.

ماژول __future__

پایتون ۳٫x برخی از کلمات کلیدی و ویژگی های ناسازگار با پایتون ۲ را معرفی کرد که می توان آنها را از طریق ماژول __future__ داخلی در پایتون ۲ وارد کرد. اگر قصد پشتیبانی از پایتون ۳٫x برای کد خود را دارید ، از واردات __future__ استفاده کنید.

به عنوان مثال، اگر می خواهیم رفتار تقسیم صحیح پایتون ۳٫x را در پایتون ۲ بخواهیم، دستور import زیر را اضافه کنید.

from __future__ import division

 

تابع چاپ

قابل توجه ترین و گسترده ترین تغییر در پایتون ۳ نحوه استفاده از تابع چاپ است. استفاده از پرانتز () با تابعچاپ اکنون اجباری است. در پایتون ۲ اختیاری بود.

print "Hello World" #is acceptable in Python 2
print ("Hello World") # in Python 3, print must be followed by ()

 

تابع ()print به طور پیش فرض یک خط جدید را در پایان وارد می کند. در پایتون ۲، می توان با قرار دادن ‘،’ در پایان آن را خاتمه داد. در پایتون ۳ ، “end = ”” فضا را به جای خط جدید اضافه می کند.

print x,           # Trailing comma suppresses newline in Python 2
print(x, end=" ")  # Appends a space instead of a newline in Python 3

 

خواندن ورودی از صفحه کلید

پایتون ۲ دارای دو نسخه از توابع ورودی، ()input و ()raw_input  است. تابع ()input داده های دریافتی را در صورتی که در نقل قول های ” or ” قرار داشته باشند به عنوان رشته تلقی می کند ، در غیر این صورت داده ها به عنوان یک عدد تلقی می شوند.

در پایتون ۳  تابع ()raw_input  منسوخ شده است. علاوه بر این داده های دریافتی همیشه به عنوان رشته تلقی می شوند.

In Python 2

>>> x = input('something:') 
something:10 #entered data is treated as number
>>> x
۱۰

>>> x = input('something:')
something:'10' #entered data is treated as string
>>> x
'۱۰'

>>> x = raw_input("something:")
something:10 #entered data is treated as string even without ''
>>> x
'۱۰'

>>> x = raw_input("something:")
something:'10' #entered data treated as string including ''
>>> x
"'۱۰'"

In Python 3

>>> x = input("something:")
something:10
>>> x
'۱۰'

>>> x = input("something:")
something:'10' #entered data treated as string with or without ''
>>> x
"'۱۰'"

>>> x = raw_input("something:") # will result NameError
Traceback (most recent call last):
   File "<pyshell#3>", line 1, in 
  <module>
   x = raw_input("something:")
NameError: name 'raw_input' is not defined

 

در پایتون ۲  نتیجه تقسیم دو عدد صحیح به نزدیکترین عدد صحیح گرد می شود. در نتیجه ، ۳/۲ ۱ را نشان می دهد. برای بدست آوردن تقسیم نقطه شناور باید از صریح یا مخرج به طور صریح به عنوان شناور استفاده شود. بنابراین، ۳٫۰/۲ یا ۳/۲٫۰ یا ۳٫۰/۲٫۰ منجر به ۱٫۵ می شود

پایتون ۳ به طور پیش فرض ۳ /۲ را ۱٫۵ ارزیابی می کند ، که برای برنامه نویسان جدید بصری تر است.

 یونیکد در پایتون ۳

پایتون ۲ از شما می خواهد که اگر می خواهید رشته ای را به عنوان یونیکد ذخیره کنید، آن را با u علامت گذاری کنید.

پایتون ۳ رشته ها را بصورت پیش فرض بصورت Unicode ذخیره می کند. ما رشته های یونیکد (utf-8) و ۲ کلاس بایتی داریم: آرایه های بایت و بایت.

حذف تابع ()xrange 

درپایتون ۲ ()range یک لیست بر می گرداند و ()xrange  یک شیء را برمی گرداند که فقط موارد مورد نیاز را در صورت نیاز تولید می کند و حافظه را ذخیره می کند.

در پایتون ۳، تابع ()range حذف می شود و نام ()xrange  به ()range تغییر می کند. علاوه بر این ، شی ()range از برش در پایتون ۳٫۲ و بالاتر پشتیبانی می کند.

 

 استثناها

پایتون ۲ هر دو نماد ، نحو “قدیمی” و “جدید” را می پذیرد. اگر آرگومان استثنا را در پرانتز قرار ندهیم ، پایتون ۳ یک SyntaxError ایجاد می کند.

raise IOError, "file error" #This is accepted in Python 2
raise IOError("file error") #This is also accepted in Python 2
raise IOError, "file error" #syntax error is raised in Python 3
raise IOError("file error") #this is the recommended syntax in Python 3

 

 

آرگومان استثنا 

در پایتون ۳  آرگومان های استثنا باید با کلمه کلیدی ‘as’ اعلام شوند.

except Myerror, err: # In Python2
except Myerror as err: #In Python 3

 

تابع ()next و متد ()next
در پایتون ۲، ()next به عنوان روشی از شی مولد مجاز است. در پایتون ۲، تابع ()next برای تکرار روی شی مولد نیز پذیرفته شده است. اما در پایتون ۳، next(0 به عنوان یک متد مولد متوقف شده و AttributeError را افزایش می دهد.

gen = (letter for letter in 'Hello World') # creates generator object
next(my_generator) #allowed in Python 2 and Python 3
my_generator.next() #allowed in Python 2. raises AttributeError in Python 3

 

ابزار ۲to3

همراه با مترجم پایتون ۳ ، اسکریپت ۲to3.py معمولاً در پوشه tools/scripts نصب می شود. این کد منبع پایتون ۲٫x را می خواند و یک سری ثابت کننده را برای تبدیل آن به یک کد معتبر پایتون ۳٫x اعمال می کند.

Here is a sample Python 2 code (area.py):

def area(x,y = 3.14): 
   a = y*x*x
   print a
   return a

a = area(10)
print "area",a

To convert into Python 3 version:

$۲to3 -w area.py

Converted code :

def area(x,y = 3.14): # formal parameters
   a = y*x*x
   print (a)
   return a

a = area(10)
print("area",a)

 

منبع.

 

لبست جلسات قبل آموزش برنامه نوبسی پایتون ۳

  1. آموزش برنامه نویسی پایتون ۳
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه