دوره ویژه مقدماتی پایتون – Telegram
دوره ویژه مقدماتی پایتون
436 subscribers
248 photos
4 videos
250 links
Download Telegram
✍️توابع - (قسمت دوم)

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

📌در پایین نمونه ای از تابع با نام my_func نشان داده شده است. این تابع هیچ argumentی ندارد و کلمه ی ‘spam’ را سه بار چاپ می کند. این تابع تعریف می شود و سپس فراخوانی می شود. دستورات داخل تابع فقط بعد از فراخوانی آن اجرا می شوند.
Def my_func() :
Print(“Spam)
Print(“Spam)
Print(“Spam)

My_func()

خروجی :
Spam
Spam
Spam

💡مجموعه ی داخل هر تابعی با یک : شروع و تعریف می شود.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️تست68 : جای خالی زیر را طوری پر کنید که تابعی با نام hello ایجاد شود.
... hello () ...
print("Hi")

1️⃣: def - :
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(77)
2️⃣: int - ;
️0%(0)
3️⃣: def - ;
️0%(0)
4️⃣: void
️0%(0)

👥: 77شرکت در نظر سنجی
🛠شما باید قبل از فراخوانی یک تابع، آن را تعریف کنید. مثل زمانی که شما باید یک متغیر را قبل از استفاده از آن، تعریفش کنید.

Hello()

def Hello() :
print(“hello world!”)

خروجی :
>>> NameError: name ‘Hello’ is not defined
>>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ تست 69 : کد زیر را به ترتیب نام خطوط مرتب کنید طوری که تایع ()sayHi را تعریف و آن را فراخوانی کنید.
(1) def sayHi() :
(2) sayHi()
(3) print("Hi!")

1️⃣: 2 - 3 - 1
️0%(0)
2️⃣: 1 - 3 - 2
️|||||||||||||||||||||||||||||||||||||||||||||||||99%(73)
3️⃣: 1 - 2 - 3
️1%(1)

👥: 74شرکت در نظر سنجی
✍️ورودی توابع (arguments)

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

def print_with_exclamation(word) :
Print(word + “!”)

Print_with_exclamation(“spam”)
Print_with_exclamation(“eggs”)
Print_with_exclamation(“python”)

خروجی :
Spam!
Eggs!
Python!

📌همان طور که دیدید، ورودی ها داخل پرانتز تعریف می شوند.

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
💡توابعی که دارای ورودی هستند به عنوان توابع داینامیک شناخته می شوند چون بر اساس ورودی های متفاوت، خروجی متفاوتی را ارایه می دهند. اما توابعی که دارای ورودی نیستند و داخل پرانتز آن ها هیچ argument ی وجود ندارد به عنوان توابع static شناخته می شوند، به دلیل اینکه هر بار یک سری اعمال تکراری را انجام میدهند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ تست 70 : خروجی کد زیر چیست؟
def print_double(x):
print( 2 * x )

print_double(3)

1️⃣: error
️0%(0)
2️⃣: 3
️0%(0)
3️⃣: null
️1%(1)
4️⃣: 6
️|||||||||||||||||||||||||||||||||||||||||||||||||99%(75)

👥: 76شرکت در نظر سنجی
✍️ورودی توابع (arguments) - (قسمت دوم)

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

Def print_sum_twice(x, y) :
Print(x + y)
Print(x + y)

Print_sum_twice(5, 8)

خروجی :
>>>
13
13
>>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ تست 71 : جاهای خالی زیر را طوری پر کنید که تابعی تعریف شود که 2 ورودی را دریافت کند و ضرب آن ها را چاپ کند.
... print_multi (x, y) ...
print (x* ... )

1️⃣: def - : - x
️0%(0)
2️⃣: def - : - y
️|||||||||||||||||||||||||||||||||||||||||||||||||99%(74)
3️⃣: void - ; - y
️1%(1)
4️⃣: def - ; - x
️0%(0)

👥: 75شرکت در نظر سنجی
🛠کد بالا را در نظر بگیرید،

e = input(“enter 1: “)
pint(e)
r = input(“enter 2: “)
print(r)
print_sum_twice(float(e), float(r))

💡چون ورودی که از کاربر گرفته می شود از نوع str است، باید تبدیل به float یا int شود.

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
✍️ورودی توابع (argument) - (قسمت سوم)

ورودی های توابع می توانند به عنوان متغیر های داخل تابع استفاده شوند. اما نمی توانند خارج از تابع مورد استفاده قرار بگیرند. همچنین این موضوع به متغیر های خارج توابع هم می تواند تعمیم داده شود، یعنی متغیر های تعریف شده در خارج توابع، در داخل توابع ناشناخته هستند.

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شرکت در نظر سنجی
✍️خروجی گرفتن از تابع (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
⁉️ تست 73 : جاهای خالی را طوری پر کنید که تابعی تعریف شود که طول مقادیر ورودی را مقایسه کند و مقدار عدد با طول کوتاهتر را باز گرداند.
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
✍️لحظه ای که شما یک مقدار را در تابع 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
⁉️ تست 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شرکت در نظر سنجی
✍️کامنت (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
⁉️ تست 75 : جای خالی را طوری پر کنید که آن خط تبدیل به کامنت شود.
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
⁉️ تست 76 : آیا یک docstring می تواند شامل چندین خط باشد؟؟

1️⃣: بله
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(65)
2️⃣: خیر
️0%(0)

👥: 65شرکت در نظر سنجی