✍️ورودی توابع (argument) - (قسمت سوم)
ورودی های توابع می توانند به عنوان متغیر های داخل تابع استفاده شوند. اما نمی توانند خارج از تابع مورد استفاده قرار بگیرند. همچنین این موضوع به متغیر های خارج توابع هم می تواند تعمیم داده شود، یعنی متغیر های تعریف شده در خارج توابع، در داخل توابع ناشناخته هستند.
def function(variable) :
variable+=1
print(variable)
function(7)
print(variable)
خروجی :
>>>
8
NameError: name ‘variable’ is not defined
>>>
💡به صورت تکنیکی می توان گفت که در زمان فراخوانی توابع، متغیر های ورودی توابع همان پارامتر ها (parameters) هستند و مقدار های درون آن ها arguments هستند.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
ورودی های توابع می توانند به عنوان متغیر های داخل تابع استفاده شوند. اما نمی توانند خارج از تابع مورد استفاده قرار بگیرند. همچنین این موضوع به متغیر های خارج توابع هم می تواند تعمیم داده شود، یعنی متغیر های تعریف شده در خارج توابع، در داخل توابع ناشناخته هستند.
def function(variable) :
variable+=1
print(variable)
function(7)
print(variable)
خروجی :
>>>
8
NameError: name ‘variable’ is not defined
>>>
💡به صورت تکنیکی می توان گفت که در زمان فراخوانی توابع، متغیر های ورودی توابع همان پارامتر ها (parameters) هستند و مقدار های درون آن ها arguments هستند.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 72 : جاهای خالی را طوری پر کنید که تابعی تعریف شود که اگر ورودی عددی زوج بود، yes را چاپ کند و در غیر این صورت no را چاپ کند.
... even (x) :
if x%2 == 0:
...("yes")
....
print("no")
1️⃣: def - print - elif
▫ ️0%(0)
2️⃣: void - cout - elif
▫ ️0%(0)
3️⃣: def - print - else :
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(72)
👥: 72شرکت در نظر سنجی
... even (x) :
if x%2 == 0:
...("yes")
....
print("no")
1️⃣: def - print - elif
▫ ️0%(0)
2️⃣: void - cout - elif
▫ ️0%(0)
3️⃣: def - print - else :
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(72)
👥: 72شرکت در نظر سنجی
✍️خروجی گرفتن از تابع (returning from functions)
با ساخت توابعی از نوع str یا int، می توانیم خروجی هایی را دریافت کنیم که بعدا مقدار آن را در کد مورد استفاده قرار دهیم. این کار را با توابعی که ساخته اید، با استفاده از عبارت return انجام دهید.
def max(x, y) :
if x >= y :
return x
else :
return y
print(max(4, 7))
z = max(8, 5)
print (z)
خروجی :
>>>
7
8
>>>
📌عبارت return نمی تواند خارج از تعریف تابع استفاده شود.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
با ساخت توابعی از نوع str یا int، می توانیم خروجی هایی را دریافت کنیم که بعدا مقدار آن را در کد مورد استفاده قرار دهیم. این کار را با توابعی که ساخته اید، با استفاده از عبارت return انجام دهید.
def max(x, y) :
if x >= y :
return x
else :
return y
print(max(4, 7))
z = max(8, 5)
print (z)
خروجی :
>>>
7
8
>>>
📌عبارت return نمی تواند خارج از تعریف تابع استفاده شود.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 73 : جاهای خالی را طوری پر کنید که تابعی تعریف شود که طول مقادیر ورودی را مقایسه کند و مقدار عدد با طول کوتاهتر را باز گرداند.
def shortest_string(x,y):
if len(x) <= ... (y) ..... x else : ...... y
def shortest_string(x,y):
if len(x) <= ... (y) ..... x else : ...... y
Anonymous Poll
4%
int - return - print
11%
len - print - print
85%
len - return -return
🛠تفاوت print و return
دستور print فقط خروجی را نمایش می دهد و اگر بعدا به آن خروجی احتیاج داشته باشیم، دیگر قابل استفاده نیست اما دستور return مقدار بازگردانده شده را نگهداری می کند تا در محاسبات بعدی بتوان از آن استفاده کرد.
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
دستور print فقط خروجی را نمایش می دهد و اگر بعدا به آن خروجی احتیاج داشته باشیم، دیگر قابل استفاده نیست اما دستور return مقدار بازگردانده شده را نگهداری می کند تا در محاسبات بعدی بتوان از آن استفاده کرد.
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
✍️لحظه ای که شما یک مقدار را در تابع return می کنید، اجرای تابع تمام می شود و هر کدی بعد از return عملا اجرا نمی شود.
def add_numbers(x, y) :
total = x + y
return total
print (“This won’t be printed”)
print(add_numbers(4, 5))
خروجی :
>>>
9
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
def add_numbers(x, y) :
total = x + y
return total
print (“This won’t be printed”)
print(add_numbers(4, 5))
خروجی :
>>>
9
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 74 : بزرگترین عددی که کد زیر چاپ می کند کدام است؟
def print_numbers()
print(1)
print(2)
return
print(4)
print(6)
1️⃣: 2
▫ ️|||||||||||||||||||||||||||||||||||||||78%(51)
2️⃣: 6
▫ ️|||||||||18%(12)
3️⃣: error
▫ ️|3%(2)
4️⃣: 1
▫ ️0%(0)
👥: 65شرکت در نظر سنجی
def print_numbers()
print(1)
print(2)
return
print(4)
print(6)
1️⃣: 2
▫ ️|||||||||||||||||||||||||||||||||||||||78%(51)
2️⃣: 6
▫ ️|||||||||18%(12)
3️⃣: error
▫ ️|3%(2)
4️⃣: 1
▫ ️0%(0)
👥: 65شرکت در نظر سنجی
✍️کامنت (comments)
کامنت ها یادداشت هایی هستند که باعث فهم بهتر کد می شوند. آن ها بر روی اجرای کد هیچ تاثیری ندارند.
در پایتون، یک کامنت با اضافه کردن # (octothrope, number sign, hash symbole) ایجاد می شود. هر نوشته ای پی از علامت # در آن خط، نادیده گرفته می شود.
X = 365
Y = 7
#this is a comment
Print(x%y) #find the remainder
#print (x//y)
#another comment
خروجی :
>>>
1
>>>
📌پایتون دارای قابلیت ایجاد کامنت های چند خطه، روشی که در C وجود دارد، نیست.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
کامنت ها یادداشت هایی هستند که باعث فهم بهتر کد می شوند. آن ها بر روی اجرای کد هیچ تاثیری ندارند.
در پایتون، یک کامنت با اضافه کردن # (octothrope, number sign, hash symbole) ایجاد می شود. هر نوشته ای پی از علامت # در آن خط، نادیده گرفته می شود.
X = 365
Y = 7
#this is a comment
Print(x%y) #find the remainder
#print (x//y)
#another comment
خروجی :
>>>
1
>>>
📌پایتون دارای قابلیت ایجاد کامنت های چند خطه، روشی که در C وجود دارد، نیست.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 75 : جای خالی را طوری پر کنید که آن خط تبدیل به کامنت شود.
x = 8
... printint x
print(x)
1️⃣: cc
▫ ️0%(0)
2️⃣: #
▫ ️|||||||||||||||||||||||||||||||||||||||||||||||||98%(62)
3️⃣: %%
▫ ️|2%(1)
👥: 63شرکت در نظر سنجی
x = 8
... printint x
print(x)
1️⃣: cc
▫ ️0%(0)
2️⃣: #
▫ ️|||||||||||||||||||||||||||||||||||||||||||||||||98%(62)
3️⃣: %%
▫ ️|2%(1)
👥: 63شرکت در نظر سنجی
Docstrings✍️
این نوع از (docstrings (documentation strings مانند کامنت عمل می کند که برای توضیح و تفسیر کد استفاده می شوند. در هر حال این روش خیلی به خصوص است و نشانه ی مخصوص به خود “”” را دارد. این روش برای ایجاد کامنت های چند خطی استفاده می شود و در زیر تعریف تابع، برای تفسیر تابع، در خط اول، قرار می گیرد.
def shout (word) :
“””
Print a word with an
Exclamation mark following it.
“””
Print (word + “!”)
Shout(“spam”)
خروجی :
>>>
spam!
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
این نوع از (docstrings (documentation strings مانند کامنت عمل می کند که برای توضیح و تفسیر کد استفاده می شوند. در هر حال این روش خیلی به خصوص است و نشانه ی مخصوص به خود “”” را دارد. این روش برای ایجاد کامنت های چند خطی استفاده می شود و در زیر تعریف تابع، برای تفسیر تابع، در خط اول، قرار می گیرد.
def shout (word) :
“””
Print a word with an
Exclamation mark following it.
“””
Print (word + “!”)
Shout(“spam”)
خروجی :
>>>
spam!
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 76 : آیا یک docstring می تواند شامل چندین خط باشد؟؟
1️⃣: بله
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(65)
2️⃣: خیر
▫ ️0%(0)
👥: 65شرکت در نظر سنجی
1️⃣: بله
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(65)
2️⃣: خیر
▫ ️0%(0)
👥: 65شرکت در نظر سنجی
🛠بر خلاف کامنت های معمول، docstring ها در طول اجرای برنامه حفظ می شوند. این روش به برنامه نویس اجازه می دهد که این کامنت ها در زمان اجرا بررسی شوند.
البته این قابلیت با استفاده از سه ‘ پی در پی قابل اجرا است.
‘’’
This is an example
That python doesn’t run this code
Without using # mark
‘’’
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
البته این قابلیت با استفاده از سه ‘ پی در پی قابل اجرا است.
‘’’
This is an example
That python doesn’t run this code
Without using # mark
‘’’
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
✍️توابع به عنوان object
با اینکه توابع، متفاوت از دیگر انواع متغیر ها تولید می شوند، مانند دیگر متغیر ها و مقدار هایشان هستند.
توابع می توانند به متغیر ها اختصاص داده شوند یا اختصاص داده نشوند و با استفاده از آن نام های اختصاص داده شده، به آن توابع می توان به آن ها ارجاع کرد.
def multiply (x, y) :
return x * y
a = 4
b = 7
operation = multiply
print(operation(a, b))
خروجی :
>>>
28
>>>
❗️در مثال بالا، تابع multiply به متغیر operation اختصاص داده شده است. پس حالا نام operation را هم می توان برای فراخوانی تابع استفاده کرد.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
با اینکه توابع، متفاوت از دیگر انواع متغیر ها تولید می شوند، مانند دیگر متغیر ها و مقدار هایشان هستند.
توابع می توانند به متغیر ها اختصاص داده شوند یا اختصاص داده نشوند و با استفاده از آن نام های اختصاص داده شده، به آن توابع می توان به آن ها ارجاع کرد.
def multiply (x, y) :
return x * y
a = 4
b = 7
operation = multiply
print(operation(a, b))
خروجی :
>>>
28
>>>
❗️در مثال بالا، تابع multiply به متغیر operation اختصاص داده شده است. پس حالا نام operation را هم می توان برای فراخوانی تابع استفاده کرد.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 77 : خروجی کد زیر چیست؟
def shout(word) :
return word + "!"
speak = shout
output = speak("shout")
print(output)
1️⃣: speak!
▫ ️0%(0)
2️⃣: word!
▫ ️0%(0)
3️⃣: shout!
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(58)
👥: 58شرکت در نظر سنجی
def shout(word) :
return word + "!"
speak = shout
output = speak("shout")
print(output)
1️⃣: speak!
▫ ️0%(0)
2️⃣: word!
▫ ️0%(0)
3️⃣: shout!
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(58)
👥: 58شرکت در نظر سنجی
✍️توابع به عنوان object - (قسمت دوم)
همچنین توابع می توانند به عنوان ورودی (arguments) دیگر توابع استفاده شوند.
def add (x, y) :
return x + y
def do_twice(func, x, y) :
return func(func(x,y), func(x,y))
a = 5
b = 10
print(do_twice(add, a, b))
خروجی :
>>>
30
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
همچنین توابع می توانند به عنوان ورودی (arguments) دیگر توابع استفاده شوند.
def add (x, y) :
return x + y
def do_twice(func, x, y) :
return func(func(x,y), func(x,y))
a = 5
b = 10
print(do_twice(add, a, b))
خروجی :
>>>
30
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 78 : جای خالی را طوری پر کنید که تابع "square" به عنوان ورودی به تابع "test" داده شود.
... square(x)
return x*x
def test(func,x)...
print(func(x))
test( ... , 42)
1️⃣: def - : - func
▫ ️0%(0)
2️⃣: def - : - square
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(59)
3️⃣: int - : - func
▫ ️0%(0)
4️⃣: int - : - square
▫ ️0%(0)
👥: 59شرکت در نظر سنجی
... square(x)
return x*x
def test(func,x)...
print(func(x))
test( ... , 42)
1️⃣: def - : - func
▫ ️0%(0)
2️⃣: def - : - square
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(59)
3️⃣: int - : - func
▫ ️0%(0)
4️⃣: int - : - square
▫ ️0%(0)
👥: 59شرکت در نظر سنجی
Madules (1)✍️
کد هایی که توسط بعضی افراد نوشته شده اند تا برخی از اعمال معمول مثل تولید اعداد رندم، انجام اعمال ریاضی، ... را انجام دهند را module می گویند.
برای استفاده کردن از یک module، ابتدا باید با استفاده از دستور import module_name و در ادامه ی آن module_name.var،را به بالای کد اضافه کنیم تا بتوانیم به توابع و مقدار های آن با استفاده از نام var دسترسی پیدا کنیم. برای مثال، در کد زیر از module random برای تولید اعداد رندم استفاده شده است.
Import random
For I in range(5):
Value = random.randit(1,6)
Print(value)
خروجی :
>>>
2
3
6
5
4
>>>
📌کد بالا از تابع randit که در random module تعریف شده است استفاده می کند تا 5 عدد رندم در محدوده ی 1 تا 6 تولید کند.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
کد هایی که توسط بعضی افراد نوشته شده اند تا برخی از اعمال معمول مثل تولید اعداد رندم، انجام اعمال ریاضی، ... را انجام دهند را module می گویند.
برای استفاده کردن از یک module، ابتدا باید با استفاده از دستور import module_name و در ادامه ی آن module_name.var،را به بالای کد اضافه کنیم تا بتوانیم به توابع و مقدار های آن با استفاده از نام var دسترسی پیدا کنیم. برای مثال، در کد زیر از module random برای تولید اعداد رندم استفاده شده است.
Import random
For I in range(5):
Value = random.randit(1,6)
Print(value)
خروجی :
>>>
2
3
6
5
4
>>>
📌کد بالا از تابع randit که در random module تعریف شده است استفاده می کند تا 5 عدد رندم در محدوده ی 1 تا 6 تولید کند.
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 79 : چه نوع ماژولی در زیر استفاده شده است؟
improt math
num = 10
print(math.sqrt(num))
1️⃣: num
▫ ️0%(0)
2️⃣: sqrt
▫ ️0%(0)
3️⃣: math
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(67)
👥: 67شرکت در نظر سنجی
improt math
num = 10
print(math.sqrt(num))
1️⃣: num
▫ ️0%(0)
2️⃣: sqrt
▫ ️0%(0)
3️⃣: math
▫ ️||||||||||||||||||||||||||||||||||||||||||||||||||100%(67)
👥: 67شرکت در نظر سنجی
🛠برخی از توابع random module
random.random()
#random float x, 0.0 <= x <1.0
random.uniform(1,10)
#random float x, 1.0<= x < 10.0
random.randit(1,10)
#integer from 1 to 10, end point included
random.randrange(0,101,2)
#even integer from 0 to 100
random.choice(‘abcdefghij’)
#choose a random element
Items = [1,2,3,4,5,6,7]
Random.shuffle(items)
>>> items
output : [7,3,2,5,6,4,1]
random.sample([1,2,3,4,5], 3)
#choose 3 elements
Output : [4,1,5]
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
random.random()
#random float x, 0.0 <= x <1.0
random.uniform(1,10)
#random float x, 1.0<= x < 10.0
random.randit(1,10)
#integer from 1 to 10, end point included
random.randrange(0,101,2)
#even integer from 0 to 100
random.choice(‘abcdefghij’)
#choose a random element
Items = [1,2,3,4,5,6,7]
Random.shuffle(items)
>>> items
output : [7,3,2,5,6,4,1]
random.sample([1,2,3,4,5], 3)
#choose 3 elements
Output : [4,1,5]
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
Modules (2)✍️
یک نوع دیگر فراخوانی module یا همان import وجود دارد که در مواقعی که فقط به یک تابع خاص از module نیاز داریم، از آن استفاده می کنیم.
در این روش از فرم from module_name import var استفاده می کند. سپس var می تواند طوری استفاده شود که انگار تابع درون کد شما تعریف شده است. برای مثال برای import ثابت پی (pi) از math module از کد زیر استفاده می شود:
From math import pi
Print(pi)
خروجی :
>>>
3.141592653589793
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
یک نوع دیگر فراخوانی module یا همان import وجود دارد که در مواقعی که فقط به یک تابع خاص از module نیاز داریم، از آن استفاده می کنیم.
در این روش از فرم from module_name import var استفاده می کند. سپس var می تواند طوری استفاده شود که انگار تابع درون کد شما تعریف شده است. برای مثال برای import ثابت پی (pi) از math module از کد زیر استفاده می شود:
From math import pi
Print(pi)
خروجی :
>>>
3.141592653589793
>>>
❓بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:
🗂 مرکز آموزش پایتون
➖➖➖➖➖
🆔 : @pythonchallenge
⁉️ تست 80 : جاهای خالی را طوری پر کنید که توابع cos و sqrt را import کنید.
... math import ... cos
1️⃣: in - sqrt,
▫ ️0%(0)
2️⃣: from - sqrt,
▫ ️|||||||||||||||||||||||||||||||||||||||||||||||||98%(61)
3️⃣: from - math,
▫ ️|2%(1)
4️⃣: in - math,
▫ ️0%(0)
👥: 62شرکت در نظر سنجی
... math import ... cos
1️⃣: in - sqrt,
▫ ️0%(0)
2️⃣: from - sqrt,
▫ ️|||||||||||||||||||||||||||||||||||||||||||||||||98%(61)
3️⃣: from - math,
▫ ️|2%(1)
4️⃣: in - math,
▫ ️0%(0)
👥: 62شرکت در نظر سنجی