برنامه نویسی

نکات پیشرفته پایتون برای توسعه

پایتون یک زبان برنامه نویسی همه کاره و قدرتمند است که طیف گسترده ای از ویژگی ها و قابلیت ها را ارائه می دهد. در این پست وبلاگ، ما 15 نکته پیشرفته پایتون را بررسی خواهیم کرد که می تواند به بهبود گردش کار توسعه شما و کارآمدتر کردن کد شما کمک کند. بیایید شیرجه بزنیم!

1. از درک لیست برای کد مختصر استفاده کنید

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

# Traditional approach

numbers = [1, 2, 3, 4, 5]
squared_numbers = []
for num in numbers:
    squared_numbers.append(num ** 2)

# Using list comprehension
squared_numbers = [num ** 2 for num in numbers]
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. عبارات مولد اهرمی برای کارایی حافظه

مانند درک لیست، عبارات مولد به شما امکان می دهد تکرار کننده ها را به شیوه ای مختصر ایجاد کنید. تفاوت اصلی این است که عبارات مولد کل دنباله را در حافظه ذخیره نمی کنند و باعث می شود حافظه کارآمدتر شوند. برای ایجاد عبارت مولد از پرانتز به جای پرانتز استفاده کنید:

# List comprehension (creates a list)
squared_numbers = [num ** 2 for num in numbers]
# Generator expression (creates an iterator)
squared_numbers = (num ** 2 for num in numbers)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

3. از تابع ()enumerate استفاده کنید

هنگامی که شما نیاز به تکرار بیش از یک تکرار و ردیابی شاخص هر عنصر دارید، تابع ()enumerate مفید است. یک تکرار کننده از تاپل های حاوی شاخص و عنصر مربوطه را برمی گرداند. در اینجا یک مثال است:

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

4. الحاق رشته ها را با join() ساده کنید

الحاق رشته ها با استفاده از عملگر + می تواند ناکارآمد باشد، به خصوص زمانی که با رشته های بزرگ یا الحاق های زیاد سروکار داریم. در عوض، از متد join() برای الحاق کارآمد چند رشته استفاده کنید:

fruits = ['apple', 'banana', 'cherry']
combined_fruits = ', '.join(fruits)
print(combined_fruits)  # Output: apple, banana, cherry
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

5. از تابع zip() برای تکرار موازی استفاده کنید

تابع zip() به شما امکان می دهد چندین تکرار را به صورت موازی تکرار کنید. چندین تکرار را به عنوان ورودی می‌گیرد و یک تکرارکننده را برمی‌گرداند که تاپل‌هایی حاوی عناصر از هر تکرار شونده تولید می‌کند. در اینجا یک مثال است:

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 32, 40]
for name, age in zip(names, ages):
    print(f"Name: {name}, Age: {age}")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

6. از collections.defaultdict برای مقادیر پیش فرض استفاده کنید

ماژول مجموعه ها یک کلاس مفید به نام defaultdict ارائه می دهد که زیر کلاسی از کلاس dict داخلی است. اگر کلیدی وجود نداشته باشد، به طور خودکار یک مقدار پیش‌فرض را به آن اختصاص می‌دهد و نیاز به بررسی صریح را از بین می‌برد. در اینجا یک مثال است:

from collections import defaultdict
fruit_counts = defaultdict(int)
fruits = ['apple', 'banana', 'cherry', 'banana']
for fruit in fruits:
    fruit_counts[fruit] += 1
print(fruit_counts)  # Output: {'apple': 1, 'banana': 2, 'cherry': 1}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

7. از توابع any() و all() استفاده کنید

توابع any() و all() برای کار با ساختارهای داده قابل تکرار مفید هستند. تابع any() True را برمی گرداند اگر حداقل یک عنصر در iterable True باشد، در حالی که تابع all() فقط در صورتی True را برمی گرداند که همه عناصر True باشند. در اینجا یک مثال است:

numbers = [1, 2, 3, 4, 5]
print(any(num > 3 for num in numbers))  # Output: True
print(all(num > 3 for num in numbers))  # Output: False
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

  1. از مجموعه ها استفاده کنید. شمارنده برای شمارش عناصر**

