فهرست سرفصل‌های Python
خانه (HOME) مقدمه (Intro) شروع کار (Get Started) ساختار نوشتاری (Syntax) دستورات (Statements) خروجی (Output) چاپ اعداد (Print Numbers) توضیحات (Comments) متغیرها (Variables) نام متغیرها (Variable Names) اختصاص چند مقدار (Assign Multiple Values) نمایش متغیرها (Output Variables) متغیرهای سراسری (Global Variables) تمرین متغیرها (Variable Exercises) نوع داده ها (Data Types) اعداد (Numbers) تبدیل نوع داده (Casting) رشته ها (Strings) برش رشته (Slicing Strings) تغییر رشته (Modify Strings) ترکیب رشته ها (Concatenate Strings) قالب بندی رشته ها (Format Strings) کاراکتر فرار (Escape Characters) متدهای رشته (String Methods) تمرین رشته ها (String Exercises) بولین ها (Booleans) عملگرها (Operators) عملگرهای حسابی (Arithmetic Operators) عملگرهای انتسابی (Assignment Operators) عملگرهای مقایسه ای (Comparison Operators) عملگرهای منطقی (Logical Operators) عملگرهای هویتی (Identity Operators) عملگرهای عضویت (Membership Operators) عملگرهای بیتی (Bitwise Operators) اولویت عملگرها (Operator Precedence) لیست ها (Lists) دسترسی به آیتم ها (Access List Items) تغییر آیتم ها (Change List Items) افزودن آیتم (Add List Items) حذف آیتم (Remove List Items) حلقه روی لیست (Loop Lists) درک لیست (List Comprehension) مرتب سازی لیست (Sort Lists) کپی لیست (Copy Lists) ادغام لیست ها (Join Lists) متدهای لیست (List Methods) تمرین لیست ها (List Exercises) تاپل ها (Tuples) دسترسی به تاپل ها (Access Tuples) به روزرسانی تاپل ها (Update Tuples) باز کردن تاپل ها (Unpack Tuples) حلقه تاپل ها (Loop Tuples) ادغام تاپل ها (Join Tuples) متدهای تاپل (Tuple Methods) تمرین تاپل ها (Tuple Exercises) مجموعه ها (Sets) دسترسی به مجموعه (Access Set Items) افزودن به مجموعه (Add Set Items) حذف از مجموعه (Remove Set Items) حلقه مجموعه ها (Loop Sets) ادغام مجموعه ها (Join Sets) فروزن ست (Frozenset) متدهای مجموعه (Set Methods) تمرین مجموعه ها (Set Exercises) دیکشنری ها (Dictionaries) دسترسی به آیتم ها (Access Items) تغییر آیتم ها (Change Items) افزودن آیتم ها (Add Items) حذف آیتم ها (Remove Items) حلقه دیکشنری ها (Loop Dictionaries) کپی دیکشنری ها (Copy Dictionaries) تو در تو (Nested Dictionaries) متدهای دیکشنری (Dictionary Methods) تمرین دیکشنری (Dictionary Exercises) if elif else شرط کوتاه (Shorthand If) عملگرهای منطقی (Logical Operators) شرط تو در تو (Nested If) pass (Pass Statement) match (Match) حلقه while (While Loops) حلقه for (For Loops) توابع (Functions) آرگومان ها (Arguments) *args / **kwargs حوزه دسترسی (Scope) دکوراتور ها (Decorators) لانبدا (Lambda) بازگشت (Recursion) جنریتور ها (Generators) بازه (Range) آرایه ها (Arrays) ایتریتورها (Iterators) ماژول ها (Modules) تاریخ ها (Dates) ریاضی (Math) جیسون (JSON) عبارات منظم (RegEx) مدیر بسته ها (PIP) try...except قالب بندی رشته (String Formatting) None ورودی کاربر (User Input) محیط مجازی (VirtualEnv) شیءگرایی (OOP) کلاس ها/اشیا (Classes/Objects) متد init (init Method) پارامتر self (self Parameter) خصوصیات کلاس (Class Properties) متدهای کلاس (Class Methods) وراثت (Inheritance) چندریختی (Polymorphism) کپسوله سازی (Encapsulation) کلاس های داخلی (Inner Classes) کار با فایل (File Handling) خواندن فایل (Read Files) نوشتن/ایجاد فایل (Write/Create Files) حذف فایل (Delete Files) آموزش SciPy (SciPy Tutorial) Matplotlib مقدمه (Matplotlib Intro) شروع با Matplotlib (Matplotlib Get Started) Pyplot (Matplotlib Pyplot) نمودارسازی (Matplotlib Plotting) نشانگرها (Matplotlib Markers) خط (Matplotlib Line) برچسب ها (Matplotlib Labels) شبکه (Matplotlib Grid) زیرنمودار (Matplotlib Subplot) پراکندگی (Matplotlib Scatter) میله ای (Matplotlib Bars) هیستوگرام (Matplotlib Histograms) دایره ای (Matplotlib Pie Charts) یادگیری ماشین: شروع (Getting Started) میانگین/میانه/نما (Mean Median Mode) انحراف معیار (Standard Deviation) صدک (Percentile) توزیع داده (Data Distribution) توزیع نرمال (Normal Data Distribution) نمودار پراکندگی (Scatter Plot) رگرسیون خطی (Linear Regression) رگرسیون چندجمله ای (Polynomial Regression) رگرسیون چندمتغیره (Multiple Regression) مقیاس بندی (Scale) آموزش/آزمون (Train/Test) درخت تصمیم (Decision Tree) ماتریس اغتشاش (Confusion Matrix) خوشه بندی سلسله مراتبی (Hierarchical Clustering) رگرسیون لجستیک (Logistic Regression) جست وجوی شبکه ای (Grid Search) پیش پردازش داده های دسته ای (Categorical Data) K-means بگینگ (Bootstrap Aggregation) اعتبارسنجی متقابل (Cross Validation) منحنی AUC-ROC (AUC-ROC Curve) KNN (K-nearest neighbors) DSA: معرفی (Python DSA) لیست ها و آرایه ها (Lists and Arrays) پشته ها (Stacks) صف ها (Queues) لیست های پیوندی (Linked Lists) هش تیبل ها (Hash Tables) درخت ها (Trees) درخت های دودویی (Binary Trees) BST (Binary Search Trees) درخت های AVL (AVL Trees) گراف ها (Graphs) جستجوی خطی (Linear Search) جستجوی دودویی (Binary Search) مرتب سازی حبابی (Bubble Sort) مرتب سازی انتخابی (Selection Sort) مرتب سازی درج (Insertion Sort) مرتب سازی سریع (Quick Sort) مرتب سازی شمارشی (Counting Sort) مرتب سازی رادیکس (Radix Sort) مرتب سازی ادغامی (Merge Sort) MySQL: شروع (MySQL Get Started) ایجاد پایگاه داده (Create Database) ایجاد جدول (Create Table) درج رکورد (Insert) انتخاب (Select) شرط Where مرتب سازی (Order By) حذف (Delete) حذف جدول (Drop Table) به روزرسانی (Update) Limit Join MongoDB: شروع (Get Started) ایجاد پایگاه داده (Create DB) ایجاد کالکشن (Collection) درج (Insert) پیدا کردن (Find) کوئری (Query) مرتب سازی (Sort) حذف (Delete) حذف کالکشن (Drop Collection) به روزرسانی (Update) Limit مرجع: مرور کلی (Overview) توابع درون ساخته (Built-in Functions) متدهای رشته (String Methods) متدهای لیست (List Methods) متدهای دیکشنری (Dictionary Methods) متدهای تاپل (Tuple Methods) متدهای مجموعه (Set Methods) متدهای فایل (File Methods) کلیدواژه ها (Keywords) استثناها (Exceptions) واژه نامه (Glossary) مرجع ماژول ها (Built-in Modules) ماژول random (Random Module) ماژول requests (Requests Module) ماژول statistics (Statistics Module) ماژول math (Math Module) ماژول cmath (cMath Module) حذف موارد تکراری لیست (Remove List Duplicates) برعکس کردن رشته (Reverse a String) جمع دو عدد (Add Two Numbers)
PYTHON

