021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

ویژگی های جدید پایتون ۳.1‌!

جدید ترین وریژگی های پایتون نسخه 3.10

  • تاریخ انتشار :‌ 23 تیر 1400
  • نسخه : 3.10.0b4

Parenthesized context managers

Better error messages

IndentationErrors

AttributeErrors

NameErrors

Simple pattern: match to a literal

Patterns with a literal and variable

Patterns and classes

با سلام و عرض خدمت تمامی همراهان همیشگی وبسایت پایتونی ها کمتر از 24 ساعت میشه پایتون یکی از بهترین ورژن های خودشون که برنامه نویسا خیلی وقت بود منتظرش هستن رو ارایه داده اما صدای زیادی ایجاد کرده و خوب ما هم گفتیم سریع یه مقاله براتون بزاریم و دلایلش رو بررسی کنیم !

خوب اولین دلیلی که خیلی مهمه و خیلی سر و صدا ایجاد کرده اینه که پایتون 3.10 نسبت به ورژن های پایتون های دیگه 40 درصد سریع تر عمل می کنه و خوب این نشون دهنده اصلاح شدن تمامی کد های اصلی برنامه نویسی توی پایتون هستش .

نکته بعدی که وجود داره اینه که کلی ویژگی های خفن توی بحث کد نویسی بهش اضافه شده که همه رو اول مقاله نام بردیم و خوب در ادامه می خوایم تک تکشون رو توضیح بدیم که هر کدام چه چیز هایی هستند و کجا به کار میان اما به طور کلی و خلاصه وار بهشون اشاره کنیم باید بگم :

۱.ارور های پایتون شدیدا واضح شدن و دقیق !

۲.توی مبحث فایل ها یه راهکاری خیلی خوبی برای پرانتز ها ارایه شده !

۳.یه چیزی تو مایه های IF , Else به پایتون اضافه شده که کاملش رو پایین بهتون توضیح میدیم !

۴.یه سری تغیییرات داخل کتابخانه های اصلی پایتون هم به وجود اومده که می تونید با کلیک روی همین لینک اونارو ببینید !

 

کنترل پرانتز ها

مدیریت پرانتز ها قبلا در پایتون به شیوه کاملا سنتی بود اما حالا در ورژن جدید قابلیت پرانتز های تو در تو را می بینید و می توانید با استفاده از پرانتز های تو در تو به را راحتی هر چه تمام چندین پرانتز را در یک خط مدیریت کنید به عنوان مثال به تیکه کد زیر دقت کنید :

with (CtxManager() as example):
    ...

with (
    CtxManager1(),
    CtxManager2()
):
    ...

with (CtxManager1() as example,
      CtxManager2()):
    ...

with (CtxManager1(),
      CtxManager2() as example):
    ...

with (
    CtxManager1() as example1,
    CtxManager2() as example2
):

همچنین می توان از ویرگول برای جابجایی و اضافه کردن گروه دیگری از پرانتز ها در گروه اصلی پرانتز استفاده کرد به عنوان مثال کد زیر دقت کنید :

with (
    CtxManager1() as example1,
    CtxManager2() as example2,
    CtxManager3() as example3,
):

به عنوان مثال شما می توانید از مدیریت پرانتز ها برای فایل ها در پایتون استفاده کنید به کد های زیر نگاه کنید :

این تیکه کد برای پایتون 3.9 استفاده می شود :

with open('file1.txt', 'r') as fin, open('file2.txt', 'w') as fout:
    fout.write(fin.read())

وحال نمونه بهبود بخش تر شده کد بالا در پایتون 3.10 در کد زیر :

with open('file1.txt', 'r') as fin, \
     open('file2.txt', 'w') as fout:
    fout.write(fin.read())

 

مبحث بعدی ساده شدن پیغام های ارور :

در ورژن جدید پایتون سعی شده روی پیغام ارور خیلی بیشتر و واضح تر کار شود تا برنامه نویسان بتوانند به راحتی ارور خود را پیدا کنند و مشکلات خود را به راحتی حل کنند .

