תרגול מסכם: פונקציות ותנאים#
ממשו את הפונקציה
is_pretty_nameאשר מקבלת מחרוזת המייצגת שם.
אם הקלט לפונקציה הוא השם שלכם, הפונקציה תחזיר מחרוזת שאומרת שהשם יפה (אתם כותבי התכנית, ברור שהשם שלכם יפה). אם הקלט לפונקציה הוא כל שם אחר, הפונקציה תחזיר מחרוזת שאומרת שהשם לא יפה.
def is_pretty_name(name):
# Write your code here
pass
print(is_pretty_name("Python"))
None
בתרגיל זה אתם תכתבו קוד פייתון שיעזור למשתמש להחליט (לפני שהוא יוצא מהבית) האם עליו לקחת כובע, מעיל, או מטריה.
ההחלטה נעשית לפי תרשים הזרימה הבא:
הקלט לבעיה הוא שני משתנים - מספר בשם 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)
לחצו כאן כדי לצפות בפתרון
def what_to_wear(temp, is_raining):
# output variables
hat = False
umbrella = False
coat = False
# SOLUTION:
# Check temperature
if temp > 15:
# In case it is hot
hat = True
coat = False
else:
# In case it is not hot
hat = False
coat = True
# Check if raining
if is_raining:
# If it's raining
umbrella = True
else:
# If it's not raining
umbrella = False
# 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")
ממשו את הפונקציה
ticket_priceשמקבלת גיל של אדם, וערך בוליאני של האם מדובר בסטודנט. הפונקציה תחזיר את המחיר הזול ביותר עבור אותו אדם.
מחירון:
לגיל קטן או שווה מ-12 - מחיר הכרטיס הוא 20.
לגיל גדול מ12 - מחיר הכרטיס הוא 40.
עבור סטודנט (בכל גיל) - מחיר הכרטיס הוא 30.
def ticket_price(age, student):
# Write your cod here
pass
# Test your code here
לפניכם מימוש של הפונקציות
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
נתונה הפונקציה
foo2להלן:
def foo2(x,y,z):
if z == y and (x != 6 or y > 1):
print("hey!!!")
else:
print("Hi…")
הפונקציה הבאה מצפה לקבל כקלט שני משתנים, מחרוזת
stותו בודדc. מה תחזיר הפונקציה עבור קלט שכזה
def what(st, c):
if c in st:
return True
else:
return False
נתונה הפונקציה להלן:
def what(st, c):
return c in st
בשאלות הבאות נממש מספר פונקציות המחשבות מקסימום בין מספרים שונים#
ממשו את הפונקציה
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
ראינו את הפונקציה
max2(a,b)אשר מקבלת שני מספרים ומחזירה את הגדול מביניהם. ממשו כעת את הפונקציהmax4, המחזירה את המספר המקסימלי מבין 4 מספרי הקלטa,b,c, ו-d:
def max4(a,b,c,d):
# Write your code here
pass
# Test your code here
לחצו כאן כדי לצפות בפתרון
def max4(a,b,c,d):
if a > b:
if a > c:
if a > d:
return a
else:
return d
else: # c > a
if c > d:
return c
else:
return d
else:
if b > c:
if b > d:
return b
else:
return d
else: # c > b
if c > d:
return c
else:
return d
def max4_v1(a,b,c,d):
if a > b and a > c and a > d:
return a
elif b > a and b > c and b > d:
return b
elif c > a and c > b and c > d:
return c
else:
return d
כעת, ממשו את הפונקציה
max4_v2אשר עושה אותו דבר, ללא שימוש בתנאים כלל!
רמז:
העזרו במימוש שעשיתם לmax2
def max4_v2(a,b,c,d):
# Write your code here
pass
# Test your code here
ביחידה הבאה נראה את הפתרון לשאלה, ונרחיב על השימושיות הרבה של פונקציות.