תרגול מסכם: פונקציות ותנאים#

  1. ממשו את הפונקציה is_pretty_name אשר מקבלת מחרוזת המייצגת שם.
    אם הקלט לפונקציה הוא השם שלכם, הפונקציה תחזיר מחרוזת שאומרת שהשם יפה (אתם כותבי התכנית, ברור שהשם שלכם יפה). אם הקלט לפונקציה הוא כל שם אחר, הפונקציה תחזיר מחרוזת שאומרת שהשם לא יפה.

def is_pretty_name(name):
    # Write your code here
    pass

print(is_pretty_name("Python"))
None
  1. בתרגיל זה אתם תכתבו קוד פייתון שיעזור למשתמש להחליט (לפני שהוא יוצא מהבית) האם עליו לקחת כובע, מעיל, או מטריה.
    ההחלטה נעשית לפי תרשים הזרימה הבא:

הקלט לבעיה הוא שני משתנים - מספר בשם temp שערכו הוא הטמפרטורה בחוץ, ומשתנה בוליאני (משתנה שערכו אמת או שקר) בשם is_raining - כאשר is_raining הוא True אז יורד גשם בחוץ.

עליכם “לתרגם” את תרשים הזרימה לקוד הכולל תנאי if ו-else, בדומה למה שראינו בסרטון. כדי להחליט אם ניקח כובע, מעיל, או מטריה, אתחלנו עבורכם 3 משתנים בוליאניים ששמותיהם hat (כובע), coat (מעיל), ו-umbrella (מטריה).
אם לפי תרשים הזרימה צריך לקחת את אחד מהפריטים האלו - שנו את ערכו במקום המתאים בקוד ל-True, ואם לא צריך - שנו אותו ל-False.
למשל - אם הטמפרטורה בחוץ היא 20 מעלות ולא יורד גשם - אז צריך להתקיים hat = True, coat = False, umbrella = False.

הקפידו לכתוב True ו- False עם אות ראשונה גדולה.

def what_to_wear(temp, is_raining):
    # output variables
    hat = False
    umbrella = False
    coat = False
    
    pass # Replace the pass with your code

    # Print results    
    if hat:
        print("You should take a hat")
    else:
        print("You shouldnt take a hat")
        
    if coat:
        print("You should take a coat")
    else:
        print("You shouldnt take a coat")
        
    if umbrella:
        print("You should take an umbrella")
    else:
        print("You shouldnt take an umbrella")

כשסיימתם לממש את הפונקציה, נסו את הפונקציה שלכם באמצעות הקוד הבא:

# input variables
temp = 20
is_raining = False
def what_to_wear(temp, is_raining):
    ## Write you implementation here
    pass
    
what_to_wear(temp, is_raining)

  1. ממשו את הפונקציה ticket_price שמקבלת גיל של אדם, וערך בוליאני של האם מדובר בסטודנט. הפונקציה תחזיר את המחיר הזול ביותר עבור אותו אדם.
    מחירון:
    לגיל קטן או שווה מ-12 - מחיר הכרטיס הוא 20.
    לגיל גדול מ12 - מחיר הכרטיס הוא 40.
    עבור סטודנט (בכל גיל) - מחיר הכרטיס הוא 30.

def ticket_price(age, student):
    # Write your cod here
    pass 

# Test your code here
  1. לפניכם מימוש של הפונקציות foo1 ו-foo2

def foo1(x):
    if x < 10:
        x=x+8
    else:
        x=x+1
    return x
    
def foo2(x):
    if x<10:
        x=x+8
    elif x>20:
        x=x+1
    return x
  1. נתונה הפונקציה foo2 להלן:

def foo2(x,y,z):
    if z == y and (x != 6 or y > 1):
        print("hey!!!")
    else:
        print("Hi…")
  1. הפונקציה הבאה מצפה לקבל כקלט שני משתנים, מחרוזת st ותו בודד c. מה תחזיר הפונקציה עבור קלט שכזה

def what(st, c):
    if c in st:
        return True
    else:
        return False
  1. נתונה הפונקציה להלן:

 def what(st, c):
    return c in st

בשאלות הבאות נממש מספר פונקציות המחשבות מקסימום בין מספרים שונים#

  1. ממשו את הפונקציה max2 אשר מקבלת שני מספרים ומחזירה את הגדול מביניהם:

def max2(a,b):
    pass # Replace the pass with your code

בסרטון זה נממש יחד פונקציה חדשה לחישוב מקסימום בין שלושה מספרים: max3.

לנוחותכם חלונית עם הקוד שראינו בסרטון. מוזמנים להריץ בעצמכם:

def max2(a,b):
    if a > b:
        return a
    else:
        return b

# result = max2(3,5)
# print(result)
# result2 = max2(4,-5)
# print(result2)
x = 4
y = -5
#result3 = max2(x,y)
#print(result3)
result4 = max2(x + y + 3, x*y)
#print(result4)

def max3_v1(a,b,c):
    if a > b:
        if a > c:
            return a
        else:
            return c
    else:
        if b > c:
            return b
        else:
            return c

result5 = max3_v1(1,2,3)
#print(result5)

def max3_v2(a,b,c):
    if a > b and a > c:
        return a
    elif b >= a and b > c:
        return b
    else:
        return c

result6 = max3_v2(1,2,3)
print(result6)
3
  1. ראינו את הפונקציה max2(a,b) אשר מקבלת שני מספרים ומחזירה את הגדול מביניהם. ממשו כעת את הפונקציה max4, המחזירה את המספר המקסימלי מבין 4 מספרי הקלט a, b, c, ו-d :

def max4(a,b,c,d):
    # Write your code here
    pass
    
# Test your code here
  1. כעת, ממשו את הפונקציה max4_v2 אשר עושה אותו דבר, ללא שימוש בתנאים כלל!

def max4_v2(a,b,c,d):
    # Write your code here
    pass
    
# Test your code here

ביחידה הבאה נראה את הפתרון לשאלה, ונרחיב על השימושיות הרבה של פונקציות.