רצף תוכנית פייתון (Control Flow)

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

תנאי if

תנאי if משמש לקביעה האם קטע קוד מתבצע. אם התנאי מחזיר ערך true, קטע הקוד יבצע. אם התנאי מחזיר ערך false קטע הקוד לא יתבצע והתוכנית לעבור להמשיך אחרי בלוק ה-if.

כדי לקבוע מה נמצא מתחת ל-if יש את הכניסה של השורה פנימה.

# if Statement
test_value = 100

if test_value > 1:
  # Expression evaluates to True
  print("This code is executed!")

if test_value > 1000:
  # Expression evaluates to False
  print("This code is NOT executed!")

print("Program continues at this point.")

תנאי else

אם התנאי לא מתקיים, אפשר לקבוע קטע קוד אחר שיבוצע.

# else Statement
test_value = 50

if test_value < 1:
  print("Value is < 1")
else:
  print("Value is >= 1")

test_string = "VALID"

if test_string == "NOT_VALID":
  print("String equals NOT_VALID")
else:
  print("String equals something else!")

בדיקת תנאים נוספים

אפשר להמשיך ולבדוק תנאים נוספים על ידי elif.

# elif Statement
pet_type = "fish"

if pet_type == "dog":
  print("You have a dog.")
elif pet_type == "cat":
  print("You have a cat.")
elif pet_type == "fish":
  # this is performed
  print("You have a fish")
else:
  print("Not sure!")

בדיקה האם ערך נמצא ברשימה על ידי in

אפשר לבדוק האם ערך נמצא בתוך הערכים של רשימה.

grades = [65, 83, 75, 100, 57, 90]
if 100 in grades:
  print('We have found a perfect score')

אפשר להשתמש במילה in גם כדי לעשות מעבר על רשימה של ערכים.

todo_list = ['start project proposal', 'review the proposal with Team Lead', 'continue working on the proposal', 'present the proposal']
for todo in todo_list:
  print('Things to do today: ', todo)

לולאת for

כדי לעבור על רשימה של ערכים, אנחנו משתמשים בלולאת for.

james_cameron_movies = ["Titanic", "Avatar", "The Terminator", "Aliens"]
for movie in james_cameron_movies:
  print(movie)

# Output:
Titanic
Avatar
The Terminator
Aliens

שימוש ב-range

אם נרצה להגדיר את מספר הפעמים המדוייק שהלולאה תעבוד, נשתמש ב-range. בדוגמא הלולאה תעבוד 3 פעמים (המספרים בלולאה יהיו 0-2).

# Print "WARNING" 3 times:
for i in range(3):
  print("WARNING")

השימוש ב-range יכול להיות מורכב יותר. המשתנים שעוברים לפונקציה הם מספר התחלה, מספר סיום (לא כולל) ואפשר גם להגדיר את גודל הקפיצה בין המספרים. בדוגמא אנחנו מתחילים ממספר 1, הלולאה תעבוד 10 פעמים, והקפיצה בין המספרים תהיה של 1.

for num in range(1, 11, 1):
  if num % 2 == 0:
    print('Num ', num, ' is even')
  elif num % 2 != 0:
    print('Num ', num, ' is odd')

שימוש ב-continue

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

big_number_list = [1, 2, -1, 4, -5, 5, 2, -9]

# Print only positive numbers:
for i in big_number_list:
  if i < 0:
    continue
  print(i)

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

לפעמים רוצים לעבור על ערכים ברשימה, אבל יש צורך גם לדעת מה האינדקס הנוכחי שנמצאים בו. עבור זה אפשר להשתמש ב-enumerate. כברירת מחדל האינדקס מתחיל במספר 0, אבל אפשר לשלוח לפונקציה את המספר שבו רוצים להתחיל למספר את הערכים (בדוגמא השנייה).

# A string is a list, each character is an item on the list
greeting = "hello"
for index, character in enumerate(greeting):
  print(character, ' is located at index ', index, ' in string ', greeting)

james_cameron_movies = ["Titanic", "Avatar", "The Terminator", "Aliens"]
for index, movie in enumerate(james_cameron_movies, 1):
  print(movie, ' is located at index ', index, ' in list ', james_cameron_movies)

לולאות מקוננות

כשיש רשימה בתוך רשימה, אפשר לעבור על שתי לולאות האחת בתוך השנייה.

groups = [["Jobs", "Gates"], ["Newton", "Euclid"], ["Einstein", "Feynman"]]

# This outer loop will iterate over each list in the groups list
for group in groups:
  # This inner loop will go through each name in each list
  for name in group:
    print(name)

לולאת while

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

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

# Starting with 1 the initial_value will change in the loop
# The loop will run 10 times.
initial_value = 1
while initial_value <= 10:
  print('initial value is: ', initial_value)
  initial_value = initial_value + 1

# This loop will only run 1 time
hungry = True
while hungry:
  print("Time to eat!")
  hungry = False

ניווט במאמר

מאמרים אחרונים

Weekly Tutorial