שיעורי מודול (3/4)
לשבור, להמשיך ועוד בלולאות
בתוך לולאה (גם for וגם while) אתה יכול לשנות את הזרימה הרגילה עם
שלושה מבנים:
break- יוצא מהלולאה מיד.continue- מדלג על שאר הגוף וקופץ לאיטרציה הבאה.else(על הלולאה) - מבוצע כאשר הלולאה מסתיימת ללאbreak.
break
for n in [3, 7, 11, 4, 9]:
if n % 2 == 0:
primo_pari = n
break
primo_pari # 4break עוצר את הלולאה בהקדם האפשרי. כל דבר אחרי break ב
הגוף של האיטרציה הנוכחית לא מבוצע.
continue
risultati = []
for n in range(1, 11):
if n % 2 == 0:
continue # skip evens
risultati.append(n * n)
risultati # [1, 9, 25, 49, 81]חשבו על continue בתור "עבור לאיטרציה הבאה". הוא משמש לסינון פריטים
מבלי להוסיף עוד רמת הזחה אחת.
else על הלולאה (ביטוי פיתוני)
ייחוד פייתון: לולאות יכולות להיות גם else, שיבוצעו רק אם
לולאה הסתיימה באופן טבעי (ללא break). זה מושלם לחיפושים:
target = 7
for n in [2, 4, 6, 8]:
if n == target:
trovato = True
break
else:
trovato = False
trovato # Falseקרא אותו כ: "עבור כל n ברשימה; אם אתה לוקח את הענף break, דלג
האחר; אחרת בצע את האחר".
לולאות מקוננות: הפסקה יוצאת רק מהפנימית ביותר
for x in range(3):
for y in range(3):
if x == y == 1:
break
print(x, y)break יוצא רק מה-for y, לא מה-for x. כדי לצאת משניהם עליך להשתמש ב-a
דגל או פונקציה + return.
הלולאה יוצאת הדופן... מבנה אחר
ב-Python, גם לולאות for וגם while יכולות להכיל סעיף else אופציונלי. הבלוק else מבוצע רק אם הלולאה מסתיימת כרגיל (כלומר מבלי להיתקל במשפט break). זה מאוד מועיל עבור אלגוריתמי חיפוש (למשל "חפש אלמנט: אם נמצא, שבור; אחרת, דווח שהוא לא נמצא").
נסה זאת בעצמך
בהינתן הרשימה `מספרים = [10, 15, 20, 25, 30, 35]`, מצא את המספר הראשון המתחלק ב-7 והקצה אותו ל`תוצאה`. אם לא קיים, הקצה -1.
הצג רמז
35 הוא הראשון (והיחיד) המתחלק ב-7 ברשימה.
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
בנה את הרשימה 'מספרים_אי-זוגיים' עם המספרים האי-זוגיים מ-1 עד 20 (כולל) באמצעות לולאת for over range(1, 21) והמשך לדלג על הזוגיות.
הצג רמז
אם n זוגי, המשך; אחרת לצרף.
הפתרון זמין לאחר 3 ניסיונות
אתגר נוסף
Given the list `numbers = [7, 11, 14, 21, 25]`, write a `for` loop to find the first number that is divisible by 7 and also strictly greater than 10. When you find it, store it in `found` and exit the loop using `break`. Finally, evaluate `found`.
הצג רמז
Inside the loop, check if num % 7 == 0 and num > 10:, assign it to found and trigger break.
הפתרון זמין לאחר 3 ניסיונות