توابع پایتون (با مثال) – JC Chouinard

در این آموزش پایتون برای مبتدیان شما یاد خواهید گرفت که توابع پایتون چیست و چگونه آنها را ایجاد و استفاده کنید.

تابع پایتون چیست؟

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

function_name(arguments)

انواع توابع در پایتون

دو نوع تابع در پایتون وجود دارد:

  • توابع داخلی (توابع استاندارد در کتابخانه پایتون)
  • توابع تعریف شده توسط کاربر (ساخته شده توسط کاربر در داخل کد، اغلب با استفاده از def اعلام می شود)

توابع داخلی پایتون

پایتون یک سری توابع داخلی دارد که می توان از آنها استفاده کرد. توابع داخلی توابعی هستند که در مفسر پایتون تعبیه شده اند و همیشه بدون نیاز به وارد کردن آنها در دسترس هستند. نمونه ای از توابع داخلی پایتون عبارتند از sum()، int()، dict()، dir() و type().

لیست توابع پایتون

در اینجا لیست کاملی از توابع داخلی از Python.org آمده است

لیست کامل توابع داخلی از Python.org
لیست کامل توابع داخلی از Python.org

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

در پایتون، توابع تعریف شده توسط کاربر، توابعی هستند که توسط برنامه نویس با استفاده از کلمه کلیدی def درست مانند شبه کد زیر ایجاد می شوند:

# User Defined Function
def user_defined_function(argument1, argument2, ...):
    # statement 
    return [expression]

نحوه استفاده از تابع پایتون (مثال)

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

function_name(required_arguments, optional_arguments)

مثال

# Using a function

ls = [1,2,3,4]
sum(ls)
10

نحوه استفاده از یک تابع را بررسی کنید

نام تابع را به تابع help() داخلی ارسال کنید تا بررسی کنید که یک تابع چه کاری انجام می دهد و چگونه از آن استفاده کنید.

# Investigate a function
help(sum)
Help on built-in function sum in module builtins:

sum(iterable, /, start=0)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers
    
    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.

نتیجه یک تابع را اختصاص دهید

از عملگر برابر (=) برای تخصیص نتیجه یک تابع به متغیری در پایتون استفاده کنید.

# Assign the result
total = sum(ls)
total
10

نحوه ایجاد و تعریف یک تابع

برای تعریف یک تابع در پایتون، از کلمه کلیدی def به همراه نام تابع به همراه پرانتز و دو نقطه استفاده کنید.

# Creating a simple Function
def function_name():
    print('hello!')

نحو یک اعلان تابع

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

  • کلمه کلیدی def: کلمه کلیدی که برای اعلام یک تابع استفاده می شود
  • نام تابع: هر نامی که به تابع داده شود
  • پارامترهای تابع (اختیاری): پارامترهایی که باید در داخل تابع استفاده شوند
  • کولون (:): عملگر کاراکتر مورد نیاز برای شروع یک بلوک کد در پایتون است
  • عملکرد بدنه: کد باید چه کاری انجام دهد.
  • بازگشت تابع (اختیاری): کلمه کلیدی مورد استفاده برای اعلام دستور بازگشت
  • بازگشت عبارت (اختیاری): کدی که باید برگرداند
مطالب پیشنهادی  ارتش های جبهه، تماس با فضای عمیق، ویرایشگر متن QuickEdit، بیشتر

نحوه فراخوانی یک تابع در پایتون

برای فراخوانی یک تابع پایتون، از نام تابع به دنبال پرانتز و هر آرگومان مورد نیاز یا اختیاری استفاده کنید:

# Calling the Function
def function_name():
    print('hello!')

function_name()

نحوه اضافه کردن آرگومان به تابع پایتون

برای افزودن آرگومان به یک تابع پایتون، نام پارامتر را در داخل پرانتز تابع اضافه کنید و از همان نام برای استفاده از آن در تابع استفاده کنید.

# Function arguments
def say_something(arg):
    print(arg)

say_something('hello')
hello

نحوه اضافه کردن چندین آرگومان به یک تابع پایتون

برای افزودن چندین آرگومان به یک تابع پایتون، نام پارامترها را اضافه کنید که با کاما بین پرانتزهای تابع از هم جدا شده اند.

# multiple arguments
def count_this(num1, num2):
    print(num1 + num2)

count_this(1, 3)
4

TypeError وقتی پارامترهای تابع از دست رفته است

یک تابع باید با تعداد آرگومان صحیح فراخوانی شود. بنابراین، اگر تابعی دارای 3 آرگومان باشد، باید با استفاده از 3 آرگومان فراخوانی شود. در غیر این صورت فراخوانی تابع خطای زیر را برمی‌گرداند:

TypeError: function_name() missing 1 required positional argument: 'argument_name'

