תרגילי פונקציות ופרמטרים בפייתון

18/02/2019

לומדים פייתון ורוצים לתרגל את כל האפשרויות להעביר ולהחזיר ערכים מפונקציות? הנה כמה תרגילים שאני מקווה שיעזרו.

1. קבלת ערכים

כתבו את הפונקציות sum_digit הבאות (לכל הפעלה כתבו פונקציה משלה) כך שיחזירו את סכום הספרות של הפרמטר שקיבלו:

s = sum_digits1(123)
t = sum_digits2('123')
r = sum_digits3([1, 2, 3])

כתבו את הפונקציות manhattan_distance הבאות כך שיחזירו את מרחק מנהטן בין שתי נקודות (אם כל נקודה מורכבת מערכי x ו-y, מרחק מנהטן הוא ההפרש בין ה x-ים פלוס ההפרש בין ה y-ים):

s = manhattan_distance1(x1=10, y1=10, x2=20, y2=20)
t = manhattan_distance2([10, 10], [20, 20])
r = manhattan_distance3(10, 10, 20, 20)

אתגר: כתבו פונקציה אחת בשם manhattan_distance שתצליח להחזיר את הערך הנכון בשלושת הקריאות כלומר שנוכל להפעיל אותה בכל 3 הדרכים הבאות:

s = manhattan_distance(x1=10, y1=10, x2=20, y2=20)
t = manhattan_distance([10, 10], [20, 20])
r = manhattan_distance(10, 10, 20, 20)

2. החזרת ערכים

כתבו את הפונקציה largest_n כך שהקוד הבא יעבוד:

x = largest_n([10, 20, 30, 40, 50], 1)
# now x == 50

x, y = largest_n([10, 20, 30, 40, 50], 2)
# now x == 50 and y == 40

3. ערכי ברירת מחדל

עדכנו את הפונקציה largest_n כך שגם הקוד הבא יעבוד:

x = largest_n([10, 20, 30, 40, 50])
# now x == 50

4. קבלת מערכים ומילונים

כתבו מחדש את הפונקציה largest_n כך שהקוד הבא יעבוד:

x = largest_n(1, 10, 20, 30, 40, 50)
# now x == 50

x, y = largest_n(2, 10, 20, 30, 40, 50)
# now x == 50, y == 40

עכשיו השתמשו בגירסא החדשה של הפונקציה כדי למצוא את שני הערכים הגדולים ביותר במערך values בתוכנית הבאה:

values = [10, 20, 30, 40, 50]
x, y = <fill in the code here>

# now x == 50, y == 40