Python — آرگومان ها (Arguments)

آخرین بروزرسانی: 1404/08/09

آرگومان ها (Arguments)

آرگومانِ تابع یعنی «ورودی». «تابع (Function)» بلوک کدی است که با «فراخوانی (Call)» اجرا می شود. آرگومان ها داخل پرانتز نام تابع می آیند. با ویرگول جدا می شوند. مثل دادن اسم دانش آموز به دفتر حضور و غیاب.

ارسال یک آرگومان

پس از نام تابع، داخل پرانتز مقدار بده. مقدار وارد بدنه می شود.

def my_function(fname):
  print(fname + " Refsnes")

my_function("Emil")
my_function("Tobias")
my_function("Linus")

مشاهده در ادیتور

پارامتر در برابر آرگومان

«پارامتر (Parameter)» نام متغیر در تعریف تابع است. «آرگومان (Argument)» مقدار واقعیِ هنگام فراخوانی است.

def my_function(name):
  print("Hello", name)

my_function("Emil")

مشاهده در ادیتور

تعداد آرگومان ها

تعداد باید درست باشد. اگر تابع دو آرگومان بخواهد، دقیقاً دو تا بده.

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil", "Refsnes")

مشاهده در ادیتور

def my_function(fname, lname):
  print(fname + " " + lname)