درست مثل این کد:

def say_something(arg):
    print(arg)
say_something() # Throws a TypeError

چگونه مقادیر پارامترهای پیش فرض را به یک تابع اضافه کنیم

برای افزودن مقادیر پارامتر پیش فرض به یک تابع، نام متغیر را فراخوانی کرده و از عملگر مساوی برای اختصاص مقدار آن در داخل پرانتز استفاده کنید:

# Default Parameter Values
def aussie_greeting(arg='Hi Mate!'):
    print(arg)

aussie_greeting() # Uses default value
aussie_greeting("How's it Going, Mate?")
Hi Mate!
How's it Going, Mate?

نحوه برگرداندن مقادیر در یک تابع پایتون

از دستور return برای پایان دادن به اجرای تابع استفاده کنید و نتیجه مقدار عبارت بیان شده بعد از عبارت return را برگردانید.

# return statement
def return_something():
    result = 1 + 4
    return result

return_something()
5

دستور بازگشت را نمی توان خارج از یک تابع استفاده کرد.

بیان پیش فرض بیانیه بازگشت چیست؟

اگر بعد از عبارت return هیچ عبارتی وجود نداشته باشد، مقدار None برگردانده خواهد شد.

# return statement
def return_something():
    result = 1 + 4
    return

a = return_something()
type(a)
NoneType

چگونه چندین مقدار را در یک تابع پایتون برگردانیم

در پایتون، برای برگرداندن چندین مقدار از یک تابع، هر یک از مقادیر عبارت را از هم جدا کنید return بیانیه با کاما خروجی یک تاپل پایتون خواهد بود.

def return_multiple():
    return 'hello', 'world'

return_multiple()
('hello', 'world')

آرگومان های کلیدواژه

هنگام فراخوانی یک تابع پایتون با استفاده از دستور key = value می توان از آرگومان های کلمه کلیدی استفاده کرد. مزیت استفاده از نماد آرگومان کلمه کلیدی این است که ترتیب آرگومان ها هنگام فراخوانی تابع به این شکل مهم نیست.

# keyword argument
def divide_by(arg1, arg2):
    return arg1 / arg2

divide_by(arg2 = 10, arg1=0)

Python Docstring

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

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

با فراخوانی شی قابل دسترسی است .__doc__ صفت.

print(function_name.__doc__)

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

  • سه نقل قول تکی (''' ''')
  • سه نقل قول دوگانه (""" """)
# Function with Docstring
def my_docstring():
    """This function returns 'hello'"""
    return 'hello'

# access doc string
print(my_docstring.__doc__)

پاس تابع پایتون

طبق تعریف، یک تابع پایتون باید حاوی یک بدنه تابع یا یک دستور بازگشت باشد. بدون آن، تابع باز خواهد گشت SyntaxError: incomplete input.

# Function that does nothing
def do_nothing():
    # Throws SyntaxError

دستور pass می تواند به عنوان یک مکان نگهدار برای تابع پایتون استفاده شود تا کد شکسته نشود.

# Pass Statement
def do_nothing():
    pass

نحوه ایجاد توابع تو در تو در پایتون

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

مطالب پیشنهادی  معاملات روز برنامه اندروید: House of Da Vinci، MechaNika، Business Card Pro و موارد دیگر

# nested functions
 
def parent_function():
    s = 'Hello world'
     
    def nested_function(s):
        print(s)
         
    nested_function(s)
 
# Calling the function
parent_function()
Hello world

استدلال های کلیدواژه دلخواه

در پایتون، *args و **kwargs آرگومان های کلیدواژه دلخواه هستند که تعداد متغیری از آرگومان ها را به یک تابع ارسال می کنند.

*Args در پایتون: آرگومان های غیرکلیدی

را *args پارامتر به یک تابع اجازه می‌دهد تا تعداد متغیری از آرگومان‌های موقعیتی غیرکلیدی را بپذیرد. عناصر در داخل یک تاپل به نام args جمع آوری می شوند:

def show_args(*args):
    print(args)

show_args(1,2,3)
(1, 2, 3) # tuple

در این مثال، هر تعداد آرگومان را می توان به تابع اضافه کرد، به شرطی که کد داخل تابع را شکسته نکنند.

# *args
def count_stuff(*args):
    total = sum(args)
    return total

# Example
result = count_stuff(1, 2, 3)
print(result) 

** Kwargs در Python: Arguments Keyword

را **kwargs پارامتر به تابع اجازه می دهد تا تعداد متغیری از آرگومان های کلمه کلیدی را بپذیرد. این آرگومان ها در دیکشنری به نام جمع آوری می شوند kwargs.

# **kwargs
def show_kwargs(**kwargs):
    print(kwargs)

