یبلاط یاه 1398 دنفسا -...

13
، پایتونسی برنامه نوی درس مبانی6 طالبی هادی اسفند1398

Transcript of یبلاط یاه 1398 دنفسا -...

Page 1: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

درس مبانی برنامه نویسی، پایتون6

هادی طالبی 1398اسفند

Page 2: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

● return خود تابع است و آرگومان آن می تواند عبارت باشد

More about functions with return

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

def area(radius): b = 3.14159 * radius**2 return (b)

def area(radius): return (3.14159 * radius * radius)

Page 3: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

returnتابع با بیش از یک ●

More about functions with return

پایان تابع استاجرا شود returnهر جایی ●

def absolute_value(x): if x < 0: return -x else: return x

Page 4: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

شود call، 0تابع زیر اگر با آرگومان ●

More about functions with return

اشکال تابع چیست؟. است ”None“پاسخ مقدار ویژه ●

def bad_absolute_value(x): if (x < 0): return (-x) elif (x > 0): return (x)

>>> print(bad_absolute_value(0)) None

Page 5: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

با تایپ های متفاوت امکان دارد returnمقدار : در پایتون ●

More about functions with return

>>> def different_types1(x): if (x >= 0): return(x**0.5) # square root return(" Argument must not be Negative") >>> y = different_types1(10) >>> print(y) 3.1622776601683795 >>> y = different_types1(-10) >>> print(y) Argument must not be Negative >>>

Page 6: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

بیش از یک مقدار امکان دارد با returnمقدار : در پایتون ●

More about functions with return

def get_secret_code(password): if(password != "democracy"): return( 0, "Wrong pass.“ ) else: return( 1, "Welcome” ) x = input("Please Enter Password: ") y, z = get_secret_code(x) if(y == 0): print(z, "Enter again") else: print(z, "Continue")

Page 7: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

تکنیک هایی برای برنامه نویسی با هزینه کم ●

Program development

تکنیک هایی برای پیشگیری، کشف خطا ●

Page 8: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

، جدا کن، پیروز شو، است divide and conquerهمان ●

Incremental development

برنامه را در نقاط مناسب نگه داشته و آزمایش کنید ●

حذف . اضافی printو returnمانند : ابزارهای آزمایش ● پس از آزمایش

Page 9: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

نوشتن تابعی برای یافتن فاصله اقلیدسی دو نقطه: مثال ●

Incremental development

0فقط تست ساختار و سینتکس، در این گام، مقدار ● نشاندهنده درستی کار تا اینجا

def distance(x1, y1, x2, y2): return 0.0

شروع با ساختار ساده یک تابع، فقط تست ساختار و ● سینتکس، در این گام

>>> distance(1, 2, 4, 6) 0.0

Page 10: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

افزودن برنامه در چند گام و تست در هر گام ●

Incremental development

:گام دیگر ●

def distance(x1, y1, x2, y2): dx = x2 - x1 dy = y2 - y1 return 0.0

def distance(x1, y1, x2, y2): dx = x2 - x1 dy = y2 - y1 dsquared = dx*dx + dy*dy return 0.0

Page 11: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

:گام پایانی ●

Incremental development

def distance(x1, y1, x2, y2): dx = x2 - x1 dy = y2 - y1 dsquared = dx*dx + dy*dy result = dsquared**0.5 return result

Page 12: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

استفاده زیاد و تو در توی تابع ها ●

Composition

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

توابع تا حدی اجرای (.افزایش زمان اجرا)کند شدن برنامه : هزینه ● .برنامه را کند می کنند

Page 13: یبلاط یاه 1398 دنفسا - ce.sharif.educe.sharif.edu/courses/98-99/2/ce153-6/resources/root/Lectures/Lec6.pdfreturn کی زا شیب اب عبات More about functions with

تمرین

از کتاب را حل کنید 6.9تمرین های با شماره فرد بخش ●