Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 474b628

Browse filesBrowse files
author
Saeid Darvish
committed
a little explanation of the return statement
1 parent 70dfe98 commit 474b628
Copy full SHA for 474b628

File tree

Expand file treeCollapse file tree

1 file changed

+24
-2
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+24
-2
lines changed
Open diff view settings
Collapse file

‎lessons/l12.rst‎

Copy file name to clipboardExpand all lines: lessons/l12.rst
+24-2Lines changed: 24 additions & 2 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
.. meta::
44
:description: کتاب آنلاین و آزاد آموزش زبان برنامه‌نویسی پایتون به فارسی - درس دوازدهم تابع
5-
:keywords: آموزش, آموزش پایتون, آموزش برنامه نویسی, پایتون, انواع شی, انواع داده, پایتون
5+
:keywords: آموزش, آموزش پایتون, آموزش برنامه نویسی, پایتون,تابع, پایتون
66

77

88
درس ۱۲: تابع - بخش یکم
@@ -38,7 +38,7 @@
3838

3939
رویکرد این آموزش به تابع بر اساس برنامه‌نویسی اعلانی است. زبان پایتون قابلیت برنامه‌نویسی تابعی را نیز در کنار رویکردهای دیگر همچون اعلانی یا شی‌گرایی ارایه می‌دهد. برای چگونگی برنامه‌نویسی تابعی با استفاده از زبان پایتون می‌توانید به کتاب Functional Programming in Python از انتشارات O'Reilly مراجعه نمایید (`دریافت نسخه pdf - رایگان <http://www.oreilly.com/programming/free/functional-programming-python.csp>`__).
4040

41-
در کنار اصطلاح تابع در برنامه‌نویسی، اصطلاح مشابه دیگری نیز به عنوان «رِوال» (Procedure) وجود دارد. روال و تابع در ساختار شبیه یکدیگر هستند با این تفاوت که روال‌ها مقداری برنمی‌گردانند. در پایتون سینتکسی برای تعریف روال وجود ندارد ولی به توابعی که مقداری برنمی‌گردانند، روال نیز گفته می‌شوند.
41+
در کنار اصطلاح تابع در برنامه‌نویسی، اصطلاح مشابه دیگری نیز به عنوان «رِوال» (Procedure) وجود دارد. روال و تابع در ساختار شبیه یکدیگر هستند با این تفاوت که روال‌ها مقداری برنمی‌گردانند. در پایتون سینتکسی برای تعریف روال وجود ندارد ولی به توابعی که مقداری برنمی‌گردانند، روال نیز گفته می‌شوند که اشتباه است چرا که توابع در پایتون تحت هر شرایطی یک مقدار برمی‌گردانند حتی اگر این مقدار ``None`` باشد.
4242

4343
سینتکس
4444
--------
@@ -89,6 +89,28 @@
8989
8
9090
>>>
9191

92+
.. tip::
93+
94+
چنانچه در انتهای تابع دستور ``return`` نوشته نشود، مفسر پایتون به صورت ضمنی دستور ``return None`` را در نظر می‌گیرد. بنابراین با فراخوانی این چنین توابع در زبان پایتون، پس از اجرای کامل دستورات داخل بدنه مقدار ``None`` بازگردانده خواهد شد (`albeit a rather boring one <https://docs.python.org/3/tutorial/controlflow.html#defining-functions>`__).
95+
96+
.. tip::
97+
پیشنهاد `PEP 8 <http://www.python.org/dev/peps/pep-0008>`__: در بازگردان مقدار در تابع یکنواخت عمل کنید. اگر از دستورات مرکبی به مانند ``if/else`` استفاده می‌کنید یا باید هیچ یک از بخش‌ها به صراحت ``return`` نداشته باشند یا اگر لازم است حداقل یک بخش مقداری را برگرداند، باقی بخش‌ها نیز می‌بایست یک مقداری را برگردانند حتی اگر قرار باشد این مقدار ``None`` در نظر گرفته شود::
98+
99+
YES:
100+
101+
def foo(x):
102+
if x >= 0:
103+
return math.sqrt(x)
104+
else:
105+
return None
106+
107+
108+
NO:
109+
110+
def foo(x):
111+
if x >= 0:
112+
return math.sqrt(x)
113+
92114
در زبان برنامه نویسی پایتون تابع یک موجودیت **”first-class“** است که یعنی تابع را می‌توان مانند دیگر اشیا به صورت پویا ایجاد یا نابود کرد، به صورت آرگومان به توابع دیگر ارسال نمود، به عنوان نتیجه توسط ``return`` بازگرداند و... در نتیجه می‌توان یک تابع را درون بدنه دستورات کنترلی (``while`` ،``if`` و...) یا درون بدنه تابعی دیگر تعریف نمود::
93115

94116
>>> def outer(num1):

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.