תנאי זרימה (Control Flow)

כדי שהתוכנית שלנו תהיה חכמה יותר, אנחנו צריכים לכתוב קוד שמקבל החלטות.
תנאי זרימה מאפשרים לנו לבדוק תנאים ולבצע פעולות שונות בהתאם לתוצאה. בפייתון, משתמשים בפקודות 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:

  1. שורה if age < 18: בודקת אם הערך של המשתנה age קטן מ-18.
    • אם התנאי נכון, מודפסת ההודעה "You are a minor.".
  2. שורה elif age == 18: מתבצעת אם התנאי הראשון שגוי, ובודקת אם הגיל הוא בדיוק 18.
    • אם התנאי נכון, מודפסת ההודעה "You are 18 years old!".
  3. שורה else: מתבצעת רק אם אף אחד מהתנאים הקודמים לא התקיים.
    • במקרה הזה, מודפסת ההודעה "You are an adult.".

תנאים מקוננים (Nested Conditions):

  1. שורה if score >= 90: בודקת אם התוצאה שווה או גדולה מ-90.
  2. בתוך התנאי, יש תנאי נוסף if score == 100: שבודק אם התוצאה היא בדיוק 100.
    • אם שני התנאים מתקיימים, מודפסת ההודעה "Perfect score!".
  3. התנאי המקונן מאפשר לבצע פעולות שונות בהתאם לערך התוצאה בתוך הקבוצה של תוצאות גבוהות.

תרגילים

תרגיל 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 מתבצע אם התשובה נמוכה מדי.