کلاس collections.Counter یک راه راحت برای شمارش عناصر در یک تکرار فراهم می کند. یک شی دیکشنری مانند را برمی گرداند که در آن عناصر کلید هستند و تعداد آن مقادیر هستند. در اینجا یک مثال است:

from collections import Counter
fruits = ['apple', 'banana', 'cherry', 'banana']
fruit_counts = Counter(fruits)
print(fruit_counts)  # Output: Counter({'banana': 2, 'apple': 1, 'cherry': 1})
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

9. مدیران زمینه را با بیانیه ها استخدام کنید

مدیران زمینه زمانی مفید هستند که با منابعی که باید به درستی مدیریت شوند، مانند فایل‌ها یا اتصالات پایگاه داده سروکار دارند. دستور Python با بستن یا آزاد کردن خودکار این منابع هنگام خروج از بلوک، مدیریت این منابع را ساده می کند. در اینجا یک مثال است:

with open('file.txt', 'r') as file:
    contents = file.read()
    # Do something with the file contents
# File is automatically closed outside the 'with' block
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

10. از مزیت استفاده کنید ارگ و * kwargs برای آرگومان های تابع انعطاف پذیر

را ارگ و * نحو kwargs به توابع اجازه می دهد تا آرگومان های مختلف را بپذیرند. را پارامتر args آرگومان های موقعیتی را در یک تاپل جمع آوری می کند، while *kwargs آرگومان های کلمه کلیدی را در یک فرهنگ لغت جمع آوری می کند. این انعطاف‌پذیری می‌تواند هنگام طراحی توابع با الزامات آرگومان متفاوت مفید باشد. در اینجا یک مثال است:

def print_arguments(*args, **kwargs):
    for arg in args:
        print(arg)
    for key, value in kwargs.items():
        print(f"{key}: {value}")
print_arguments('Hello', 'World', name='Alice', age=25)
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

11. توابع را با @staticmethod و @classmethod تزئین کنید

دکوراتور @staticmethod به شما اجازه می دهد تا متدهای استاتیک را در یک کلاس تعریف کنید. این متدها به خود نمونه یا کلاس دسترسی ندارند اما می‌توانند بدون نمونه‌سازی یک شی فراخوانی شوند. به طور مشابه، دکوراتور @classmethod متدهایی را تعریف می کند که به جای نمونه، خود کلاس را به عنوان اولین آرگومان دریافت می کند. در اینجا یک مثال است:

class MathUtils:
    @staticmethod
    def square(x):
        return x ** 2
    @classmethod
    def cube(cls, x):
        return x ** 3

print(MathUtils.square(3))  # Output: 9
print(MathUtils.cube(3))  # Output: 27
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

12. از اسلات ها برای کاهش استفاده از حافظه استفاده کنید

پایتون به طور پیش‌فرض ویژگی‌های نمونه را در یک فرهنگ لغت ذخیره می‌کند، که می‌تواند مقدار قابل توجهی از حافظه را مصرف کند، مخصوصاً هنگام ایجاد نمونه‌های زیادی. با این حال، شما می توانید استفاده کنید اسلات ها ویژگی به پایتون بگوید که حافظه را برای مجموعه ثابتی از متغیرهای نمونه اختصاص دهد و مصرف حافظه را کاهش دهد. در اینجا یک مثال است:

class Point:
    __slots__ = ['x', 'y']
    def __init__(self, x, y):
        self.x = x
        self.y = y
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

13. از contextlib.suppress برای نادیده گرفتن استثناها استفاده کنید

مدیر زمینه contextlib.suppress راهی مناسب برای نادیده گرفتن استثناهای خاص مطرح شده در یک بلوک کد است. این کمک می کند تا از تلاش های غیر ضروری به جز بلوک ها جلوگیری کنید و کد شما را تمیز نگه می دارد. در اینجا یک مثال است:

from contextlib import suppress
with suppress(FileNotFoundError):
    with open('file.txt', 'r') as file:
        contents = file.read()
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

14. از unittest یا pytest برای Unit Testing استفاده کنید