و دیگر نیاز نیست در هر لحظه در گوگل به جست و جو ارور بپردازید :

به عنوان مثال به کد زیر دقت کنید :

Syntax Error

expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,
            38: 4, 39: 4, 45: 5, 46: 5, 47: 5, 48: 5, 49: 5, 54: 6,
some_other_code = foo()

 

اروری که از خط کد بالا دریافت می کنید در پایتون ها ورژن قبلی به صورت زیر بود :

File "example.py", line 3
    some_other_code = foo()
                    ^
SyntaxError: invalid syntax

اما در پایتون ورژن 3.10 ارور را به صورت زیر در دریافت می کنید :

File "example.py", line 1
    expected = {9: 1, 18: 2, 19: 2, 27: 3, 28: 3, 29: 3, 36: 4, 37: 4,
               ^
SyntaxError: '{' was never closed

نمونه ارور ها :

 

نمونه ۲ :

 

نمونه ۳ :

 

 

 

مورد بعدی که به پایتون 3.10 اضافه شدن چیزی مانند If/ Else هاست که ان را تطبیق الگوی ساختاری می نامند .

اما کار تطبیق الگوی ساختاری چیست ؟

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

اگر بخواهیم به صورت ساده و روان خط بالا را بیان کنیم در واقع نوعی دستورات جدید به پایتون اضافه شده که می توانند همان کار if/Else  ها را انجام دهند .

اما این چه تفاوتی با if/Else ها دارد در واقع شما با دستورات جدید در پایتون می توانید به صورت مستقیم بر روی داده دستورات شرطی اعمال کنید این داده از اعداد مهمی یا مبهم گرفته داده های خود ساخته یا جنریت شده به عنوان مثال به تیکه کد زیر دقت کنید :

دستور match برای شروع

دستور case برای شروط زیر مجموعه

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the Internet"

نمونه ای دیگر :

def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"

 

دستور بالا را می توان به صورت زیر هم نوشت :

case 401 | 403 | 404:
    return "Not allowed"

نمونه ای دیگر از کد :

# point is an (x, y) tuple
match point:
    case (0, 0):
        print("Origin")
    case (0, y):
        print(f"Y={y}")
    case (x, 0):
        print(f"X={x}")
    case (x, y):
        print(f"X={x}, Y={y}")
    case _:
        raise ValueError("Not a point")

 

 

رفتار های منطقی در داده :

شما اگر قبلا می خواستید بین دو داده ، به عنوان مثال یک داده اعداد صحیح که ما در پایتون با عنوان int و یک داده اعداد اعشاری یعنی float یک متغییر منطقی ایجاد کنیم باید از یک کتابخانه جانبی به عنوان مثال از کتابخانه typing استفاده می کردیم به عنوان مثال کد زیر :

from typing import Union

def add(x: Union[int, float], y: Union[int, float]):
    return x + y

در کد بالا ما برای انتخاب یکی از مغییر ها OR یعنی اینکه بین اعداد صحیح و اعداد اعشاری یکی را انتخاب کنیم می آمدیم از تیکه کد بالا استفاده می کردیم اما در ورژن جدید پایتون خود متغییر منطقی OR این کار را برای ما انجام میدهد به صورت مثال :

def add(x: int | float, y: int | float):
    return x + y

 

 

منابع :

https://towardsdatascience.com/whats-new-in-python-3-10-a757c6c69342

https://docs.python.org/3.10/whatsnew/3.10.html

 

دانلود باکس

سیستم عامل : ویندوز – مک – لینوکس

حداقل میزان رم : 512 مگابایت

حداقل میزان فضا : 200 مگابایت

حداقل پردازنده : پنتیوم

سایر موارد متغییر است .

محمدرضا حسنی

224 مطلب منتشر شده

دانش آموخته رشته فناوری اطلاعات / موسس پایتونی ها

درباره این مطلب نظر دهید !

محصولات فروش پایتونی ها

%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3
%69
تخفیف

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

35,000 تومان
2