my_function("Emil")

مشاهده در ادیتور

مقدار پیش فرض پارامتر

می توانیم مقدار پیش فرض بدهیم. اگر آرگومان ندهیم، همان پیش فرض استفاده می شود.

def my_function(name = "friend"):
  print("Hello", name)

my_function("Emil")
my_function("Tobias")
my_function()
my_function("Linus")

مشاهده در ادیتور

def my_function(country = "Norway"):
  print("I am from", country)

my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")

مشاهده در ادیتور

Keyword Arguments (کلید=مقدار)

با «کلید=مقدار» ترتیب مهم نیست. نام پارامتر را مشخص می کنیم.

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function(animal = "dog", name = "Buddy")

مشاهده در ادیتور

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function(name = "Buddy", animal = "dog")

مشاهده در ادیتور

Positional Arguments (موقعیتی)

بدون کلید، ترتیب اهمیت دارد. جای هر مقدار باید درست باشد.

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function("dog", "Buddy")

مشاهده در ادیتور

def my_function(animal, name):
  print("I have a", animal)
  print("My", animal + "'s name is", name)

my_function("Buddy", "dog")

مشاهده در ادیتور

ترکیب موقعیتی و کلیدی

اول موقعیتی ها بیایند. سپس کلیدی ها بیایند.

def my_function(animal, name, age):
  print("I have a", age, "year old", animal, "named", name)

my_function("dog", name = "Buddy", age = 5)

مشاهده در ادیتور

ارسال انواع داده مختلف

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

def my_function(fruits):
  for fruit in fruits:
    print(fruit)

my_fruits = ["apple", "banana", "cherry"]
my_function(my_fruits)

مشاهده در ادیتور

def my_function(person):
  print("Name:", person["name"])
  print("Age:", person["age"])

my_person = {"name": "Emil", "age": 25}
my_function(my_person)

مشاهده در ادیتور

بازگرداندن مقدار

با return خروجی می دهیم. سپس تابع متوقف می شود.

def my_function(x, y):
  return x + y

result = my_function(5, 3)
print(result)

مشاهده در ادیتور

def my_function():
  return ["apple", "banana", "cherry"]

fruits = my_function()
print(fruits[0])
print(fruits[1])
print(fruits[2])

مشاهده در ادیتور

def my_function():
  return (10, 20)

x, y = my_function()
print("x:", x)
print("y:", y)

مشاهده در ادیتور

فقط موقعیتی: علامت /

با گذاشتن / بعد پارامترها، فقط موقعیتی می شوند. کلیدی قبول نیست.

def my_function(name, /):
  print("Hello", name)

my_function("Emil")

مشاهده در ادیتور

def my_function(name):
  print("Hello", name)

my_function(name = "Emil")

مشاهده در ادیتور

def my_function(name, /):
  print("Hello", name)

my_function(name = "Emil")

مشاهده در ادیتور

فقط کلیدی: علامت *

با *, قبل از پارامترها، مجبور می شویم کلیدی بدهیم.

def my_function(*, name):
  print("Hello", name)

my_function(name = "Emil")

مشاهده در ادیتور

def my_function(name):
  print("Hello", name)

my_function("Emil")

مشاهده در ادیتور

def my_function(*, name):
  print("Hello", name)

my_function("Emil")

مشاهده در ادیتور

ترکیب / و *

قبل از / فقط موقعیتی هستند. بعد از * فقط کلیدی هستند.

def my_function(a, b, /, *, c, d):
  return a + b + c + d

result = my_function(5, 10, c = 15, d = 20)
print(result)

مشاهده در ادیتور

نکته: ادامه مسیر را در آرگومان های متغیر بخوان. برای پایه توابع، توابع را مرور کن. برای تمرین حلقه، حلقه for کمک می کند.

گام های عملی

  1. تابعی با دو پارامتر بساز و چاپ کن.
  2. یک بار موقعیتی صدا بزن. یک بار کلیدی.
  3. برای یکی پیش فرض بگذار و بدون آرگومان صدا بزن.

جمع بندی سریع

  • تعداد آرگومان ها باید درست باشد.
  • پیش فرض ها آرگومانِ خالی را پوشش می دهند.
  • کلیدی ها ترتیب نمی خواهند.
  • موقعیتی ها ترتیب می خواهند.
  • / فقط موقعیتی و * فقط کلیدی می سازند.