تست واحد برای اطمینان از قابلیت اطمینان و صحت کد شما ضروری است. پایتون ماژول های داخلی مانند unittest و کتابخانه های شخص ثالث مانند pytest را برای نوشتن و اجرای تست های واحد فراهم می کند. این فریم ورک ها ویژگی های قدرتمندی را ارائه می دهند و می توانند فرآیند تست را تا حد زیادی ساده کنند.

15. کتابخانه استاندارد پایتون و بسته های شخص ثالث را کاوش کنید

پایتون یک کتابخانه استاندارد گسترده دارد که طیف گسترده ای از ماژول ها و بسته ها را برای اهداف مختلف ارائه می دهد. علاوه بر این، اکوسیستم پایتون دارای بسته های شخص ثالث متعددی است که می تواند تجربه توسعه شما را افزایش دهد. برای کشف این منابع وقت بگذارید تا ماژول ها و بسته هایی را پیدا کنید که مطابق با نیازهای خاص شما هستند.

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

برترین کتابخانه ها برای پایتون

اجازه دهید به چند کتابخانه برتر پایتون شیرجه بزنیم، آنها عبارتند از:

  1. NumPy: یک کتابخانه اساسی برای محاسبات عددی در پایتون که از عملیات آرایه ها و ماتریس ها پشتیبانی می کند.
  2. پانداها: یک کتابخانه قدرتمند برای دستکاری و تجزیه و تحلیل داده ها، ارائه ساختارهای داده مانند DataFrames و Series.
  3. Matplotlib: یک کتابخانه رسم محبوب برای ایجاد تجسم های ایستا، تعاملی و متحرک در پایتون.
  4. scikit-یادگیری: یک کتابخانه یادگیری ماشینی که ابزارهای کارآمدی برای داده کاوی و تجزیه و تحلیل داده ارائه می دهد.
  5. TensorFlow: یک چارچوب یادگیری ماشین منبع باز توسعه یافته توسط Google، که به طور گسترده برای وظایف یادگیری عمیق استفاده می شود.
  6. PyTorch: یکی دیگر از چارچوب‌های یادگیری عمیق محبوب، که به‌ویژه مورد علاقه محققان است و به‌خاطر نمودارهای محاسباتی پویا معروف است.
  7. SciPy: توسعه NumPy که عملکردهای اضافی را برای محاسبات علمی و فنی ارائه می دهد.
  8. NLTK (کتاب ابزار زبان طبیعی): یک کتابخانه جامع برای وظایف پردازش زبان طبیعی.
  9. OpenCV: یک کتابخانه بینایی کامپیوتری که طیف وسیعی از قابلیت های پردازش تصویر و ویدئو را ارائه می دهد.
  10. درخواست ها: یک کتابخانه HTTP ساده و زیبا برای ایجاد درخواست های API در پایتون.
  11. سوپ زیبا: کتابخانه ای برای اسکرپینگ وب که به استخراج داده ها از فایل های HTML و XML کمک می کند.
  12. جانگو: یک چارچوب وب سطح بالا برای ساخت برنامه های کاربردی وب قوی و مقیاس پذیر.
  13. فلاسک: یک چارچوب وب سبک که استفاده از آن برای توسعه برنامه های وب ساده و آسان است.
  14. SQLAlchemy: یک جعبه ابزار SQL و کتابخانه نگاشت شی – رابطه ای (ORM) برای کار با پایگاه های داده.

در دوره 14 سری مقالات پایتون به برخی از این کتابخانه‌ها عمیق‌تر می‌پردازیم و نحوه استفاده از آنها را یاد می‌گیریم.

با ما همراه باشید تا ببینید چگونه پروژه نهایی را می سازیم، زیرا این اولین جلسه از یک مجموعه سه قسمتی است. اگر این پست را هیجان‌انگیز می‌دانید، پست‌های هیجان‌انگیز بیشتری را در بلاگ Learnhub بیابید. ما همه چیزهای فنی از رایانش ابری گرفته تا Frontend Dev، Cybersecurity، AI و Blockchain را می نویسیم.

منابع

از جاستین ورتاین حذف شد

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید
بستن
دکمه بازگشت به بالا