לולאות מאפשרות לנו להריץ קטעי קוד שוב ושוב עד שמתקיים תנאי מסוים או עד שהגענו למספר חזרות מוגדר מראש. ישנם שני סוגי לולאות מרכזיים בפייתון:
- לולאת for: מיועדת לעבור על רשימה של ערכים או טווח מספרים.
- לולאת while: מבצעת חזרה כל עוד תנאי מסוים מתקיים.
- יציאה מלולאה (Break): מאפשרת להפסיק לולאה באמצע על בסיס תנאי מסוים.
- continue: מדלג על החלק הנוכחי של הלולאה וממשיך ישר לסבב הבא.
לולאות הן כלי מרכזי בפיתוח תוכניות עם פעולות שחוזרות על עצמן, כמו סריקה של רשימה, חישובים, או תצוגה חוזרת של שאלות.
דוגמת קוד
# For loop example: Iterating through a range of numbers
print("For loop example:")
for i in range(5): # Loops from 0 to 4
print("Iteration number:", i)
# While loop example: Looping until a condition is false
print("\nWhile loop example:")
count = 0
while count < 5: # Runs while count is less than 5
print("Count is:", count)
count += 1 # Increment count by 1
# Breaking out of a loop
print("\nBreaking out of a loop:")
for i in range(10):
if i == 3: # Stop the loop if i is 3
print("Breaking the loop at i =", i)
break
print("i =", i)
# Example of continue: Skipping odd numbers
for i in range(1, 11): # Loop from 1 to 10
if i % 2 != 0: # Check if the number is odd
continue # Skip the rest of the loop for odd numbers
print("Even number:", i)
הסבר על הקוד
לולאת for:
- השורה
for i in range(5):
יוצרת לולאה שחוזרת 5 פעמים.range(5)
מייצר סדרת מספרים מ-0 עד 4 (לא כולל 5).
- בתוך הלולאה, כל פעם המשתנה
i
מקבל ערך אחר מהטווח, ומודפסת ההודעה"Iteration number: i"
.
לולאת while:
- השורה
while count < 5:
יוצרת לולאה שרצה כל עוד התנאיcount < 5
נכון. - בכל סבב של הלולאה, מודפס הערך הנוכחי של
count
, ולאחר מכן אנו מוסיפים 1 ל-count
באמצעותcount += 1
. - הלולאה מפסיקה כאשר התנאי כבר לא מתקיים.
יציאה מלולאה (Break):
- בלולאת
for
עוברים על הטווחrange(10)
. - כאשר המשתנה
i
שווה ל-3, מתבצע התנאיif i == 3
שמפעיל את הפקודהbreak
. - הפקודה
break
מפסיקה את הלולאה באופן מיידי, והשורהprint("Breaking the loop at i =", i)
מודפסת לפני היציאה.
לולאת for
עם continue
:
- הלולאה עוברת על המספרים מ-1 עד 10.
- השורה
if i % 2 != 0:
בודקת אם המספר הוא אי-זוגי (באמצעות מודולו).%
מחזיר את השארית של חילוק. אם השארית אינה 0, המספר אי-זוגי.
- כאשר המספר אי-זוגי, מתבצעת הפקודה
continue
.- פקודה זו מדלגת על שאר הקוד בלולאה עבור הסבב הנוכחי וממשיכה מיד לסבב הבא.
- אם המספר זוגי, הלולאה מדפיסה אותו באמצעות
print
.
תרגילים
תרגיל 1:
כתבו לולאת for
שמדפיסה את המספרים מ-1 עד 10.
תרגיל 2:
צרו לולאת while
שמדפיסה את המספרים מ-0 עד 9.
תרגיל 3:
כתבו לולאת for
שעוברת על רשימה של שמות (לדוגמה: ["אבי", "דנה", "איתי"]) ומדפיסה כל שם.
תרגיל 4:
צרו לולאת while
שמבקשת מהמשתמש להכניס מספר. אם המספר הוא 0, הלולאה נעצרת.
תרגיל 5:
אתגר: כתבו לולאת for
שעוברת על מספרים מ-1 עד 20 ומדפיסה רק את המספרים הזוגיים. השתמשו בפקודת continue
כדי לדלג על מספרים אי-זוגיים.
הפרויקט הגדול: משחק הטריוויה
בשלב הזה, נשתמש בלולאה כדי לשאול שאלות מרובות.
המשחק ימשיך לשאול שאלות עד שהשחקן יענה תשובה שגויה או עד שהשאלות ייגמרו.
# Quiz Game - Adding a loop
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!")
# List of questions and answers
questions = [
{"question": "What is 2 + 2?", "answer": 4},
{"question": "What is the capital of France?", "answer": "Paris"},
{"question": "What is 5 * 6?", "answer": 30}
]
score = 0 # Track the player's score
# Loop through questions
for qst in questions:
print("\n" + qst["question"])
user_answer = input("Your answer: ")
# Check the answer
if str(qst["answer"]).lower() == user_answer.lower():
print("Correct!")
score += 1
else:
print("Wrong! The correct answer was:", qst["answer"])
break # End the game if the answer is wrong
# End of the game
print("\nGame over!")
print("Your final score is:", score)
הסבר:
- הגדרנו רשימה של שאלות ותשובות בפורמט מילון. עוד לא למדנו מה זה מילון, נראה את זה בהמשך. כרגע נשתמש בו על מנת שתהיה לנו לולאה לעבור עליה.
- בלולאת
for
, כל שאלה נשאלת לפי הסדר. - אם התשובה נכונה, השחקן מקבל נקודה, ואם לא – הלולאה נעצרת עם
break
. - בסיום, המשחק מציג את הניקוד הסופי של השחקן.