# Usage example
show_kwargs(name='jc', surname='chouinard', age=12)
{'name': 'jc', 'surname': 'chouinard', 'age': 12}

بازگشت تابع پایتون

پایتون اجازه بازگشت تابع را می دهد که در آن یک تابع می تواند خود را فراخوانی کند. مثال زیر نشان می دهد که چگونه تابع countdown() خود را فراخوانی می کند تا زمانی که n کمتر یا مساوی با صفر شود.

# Function recursion
def countdown(n):
    if n <= 0:
        print('End')
    else:
        print(n)
        countdown(n - 1)

countdown(5)

توابع ناشناس

تابع ناشناس در پایتون تابعی است که بدون نام تعریف می شود. در حالی که کلمه کلیدی def یک تابع را با نام خود تعریف می کند، تابع lambda یک تابع ناشناس را تعریف می کند.

توابع لامبدا در پایتون

در پایتون از تابع لامبدا برای ایجاد توابع ناشناس استفاده می شود. توابع لامبدا با استفاده از lambda کلمه کلیدی و به طور کلی برای توابع کوچک و ساده استفاده می شود.

نحو یک تابع لامبدا به شرح زیر است:

lambda arguments: expressions
# Example lambda function
double = lambda x: x * 2

result = double(5)
print(result)
10

محدوده متغیرها: متغیرهای محلی در مقابل جهانی

محدوده متغیرها در توابع پایتون میزان دسترسی و دید آنها را در برنامه تعیین می کند. دو نوع متغیر وجود دارد:

مطالب پیشنهادی  Omnibox Google چیست - JC Chouinard

  • متغیرهای محلی: متغیرهای تعریف شده در یک تابع، که فقط در داخل تابع قابل دسترسی هستند.
  • متغیرهای جهانی: متغیرهایی که خارج از هر تابعی تعریف شده اند و در سراسر برنامه قابل دسترسی هستند.

متغیرهای محلی

# Example of a local variable
def my_function():
    local_var = 1 
    print(local_var)

my_function()

متغیرهای جهانی

# Example of a Global variable
global_var = 10

def my_function():
    print(global_var)

my_function()
print(global_var)

“->” در تعاریف تابع پایتون به چه معناست؟

نماد -> در تعریف تابع پایتون یک حاشیه نویسی تابع را نشان می دهد.

حاشیه نویسی تابع در پایتون چیست؟

حاشیه نویسی تابع پایتون راهی برای تعیین انواع مورد انتظار پارامترهای تابع و مقدار بازگشتی است. این راهی است برای پیوست کردن ابرداده به توابع برای توصیف پارامترهای آنها و برگرداندن مقادیر.

در زیر، تابع یک پارامتر واحد می گیرد name مشروح با نوع str، نشان می دهد که باید یک رشته باشد. را -> str حاشیه نویسی بعد از لیست پارامترها نشان می دهد که تابع یک رشته را برمی گرداند.

def say_hello(name: str) -> str:
    """
    Takes a name as input and returns a message.
    """
    return "Hello, " + name

result = say_hello('JC')

print(result)
Hello, JC

ما می توانیم حاشیه نویسی را با استفاده از __annotations__ ویژگی روی نام تابع

print(say_hello.__annotations__)
{'name': <class 'str'>, 'return': <class 'str'>}

تفاوت بین پارامترها و آرگومان ها در پایتون چیست؟

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

قراردادهای نامگذاری برای توابع پایتون چیست؟

قراردادهای نامگذاری پایتون برای توابع عبارتند از:

  • نام تابع فقط می‌تواند شامل نویسه‌های الف-عددی و زیرخط باشد
  • نام تابع باید با یک حرف یا زیرخط شروع شود
  • نام تابع نمی تواند با عدد شروع شود
  • نام تابع نباید با نام تابع داخلی یا موجود ماژول یکسان باشد
  • از نام های تک حرفی برای توابع اجتناب کنید.
  • از نام های توصیفی استفاده کنید
def a():
    # bad function name
    # Not descriptive enough

def print():
    # bad function name
    # Don't use the names of built-in functions
    pass
  
def 2ab():
    # bad function name
    # Throws SyntaxError: invalid decimal literal

def ab+():
    # bad function name
    # Throws SyntaxError: invalid syntax

تفاوت بین یک تابع و یک روش چیست؟

یک متد پایتون شبیه یک تابع پایتون است، اما به طور خاص به یک شی پایتون تعلق دارد. در حالی که تابع با استفاده از نام تابع خود فراخوانی می شود، متد با استفاده از علامت .method_name() روی شی ای که به آن مربوط است فراخوانی می شود.

my_function() # Python Function
obj.my_method() # Python method

نتیجه

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

سئو PBN | خبر های جدید سئو و هک و سرور