כדי שהתוכנית שלנו תהיה חכמה יותר, אנחנו צריכים לכתוב קוד שמקבל החלטות.
תנאי זרימה מאפשרים לנו לבדוק תנאים ולבצע פעולות שונות בהתאם לתוצאה. בפייתון, משתמשים בפקודות if, elif ו-else ליצירת החלטות לוגיות.
בנוסף, נלמד כיצד ליצור תנאים מקוננים (Nested Conditions), בהם תנאי אחד נמצא בתוך תנאי אחר, מה שמאפשר לנו לבדוק מצבים מורכבים יותר.
דוגמת קוד
# Example of if, elif, else
age = int(input("What is your age? "))
if age < 18:
print("You are a minor.")
elif age == 18:
print("You are 18 years old!")
else:
print("You are an adult.")
# Nested conditions
score = int(input("Enter your score: "))
if score >= 90:
if score == 100:
print("Perfect score!")
else:
print("Excellent!")
elif score >= 75:
print("Good job!")
else:
print("You need to improve.")
הסבר על הקוד
תנאים בסיסיים עם if, elif, else:
- שורה
if age < 18:
בודקת אם הערך של המשתנהage
קטן מ-18.- אם התנאי נכון, מודפסת ההודעה "You are a minor.".
- שורה
elif age == 18:
מתבצעת אם התנאי הראשון שגוי, ובודקת אם הגיל הוא בדיוק 18.- אם התנאי נכון, מודפסת ההודעה "You are 18 years old!".
- שורה
else:
מתבצעת רק אם אף אחד מהתנאים הקודמים לא התקיים.- במקרה הזה, מודפסת ההודעה "You are an adult.".
תנאים מקוננים (Nested Conditions):
- שורה
if score >= 90:
בודקת אם התוצאה שווה או גדולה מ-90. - בתוך התנאי, יש תנאי נוסף
if score == 100:
שבודק אם התוצאה היא בדיוק 100.- אם שני התנאים מתקיימים, מודפסת ההודעה "Perfect score!".
- התנאי המקונן מאפשר לבצע פעולות שונות בהתאם לערך התוצאה בתוך הקבוצה של תוצאות גבוהות.
תרגילים
תרגיל 1:
כתבו תוכנית שמבקשת מהמשתמש את הגיל שלו ומחזירה הודעה כמו: "קטין", "מבוגר", או "פנסיונר".
תרגיל 2:
צרו תוכנית שמבקשת מהמשתמש ציון במבחן ומחזירה הודעה בהתאם לטווח הציון:
- מעל 90: "מצוין".
- בין 75 ל-90: "טוב".
- מתחת ל-75: "צריך להשתפר".
תרגיל 3:
כתבו תוכנית שמבקשת מהמשתמש שלושה מספרים, ובודקת איזה מהם הוא הגדול ביותר.
תרגיל 4:
כתבו תוכנית שמבקשת מהמשתמש ציון במבחן ואם הציון מעל 80, התוכנית בודקת אם הוא גם מספר זוגי או לא.
תרגיל 5:
אתגר: כתבו תוכנית שמבקשת מהמשתמש את גיל השחקן וסוג המנוי שהוא רוצה לקנות ("רגיל" או "פרמיום") ומחשבת את המחיר בהתאם לגיל ולמנוי.
הפרויקט הגדול: משחק הטריוויה
בשלב הזה, נוסיף שאלות עם תנאים מורכבים יותר. המשחק יבקש מהשחקן לענות על שאלה, יבדוק אם התשובה נכונה, ואם לא – ייתן לו רמזים בהתאם.
שלב בפרויקט:
# Quiz Game - Adding conditional logic
print("Welcome to the Quiz Game!")
# Ask for the player's name
player_name = input("What is your name? ")
print("Hello,", player_name, "let's start!")
# First question
print("Question 1: What is 5 + 3?")
answer = int(input("Your answer: "))
if answer == 8:
print("Correct!")
elif answer > 8:
print("Too high! The correct answer is 8.")
else:
print("Too low! The correct answer is 8.")
הסבר:
- תנאי
if
בודק אם התשובה נכונה בדיוק (answer == 8
). - תנאי
elif
בודק אם התשובה גבוהה מדי (answer > 8
). - תנאי
else
מתבצע אם התשובה נמוכה מדי.