פייתון א - עתודה ח
הכנת סביבת העבודה
פייתון הנה שפת תכנות נפוצה ביותר , אפשר לכתוב קוד פייתון בהרבה מקומות , חלקן אונליין וחלקן מקומית על המחשב האישי שלנו .
כתיבת קוד בענן - אם אנו מעוניינים לכתוב בענן (אונליין) קיימים אפשרויות רבות כגון : Colab , programiz , Replit , projectIDX ועוד. כדי לבצע זאת יש להיכנס לאתר המתאים , להירשם ופשוט להתחיל לכתוב את הקוד , בסביבה זו הפרויקטים נשמרים בשרת שאיתו עבדתם , כך שתוכלו לגשת לפרויקטים שלכם מכל מקום.
כתיבה מקומית במחשב האישי- בצורת כתיבה זו יש צורך בהתקנה של המפרש של פייתון , אפשר למצוא אותו בקישור הבא , או לחפש בגוגל python download .
לאחר התקנה המפרש אפשר להתקין כל סביבת עבודה מקומית כגון Vscode , PyCharm , VisualStudio (מומלץ יותר), ועוד .
כניסה לסביבת העבודה
סביבת עבודה מבית גוגל , חדשה מאפשרת כתיבת קוד פייתון ופרויקטים רבים אחרים , המילה האחרונה מבית גוגל לכתיבת קוד בענן
מתחילים...
-
אנו נעבוד עם סביבת העבודה Colab !
-
המשימות יפורסמו בקלאסרום , ובכל משימה יצורף קובץ מסוג ipynb שזהו קובץ של Colab .
-
האתר ישמש אתכם כעזר להסברים וחומרים נוספים.
-
חשוב : את המשימה חובה לבצע מתוך הקלאסרום ולא לפתוח קובץ Colab חדש !
קורסים ללימוד עצמי
self.py - מבית קמפוס IL , קורס מצוין להתחלה ללימוד פייתון
next.py - מבית קמפוס IL , קורס מקוון קורס המשך לקורס self.py , מכיל נושאים מתקדמים יותר.
Network.py לתכנת בסביבת הרשת - מבית קמפוס IL , קורס התחלה לתכנות צד שרת וצד לקוח בפייתון
Data.intro - קורס מבוא למדעי הנתונים , היכרות עם ספריית pandas , קורס בסיס , חובה לכל מי שמעוניין להכיר את תחום הלמידת מכונה ובינה מלאכותית
Data.Next – מדע המשך למדעי הנתונים , היכרות עם מודלים ברגרסיה לינארית .
צעדיים ראשונים במדעי המחשב ופייתון - קורס מקוון במרכז החדשנות בלמידה של אוניברסיטת תל אביב, קורס המועבר בצורה מרשימה ממיטב המרצים בארץ , קרדיט אקדמי
GoogleDeveloper Class -קורס בסיסי באתר גוגל למפתחים
אתר The New Boston - קורס פייתון עם סרטונים המדגימים שלב אחרי שלב
משתנים ופקודות קלט
בפרק זה נכיר את:
1. הפקודות print להצגת פלט למסך .
2. הפקודה input לקבל קלט מהמשתמש.
3. מה זה משתנים ? כיצד משתמשים בהם ואיך מבצעים השמה.
מצגת
דפי עבודה
תנאים וביטויים לוגיים
הפקודה if ...else מאפשרת לנו בשפות תכנות לבדוק מצבים ותנאים מסוימים . התחביר שלה מופיע להלן , תנאי לא חייב להופיע עם else או עם elif . אתם מוזמנים לצפות בסרטונים הבאים להסבר על פקודת בקרה זו : ביטויים בוליאניים , בלוק תנאי .
num = int (input ("Please enter number"))
if num > 0 : # האם התנאי מתקיים
print('+')
elif num < 0 : # אחרת בדוק את התנאי החדש
print('-')
else :
print('0') # אחרת
מצגת
קישור - שיעור שלם מוקלט בנושא תנאים .
קישור - שיעור שלם מוקלט בנושא תנאים מורכבים .
דפי עבודה
דף עבודה בנושא תנאים : הוראת תנאי דף עבודה חלק א ,
דף עבודה בנושא תנאים : הוראת תנאי - דף עבודה חלק ב
אופרטורים % / //
![operatorPlus](https://static.wixstatic.com/media/11062b_87c1f6e211a44ef8bc0faafa312b56b1~mv2.png/v1/fill/w_114,h_112,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/11062b_87c1f6e211a44ef8bc0faafa312b56b1~mv2.png)
![opeator](https://static.wixstatic.com/media/cfd88f_9f98e05212554b94b49a79e0f95705e3~mv2.jpeg/v1/crop/x_0,y_0,w_283,h_301/fill/w_198,h_211,al_c,q_80,usm_0.66_1.00_0.01,enc_avif,quality_auto/cfd88f_9f98e05212554b94b49a79e0f95705e3~mv2.jpeg)
/ אופרטור חלוקה מתמטי - חלוקה רגילה , התוצאה הינה מספר עשרוני.
// - אופרטור חלוקה עם עיגול למטה - למשל 5 // 12 שווה 2.4 ,נעגל את התוצאה ל-2 וזה מה שהאופרטור // יחזיר לנו.
% שארית החלוקה - הינה חלוקה בשלמים כאשר שארית השלמים הינה התוצאה .
למשל אם נרצה לחלק 8 שקלים לשלושה ילדים כך שכל ילד יקבל את אותו סכום כסף ( 8%3) , שארית החלוקה תיהיה 2 בגלל שכל ילד יקבל 2 שקלים, אבל יישארו לנו עדיין 2 שקלים שלא נוכל לחלק באופן שווה לכל הילדים ( כי יש שלושה ילדים .
הסבר נוסף נמצא בקישור הבא .
לאופרטור % (מודולו) ישנם שני שימושים עיקריים :
-
מציאת ספרת אחדות (number % 10)
-
בדיקת חלוקה במספר לדוגמא אם נרצה לבדוק את המספר המצוי במשתנה num מתחלק ב-7 נרשום (אנו בודקים ששארית החלוקה היא אפס):
if num % 7 == 0 :
print('number divid in 7')
קיימים עוד שימושים אך לשלב זה אלו השימושים העיקריים.
דוגמא לשימוש בשאלות : מציאת ספרת עשרות במספר דו ספרתי , וזאת נבצע על ידי num//10 , את המספר num נחלק ב-10 עם עיגול למטה (אשר יוריד לנו את החלק העשרוני של התוצאה ) ולאחר מכן נמצא את ספרת האחדות(מודולו 10) בעזרת האופרטור % שהכרנו מקודם .הציבו מספר ב- num ונסו להבין את התשובה.
_______________________________________________________________
מצגת
מצגת חלוקה בשלמים ושארית חלוקה (div - mod)
קישור לסרטון הסבר קצר - הסבר קצר על אופרטור מודולו
קישור לשיעור - שיעור שלם בנושא מודולו
דפי עבודה
דף עבודה : דף עבודה - חלוקה בשלמים ושארית חלוקה
לולאת for
היכרות עם הלולאה
לולאה for משמשת אותנו לחזרה על ביצוע קטע קוד מספר פעמים או למעבר על רשימת איברים .
קיימות שתי דרכים לשימוש בלולאה זו : לולאה לפי ערך ולפי אינדקס
לולאת מעבר לפי ערך : בלולאה לפי ערך אנו עוברים על איברים למשל על כל אות מחרוזת , או על כל איבר ברשימה . נשתמש בלולאה זו שנגיע למחרוזות ולרשימות . להלן מספר דוגמאות .
שימו לב שהמשתנה item/letter בדוגמאות הבאות הינם משתנים שבכל איטרציה של הלולאה יכילו את האיבר הנוכחי ברשימה או התו הנוכחי במחרוזת. זאת אומרת שבמעבר הראשון המשתנה letter את האות h ובמעבר השני הוא יכיל את האות e וכן הלאה (לפי המחרוזת hello) , כנ"ל לגבי הרשימה list_of_items .
text = 'hello'
list_of_items = ['one',2,'three']
for letter in text :
print(item)
for item in list_of_items:
print(item)
לולאת מעבר לפי אינדקס- כאשר האיברים שאנו עוברים עליהם בלולאה הם מספרים , שישמשו לעיתים כאינדקס/מיקום ברשימה או מחרוזת.
במעבר זה נעבור על מספרים , הפקודה range (הסבר על הפקודה בקישור הבא ) מייצרת לנו רשימת מספרים, והלולאה שלנו תעבור על המספרים שנוצרו. בצד שמאל ניתן לראות תמונה לסיכום הפקודה .
לדוגמה הלולאה הבאה תדפיס את המילה hello חמש פעמים , שימו לב שהמשתנה בלולאה כזו נקרא i או index אשר מציין שזה מספר :
for index in range(5):
print('hello')
שימו לב שהפקודה range יצרה לנו רשימה של מספרים החל מ-0 עד למספר 5 (לא כולל) והלולאה שלנו תעבור על המספרים הללו ,בכל איטרציה (ריצת הלולאה) המספר הבא ברשימה.
דוגמא נוספת :הלולאה הבאה לעומת זאת תדפיס את המספרים מ-5 עד 50 בקפיצות של 2 :
for index in range(5,51,2):
print(index)
שימו לב שבתוך הלולאה אנו מבקשים להדפיס את המשתנה index ומשתנה זה בעצם עובר על כל אחד מהמספרים שהפקודה range יצרה .
משתנים צוברים ומונים (צבירה , סכימה , שירשור )
לרוב כאשר משתמשים בלולאות נשתמש במשתנים אשר להם תפקיד מיוחד : צבירה או מניה (ספירה , לספור) .
למשל אם נרצה לכתוב לולאה אשר צוברת (סוכמת) את כל המספרים מ-1 עד 100 וגם סופרת את מספר המספרים המתחלקים ב-7 . התכנית תראה כך :
sum = 0 # משתנה צובר
cnt = 0 # משתנה מונה/סופר
for number in range(1,101):
sum = sum + number
if number % 7 == 0 # בדיקה האם המספר מתחלק ב-7
cnt = cnt + 1
print('total sum ', sum)
print('numbers divided in 7 ' , cnt)
בתכנית זו רואים שיש לולאה שחוזרת על עצמה 100 פעמים וכן אתחול של שני משתנים לפני כן . משתנה בשם sum אשר תפקידו לסכום מספרים , ומשתנה בשם cnt שתפקידו לספור/למנות.
כדי לסכום או לספור נתונים בלולאה קודם יש להציב ערך התחלתי במשתנים כפי שרואים בתחילת התכנית .
לאחר מכן יש להשתמש בפקודת הצבירה או הספירה כפי שמופיעה בשורה הרביעית בקוד שלמעלה . הפקודה קצת מבלבלת מכיוון שמנסים להבין את הפקודה sum = sum + number , מבינים שיש בעיה כי זו לא משוואה ושני הצדדים לא שווים .
ולכן יש להתייחס תמיד אל הסימן = כפקודת השמה (הכנסת ערך למשתנה) באופן הבא :
קודם יש לחשב את הביטוי בצד ימין של המשוואה דהיינו sum + number בהתאם לערכים הנוכחים שלהם . ורק לאחר מכן הכנסת התוצאה למשתנה sum.
בתכנית שלנו המשתנה הצובר תפקידו לחבר את כל הערכים שהמשתנה number מקבל בלולאה, כל איטרציה של הלולאה יתווסף ה-number הנוכחי לתוצאה הקודמת של המשתנה sum.
-
בפעם הראשונה , מכיוון שהמשתנה sum הוא 0 והמשתנה num הוא 1 בפעם הראשונה אז נקבל 0+1 שזה 1 , ואת התוצאה נכניס למשתנה שרשום משמאל למשוואה שהוא sum (דורסים את הערך שהיה קודם) .
-
בפעם השנייה שהלולאה תרוץ הערך של הביטוי בצד ימין יהיה sum + number שזה יהיה 2 + 1 שזה 3 וכך הלאה .
להלן תבנית אשר עונה על רוב סוגי השאלות .
דפי עבודה
חומרי לימוד נוספים
מצגת : מצגת לולאת for
קישור לשיעור - קישור לשיעור שלם בנושא לולאות.
קישור לשיעור - קישור לשיעור שלם בנושא משתנים מונים וצוברים ולולאות
![for_template](https://static.wixstatic.com/media/cfd88f_4398f4319bb040b59747d5fd8ec1d349~mv2.png/v1/fill/w_600,h_468,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/cfd88f_4398f4319bb040b59747d5fd8ec1d349~mv2.png)
לולאת while
היכרות עם הלולאה
לולאת while משמשת לביצוע חוזר כל עוד תנאי מסוים מתקיים , בשונה מלולאת FOR אשר מבצעת ביצוע חוזר מספר מסום של פעמים , לולאת while מכילה תנאי לעצירה ויכולה להמשיך להתבצע כל עוד התנאי מתקיים , לדוגמא :
num = 0
while num < 10:
print (num)
num = num + 1
להלן תבנית שימוש לשאלות בנושא לולאת while
מצגת
בנושא לולאת while : לולאת while - מצגת
סרטון קצר : אתם מוזמנים לצפות בסרטון הסבר קצר (מופיע גם בצד שמאל)
קישור לשיעור - קישור להקלטה של שיעור בנושא לולאת while
דפי עבודה
![while_template](https://static.wixstatic.com/media/cfd88f_058c171381b3498785c723eed0d1c22c~mv2.png/v1/fill/w_513,h_468,al_c,q_85,usm_0.66_1.00_0.01,enc_avif,quality_auto/while_template.png)
מחרוזות
חלק ראשון
בחלק זה נלמד איך ליצור משתנה מסוג מחרוזת , איך להדפיס מחרוזות עם ירידת שורה ובלי ירידת שורה וכן חיתוך מחרוזות . וכן נלמד פעולות שימושיות בנושא מחרוזות כגון chr,ord , count , replace ועוד'. צפו בסרטונים הקצרים הבאים כדי להבין יותר יצירת מחרוזות , הדפסת מחרוזות , חיתוך מחרוזות .
מצגת
דפי עבודה
טופס תרגול ולמידה בנושא מחרוזות בסיס - אופרטורים , המרות , פעולות chr ו- ord , הטופס זמין רק לחשבונות תלמידים במשרד החינוך (הזדהות אחידה)
טופס תרגול ולמידה בנושא מחרוזות - חיתוכים - חיתוכים ופעולות נפוצות , הטופס זמין רק לחשבונות תלמידים במשרד החינוך (הזדהות אחידה)
חלק שני
בחלק השני זה נלמד כיצד ניתן לעבור על תווי המחרוזת ולבצע פעולות על תווים בודדים .
מעבר על מחרוזות יכול להתבצע בשתי דרכים :
מעבר על התווים במחרוזת (מעבר לפי ערך) :
text="hello"
for letter in text:
print(letter)
בכל איטרציה של הלולאה המשתנה letter יקבל את האות הבאה במחרוזת hello כך שבאיטרציה הראשונה הוא יכיל את האות h ובאחרונה את האות o.
מעבר על המיקום של התווים (מעבר לפי אינדקס):
text="hello"
for index in range(len(text)):
print(text[index])
שימו לב שהלולאה עוברת על כל המספרים החל מאפס עד למספר התווים במחרוזת (פחות אחד) , כמו כן שאנו רוצים לגשת לתו מסוים במחרוזת במיקום מסוים נרשום text[index] כאשר text הינו שם המשתנה המכיל מחרוזת.
איך נדע באיזו לולאה להשתמש ?
למרות שהוצגו כאן שני סוגים של מעברים , למעשה יש רק סוג אחד והוא תמיד מעבר לפי ערך ! פעם אחת אנחנו עוברים בלולאה על מספרים (בעזרת range, נקרא מעבר לפי אינדקס ) ובפעם אחרת אנו עוברים על איברים אחרים כגון תווים במחרוזת או איברים ברשימה
מעבר על מספרים - בדוגמא הבאה נדפיס את כל התווים במקומות הזוגיים
for i in range(2,11,2):
print (text[i])
מעבר על תווים במחרוזת - וזה נקרא גם מעבר לפי ערך , במקרה זה נעבור על מחרוזת
for letter in text:
ככלל אצבע לולאת מעבר לפי אינדקס (לפי מיקום ) תתאים תמיד לכל המקרים , אבל היא קצת פחות נוחה.
בנוסף אם בשאלה מבקשים משהו שקשור למיקום של תו במחרוזת (למשל "האות האחרונה" / "האות הראשונה" וכדומה) אזי חייבים מעבר לפי אינדקס, אחרת אפשר להשתמש במעבר לפי ערך.
מצגת
דפי עבודה
חומרי לימוד נוספים
קישור לשיעור מלא- (לא חובה לצפייה) - קישור להקלטה של שיעור שלם בנושא מחרוזות מהמערך ההקלטות הלאומי