چیت شیت توابع و ماژول‌ها در پایتون: کاربردی و سریع

فهرست مطالب

“`html

چیت شیت توابع و ماژول‌ها در پایتون: کاربردی و سریع

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

چرا به چیت شیت توابع و ماژول‌ها نیاز دارید؟

حجم گسترده‌ای از توابع و ماژول‌ها در پایتون وجود دارد که حفظ کردن همه آن‌ها غیرممکن است. چیت شیت‌ها به عنوان یک راهنمای سریع و مختصر، به شما کمک می‌کنند تا:

  • به سرعت توابع و ماژول‌های مورد نیاز خود را پیدا کنید.
  • نحوه استفاده از توابع و ماژول‌ها را به خاطر بیاورید.
  • در زمان خود صرفه‌جویی کنید و از دوباره‌کاری اجتناب کنید.
  • کدنویسی کارآمدتر و موثرتری داشته باشید.

این چیت شیت به ویژه برای برنامه‌نویسان مبتدی و متوسط پایتون طراحی شده است، اما حتی برنامه‌نویسان باتجربه نیز می‌توانند از آن به عنوان یک مرجع سریع استفاده کنند.

بخش اول: توابع Built-in (توابع داخلی) پایتون

توابع Built-in، توابعی هستند که به طور پیش‌فرض در پایتون تعریف شده‌اند و بدون نیاز به import کردن ماژول خاصی، قابل استفاده هستند. این توابع، ابزارهای اساسی برای انجام عملیات مختلف را در اختیار شما قرار می‌دهند.

توابع پایه‌ای

  • print(): برای نمایش خروجی در کنسول استفاده می‌شود.
  • print("Hello, World!")
  • type(): نوع داده‌ای یک شیء را برمی‌گرداند.
  • x = 5
     print(type(x))  # Output: <class 'int'>
  • len(): طول یک شیء iterable (مانند لیست، رشته، تاپل) را برمی‌گرداند.
  • my_list = [1, 2, 3, 4, 5]
     print(len(my_list))  # Output: 5
  • input(): از کاربر ورودی دریافت می‌کند.
  • name = input("Enter your name: ")
     print("Hello, " + name + "!")
  • int(), float(), str(), bool(): برای تبدیل نوع داده‌ها به integer، float، string و boolean استفاده می‌شوند.
  • num_str = "10"
     num_int = int(num_str)
     print(type(num_int))  # Output: <class 'int'>

توابع محاسباتی

  • abs(): مقدار قدر مطلق یک عدد را برمی‌گرداند.
  • print(abs(-5))  # Output: 5
  • pow(): عدد x را به توان y می‌رساند (xy).
  • print(pow(2, 3))  # Output: 8
  • round(): یک عدد را به نزدیک‌ترین عدد صحیح یا با تعداد مشخصی رقم اعشار گرد می‌کند.
  • print(round(3.14159, 2))  # Output: 3.14
  • max(), min(): بزرگترین و کوچکترین مقدار را در یک مجموعه iterable برمی‌گردانند.
  • numbers = [1, 5, 2, 8, 3]
     print(max(numbers))  # Output: 8
     print(min(numbers))  # Output: 1
  • sum(): مجموع مقادیر یک iterable را برمی‌گرداند.
  • numbers = [1, 2, 3, 4, 5]
     print(sum(numbers))  # Output: 15

توابع مربوط به Iterables

  • range(): یک دنباله از اعداد تولید می‌کند.
  • for i in range(5):
      print(i)  # Output: 0 1 2 3 4
  • enumerate(): اندیس و مقدار هر عنصر را در یک iterable برمی‌گرداند.
  • my_list = ["apple", "banana", "cherry"]
     for index, value in enumerate(my_list):
      print(index, value)
     # Output:
     # 0 apple
     # 1 banana
     # 2 cherry
  • zip(): چند iterable را با هم ترکیب می‌کند و یک iterable از تاپل‌ها برمی‌گرداند.
  • names = ["Alice", "Bob", "Charlie"]
     ages = [25, 30, 35]
     zipped = zip(names, ages)
     for name, age in zipped:
      print(name, age)
     # Output:
     # Alice 25
     # Bob 30
     # Charlie 35
  • sorted(): یک iterable را به صورت مرتب شده برمی‌گرداند.
  • numbers = [3, 1, 4, 1, 5, 9, 2, 6]
     sorted_numbers = sorted(numbers)
     print(sorted_numbers)  # Output: [1, 1, 2, 3, 4, 5, 6, 9]

توابع پیشرفته

  • map(): یک تابع را بر روی تمام عناصر یک iterable اعمال می‌کند.
  • def square(x):
      return x * x
    
     numbers = [1, 2, 3, 4, 5]
     squared_numbers = list(map(square, numbers))
     print(squared_numbers)  # Output: [1, 4, 9, 16, 25]
  • filter(): عناصری از یک iterable را که در یک شرط خاص صدق می‌کنند، فیلتر می‌کند.
  • def is_even(x):
      return x % 2 == 0
    
     numbers = [1, 2, 3, 4, 5, 6]
     even_numbers = list(filter(is_even, numbers))
     print(even_numbers)  # Output: [2, 4, 6]
  • reduce(): یک تابع را به صورت تجمعی بر روی عناصر یک iterable اعمال می‌کند (برای استفاده از reduce، باید آن را از ماژول functools import کنید).
  • from functools import reduce
    
     def multiply(x, y):
      return x * y
    
     numbers = [1, 2, 3, 4, 5]
     product = reduce(multiply, numbers)
     print(product)  # Output: 120

بخش دوم: ماژول‌های پرکاربرد پایتون

ماژول‌ها، فایل‌هایی هستند که حاوی توابع، کلاس‌ها و متغیرهایی هستند که می‌توانید در پروژه‌های خود از آن‌ها استفاده کنید. پایتون دارای کتابخانه‌های استاندارد گسترده‌ای است که شامل ماژول‌های متنوعی برای انجام وظایف مختلف می‌شود.

ماژول math

این ماژول، توابع ریاضیاتی مختلفی را ارائه می‌دهد.

  • math.pi: مقدار عدد پی (π).
  • import math
     print(math.pi)  # Output: 3.141592653589793
  • math.sqrt(x): جذر عدد x را محاسبه می‌کند.
  • import math
     print(math.sqrt(16))  # Output: 4.0
  • math.sin(x), math.cos(x), math.tan(x): توابع مثلثاتی سینوس، کسینوس و تانژانت را محاسبه می‌کنند (ورودی به رادیان است).
  • import math
     print(math.sin(math.pi/2))  # Output: 1.0
  • math.log(x, base): لگاریتم عدد x را در مبنای base محاسبه می‌کند. اگر base مشخص نشود، لگاریتم طبیعی (مبنای e) محاسبه می‌شود.
  • import math
     print(math.log(100, 10))  # Output: 2.0
     print(math.log(100))  # Output: 4.605170185988092
  • math.ceil(x): عدد x را به نزدیکترین عدد صحیح بزرگتر یا مساوی با x گرد می‌کند.
  • import math
     print(math.ceil(3.14))  # Output: 4
  • math.floor(x): عدد x را به نزدیکترین عدد صحیح کوچکتر یا مساوی با x گرد می‌کند.
  • import math
     print(math.floor(3.99))  # Output: 3

ماژول datetime

این ماژول، ابزارهایی برای کار با تاریخ و زمان ارائه می‌دهد.

  • datetime.datetime.now(): تاریخ و زمان فعلی را برمی‌گرداند.
  • import datetime
     now = datetime.datetime.now()
     print(now)  # Output: 2023-10-27 10:30:00.123456
  • datetime.datetime(year, month, day, hour, minute, second): یک شیء datetime با مقادیر مشخص شده ایجاد می‌کند.
  • import datetime
     specific_date = datetime.datetime(2023, 12, 25, 12, 0, 0)
     print(specific_date)  # Output: 2023-12-25 12:00:00
  • datetime.date(year, month, day): یک شیء date (فقط تاریخ) با مقادیر مشخص شده ایجاد می‌کند.
  • import datetime
     specific_date = datetime.date(2023, 12, 25)
     print(specific_date)  # Output: 2023-12-25
  • datetime.time(hour, minute, second): یک شیء time (فقط زمان) با مقادیر مشخص شده ایجاد می‌کند.
  • import datetime
     specific_time = datetime.time(12, 30, 0)
     print(specific_time)  # Output: 12:30:00
  • strftime(format): یک شیء datetime را به یک رشته با فرمت مشخص شده تبدیل می‌کند.
  • import datetime
     now = datetime.datetime.now()
     formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
     print(formatted_date)  # Output: 2023-10-27 10:30:00 (مثال)
  • strptime(date_string, format): یک رشته با فرمت مشخص شده را به یک شیء datetime تبدیل می‌کند.
  • import datetime
     date_string = "2023-12-25 12:00:00"
     date_object = datetime.datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
     print(date_object)  # Output: 2023-12-25 12:00:00
  • timedelta(): برای محاسبه اختلاف بین دو تاریخ و زمان استفاده می‌شود.
  • import datetime
     date1 = datetime.datetime(2023, 10, 20)
     date2 = datetime.datetime(2023, 10, 27)
     difference = date2 - date1
     print(difference.days)  # Output: 7

ماژول random

این ماژول، توابعی برای تولید اعداد تصادفی ارائه می‌دهد.

  • random.random(): یک عدد اعشاری تصادفی بین 0.0 و 1.0 تولید می‌کند.
  • import random
     print(random.random())  # Output: (مثال) 0.789456123
  • random.randint(a, b): یک عدد صحیح تصادفی بین a و b (شامل a و b) تولید می‌کند.
  • import random
     print(random.randint(1, 10))  # Output: (مثال) 5
  • random.choice(sequence): یک عنصر تصادفی از یک sequence (مانند لیست، تاپل، رشته) انتخاب می‌کند.
  • import random
     my_list = ["apple", "banana", "cherry"]
     print(random.choice(my_list))  # Output: (مثال) banana
  • random.shuffle(list): ترتیب عناصر یک لیست را به صورت تصادفی تغییر می‌دهد (لیست را درجا تغییر می‌دهد).
  • import random
     my_list = [1, 2, 3, 4, 5]
     random.shuffle(my_list)
     print(my_list)  # Output: (مثال) [3, 1, 5, 2, 4]
  • random.sample(population, k): k عنصر تصادفی غیرتکراری از population انتخاب می‌کند و به صورت یک لیست برمی‌گرداند.
  • import random
     my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
     random_sample = random.sample(my_list, 3)
     print(random_sample)  # Output: (مثال) [7, 2, 9]

ماژول os

این ماژول، امکان تعامل با سیستم عامل را فراهم می‌کند.

  • os.getcwd(): مسیر فعلی دایرکتوری کار را برمی‌گرداند.
  • import os
     print(os.getcwd())  # Output: /Users/username/Documents (مثال)
  • os.chdir(path): دایرکتوری کار را به path تغییر می‌دهد.
  • import os
     os.chdir("/Users/username/Desktop")
  • os.listdir(path): یک لیست از تمام فایل‌ها و دایرکتوری‌ها در path برمی‌گرداند.
  • import os
     print(os.listdir("/Users/username/Documents"))  # Output: ['file1.txt', 'file2.pdf', 'folder1'] (مثال)
  • os.mkdir(path): یک دایرکتوری جدید به نام path ایجاد می‌کند.
  • import os
     os.mkdir("new_directory")
  • os.makedirs(path): یک دایرکتوری جدید به نام path ایجاد می‌کند. تفاوت با mkdir در این است که makedirs در صورت عدم وجود دایرکتوری‌های والد، آن‌ها را نیز ایجاد می‌کند.
  • import os
     os.makedirs("parent_directory/child_directory")
  • os.remove(path): یک فایل را حذف می‌کند.
  • import os
     os.remove("file.txt")
  • os.rmdir(path): یک دایرکتوری خالی را حذف می‌کند.
  • import os
     os.rmdir("empty_directory")
  • os.path.exists(path): بررسی می‌کند که آیا یک فایل یا دایرکتوری در path وجود دارد یا خیر.
  • import os
     if os.path.exists("file.txt"):
      print("File exists")
  • os.path.isfile(path): بررسی می‌کند که آیا path به یک فایل اشاره دارد یا خیر.
  • import os
     if os.path.isfile("file.txt"):
      print("It's a file")
  • os.path.isdir(path): بررسی می‌کند که آیا path به یک دایرکتوری اشاره دارد یا خیر.
  • import os
     if os.path.isdir("directory"):
      print("It's a directory")
  • os.path.join(path1, path2, …): اجزای یک مسیر را به هم متصل می‌کند تا یک مسیر کامل ایجاد شود.
  • import os
     file_path = os.path.join("/Users/username/Documents", "file.txt")
     print(file_path)  # Output: /Users/username/Documents/file.txt

ماژول re (Regular Expressions)

این ماژول، ابزارهایی برای کار با عبارات با قاعده (Regular Expressions) فراهم می‌کند. عبارات با قاعده، الگوهایی هستند که برای جستجو و دستکاری رشته‌ها استفاده می‌شوند.

  • re.search(pattern, string): به دنبال اولین تطابق pattern در string می‌گردد و یک شیء match برمی‌گرداند. اگر هیچ تطابقی پیدا نشود، None برمی‌گرداند.
  • import re
     string = "The quick brown fox jumps over the lazy dog"
     pattern = "fox"
     match = re.search(pattern, string)
     if match:
      print("Match found:", match.group())  # Output: Match found: fox
  • re.findall(pattern, string): تمام تطابق‌های pattern در string را به صورت یک لیست برمی‌گرداند.
  • import re
     string = "The quick brown fox jumps over the lazy fox"
     pattern = "fox"
     matches = re.findall(pattern, string)
     print(matches)  # Output: ['fox', 'fox']
  • re.sub(pattern, replacement, string): تمام تطابق‌های pattern در string را با replacement جایگزین می‌کند و یک رشته جدید برمی‌گرداند.
  • import re
     string = "The quick brown fox jumps over the lazy dog"
     pattern = "fox"
     replacement = "cat"
     new_string = re.sub(pattern, replacement, string)
     print(new_string)  # Output: The quick brown cat jumps over the lazy dog
  • re.compile(pattern): یک شیء pattern را کامپایل می‌کند که می‌تواند برای جستجوهای مکرر با همان الگو استفاده شود.
  • import re
     pattern = re.compile("fox")
     string1 = "The quick brown fox"
     string2 = "The lazy dog"
     match1 = pattern.search(string1)
     match2 = pattern.search(string2)
     if match1:
      print("Match found in string1")
     if not match2:
      print("No match found in string2")

بخش سوم: توابع Lambda (توابع بی‌نام)

توابع Lambda، توابع کوچکی هستند که بدون نام تعریف می‌شوند. آن‌ها معمولاً برای عملیات ساده و کوتاه استفاده می‌شوند و به عنوان آرگومان به توابع دیگر مانند map، filter و reduce ارسال می‌شوند.

نحو: lambda arguments: expression

  • مثال: ایجاد یک تابع lambda برای محاسبه مربع یک عدد.
  • square = lambda x: x * x
     print(square(5))  # Output: 25
  • مثال: استفاده از تابع lambda با map برای محاسبه مربع تمام عناصر یک لیست.
  • numbers = [1, 2, 3, 4, 5]
     squared_numbers = list(map(lambda x: x * x, numbers))
     print(squared_numbers)  # Output: [1, 4, 9, 16, 25]
  • مثال: استفاده از تابع lambda با filter برای فیلتر کردن اعداد زوج از یک لیست.
  • numbers = [1, 2, 3, 4, 5, 6]
     even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
     print(even_numbers)  # Output: [2, 4, 6]

بخش چهارم: Decorators (دکوراتورها)

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

نحو:

@decorator_function
 def my_function():
  # Function body
  • مثال: ایجاد یک دکوراتور برای اندازه‌گیری زمان اجرای یک تابع.
  • import time
    
     def timer(func):
      def wrapper(*args, **kwargs):
      start_time = time.time()
      result = func(*args, **kwargs)
      end_time = time.time()
      execution_time = end_time - start_time
      print(f"Function {func.__name__} executed in {execution_time:.4f} seconds")
      return result
      return wrapper
    
     @timer
     def my_function():
      time.sleep(2)  # Simulate a time-consuming task
      print("Function executed")
    
     my_function()
     # Output:
     # Function executed
     # Function my_function executed in 2.0000 seconds (تقریبی)
  • مثال: ایجاد یک دکوراتور برای اعتبارسنجی ورودی‌های یک تابع.
  • def validate_input(func):
      def wrapper(*args, **kwargs):
      for arg in args:
      if not isinstance(arg, int):
      raise TypeError("Input must be an integer")
      result = func(*args, **kwargs)
      return result
      return wrapper
    
     @validate_input
     def add(x, y):
      return x + y
    
     print(add(5, 10))  # Output: 15
     # print(add(5, "10"))  # Raises TypeError: Input must be an integer

بخش پنجم: Generators (مولدها)

Generatorها توابعی هستند که به جای برگرداندن یک مقدار، یک iterator برمی‌گردانند. iterator ها اشیایی هستند که می توان با استفاده از حلقه `for` روی آنها پیمایش کرد. مولدها بر خلاف لیست‌ها، مقادیر را یکجا در حافظه ذخیره نمی‌کنند، بلکه هر مقدار را در صورت نیاز تولید می‌کنند. این ویژگی باعث می‌شود مولدها برای کار با داده‌های حجیم بسیار کارآمد باشند.

  • مثال: ایجاد یک مولد برای تولید اعداد زوج.
  • def even_numbers(max_number):
      n = 0
      while n < max_number:
      yield n
      n += 2
    
     for number in even_numbers(10):
      print(number)  # Output: 0 2 4 6 8
  • Expression Generator: راه کوتاه‌تری برای ایجاد مولدهاست.
  • even_numbers = (n for n in range(10) if n % 2 == 0)
    
     for number in even_numbers:
      print(number)  # Output: 0 2 4 6 8

بخش ششم: مدیریت خطا (Error Handling)

مدیریت خطا بخش مهمی از برنامه نویسی است. در پایتون، می توانید از بلوک های `try…except` برای مدیریت خطاها استفاده کنید.

  • بلوک `try…except`: کدی که ممکن است خطا ایجاد کند را در بلوک `try` قرار دهید. اگر خطایی رخ دهد، اجرای بلوک `try` متوقف شده و بلوک `except` مربوطه اجرا می‌شود.
  • try:
      result = 10 / 0
    except ZeroDivisionError:
      print("Cannot divide by zero!")
     # Output: Cannot divide by zero!
  • بلوک `finally`: بلوک `finally` همیشه اجرا می‌شود، صرف نظر از اینکه خطایی رخ داده باشد یا نه. معمولاً از این بلوک برای انجام کارهای ضروری مانند بستن فایل‌ها یا آزاد کردن منابع استفاده می‌شود.
  • try:
      f = open("myfile.txt", "r")
      # ... code that might raise an exception ...
    except FileNotFoundError:
      print("File not found")
    finally:
      f.close()  # Ensures the file is closed, even if an error occurred
  • ایجاد خطای سفارشی: می توانید با استفاده از کلیدواژه `raise` خطاهای سفارشی ایجاد کنید.
  • def check_age(age):
      if age < 0:
      raise ValueError("Age cannot be negative")
      # ... rest of the function ...
    
     try:
      check_age(-5)
     except ValueError as e:
      print(e)  # Output: Age cannot be negative

بخش هفتم: نکات پیشرفته و بهترین شیوه‌ها

  • List Comprehensions: یک راه مختصر و خوانا برای ایجاد لیست‌ها.
  • numbers = [1, 2, 3, 4, 5]
     squares = [x * x for x in numbers]
     print(squares)  # Output: [1, 4, 9, 16, 25]
  • Dictionary Comprehensions: مشابه List Comprehensions، اما برای ایجاد دیکشنری‌ها.
  • numbers = [1, 2, 3, 4, 5]
     square_dict = {x: x * x for x in numbers}
     print(square_dict)  # Output: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
  • Set Comprehensions: برای ایجاد مجموعه‌ها.
  • numbers = [1, 2, 2, 3, 4, 4, 5]
     unique_squares = {x * x for x in numbers}
     print(unique_squares)  # Output: {1, 4, 9, 16, 25}
  • Using `with` statement: برای اطمینان از بسته شدن صحیح فایل‌ها و آزاد شدن منابع.
  • with open("myfile.txt", "r") as f:
      data = f.read()
      # File is automatically closed after the 'with' block
  • Docstrings: توضیحاتی که در داخل توابع و کلاس‌ها برای توصیف عملکرد آنها نوشته می‌شوند.
  • def my_function(x):
      """
      This function squares the input.
    
      Args:
      x: The input number.
    
      Returns:
      The square of the input.
      """
      return x * x
    
     help(my_function)  # Displays the docstring

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

“`

“تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT”

قیمت اصلی 2.290.000 ریال بود.قیمت فعلی 1.590.000 ریال است.

"تسلط به برنامه‌نویسی پایتون با هوش مصنوعی: آموزش کدنویسی هوشمند با ChatGPT"

"با شرکت در این دوره جامع و کاربردی، به راحتی مهارت‌های برنامه‌نویسی پایتون را از سطح مبتدی تا پیشرفته با کمک هوش مصنوعی ChatGPT بیاموزید. این دوره، با بیش از 6 ساعت محتوای آموزشی، شما را قادر می‌سازد تا به سرعت الگوریتم‌های پیچیده را درک کرده و اپلیکیشن‌های هوشمند ایجاد کنید. مناسب برای تمامی سطوح با زیرنویس فارسی حرفه‌ای و امکان دانلود و تماشای آنلاین."

ویژگی‌های کلیدی:

بدون نیاز به تجربه قبلی برنامه‌نویسی

زیرنویس فارسی با ترجمه حرفه‌ای

۳۰ ٪ تخفیف ویژه برای دانشجویان و دانش آموزان