לולאת while פייתונית

מחבר:
בתאריך:

במדריך הקודם בסידרה ללימוד פייתון למדנו על לולאות for שכדי להפעיל אותה צריך להגדיר מראש את טווח הערכים שבתוכה הלולאה פועלת. במדריך זה נלמד על לולאת while שרצה עד שהיא פוגשת בתנאי שגורם לה להפסיק או עד שהיא מגיעה ל-break.

מדריך לולאת while פייתון python tutorial while loop

 

לולאת while שרצה עד שמתקיים תנאי סיום

בדוגמה הבאה הלולאה רצה מ-1 עד 8:

x = 1
 
while x < 9:
 print(x)
 x += 1
1
2
3
4
5
6
7
8
  1. הגדרנו ללולאה תנאי פתיחה:

    x = 1

    שממנו הפונקציה מתחילה לרוץ.

  2. הגדרנו לולאה תנאי סיום:

    x < 9

    שהלולאה צריכה לרוץ עד אליו ואז לעצור.

  3. הגדרנו קוד שמקדם את המונה x ב-1 בכל פעם שהלולאה רצה:

    x += 1

    מאוד חשוב! אחרת הלולאה עלולה לרוץ עד שהמחשב יקרוס בגלל לולאה אינסופית. אם אתם נתקלים בבעיה של לולאה אינסופית תוכלו לעצור את הריצה בטרמינל באמצעות Ctrl + c.

 

לולאת while שרצה עד ל-break

לא תמיד הלולאה תעצור בתנאי סיום. לפעמים, היא יכולה לעצור במילת המפתח break.

בדוגמה הבאה הלולאה עוצרת כשערך המונה מגיע ל-4:

x = 1
 
while x < 9:
 print(x)
 
 if x == 4:
   break
 
 x += 1
1
2
3
4

לאותה תוצאה ניתן להגיע באמצעות הקוד הבא, שבו התנאי לסיום הוא True:

x = 1
 
while True:
 print(x)
 
 if x == 4:
   break
 
 x += 1
1
2
3
4
  • תנאי הסיום מוגדר כ-True ולכן הלולאה תמשיך לרוץ עד שמתקיים התנאי שגורם ל-break.

לולאת while שימושית במיוחד במקרים שבהם איננו יודעים מראש מה מספר הפעמים שהלולאה צריכה לרוץ. לדוגמה, כשאנחנו מושכים רשומות ממסד נתונים. בדרך כלל אנחנו לא יודעים לכמה רשומות לצפות אז אנחנו נותנים לפונקציה לרוץ עד שמסד הנתונים מפסיק לספק נתונים.

 

משחק הניחושים

דוגמה לשימוש בלולאת while הוא משחק הניחושים שבו המשתמש מתבקש לנחש את המספר שוב ושוב עד שהוא מצליח. העניין הוא שאיננו יודעים כמה ניחושים ידרשו ולכן לולאת while שרצה כל עוד הניחושים שגויים היא בדיוק מה שאנחנו צריכים.

הסרטון הקצר הבא (פחות מדקה) מציג את הקוד שנכתוב מיד בפעולה:

 

נכתוב את הסקריפט:

הפקודה input מבקשת מהמשתמש להקליד תשובה, לדוגמה:

# ask the user for his name
name = input("Enter your name and press [ENTER]: ")

את הקלט אותו מזין מהמשתמש נדפיס בתוך הודעה:

print(f"Hello, {name}")

הפקודה random.randint() תאפשר לנו לבחור מספר אקראי בטווח:

import random

# pick a random number in a range
the_number = random.randint(1, 7)

נבקש מהמשתמש להזין את הניחוש שלו בתוך לולאה שרצה שוב ושוב עד לניחוש נכון:

# initialize before running the loop
user_number = 0

# ask the user repeatedly until a lucky guess
while ( int(user_number) != the_number ):
    user_number = input("Guess a number between 1 and 7 and press [ENTER]: ")

במקרה שהמשתמש הצליח בניחוש, הלולאה מפסיקה לרוץ ומשחררת את הסקריפט לבצע את הפקודות בהמשך:

# once successful break the loop then notify
print(f"{name}, you lucky bastard! The number is indeed {user_number}!!")

ועכשיו, הכול ביחד:

import random

# ask the user for his name
name = input("Enter your name and press [ENTER]: ")

print(f"Hello, {name}")

# pick a random number in a range
the_number = random.randint(1, 7)

# initialize before running the loop
user_number = 0

# ask the user repeatedly until a lucky guess
while ( int(user_number) != the_number ):
    user_number = input("Guess a number between 1 and 7 and press [ENTER]: ")  

# once successful break the loop then notify
print(f"{name}, you lucky bastard! The number is indeed {user_number}!!")

לכל המדריכים בסדרה ללימוד פייתון

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

הוסף תגובה חדשה

 

= 7 + 8