דימלתל הדובע יפד 'ח התיכל...

81
דפי עבודה לתלמיד פייתון לכיתה ח' כתבה: עמליה אפל

Transcript of דימלתל הדובע יפד 'ח התיכל...

Page 1: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

דפי עבודה לתלמיד

פייתון לכיתה ח'

כתבה: עמליה אפל

Page 2: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

2

תוכן

4 .............................................................................................................. תיקיות וקבצים

4 ................................................................................................. פתיחת תיקייה חדשה

4 ........................................................................................................ ייהשינוי שם תיק

6 ...................................................................................... פתיחת קובץ ופקודות הדפסה

6 ............................................................................................................. פקודות הדפסה

7 ............................................................................................. תרגילים פקודות הדפסה

8 ........................................................................................................... פעולות חשבון

9 .................................................................................... הוראת קלט וטיפוסים של משתנים

10 ..................................................................................................... תרגילים משתנים

12 ......................................................................................... משתנים המרה של טיפוסי

15 ............................................................................................................................ צב

16 ................................................................................................................. תרגילים

19 ................................................................................................... מיקום הצב על המסך

20 .................................................................................... תרגילים מיקום הצב על המסך

23 ............................................................................................................... משתנים וצב

23 ................................................................................................................ תרגילים:

24 ......................................................................................... :מקבץ פקודות של הצב

26 .................................................................................................................... מחרוזות

27 ..................................................................................................... תרגילים מחרוזות

30 ....................................................................................................................... תנאים

30 ....................................................................................................... תרגילים ותנאים

32 .......................................................................................................... תנאים ומחרוזות

34 .......................................................................................... תרגילים תנאים ומחרוזות

36 ............................................................................................. ם ביטוי לוגי מורכבתנאי ע

37 .............................................................................. תרגילים תנאי עם ביטוי לוגי מורכב

38 .............................................................................................. חזרה משתנים ותנאים

41 .................................................................................................... ביצוע חוזר –לולאות

for ............................................................................................................... 41לולאת

while .............................................................................. 46לולאת –ביצוע חוזר מותנה

while ........................................................................................................... 46תרגול

Page 3: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

3

48 ...................................................................................................... תפונקציו –פעולות

48 ....................................................................................... פעולות שאינן מחזירות ערך

48 ....................................................................................................... תרגילים פעולות

51 ............................................................................................. ערכיםפעולה המחזירה

54 ...................................................................................................................... צב ו ...

54 ...................................................................................................... מחרוזות בפייתון

57 .............................................................................. פקודה לרישום טקסט בעזרת הצב

57 .................................................................................................. תרגילים טקסט וצב

58 .................................................................................................................... צב:

OnClike ........................................................................................... 61 –אירועי עכבר

63 ....................................................................... תכנית המזיזה את הצב למיקום העכבר:

OnClike ................................................................................................ 63דף עבודה

65 ........................................................................................ העכברסימון מיקום לחיצת

67 ...................................................................................................................... מקלדת

68 ...................................................................................................... משתנה גלובאלי

70 ....................................................................................................... אלגוריתם מתקדם

70 ................................................................................................ דף הוראות בפייתון:

for .......................................................................................................... 72 -תרגילים

while .......................................................................................................... 74לולאות

76 .............................................................................................. אלגוריתם מתקדם וצב

Page 4: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

4

תיקיות וקבצים

פתיחת תיקיה חדשה בדיסק

סייר הקבציםהפעילו את

שהמורה יקבע((בדיסק בחרו עם סמן העכבר

)שהמורה יקבע( בחרו בתיקייה

פתיחת תיקייה חדשה

ביתלשונית בחרו ב הקבצים בסייר

תיקייה חדשהכפתור

בסוף רשימת התיקיות תיווצר תיקייה חדשה

בחלון שנפתח. האנגליתבשפה שמכם את כתבו

שינוי שם תיקייה

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

עמדו עם סמן העכבר על השורה של התיקייה.

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

Page 5: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

5

שנה שם. –בחרו בתפריט

בחלון שנפתח.שמכם רשמו צבע התיקייה נצבע בכחול

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

לתיקייה אחרת.

מחקו את התיקייה במיקומה החדש.

חפשו בסל המחזור את הקובץ שמחקתם.

החזירו אותו לתיקייה.

, כיתה ח.H ,Amaliaהעבירו אות פתחו שוב תיקייה חדשה בדיסק

Page 6: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

6

ובץ ופקודות הדפסהפתיחת ק

להיות באותיות לטיניות, ללא רווחים וסימנים.חייב שם של קובץ,

במקרה הצורך(בקלות קבעו לקובץ שם משמעותי )שנוכל למצוא אותו

print1 בשם נקרא לקובץלצורך הדגמה

הערות בתחילת התכנית 2כתבו

של שם מחבר הקובץ ומה הקובץ מבצע. כוללת ערה הה

הסימן # מודיע Printingולכן הקובץ יקרא בשיעור זה נלמד לעבוד עם פקודת הדפסה למסך

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

פקודות הדפסה

printהפקודה להדפסה היא

"print "text את הטקסט המופיע בתוך ה"מרכאות"מחרוזת כפקודה המדפיסה

print 10 פקודה המדפיסה מספר )בעל ערך חישובי(

פקודה המדפיסה מחרוזת "את הטקסט המופיע בתוך ה"מרכאות"

הספרות עם חשבונית פעולה לבצע ניתן לא. 0 –ו 1שתי ספרות

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

print "10"

print 2+5 הפעולה החשבונית.פעולה המדפיסה את תוצאת החישוב של

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

למשל מחרוזת טקסט + מספר נפריד ביניים בעזרת הסימן , )פסיק(.

הדפסה של שתי מחרוזות באותה השורה

print "some text" ,"other text"

מחרוזות בשתי שורות נפרדות.הדפסה של שתי

print "some text"

print "other text"

# Amalia

# Printing

Page 7: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

7

הדפסה תרגילים פקודות

כתבו תכנית קצרה אשר תדפיס את הטקט הבא: .1

good day :-)

print "good day :-)"

run כדי להריץ את התכנית בחרו בשורת התפריט בלשונית

בתפריט שנפתח בחרו בשורה עם שם Run בשורה הראשונה של התפריט בחרו ב

. print1הקובץ שלכם

את תוצאת הריצה. תוכלו לראות בחלקו התחתון של המסך

צרו תכנית המדפיסה את כרטיס הביקור האישי שלכם. .2

הקלידו את שמכם )בשורה נפרדת(

בית הספר והכיתה בה אתם לומדים )באותה שורה(

Amalia Appel

Rothberg High School,

"^^^^"הוסיפו שורה של ארבעה סימנים לפני שמכם. .3

?) מה יהיה הפלט( הריצו את הפקודה הבאה ובדקו מה היא עושה .4

print "abcd " * 3

Page 8: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

8

פעולות חשבון

פתחו קובץ חדש. .5

הדפיס בו את הפקודות הבאות:

print 11 + 9

print 4 * 2

print 12 - 10

print 22 / 2

print 4 ** 2

print 10+5*2

print 5*2+10 . אופרטורנקראת ה חשבונית פעול

?**מה מבצע האופרטור םלפי הפקודות שהרצת

כתבו תרגיל חשבוני אחר עם האופרטור הריצו ובדקו את תוצאת החישוב?

הסבירו החשבון?כתבו תרגילי חשבון אחרים ובדקו האם הפייתון יודע לחשב לפי סדר פעולות .6

תשובתכם!

הדפיסו למסך תרגיל חשבוני. .7

בתרגיל יוצג למסך התרגיל )המספרים+ האופרנדים( ותוצאת החישוב שהפייתון יחשב.

( וכתבו את התרגיל ,: את התרגיל כתבו ב"מרכאות כמחרוזת טקסט" הפרידו בפסיק ) רמז

כך שפייתון יחשב את התוצאה.

Page 9: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

9

ים של משתניםהוראת קלט וטיפוס

ניתן לקובץ שם משמעותי כדי שנוכל ע"י שמו להבין מה הוא כולל.

ויכול להכיל אותיות וספרות. שם קובץ בפייתון, צריך להיות באותיות לועזיות

var1נקרא לקובץ

נתחיל בכתיבת הערה של שם מחבר הקובץ ומה הקובץ מבצע.

ולהכניס לתוכם ערכים )פעולת השמה(עם משתנים בשיעור זה נלמד לעבוד

# Amalia

# variables & printing

PRINTהפקודה להדפסה היא

, מציגה את המידע למסך בשורה נפרדת. printכל פקודת

"print "text פקודה המדפיסה מחרוזת "את הטקסט המופיע בתוך ה"מרכאות"

print 10 פקודה המדפיסה מספר

print num משתנהפקודה המדפיסה

print n1+n2 פעולה המדפיסה את תוצאת החישוב.

print "text", num פקודה המדפיסה למסך מחרוזת טקסט ומשתנה באותה השורה

יפוסים של משתניםט

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

n1, n2, n3 = 10, 10.0, "10"

n1 = 10

n2 = 10.0

n3 = 10

"אוסף תווים". –לא ניתן לבצע פעולות חשבוניות עם טיפוס שהוא מחרוזת

פעולת חילוק במספרים שלמים תציג את תוצאת החלוק של המספר השלם.

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

השמה של כמה משתנים בפקודה אחת.

הצגה למסך של ערך המשתנה והטיפוס שלו.

n1 – ( משתנה מטיפוס מספר שלםint.)

n2 – משתנה מטיפוס מספר ממשי (float) .מספר היכול להכיל שבר עשרוני

n3 – ( משתנה מטיפוס מחרוזתstr) תו או אוסף תווים מחרוזת

Page 10: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

10

תניםשתרגילים מ

.10.0והשימו בו את הערך num1צרו משתנה בשם .1

num = 10.0

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

והדפיסו את התוצאה 20הוסיפו לן •

num = num + 20

print num

, והדפיסו את התוצאה25החסירו ממנו •

, והדפיסו את התוצאה2 -כפלו אותו ב •

, והדפיסו את התוצאה3 –חלקו את המספר ב •

, והדפיסו את התוצאה2אותו בחזקת העלו •

הריצו את התכנית ובדקו את התוצאה אחרי כל פקודה.

numהדפיסו שוב בסוף התכנית את

שווה לערכו בתחילת התוכנית? מדוע? numהאם ערכו של

.החדשו הקודם וישמר ערכו כהשמה למשתנה, ימחק ער תבכל פעול -מסקנה

הערך האחרון השמור בו. בכל פעם המשתנה שומר את .2

בכל שלב בתוכנית. numberנסו לנחש מה ערכו של

הריצו ובדקו:

number = 15

number = 15/3

number = number + 10

number = float(number)

number = number / 4

print number

מה הפלט שקיבלתם בסוף התכנית?

?3.75 הוא numberשל ערכו האם

המשתנים בפייתון נשמרים על פי טיפוסים.

תוצאות החישוב תמיד תהייה מספר שלם. INT –טיפוס של מספר שלם • . 2 = 2 / 5לדוגמה בפעולת חילוק

)כאשר נרצה לחלק מספר לקבוצות נרצה לקבת מספרים שלמים(.

תוצאות החישוב תמיד תהייה מספר ממשי FLOAT –טיפוס מספר ממשי • 2.5 = 2/ 5כולל שבר עשרוני. לדוגמה בפעולת חילוק ה

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

Page 11: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

11

הפקודה לקליטת מספר שלם מהמקלדת היא: .3

n1 = int(raw_input("Please enter number")

הפקודה לקליטת מספר ממשי מהמקלדת היא:

n2 = float(raw_input("Please enter number")

הפקודה המדפיסה את תוצאת החיבור בין שני המספרים היא:

print n1+n2

מספרים מטיפוסים שונים. 2כתבו תכנית המקבלת

הציגו למסך את תוצאת החיבור של שני המספרים, מהו טיפוס התוצאה?

ומציגה כתבו תכנית המקבלת כקלט משקל של שלושה גורי חתולים .4

) סכום המשקלים חלקי מספר כפלט את ממוצע המשקלים שלהם

.( הגורים

מהו טיפוס המשתנה שנקבל כקלט לקבלת תוצאה מדויקת?

כתבו ₪. 25המורה עליזה רוצה להזמין ספרי לימוד לתלמידי כיתה ח. מחיר כל ספר הוא .5

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

הספרים.

הוסיפו לפלט הודעה מתאימה.

printלהדפסת מחרוזת טקסט + משתנה לאחר פקודת

( ושם המשתנהפסיק במרכאות" הפרדה של , )" (מוסיפים "מחרוזת )אוסף אותיות

print num, "text"

(. str –)טיפוס של תו אחד או אוסף תווים הוא תו אחד מהמשתמש כתבו תכנית המקבלת .6

.התוהתכנית תציג כפלט בשורה הראשונה את

שלוש פעמים.התו פעמיים, ובשורה השלישית את התו בשורה השנייה את

נסו להפעיל את האופרטור של הכפל )*( על המחרוזת.

7.

כתבו תכנית המקבלת שם של אדם את שנת לידתו ואת השנה הנוכחית. .8

התכנית תציג כקלט את שם האדם ואת גילו.

הוסיפו להדפסה מסגרת.

Page 12: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

12

מחשבון: .9

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

החשבון עם משתנים אלו.

יש לרשום את ההוראות כך שהתכנית הציגו את התרגיל החשבוני עם המשתנים ואת התוצאה )

(.התוצאה תחשב את

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

20 + 5 = 25 הריצו את התכנית ובדקו את התוצאה.

הפרידו בין תרגיל לתרגיל בעזרת הדפסת שורת תווים שבחרתם למשתנה.

המרה של טיפוסי משתנים

תווים"."אוסף –לא ניתן לבצע פעולות חשבוניות עם טיפוס שהוא מחרוזת

פעולת חילוק במספרים שלמים תציג את תוצאת החלוק של המספר השלם.

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

ניתן להמיר טיפוס של משתנה

הוספת הטיפוס הרצוי לפני שם המשתנה בסוגריים ישנה את הטיפוס שלו.

n1 = 5

print n1 / 2

print float(n1) / 2

האופרטור שארית החלוקה )%(

מספרים שלמים האופרטור שארית החלוקה פעול על •

של מספר במספר. מספר השלמים שנשארו אחרי חלוקה שלמהמציג את חישוב •

) כמה שלמים נשארו אחרי מספר בעזרת אופרטור זה ניתן לבודד את ספרת האחדות של •

.חלוקה שלמה בעשר??(

ולבדוק האם מספר מתחלק במספר אחר ללא שארית. •

num = int(raw_input("Enter two digit number: "))

print num / 10

print num % 10

פר ממשיהמרה של טיפוס מספר שלם למס

לקבלת תוצאת חילוק מדויקת

Page 13: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

13

תוצאת הריצה:

Enter two digit number: 62

6

2

כתבו תכנית המקבלת כקלט מספר שלם, .1

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

מתאים.כיתוב הוסיפו

פתחו קובץ חדש .2

כתבו את שמכם בהערה

הריצו את התכנית הבאה ובדקו את התוצאה.

n3 = 11

print n3 / 3

בדקו את אפשרות החלוקה במספר ממשי

print n3 / 3.0

תוצאה? כיצד ניתן להסביר זאת?האם בשני המקרים קיבלתם אותה

כיצד נבצע את ההשמה למשתנה כך שתוצאת החילוק תמיד תהייה תמיד נכונה?

האם ניתן לשנות את הטיפוס של משתנה? .3

הריצו את התכנית הבאה:

n2 = 10.0

print "n2", n2, type(n2)

n2 = int(n2)

print "n2", n2, type(n2)

רישמו את הפלט שקיבלתם:

תוצאת ההרצה: הסבר

המרה של טיפוס המשתנה. שינינו את טיפוס המשתנה ממספר ממשי למספר שלם

המספר פעמים, המירו את 4כתבו תכנית המקבלת מספר שלם, הדפיסו את המספר

למחרוזת והשתמשו באופרטור * על המחרוזת.

והשימו בהם ערכים. מטיפוס שלםים צרו שני משתנ .4

החילוק השלם של המספר הראשון במספר השני?.מהי תוצאת

חשבו את שארית החלוקה של מספרים אלו )האופרטור %(.

(, והדפיסו למסך תוצאת החילוק של המספרים, floatשנו את טיפוס המשתנים למספר ממשי )

ואת הממוצע שלהם.

Page 14: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

14

כתבו תכנית הקולטת מספר דו ספרתי. .5

של המספר.התכנית תציג כפלט את סכום הספרות

דנה ערכה קניות, עזרו לה לבדוק כמה כסף נשאר לה בארנק. .6

כקלט את הסכום שהיה לה בארנק ואת הסכום כתבו תכנית המקבלת

שהוציאה.

סכום שנשאר לה בארנק.הכפלט מהו התכנית מציגה

כתבו תכנית שהקלט שלה הוא מספר דו ספרתי. והפלט שלה מספר דו ספרתי שספרותיו .7

.12נקבל את הפלט 21ת. לדוגמה עבור הקלט הפוכו

יש ליצור מספר חדש ולא להדפיס ספרות. : הערה

כתוב תכנית שהקלט שלה הוא מספר תלת ספרתי. פלט התוכנית יציג: .8

את סכום הספרות של המספר

את המספר בהחלפת ספרת האחדות והמאות.

נקבל את הפלט: 123לדוגמה עבור הקלט

Digit sum: 6

New number: 321

Page 15: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

15

צב

מקבץ פקודות של הצב:

פקודה הסבר

import turtle ייבוא ספריה

()tw tw = turtle.Screenפתיחת חלון בשם

()t t = turtle.Turtleצב בשם יצירת

()turtle.mainloop פקודה המונעת את סגירת החלון

t.forward(distance) זוז קדימה)צעדים(

t.back(distance) זוז אחורה)צעדים(

t.bk(distance)

t.back(distance)

t.right(angle) פנה ימינה)זווית(

t.rt(angle)

t.left(angle) פנה שמאלה)זווית(

t.lt(angle)

t.setpos(x,y) על המסך. y –ו xקפיצה לנקודה

t.color("blue") קובע את צבע העט של הצב

t.pensize(3) את עבי העט של הצבקובע

()t.pendown מצייר עט מטה

t.pd()

t.down()

()t.penup לא מצייר עט מעלה

t.pu()

t.up()

Page 16: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

16

תרגילים

תכנית חדשה: .1

import turtle # allows us to use the turtles

library

tw = turtle.Screen() # creates a graphics

window

ella = turtle.Turtle() # create a turtle named

ella

ella.color("blue")

ella.pensize(3)

ella.forward(75)

turtle.mainloop() # prevent the window from closing

הריצו את התכנית ובדקו מה עושה "אלה" הצבה?

: הפקודותהאם תוכלו לנחש מה עושות

ella.color("blue")

ella.pensize(3)

הגורמות לתזוזת הצב, פקודות 4לפניכם .2

.5בעובי 100נסו לצייר בעזרתם ריבוע אדום שכל צלע שלו באורך

כל שורה מייצגת אותה פקודה בצורת כתיבה שונה, בחרו בפקודה הנוחה לכם:

forward(100) / fd(100)

backward(100) / bk(100) / back(100)

right(90) / rt(90)

left(90) / lt(90)

הספירה של הצב, ליצור חלון לשרטוט, ליצור צב. ובסוף השרטוט להוסיף אל תשכחו לייבא את

את הפקודה השומרת את החלון פתוח.

Page 17: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

17

100צעדים, ואורך הצלע הקצרה 150( שאורך הצלע הארוכה שלו "green"שרטטו מלבן ירוק ) .3

.4צעדים ובעובי עט

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

מסך הפלט בנוי כמערכת צירים

xכאשר מספרים על ציר

מסמנים את הערכים לרוחב

מסמן את הערכים yהמסך, וציר

לאורך המסך.

מסמנים כל נקודה על ציר

המספרים בשני ערכים,

x –הנקודה על ציר ה

.y –והנקודה על ציר ה

ציר המספירם מורכב ממספרים

ובים, ומספרים שלילים. חי

תזוזה קדימה היא ממרכז המסך

מספרים חיובים. ימינה

מספרים תזוזה שמאלה

שליליים.

. תזוזה למעלה היא על הציר המספרים החיובים

.תזוזה למטה היא לכיוון המספרים השליליים

במסך הפלט של פייתון xציר

,unitsיחיודת 940אורך המסך הוא

הערכים שלו רוחב המסך הם:

במרכז. 0

הנקודה השמאליות ביותר על המסך. -460

+ הנקודה הימנית ביותר על המסך.460

במסך הפלט של פייתון. yציר

. unitsיחידות 780גובה המסך הם

הערכים של גובה המסך הם

במרכז 0

הנקודה התחתונה ביותר על המסך -390

נה ביותר על המסך.+ הנקודה העליו390

.0 ,0( נתחיל כל ציור בנקודה defaultאם לא נתנו פקודה אחרת )ברירת המחדל

על המסך:הוראה למקם

turtle.setpos(x,y)

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

שווה שוקיים.ומשולש משולש ישר זויות בין המשולשים יש לכלול

Page 18: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

18

ella.setpos(0,0)

ella.setpos(100,0)

ella.setpos(0,100)

ella.setpos(0,0)

import turtle # allows us to use the turtles library

tw = turtle.Screen() # creates a graphics window

ella = turtle.Turtle() # create a turtle named ella

ella.color("purple")

ella.pensize(3)

ella.setpos(0,0)

ella.setpos(100,-100)

ella.setpos(-100,-100)

ella.setpos(0,0)

tw.exitonclick()

עט מטה, עט מעלה. .5

עט שנמצא על הנייר הוא עט מצייר

כמו שאנו כותבים ומעלים את העט מעלה מזיזים אותה על פני הנייר ומורידים אותה שוב לנייר

להמשך השרטוט של הפריט הבא. כך גם ניתן לשרטט עם הצב של פייתון.

השולטות על העט. פקודות לפניכם

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

turtle.pendown() / turtle.pd()/ turtle.down()

turtla.penup() / turtle.pu() / turtle.up()

נסו לצייר כמה צורות על פני המסך.

Page 19: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

19

מיקום הצב על המסך

מקבץ פקודות של הצב עוד פקודות:

פקודה הסבר

t.setpos(x,y) על המסך. y –ו xקפיצה לנקודה

t.goto(x,y)

על המסך xקפוץ לנקודה

על המסך yקפוץ לנקודה

t.setx(x)

t.sety(y)

t.color("blue") העט של הצבקובע את צבע

t.pensize(3) קובע את עבי העט של הצב

()t.pendown מצייר עט מטה

t.pd()

t.down()

()t.penup לא מצייר עט מעלה

t.pu()

t.up()

קביעת צבע)צבע(

התחלה מלוי צורה בצבע

סיום מלוי צורה בצבע

t.fillcolor(colorstring)

t.begin_fill()

t.end_fill()

t.circle(radius) שרטוט מעגל)רדיוס(

(intמהירות התזוזה של הצב )

מהיר ביותר – 0 •

מהיר – 10 •

רגיל – 6 •

איטי - 3 •

מאוד איטי - 1 •

t.speed(speed)

שינוי צורת ראש הצב)צורה(

“arrow”, “turtle”, “circle”, “square”,

“triangle”, “classic”

t.shape("turtle")

Page 20: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

20

תרגילים מיקום הצב על המסך

(tלפניכם תכנית המציירת משולש במרכז המסך. )צב בשם .1

import turtle # allows us to use the turtles library

wn = turtle.Screen()

wn.title("Turtale - t")

t = turtle.Turtle()

t.forward(100)

t.lt(120)

t.forward(100)

t.lt(120)

t.forward(100)

turtle.mainloop() # keep output window open

Runלהרצת התכנית, בחרו בשורות הפקודות בכפתור

עם שם הקובץ. runבחרו בחץ הירוק ובשורה

בעזרת הפקודות הבאות, הזיזו את ציור המשולש לפינה הימנית העליונה של המסך. .2

t.pendown() # עט מטה צייר

t.penup() # עט מעלה הפסק לצייר

t.goto(x, y)

t.setpos(x,y)

t.setx(x)

t.sety(y)

.2שנו את צבע העט לכחול, ואת עובי הקו ל

t.color("blue")

t.pensize(2)

ממדי מסך הפלט:

ציר אופקי xציר

הנקודה השמאליות ביותר על המסך. -460•

+ הנקודה הימנית ביותר על המסך.460•

ציר אנכי yציר

הנקודה התחתונה ביותר על המסך -390•

העליונה ביותר על המסך.+ הנקודה 390•

Page 21: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

21

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

begin_fill() , ובסוף פקודה להפסקת המילויend_fill().

t.begin_fill()

t.forward(100)

t.lt(120)

t.forward(100)

t.lt(120)

t.forward(100)

t.end_fill()

ציור עיגול: .4

.circle(radius)הפקודה לציור עיגול

הריצו את הפקודה ובדקו את התוצאה.

t.circle(50)

עיגול על המסך כאשר הרדיוס יתקבל הקלט מהמשתמש.נסו לצייר

קבלו את רדיוס העיגול כמשתנה מהמשתמש ע"י פקודת

num = int(raw_input("Enter radius"))

circleהשמו את המשתנה לפקודת

t.circle(num)

הריצו את הפקודה ובדקו.

ניתן למלא את שרטוט העיגול:

num = int(raw_input("Enter radius"))

tess.fillcolor("red")

tess.begin_fill()

tess.circle(num)

tess.end_fill()

ניתן לשנות את צורה הסמן, בדקו את הפקודה הבאה: .5

t.shape("turtle")

שרטטו ריבוע שערך הצלע שלו יתקבל מהמשתמש.

למינוס ושרטטו שוב. numלאחר הציור הפכו את הערך של

?קיבלתםמה

Page 22: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

22

, מה התוצאה?-90 –שנו את הערך של הפנייה ל

נסו לשרטט עם הצב ציור בו יש עיגולים, מרובעים ומשולשים בגדלים שונים שיתקבלו כקלט ע"י .6

המשתמש.

מלאו את הצורות, או חלקן

נסו לשרטט סמיילי .7

בדקו את הפקודה הבאה

tess.circle(120, 180) # draw a semicircle

Page 23: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

23

משתנים וצב

printהפקודה להדפסה היא

raw_inputהפקודה לקליטת נתון מהמשתמש למשתנה היא:

, מציגה את המידע למסך בשורה נפרדת. printכל פקודת

את הטקסט , פקודה המדפיסה מחרוזת

המופיע בתוך ה"מרכאות"print "text"

print 10 פקודה המדפיסה מספר

print num פקודה המדפיסה משתנה

print n1+n2 פעולה המדפיסה את תוצאת החישוב.

פקודה המדפיסה למסך מחרוזת טקסט

ומשתנה באותה השורהprint "text", num

numמספר שלם למשתנה קליטת num = int(raw_input("Enter

number: "))

n1מספר ממשי למשתנה קליטת n1 = flooat(raw_input

("Enter number: "))

nameמחרוזת למשתנה קליטת name = str(raw_input("Enter

your name: "))

לצורך המרה של טיפוס משתנה )כותבים את הטיפוס אותו רוצים( בסוגריים לפני המשתנה.

num = 12.1

num = int(num)

ממספר ממשי למספר שלם. numשל יפוסשינינו את הט

הערך שהיה אחרי הנקודה נמחק.

תרגילים:

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

ומציגה כפלט את ממוצע הציונים.

איזה טיפוס משתנים אתם צריכים כדי לקבל תוצאת חישוב מדויקת.והסבירו חשבו

Page 24: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

24

על התוכנית לחשב לכמה ח. תכנית שתקלוט את מספר התלמידים שלומדים בכיתה כתבו .2

לכמהתלמידים, על התוכנית לחשב 4קבוצות ניתן לחלק את הכיתה אם ידוע שבכל קבוצה יש

תלמידים אין קבוצה.

. ומחיר מוצר בדולרים$ -המקבלת כקלט את שער ה כנית תכתבו .3

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

.( 1.17)הכפלת המחיר בשקלים ב מע"מ. 17%ואת המחיר הסופי לאחר הוספת

כתבו תכנית המקבלת שני מספרים שלמים. פלט התכנית יציג את סכום המספרים ומכפלתם. .4

בדקו מה עושה האופרטור **

print num ** 2

הציגו את סכום ריבוע המספרים.

כתבו תכנית המקבלת מספר דו ספרתי. פלט התכנית יציג מספר חדש אשר הספרות שלו .5

הפוכות ובשורה נפרדת את סכום ספרות המספר.

נקבל את הפלט: 23לדוגמה עבור הקלט

32

5

מקבץ פקודות של הצב:

פקודה הסבר

t.color("blue") קובע את צבע העט של הצב

t.pensize(3) של הצב קובע את עבי העט

()t.pendown מצייר עט מטה

t.pd()

t.down()

()t.penup לא מצייר עט מעלה

t.pu()

t.up()

קביעת צבע)צבע(

התחלה מלוי צורה בצבע

סיום מלוי צורה בצבע

t.fillcolor(colorstring)

t.begin_fill()

t.end_fill()

t.circle(radius) שרטוט מעגל)רדיוס(

Page 25: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

25

פיקסלים 75תכנית לציור קו באורך -דוגמה

import turtle # allows us to use the turtles library

tw = turtle.Screen() # creates a graphics window

ella = turtle.Turtle() # create a turtle named ella

ella.color("blue") # set pen color

ella.pensize(3) # set pen size

ella.forward(75)

turtle.mainloop() # prevent the window from closing

כתבו תכנית המקבלת כקלט את אורך צלע של ריבוע. .6

הריבועושטח פלט התכנית יציג את היקף

בנוסף הצב שלנו ישרטט את הריבוע.

-90 –ל 90 –שנו את ערך הסיבוב של הצב מ

לאיזה כיוון פנה הצב?

שרטטו את הצורה הבאה:

מה עלינו לשנות בתכנית כדי לקבל את הצורה הבאה?

Page 26: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

26

מחרוזות

השמה של משתנים:

ניתן לעשות השמה מרובה של משתנים בפקודה אחת:

(strתווים ) ומחרוזת( float) (, מספר ממשיintמספר שלם )

n1, n2, n3 = 10, 10.0, "10"

print "n1", n1, type(n1)

print "n2", n1, type(n2)

print "n3", n3, type(n3)

Output –הדפסת משתנים

עם משתנים ולקבל הודעה שלמה ומסודרת. בפקודת הדפסה ניתן לשלב מחרוזות טקסט יחד

concatenate -שרשור שילוב של טקסט עם משתנים נקרא

name, score = "Monty", 20

print "Total score for", name, "is:", score

input –קליטת נתונים למשתנה

קבלת ערכים לתכנית על ידי המשתמש.

. משתנהל לתוך הערך מתקב

raw_inputהפקודה לקליטת ערך למשתנה היא:

לפני קבלת הערך יש )"להציג הודעה למשתמש"( מה להקליד.

המשתנה. טיפוסלפני קבלת הערך יש להצהיר לפייטון על

name = raw_input ("What's your name? ")

score = int( raw_input ("What is your score?"))

num = float( raw_input ("Enter number?"))

מחרוזות.שימוש חזקה מאוד ב Pythonתכנת

.0מיקום משלה והאות הראשונה נמצאת תמיד במקום סימן )כולל רווחים( /במחרוזת לכל אות

7 6 5 4 3 2 1 0

y a D d o o G

ניתן להדפיס מחרוזות או חלקי מחרוזת.

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

n1 10 <type 'int'>

n2 10 <type 'float'>

n3 10 <type 'str'>

Page 27: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

27

תרגילים מחרוזות

נתונים המשתנים הבאים:

s1 = "abcdefgh"

s2 = "0123456"

הריצו את הפקודות הבאות ובדקו מהו הפלט: .1

s1 = "abcdefgh"

s2 = "0123456"

print "Happy :-)" + "day"

print "Happy :-)" * 2

print "Happy :-)"[4]

print s1

print s1[3]

print s1[1:5]

print s2[:3]

print s2[3:]

print s1+s2

print s1*3

print (s1+" " )*3

print len(s1)

print s2[-1]

print s2[: : -1]

print s1[: : 2]

s3 = s1*2

print len(s3)

]מיקום[שם_מחרוזת

]קפיצות : סוף : התחלה[שם_מחרוזת

מציגה את המחרוזת הפוך

מציגה את התו האחרון במחרוזת

string_name[index in string]

string_name [begin : end : jump]

string_name [: : -1]

string_name [-1]

Page 28: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

28

תווים. 8, גודל המחרוזת צריך להיות לפחות stכתבו תכנית הקולטת מחרוזת למשתנה .2

הדפיסו את המחרוזת פעמיים •

במחרוזת ראשוןה התו את יסוהדפ •

במחרוזת שניה התו את יסוהדפ •

, התו הרביעי הוא כל התווים החל מהתו הרביעי עד הסוף )שימו לב את יסוהדפ •

( 3במיקום

7עד 2כל התווים בטווח את יסוהדפ •

הדפיסו רק את התווים במיקום הזוגי •

זוגי-הדפיסו רק את התווים במיקום האי •

הדפיסו את המחרוזת מהסוף להתחלה. •

של מספרים. כתבו תכנית המקבלת שתי מחרוזות .3

חברו את המחרוזת והדפיסו את התוצאה.

הציגו את אורך המחרוזת.

המירו את המחרוזת למספרים שלמים והציגו את תוצאת החיבור של המחרוזת לאחר המרת

המשתנים.

אותיות( 4בעל לפחות כתבו תכנית המקבלת שם ) .4

התכנית תציג למסך את השם.

את השם הפוך.

ואת השלישית מהסוף. ( 2תחלה )אינדקס מהה את האות השלישית

5. ASCII :ראשי תיבות של(American Standard Code for Information Interchange הוא )

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

)ויקיפדיה( מחשב.

האותיות מיוצגות במחשב במספרים.

ascii 65מציגה למסך את האות המיוצגת על ידי המספר chr(65)הפקודה

של האות. ascii –תציג למחשב את מספר ה ord("A")הפקודה

print chr(65)

print ord("A")

הריצו את התכנית הבאה ובדקו את התוצאה:

l = raw_input("Enter Big letter:")

L = ord(l)

L = L+32

print chr(L)

print chr(ord(l)+32)

Page 29: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

29

כתבו תכנית המקבלת אות "קטנה" וממירה אותה לאות "גדולה" .6

בחרו בשיטה ה"ארוכה" או הקצרה מה שנוח לכם.

Page 30: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

30

תנאים

מבנה פקודת תנאי:

if משפט תנאי:

הוראות לביצוע אם התנאי אמת

else:

הוראות לביצוע אם התנאי שקר

שני מספרים: בדיקת שיוון בין

n1 = 10

n2 = 20

if n1 == n2:

print "="

else:

print "!="

האם מספר הוא שלילי או חיובי?

num = int (raw_input ("enter num"))

if num > 0:

print "+"

elif num < 0:

print "-"

else:

print"0"

תרגילים ותנאים

זוגי. המספר שנקלט הוא רק אם "good"כתבו תכנית הקולטת מספר ומדפיסה הודעה .1

האם התוכנה רושמת הודעה תלמיד בבחינה במדעי המחשב של תבו תכנית הקולטת ציון כ .2

ר, או נכשל.הציון עוב

.59הערה: ציון עובר הוא מעל

אפס הוא לא מספר חיוב ולא שלילי.

בתנאי הזה אנחנו צריכים לבדוק האם מספר גדול

elifמאפס, קטן מאפס או שווה לאפס. פקודת

אפשרויות של אחרת מאפשרת לנו לבדוק כמה

)ואם לא...(.

Page 31: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

31

, והודעה נית הקולטת שני מספרים למשתנים ומדפיסה את המספר הגדול יותרככתבו ת .3

מתאימה אם המספרים שווים.

ילדים או ילדות ומציגה אותם בסדר מילוני. כתבו תכנית המקבלת שמות של שני .4

כתבו תכנית המקבלת כקלט את שנת הלידה של המשתמש ואת השנה הנוכחית. התוכנית תציג .5

כקלט את הגיל של המשתמש, והאם יכול להצביע בבחירות לכנסת. גיל ההצבעה לכנסת הוא

.18מגיל

נותרו למשתמש עד שיוכל , על התכנית להציג כמה שנים 18המשתמש מתחת לגיל אם

להצביע.

כת הוא מילה, מספר, משפט או כל רצף סמלים אחר שניתן לקרוא .6 ה מתהפ לינדרום או מל פ

.משני הכיוונים, משמאל לימין ומימין לשמאל, באופן זהה

(. פלינדרום)ויקיפדיה,

או אבא. 121למשל

נדרום ומדפיסה הודעה יובודקת האם הוא פלספרות 3כתבו תכנית הקולטת מספר בין .א

מתאימה.

ומדפיסה פלינדרום אותיות ובודקת האם היא 3הוסיפו לתכנית קליטה של מילה בת .ב

הודעה מתאימה.

תזכורת פקודות צב

פקודה הסבר

import turtle ייבוא ספריה

()tw tw = turtle.Screenפתיחת חלון בשם

()t t = turtle.Turtleיציר צב בשם

()tw.mainloop פקודה המונעת את סגירת החלון

t.forward(distance) זוז קדימה)צעדים(

t.back(distance) זוז אחורה)צעדים(

t.bk(distance)

t.back(distance)

t.right(angle) פנה ימינה)זווית(

t.rt(angle)

t.left(angle) פנה שמאלה)זווית(

t.lt(angle)

Page 32: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

32

t.setpos(x,y) על המסך. y –ו xקפיצה לנקודה

t.goto(x,y)

על המסך xקפוץ לנקודה

על המסך yקפוץ לנקודה

t.setx(x)

t.sety(y)

t.color("blue") קובע את צבע העט של הצב

t.pensize(3) קובע את עבי העט של הצב

()t.pendown מצייר עט מטה

t.pd()

t.down()

()t.penup לא מצייר עט מעלה

t.pu()

t.up()

t.circle(radius) שרטוט מעגל)רדיוס(

כתבו תכנית תנאי המשלב את הצב. .7

התכנית תקבל כקלט מספר, אם המספר מתחלק בשלוש ללא שארית היא תשרטט מעגל

שהתקבל.( שהרדיוס שלו הוא המספר purpleבצבע סגול )

(שאורכו כאורך המספר שהתקבל.blueאחרת תשרטט התכנית קו כחול )

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

מחרוזת היא אוסף של תווים הנמצאים במרכאות.

string1 = "Happy Day"

string2 = 'Good year'

Page 33: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

33

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

)אפס(. 0נמצאת במיקום Hהאות הראשונה במחרוזת "Happy Day"לדוגמה המחרוזת

8 7 6 5 4 3 2 1 0 אינדקס

H a p p y D a y תו

פנייה לתו מסוים במחרוזת נעשית על פי המיקום שלו במחרוזת. בעזרת סוגריים מרובעים.

string_name [index]

]מיקום במחרוזת[שם_מחרוזת

name="udi cohen"

, יש print name[2]ונרצה לפנות לתו השלישי בשם נרשום nameאם למחרוזת שלנו קוראים

. 0לזכור שמספרו של התו הראשון הוא

print name[0]נרשום ( u)האות כדי למצוא את האות הראשונה בשם

מיקום תווים במחרוזת הקלידו את ההוראות הבאות ובדקו את התוצאה.

מו מה עושה כל פקודהרש

string1 = "Happy Day"

string2 = 'Good year'

הסבר מה עושה ההוראה פלט הוראה

print string2[5]

print string2[7]

print string2[-1]

print strint2[-3]

print len(strint2)

חיתוך מחרוזות

הסבר מה עושה ההוראה פלט הוראה

print string2[5:7]

print string2[7:5]

print string2[2:-1]

print strint2[3:4]

print strint2[-10:5]

print string1[ : ]

print string1 [3 : ]

Page 34: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

34

print string1[ :3]

print string 1[ : :3]

print string1[-1]

print string1[ : : -1]

print string1[ -3]

print string1[ : : -3]

len(string) מחרוזות ופקודת

מחזירה את אורך המחרוזת )כמה תווים יש במחרוזת( len(string_name)פקודות

string1 = "Happy Day"

string2 = 'Good year'

הריצו את הפקודות הבאות ובדקו מה התוצאה:

print len(string1)

string2כתבו פקודה שתבדוק מהו אורכה של

חיבור וכפל מחרוזות

כתבו את הפקודה הבאה ובדקו מה היא עושה.

string3 = string1+string2

?string3כיצד נבדוק את ערכה של

מה עושה הפעולה?

print string3*3

ומה התוצאה של הפעולה הבאה?

num3 = len(string3)*3

מחרוזותתנאים ותרגילים

כתבו תכנית הקולטת את שמכם ושם המשפחה שלכם ומדפיסה: .1

את המחרוזת,

את המחרוזת בסדר הפוך

כל התווים במיקום הזוגי במחרוזת.

כל התווים במיקום האי זוגי במחרוזת

כמה תווים במחרוזת

אשר אם יש יותר תווים במחרוזת מהתכנית בודקת כתבו תכנית המקבלת מחרוזת ומספר, .2

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

שהמחרוזת לא ארוכה מספיק.

Page 35: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

35

תכנית, שתקלוט שם של מפעל לייצור כלי רכב ומספר שלם המייצג את מספר הגלגלים וכתב .3

של כלי רכב.

."HEAVY־ " יודפס שם המפעל ו 4אם מספר הגלגלים גדול מ־

. - "CAR"יודפס שם המפעל ו 4הגלגלים אם מספר

." TWO־ " יודפס שם המפעל ו 2אם מספר הגלגלים הוא

."ERROR־ " יודפס שם המפעל ו אחראם מספר הגלגלים

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

הם ספרות המספר שהתקבל כקלט בסדר הפוך.

.321, ישתנה למספר 123ספר מ, הלדוגמה

הציגו את המספר החדש בשני דרכים:

בעזרת שארית החלוקה •

בעזרת משחק על מחרוזת.ו •

לפניכם קוד בפייתון המבצע פעולות על מחרוזות: .5

letters = ""

str1 = "AAA"

str2 = "BBB"

letters = 3 * str1 + 2 * str2

print letters

למחרוזת?* –מה מבצעת ה הריצו את פלט התכנית.

האם תוכלו לנחש מה יודפס בקטע התכנית הבא? מדוע? .6str1 = "AAA"

str2 = "BBB"

print (str1 + str2) * (str1 > str2)

print (str1 + str2) * (str1 < str2)

אחת ואת שם המשפחה במחרוזת אחרת. במחרוזתכתבו תכנית המקבלת את השם שלכם .7

האות הראשונה של שמכם שווה לאות הראשונה של שם המשפחה שלכם הדפיסו את השם אם

ואת שם המשפחה באותה השורה

אחרת הדפיסו את שם המשפחה ואת השם הפרטי בשתי שורות

נפרדות.

Page 36: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

36

מורכבעם ביטוי לוגי תנאי

בדיקת שוויון

ביטוי בוליאני הוא ביטוי שערכו יכול להיות "אמת" או "שקר" התשובה לשאלות = > < היא תמיד

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

אמת –התשובה לשאלות תהיה תמיד –ניתן לשאול שאלות מורכבות בעזרת האופרטורים הבאים

או שקר בלבד!

הסבר משמעות הפעולה

and וגם ( הביטוי הבוליאני יהיה אמתtrue אם הערכים של )הביטויים כל

אמתהבוליאניים יהיו

or או ( הביטוי הבוליאני יהיה אמתtrue אם הערכים של )לפחות אחד

אמתהביטויים הבוליאניים יהיו

not את הערך של הביטוי הבוליאני הופך לא

(-10) –וגם גדול מ 10 –האם המספר קטן מ

# -*- coding: utf-8 -*-

num = int (raw_input ("מספר הקלד: ")) # Enter number

if num < 10 and num > (-10):

print " ספרתי"מספר חד # Single digit number. else:

print "מספר לא חד ספרתי" # Not a single digit number.

במספרים

n1 = 10

n2 = 20

if n1 == n2:

print "="

else:

print "!="

במחרוזות

word = 'hi'

if word == 'hi':

print "hi"

else:

print "not hi"

Page 37: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

37

or –ובעזרת הקשר הלוגי או

# -*- coding: utf-8 -*-

num = int (raw_input ("מספר הקלד: "))

if num < -9 or num > 9: print "מספר לא חד ספרתי"

else:

print "מספר חד ספרתי"

.not –הקשר הלוגי לא

number = 1

# See if number is not equal to 2.

if not number == 2:

print("True")

ניתן לכתוב גם כתנאי רגיל.

if number != 2:

print ("True")

תנאי עם ביטוי לוגי מורכבתרגילים

" אחרת הדפיסו All Positiveמספרים, אם שלושתם חיוביים הדפיסו " 3 הקולטת כתבו תכנית .1

"At least one number is not positive "

)התייחסו לאפס כמספר חיובי(.

פרה, אם ספרת האחדות של המספר וגם ספרת יסספרתי ו-ו תכנית הקולטת מספר דוכתב .2

"Not the same" " אחרת הדפסThe Sameהעשרות של המספר שוות לספרה , הדפס "

" אם המשולש OK" ציגו הודעה את אורכי הצלעות של משולש, ה כקלטמקבלת הכתבו תכנית .3

."NOT OK" אחרת הציגו כפלט צלעות שוות( 2שווה שוקיים )לפחות

Page 38: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

38

מופיעה מספר באם ובדקו בשתי דרכים שונות, דו ספרתי מספר כקלטמקבלת הכתבו תכנית .4

פעם אחתלפחות 7הסיפרה

דרך אחת בעזרת חילוק ושארית ודרך שנייה בעזרת פעולה על מחרוזת. -הדרכה

כתבו תכנית הקולטת שני מספרים. התכנית תבדוק מי גדול ממי והאם שווים. פלט התכנית יציג .5

את המספרים בסדר עולה.

אם המספרים שווים התוכנית תדפיס הודעה מתאימה.

( , התכנית תציג בהודעה אם האותיות abc –)מה קטנות אותיות 3כתבו תכנית שהקלט שלה .6

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

"abc" –כתבו תכנית הקולטת תו ובודקת האם הוא באותיות ה .7

"small letter"יוצג למסך כפלט a-zאם הוא באתיות

"big letter"יוצג למסך כפלט A-Zאם הוא באתיות

."not a letter"אחרת יוצג כפלט

חזרה משתנים ותנאים

תלמידים. 2בכיתה י' נערך חידון נושא פרסים. לשלב הגמר הגיעו .1

פתח ויישם אלגוריתם שהקלט שלו שמות של שני תלמידים שהגיעו לגמר ואת סך הנקודות שכל

אחד מהם צבר.

מי מהם זכה בפרס )אם לשניהם אותו מספר נקודות, הדפס הודעה מתאימה(. –הפלט יהיה

Page 39: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

39

לפניכם קטע התכנית הבא: .2

מהו פלט התוכנית?

כתבו מהו הפלט לשתי אפשרויות של קלטים שונים.

a = int(raw_input("?????"))

b = int(raw_input("?????"))

s = 0

if a > b:

s = a * 2

print "{0} {1} {2}", s, a, b

נתונה התכנית: .3

כתבו מהו הפלט התוכנית לשתי אפשריות של קלטים שונים.

num1 = int(raw_input("?????"))

num2 = int(raw_input("?????"))

s = 0

if num1 > num2 and num1 > 0:

num3 = num1

num1 = num2

num2 = num3

print "****", num1, num2, "#"*4

.כתבו תכנית שהקלט שלו שלושה מספרים שלמים והפלט שלו הגדול מבניהם .4 ** קלט התכנית הוא מספרים שונים.

Page 40: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

40

80 –ל 50בשטח עירוני המהירות המותרת למכונית פרטית הוא בין .5

קמ"ש.

ומציגה כתבו תכנית המקבלת כקלט את מהירות הנסיעה של מכונית

כפלט האם המהירות היא תקינה.

התכנית יציג האם המהירות היא מעל פלט אם המהירות אינה תקינה

המהירות המותרת או מתחת למהירות המותרת.

אם ספרת האחדות זהה לספרת YESמספר שלם והפלט שלו שלהתכנית שהקלט כתבו .6

אם אינה זהה. NO - העשרות ו

גדול מאורך הצלע שתיים כלסכום אורכיהן של אורכי שלוש צלעות יכולות להוות משולש אם .7

השלישית.

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

יכולות להוות משולש או לא.

מחרוזת.כתבו תכנית המקבלת כקלט את .8

אם האות הראשונה שווה לאות האחרונה במחרוזת והאות שנייה המחרוזת שווה לאות לפני

האחרונה הציגו למסך את המחרוזת בסדר הפוך.

אחרת הציגו למסך רק האותיות שבמיקום הזוגי במחרוזת.

מכפלת שניים אם " trueמים ומדפיס "פתח ויישם אלגוריתם המקבל כקלט שלושה מספרים של .9

" אם לא. falseו" 100א ימבין המספרים ה

הצב יצייר עיגול אדום 100הרחיבו את התכנית כך שאם מכפלת שניים מהמספרים היא

פיקסלים. 200, אחרת יצייר ריבוע כחול באורך 100ברדיוס

תזכורת לעבודה עם הצב

import turtle # יבוא ספרייה

wn = turtle.Screen() # יצירת חלון פלט

t = turtle.Turtle() # t יצירת צב בשם

t.forward(150) # צעדים 150תזוזה קדימה של הצב

t.lt(90) # 900 פניה שמאלה

t.pencolor("blue") # ציור בצבע כחול

t.circle(70) # צעדים 70ציור עיגול רדיוס

turtle.mainloop() # בלחיצת עכברסגירת חלון פלט

Page 41: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

41

ביצוע חוזר –לולאות

forלולאת

מקבץ פקודות של הצב:

פקודה הסבר

import turtle ייבוא ספריה

()tw tw = turtle.Screenפתיחת חלון בשם

()t t = turtle.Turtleיציר צב בשם

()turtle.mainloop פקודה המונעת את סגירת החלון

t.forward(distance) קדימה)צעדים(זוז

t.back(distance) זוז אחורה)צעדים(

t.bk(distance)

t.back(distance)

t.right(angle) פנה ימינה)זווית(

t.rt(angle)

t.left(angle) פנה שמאלה)זווית(

t.lt(angle)

t.setpos(x,y) על המסך. y –ו xקפיצה לנקודה

t.goto(x,y)

על המסך xקפוץ לנקודה

על המסך yקפוץ לנקודה

t.setx(x)

t.sety(y)

t.color("blue") קובע את צבע העט של הצב

t.pensize(3) קובע את עבי העט של הצב

()t.pendown מצייר עט מטה

t.pd()

t.down()

()t.penup לא מצייר עט מעלה

t.pu()

t.up()

t.circle(radius) שרטוט מעגל)רדיוס(

Page 42: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

42

נתונה התכנית המציירת ריבוע:

import turtle

wn = turtle.Screen() # Open output window

wn.title("Hello, Tess!") # Set the window title

tess = turtle.Turtle() # Create "tess"

tess.color("red") # Tell tess to change her

color

tess.pensize(3) # Tell tess to set her pen

width

tess.forward(100)

tess.lt(90)

tess.forward(100)

tess.lt(90)

tess.forward(100)

tess.lt(90)

tess.forward(100)

tess.lt(90)

turtle.mainloop()

.forקצרו את התכנית בעזרת לולאת .1

for num in xrange(4)

tess.forward(100)

tess.lt(90)

for מילה שמורה בשפה לפקודה של לולאה החוזרת על עצמה

num = משתנה המציג מונה הלולאה

in xrange = בטווח

(4) מספר הפעמים שהלולאה תתבצע. =

ניתן לשרטט עם הצב מדרגה .2

tess.lt(90)

tess.forward(50)

tess.rt(90)

tess.forward(50)

מדרגות 4שרטטו עם הצב

Page 43: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

43

כתבו תכנית המקבלת כקלט מספר צלעות למצולע ומשרטטת את המצולע. .3

(numהמשתנה שקיבלנו כקלט ) =לולאת החזור

(num / 360)זווית הפנייה =

:סיכום כל המספרים שבטווח המספריםלולאת צובר,

n1 = 1

n2 = 10

sum = 0

for num in xrange (n1, n2+1):

print num

sum = sum + num

print “”

print “sum = “, sum

לולאה על מחרוזת

name = raw_input("Enter name: ")

for letter in name:

print letter

.5עד 0לפניכם תכנית המדפיסה את המספרים מ .4

for n in xrange(6):

print n,

.10עד 0שנו את התכנית שתציג למסך את כל המספרים מ

7עד 1 –לפניכם תכנית המדפיסה את כל המספרים מ .5

for n in xrange(1, 8):

print n,

עד המספר. -5 –כתבו תכנית המקבלת מספר שלם ומדפיסה את כל המספרים מ

2בקפיצות של 8עד 0 –לפניכם תכנית המדפיסה את כל המספרים מ .6

for n in xrange(1, 9, 2):

print n,

.200עד 100 -מ 5 –צרו תכנית המדפיסה את כל המספרים המתחלקים ב

Page 44: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

44

בשורה אחת. 20עד 1 –את כל הספרים מ כתבו תכנית מציגה .7

20עד 1-את כל המספרים מ הוסיפו לתכנית הוראה המדפיסה למסך

. 2-המתחלקים ב

3 –את כל המספרים המתחלקים ב השלישית בשורה

.4 –את כל המספרים המתחלקים ב הרביעיתובשורה

סכום טור חשבוני. .8

עד -1את סכום כל המספרים מ ית המקבלת כקלט מספר שלם חיובי ומציגה כפלט כתבו תכנ

למספר שהתקבל כקלט.

.sum = 0לצורך ביצוע התכנית יש לקבוע משתנה שיקבל את סכום המספרים ולאפס אותו •

בתוך הלולאה יש לסכום את המונה של הלולאה •

numבדוגמה מונה הלולאה =

sum = sum + num

מספרים ומדפיסה את הממוצע שלהם. 10כתבו תכנית המקבלת .9 המשתנים:

sumהמשתנים 10 –צובר ל •

numמספר המייצג את הקלט •

פעמים: 10צרו לולאה לביצוע חוזר של numקלטו מספר ל

sum += numהוסיפו אותו לצובר

והדפיסו אותו למסך. sum/10בסיום הלולאה חשבו את הממוצע

96 –ל 3יש בין המספרים 3כמה מספרים המתחלקים ב .10

שלבים:

.96 –ל 3המספרים בין כתבו תכנית המציגה את

לפני הלולאה 3 –הוספו משתנה שימנה את המספר המספרים המתחלקים ב

.1 –בכל סיבוב של הלולאה העלו את המונה ב

. הציגו מחוץ ללולאה את המונה

במחרוזת פעמייםהמופיע למסך כל תו כפלט כתבו תכנית המקבלת כקלט מחרוזת ומציגה .11

בדיוק.

Page 45: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

45

כתבו תכנית המקבלת מחרוזת של אותיות ומציגה למסך כמה מילים במחרוזת. הכלל הוא שבין .12

מילה למילה יש רווח אחד.

.1ים + ח, כמות המילים היא תמיד כמות הרוושימו לב

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

תמנה כמה (' ')string string_name.countהפעולה על המחרוזת ב.

רווחים במחרוזת.

בעזרת הפעולה countלמשתנה נסו לקצר את התכנית ולמנות את הרווחים

count = string_name.count(' ')

. הוסיפו ללא שארית 5-המתחלקים ב רתייםפס-תלתהכל המספרים את כתבו תכנית המדפיסה .13

התכנית.משתנה שישמש צובר, סכמו את סכומם והציגו את הסכום בסוף

כתבו תכנית המקבלת מחרוזת ובודקת האם יש במחרוזת את הסימן "#". .14

התוכנית תדפיס כפלט את הסימן חמש פעמים. אחרת תכתוב '#'אם יש במחרוזת הסימן

."no # in string"הודעה

שיקבל בתחילת התוכנית את flag -לצורך הצגה של ההודעה רק פעם אחת ניצור משתנה דגל

.0הערך

.1 -ישונה ל flag–ללולאה נוסיף תנאי שאם יש את הסימן סולמית הערך של ה

ובהתאם לתנאי נציג את ההודעה. flag = 1בסוף הלולאה נבדוק האם

פעם אחת, לא בתחילת המחרוזת של @כתובת דוא"ל חוקית הי כתובת שיש בה את הסימן .15

הכתובת ולא בסופה.

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

. Notאחרת OKאם סימן הכרוכית מופיע פעם אחת תוצג הודעה

הרחיבו את התכנית ובדקו אם יש במחרוזת רווחים. אם יש רווחים בין האותיות המחרוזת ב.

אינה חוקית כתובת דוא"ל.

נמצא במקום הראשון או האחרון @ -ג. הוסיפו בדיקה של האם סימן ה

במחרוזת. אם הוא במקום הראשון או האחרון הכתובת אינה חוקית.

Page 46: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

46

whileלולאת –ביצוע חוזר מותנה

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

.ifהוראת

num = 0

while num < 10:

print num ,

num +=1

. 9הלולאה תדפיס את כל המספרים עד שנגיע למספר

התנאי לא יתקיים ותסתיים הלולאה. num =10כאשר

.helloהמקבלת כקלט מחרוזת. התכנית מסתיימת כאשר מוקלדת המילה whileלולאת

n = raw_input("Please enter 'hello': ")

while n != 'hello':

n = raw_input("Please enter 'hello':")

print "end"

whileתרגול

כתבו תכנית המקבלת מספר כקלט ומדפיסה את כל המספרים מהמספר עד לאפס. .1

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

ומדפיסה את כל המספרים מאפס עד למספר.כתבו תכנית המקבלת מספר שלם כקלט .2

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

כתבו תכנית המבקשת באופן מחזורי מספר חיובי הגדול מאפס. .3

כאשר מתקבל המספר אפס או מספר שלילי )הלולאה תיעצר(,

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

כתבו תכנית המבקשת מחרוזת, ומדפיסה אותה מהסוף להתחלה. הוסיפו לולאה שתתבצע זאת .4

" .stopשוב ושוב כל עוד לא הוכנסה המילה "

Page 47: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

47

( נותנת את מכפלת כל ! סימן קריאהעזרת במתמטיקה, פעולת עצרת של מספר )מסומנת ב .5

ועד למספר עצמו. 1-המספרים מ

24= 4*3*2*1! = 4לדוגמה:

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

(while –ו forלפתור בשתי הלולאות שלמדנו

שלבים לביצוע התכנית:

קלט מספר שלם •

משתנה המייצג את מכפלת המספרים •

1משתנה המייצג מונה )את המספר ברצף המספרים אותו נכפיל( = •

הבודקת אם הגענו למספר הסופי whileלולאת •

נכפיל את המספר ברצף עם המספרים האחרים •

1 –נעלה את המונה ב •

נציג את תוצאת הכפל •

num = int (raw_input('Enter positive number: '))

factorial = 1

count = 1

while count <= num:

factorial *= count

count +=1

print num, "! =", factorial

כתבו תכנית המקבלת כקלט גבהים של תלמידים עד לקליטת מספר שלילי. .6

מ'. 1.65 –א. התכנית תמנה כמה תלמידים גבוהים מ

ב. התכנית תחשב את ממוצע גובה התלמידים.

מ'. 1.65 –בסיום הלולאה תציג התכנית את ממוצע גובה התלמידים וכמה תלמידים גבוהים מ

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

את נתוני הקלט הבאים. ובתוך הלולאה

החברה ולכל חבילה מחיר שונה., חבילות שונות שתיבחברת טלפונים סלולריים מציעים .7

מציעה:

.0חבילה בסיסית שהקוד שלה הוא

.1שהוק דלה הוא חבילה מורחבת

כל לקוח בוחר אחת מן החבילות כרצונו.

המחיר הוא מספר שלם., כתבו תכנית שתקלוט לכל אחת מן החבילות את מחירה

, ונציג שמו ומחיר לכל לקוח את שמו ואת קוד התכנית שבחרבמהלך התכנית נקבל כקלט

החבילה.

.תלקוח 10התכנית תסתיים כאשר באחת החבילות בחרו סך הכול

Page 48: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

48

פונקציות –פעולות

פעולות שאינן מחזירות ערך

פקודה המאפשרת לכתוב עברית בפייתון.

זו בראש הקובץפקודה כתבו

# -*- coding: utf-8 -*-

בדף עבודה זה נכתוב את כל התרגילים בדף אחד.

כל תרגיל הוא פעולה נפרדת.

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

מבנה הקובץ:

def function_name1():

פעולות לביצוע

def function_name2(variable):

פעולות לביצוע

# main program

function_name1()

function_name2(variable)

הגדרת פונקציה

def שם_הפונקציה():

הסבר מה עושה הפונקציה #

tab פקודות הפונקציה מוזחות בעזרת

פעולות תרגילים

דע החוזר בכל עמוד ועמוד של הספר.יספר קיים מ מדפיסים כאשר .1

נתונה הפונקציה הבאה, המדפיסה שם של סופרת

Page 49: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

49

def print_author():

print " הסופרת: שם ",

print "דבורה עומר"

כתבו זימון לפועלה והריצו

# Main program

print_author()

פונקציה חדשה שתאפשר לשנות את שם הסופר.כתבו .2

ם הסופר כפרמטר.את שפונקציה המקבלת

def print_author(name):

print" :שם הסופרת",

print name

כפרמטר.את שם הסופר )מחרוזת( זימון לפונקציה, המעבירה

name = "גלילה רון פדר"

print_author(name)

שם הסופרת קבוע, לא ניתן לזמן את הפונקציה כאשר הפרמטר המועבר אליה הוא קבוע

משתנה.

print_author("גלילה רון פדר")

המקבלת שני פרמטרים, שם הסופר ושם הספר.כתבו פעולה חדשה .3

def print_header(author, book):

print author, book

זימון לפועלה והריצו.הראשית את ה הוסיפו לתכניתהעתיקו את הפונקציה,

author = "סמדר שיר"

book = "גאליס"

print_header(author, book)

Page 50: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

50

?לא נכוןאו נכוןביניים האם סיכום .4

אם אינכם בטוחים בתשובה.. כתבו קוד והריצו לבדיקה...

▪ def - נכון/ לא נכון המילה השמורה בשפה, המצביעה על כך שאנו מגדירים פונקציה

נכון/לא נכון שם הפונקציה חייב להתחיל באות גדולה. ▪

נכון/לא נכון בכותרת הפונקציה יש לרשום מרכאות "" ▪

נכון/לא נכון פונקציה חייבת לקבל ערך כפרמטר ▪

נכון / לא נכון הטקסט(.הוראות הפונקציה נכתבות בהזחה )כניסה של ▪

נכון / לא נכון בסוף כותרת הפונקציה יש לרשום נקודתיים: ▪

נכון / לא בסוף שם הפונקציה חייבים לכתוב סוגריים)( שבתוכם ערך או ללא ערך. ▪

נכון

נכון / לא נכון פונקציה מקבלת הוא מוגבל.המספר הפרמטרים ש ▪

נכון / לא נכון מותר לכתוב שתי פונקציות עם אותו השם. ▪

נכון / לא נכון מותר לזמן פונקציה לפני שהגדרנו אותה. ▪

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

נכון / לא נכון

נכון / לא סדר כמו בזימון שלה.הבאותו להיות המשתנים בכותרת הפונקציה חייבים ▪

נכון

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

לקרוא עד לסוף הספר.

זמנו את הפעולה והריצו.

כתבו פעולה המקבלת את שם הספר, שם המחבר ומספר העמוד. .6

הפעולה מחברת את שתי המחרוזות למחרוזת אחת ומדפיסה את שם הסופר ושם הסופר

ספת. בשורה אחת ואת העמוד בשורה נו

אם מספר העמוד זוגי על יד מספר העמוד יודפס הסימן "*",

אחרת יודפס הסימן "^".

שנו את הפעולה כך ששם הספר ושם הסופר מתקבל כקלט מהמשתמש בתוך הפעולה. .7

כתבו פעולה המקבלת שם של ספר וסופר. הפעולה מדפיסה את .8

הראשונות האות הראשונה והאחרונה בשם הספר, ושתי האותיות

והאחרונות בשם הסופר.

Page 51: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

51

המחזירה ערכיםפעולה

בדף עבודה זה נכתוב את כל התרגילים בדף אחד, כאשר כל תרגיל הוא פעולה נפרדת.

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

מבנה הקובץ:

def function_name1():

פעולות לביצוע

return

def function_name2(variable):

פעולות לביצוע

return

# Main

function_name1()

function_name2(variable)

הגדרת פונקציה

def שם_הפונקציה():

הסבר מה עושה הפונקציה #

tab פקודות הפונקציה מוזחות בעזרת

return

נתונה הפונקציה הבאה: .1def both_ends(s):

if len(s) < 2:

return ''

first2 = s[0:2]

last2 = s[-2:]

return first2 + last2

Page 52: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

52

מונים הבאים: ימה יודפס עבור כל אחד מהזרשמו ) לפני הרצה( א.

# Main

print both_ends('spring')

print both_ends('Hello')

print both_ends('a')

print both_ends('xyz')

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

נתונה הפונקציה הבאה: .2

מחליפה ערכים של תווים במחרוזת ()replaceהפונקציה

fixed_backמאחר ולא ניתן לשנות ערכים של מחרוזת קיימת ניצור מחרוזת חדשה

def fix_start(s):

front = s[0]

back = s[1:]

fixed_back = back.replace(front, '*')

return front + fixed_back

מונים הבאים: ימה יודפס עבור כל אחד מהזא.

print fix_start('babble')

print fix_start('aardvark')

print fix_start('google')

print fix_start('donut')

מה מבצע קוד הפעולה?

כתבו תכנית המקבלת מחרוזת תווים. .3

בסופה. ingתווים היא תקבל תוספת 3 –אם המחרוזת שווה או גדולה מ

בסופה. lyהיא תקבל תוספת של ing –אם המחרוזת מסתיימת ב

תווים היא תוחזר כפי שהיא. 3 –אם המחרוזת קטנה מ

Page 53: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

53

קטנה מארבע תווים היא כתבו פעולה המקבלת מחרוזת ובודקת את אורכה. אם המחרוזת .4

מחזורה את אותה מחרוזת אחרת יוצרת מחרוזת חדשה המכילה רק את שני התווים הראשונים

של אותה מחרוזת ומחזירה אותה.

שנו את התכנית כך שתחזיר את שני התווים האחרונים.

היא תחזור את שני התווים הראשונים 4 –הרחיבו את התכנית שאם אורך המחזורת קטן מ

שני התווים האחרונים.ו

ניתן להחזיר רק ערך אחד )ניתן לחבר שתי מחרוזות לאחת( , זכרו

תווים היא 4כתבו פעולה המקבלת מחרוזת, בודקת את אורכה. אם אורך המחרוזת גדול מ .5

תחזיר מחרוזת חדשה בה יוחלפו שתי האותיות הראשונות עם שתי האותיות האחרונות.

מחרוזת.אחרת תחזיר אותה

וסוף שני תווים )ללא התחלה וסוף( תווים, אמצע 2מחרוזות )התחלה 3, יש ליצור שימו לב

ולחבר את שלושת המחרוזות למחרוזת אחת(

Page 54: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

54

צב ו ...

מחרוזות בפייתון

חזקה מאוד במחרוזות. Pythonתכנת

.0 במחרוזת לכל אות מיקום משלה והאות הראשונה נמצאת תמיד במקום

7 6 5 4 3 2 1 0

y a D d o o G

ניתן להדפיס מחרוזות או חלקי מחרוזת.

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

Good Day

o

Good

d Day

Good Day

Go a

yaD dooG

str = "Good Day"

print str

print str [1]

print str [ : 4]

print str [3 : ]

print str [ : ]

print str [ : : 2]

print str [ : : -1]

]מיקום[שם_מחרוזת

]קפיצות : סוף : התחלה[שם_מחרוזת

string_name[index in string]

string_name [begin : end : jump]

הוראה מבנה

"str = "Good Day <<< הדפסת מחרוזת מלאה

>>> print str

Good Day

הדפסת אות אחת במחרוזת

אות שנייה – 1מיקום אינדקס

>>> print str[1]

o

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

ארבע אותיות לא כולל 4עד אינדקס

>>> print str[0 : 4]

Good

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

עד אות אחרונה.

>>> print str [ : ]

Good Day

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

חמש אותיות כולללא 5עד אינדקס

>>> print str [ : 5]

Good

אות שלישית 2מיקום אינדקס

כוללעד אות אחרונה

>>> print str [2 : ]

od Day

print str[3:7] <<< כוללאות רביעית 3מיקום אינדקס

Page 55: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

55

חיבור מחרוזות

לשרשר מחרוזות. –ניתן לחבר

str1 = "ABC"

str2 = "def"

str3 = str1+str2

print str3

print str1 + str2

ABCdef ABCdef

פניה לאיברים במחרוזת

ניתן להפעיל על המחרוזת פעולה.

len(string)

מחזיר את מספר האיברים במחרוזת.

הדפסת האיבר האחרון במחרוזת

string [-1]

מחרוזות סיכום

מחרוזת.האורך מחזירה את len(name)פעולה של •

פנייה למיקום ] [ •

: : [ חיתוך ] •

חיבור + מחרוזות •

הכפלה * מחרוזות •

עוזרת מסייעת לנו לעבור על איברים במחרוזת. forלולאת •

.השינוייםכדי לבצע שינוים יש ליצור מחרוזת חדשה עם ניתן לשנות ערכים, לאבמחרוזת •

לולאה מסייעת לנו לעבור על איברי המחרוזת

תכנית המקבלת שם ומדפיסה אותו אות, אות.

name = raw_input(“Enter name: ")

for letter in name:

print letter,

d Da אותיות הפרש 4 לא כולל 7אינדקס

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

2בקפיצות של עד אות אחרונה

>>> print str[: : 2]

Go a

אות ראשונה עד אות אחרונה,

הדפסה מהסוף להתחלה. . 1-בקפיצות של

>>> print str[ : : -1]

yaD dooG

Page 56: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

56

פעולות בלולאה על מחרוזות

לא ניתן לשנות מחרוזת קיימת, צריך ליצור מחרוזת חדשה עם השינויים הרצויים. •

החלפת אותיות במחרוזת ושמירת השינוי למחרוזת חשה. •

ריקה ושמירתה בכל פעם מחדש עם תוספת של עוד אות. str2אתחול מחרוזת •

str1 = 'hello world'

str2 = '' for letter in str1:

if letter == 'l':

str2 += 'L' else:

str2 += letter print str2

צב

import turtle # קריאה למחלקה

wn = turtle.Screen() # יצירת חלון לשרטוט

alex = turtle.Turtle() # יצירת צב בשם אלקס

alex.shape("turtle")# קובע את צורת הצב

alex.setpos(x,y) # (x,y) קובע את מיקום הצב

alex.goto(x,y) # x, y קופץ למיקום

alex.setx(x) alex.sety(y) # קובע את מיקום הצב

turtle.seth(angle)# קובע את כיוון ראש הצב

alex.forward(150) # צעדים 150תזוזה קדימה

alex.backward(150) # צעדים 150תזוזה אחורה

alex.rt(90) # )פניה עם כיוון השעון 900)ימינה

alex.lt(90) # )פניה נגד כיוון השעון 900)שמאלה

alex.circle(50)# 50ברדיוס משרטט עיגול

alex.color("blue") # ר)כחול(צבע העט המציי

alex.pensize(3) # עובי העט המצייר

alex.pendown() # )עט מטה )מצייר

alex.penup() # )עט מעלה )לא מצייר

alex.dot(4) # פקסלים 4מצייר נקודה בגודל

alex.hideturtle() # הסתרה של ראש הצב

turtle.mainloop() # "שומר את החלון "פתוח

0 ➢

90

180

270

Page 57: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

57

פקודה לרישום טקסט בעזרת הצב

פקודה לניקוי המסך:

turtle.clear()

פקודה לכתובת טקסט:

turtle.text(“Amalia”)

האם אנו רוצים שהצב יזוז עם הטקסט?

move = True/False

turtle.write("Amalia", move = True)

גודל וגופן

font=("Arial", 8, "normal")

import turtle

win = turtle.Screen()

t = turtle.Turtle()

t.write("Amalia",move=True, font=("Ariel", 20, "normal"))

turtle.mainloop()

טקסט וצב תרגילים

נתונה המחרוזת:

song = "All you need is love :-)"

0 1 2 3 4 5 6 7 8 9 1

0

1

1

1

2

1

3

1

4

1

5

1

6

1

7

1

8

1

9

2

0

2

1

2

2

2

3

A l l y o u n e e d i s l o v e : - )

Page 58: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

58

הריצו את הפקודות הבאות ובדקו את התוצאה.

הפקודה תוצאת הריצה

A print song[0]

l y print song[2:5]

l - print song[1], song[-2]

Alyune slv – print song[ : :2]

24 print len(song)

A L L y o u n e e d i s L o v e : - ) for l in song:

if l == "l":

print "L",

else:

print l,

היא מילה שניתן לקרוא משתי הכיוונים. לדוגמא: שמש. פלינדרום .1

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

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

כתבו תכנית המקבלת מחרוזת של כמה מילים המופרדות ברווחים. .2

צרו מחרוזת חדשה בה הרוויחם מוחלפים בתו #.

במחרוזת)סולמית( יש מנו )סיפרו( כמה תווים #

צב:

דף הוראות בפייתון:

import turtle # קריאה למחלקה

wn = turtle.Screen() # יצירת חלון לשרטוט

alex = turtle.Turtle() # יצירת צב בשם אלקס

alex.shape("turtle")# קובע את צורת הצב

alex.setpos(x,y) # (x,y) קובע את מיקום הצב

alex.goto(x,y) # x, y קופץ למיקום

alex.setx(x) alex.sety(y) # קובע את מיקום הצב

Page 59: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

59

turtle.seth(angle)# קובע את כיוון ראש הצב

alex.forward(150) # צעדים 150תזוזה קדימה

alex.backward(150) # צעדים 150תזוזה אחורה

alex.rt(90) # )פניה עם כיוון השעון 900)ימינה

alex.lt(90) # )פניה נגד כיוון השעון 900)שמאלה

alex.circle(50)# 50משרטט עיגול ברדיוס

alex.color("blue") # ר)כחול(צבע העט המציי

alex.pensize(3) # עובי העט המצייר

alex.pendown() # )עט מטה )מצייר

alex.penup() # )עט מעלה )לא מצייר

alex.dot(4) # פקסלים 4מצייר נקודה בגודל

alex.hideturtle() # הסתרה של ראש הצב

turtle.mainloop() # "שומר את החלון "פתוח

פקודה לרישום טקסט בעזרת הצב

פקודה לניקוי המסך:

turtle.clear()

פקודה לכתובת טקסט:

turtle.text(“Amalia”)

הטקסט?האם אנו רוצים שהצב יזוז עם

move = True/False

turtle.write("Amalia", move = True)

גודל וגופן

font=("Arial", 8, "normal")

כתבו את התכנית הבאה.

import turtle

win = turtle.Screen()

t = turtle.Turtle()

t.write("Amalia",move=True, font=("Ariel", 20, "normal"))

turtle.mainloop()

0 ➢

90

180

270

Page 60: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

60

את שמכם בצבע אדוםוצבעו שנו את התכנית .3

קביעת צבע הצב היא: הפקודה שלהדרכה:

turtle.color("red")

(yועל ציר xכתבו פעולה המקבלת מחרוזת ושני מספרים )מיקום הצב על ציר .4

הפעולה תדפיס את המחרוזת במיקום על פי המספרים שהתקבלו כפרמטרים.

את הפעולה פעמיים: זמנו

עבור השם הפרטי ועבור שם המשפחה שלכם.

שפרו את התכנית כך שהמחרוזת והמיקום שלהם יתקבל כקלט.

מספר אקראי הוא מספר "שמגרילים אותו" .5

כדי ל"הגריל" מספר ראשית יש לייבא את הספרייה של המספרים האקראיים.

import random

r = random.randrange(start, end)

r - יקבל ערכים שלמים שביןstart ו– end

+350 –ל -350כתבו פעולה המחזירה מספר אקראי בטווח שבין

זמנו את הפעולה פעמיים:

xלקבלת מספר למיקום הצב על ציר

. yולקבל מספר למיקום הצב על ציר

פעמים. 5צרו לולאה החוזרת על עצמה

הלולאה:בכל איטרציה )סיבוב( של

נקבל כקלט מחרוזת,

מספרים 2נגריל

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

Page 61: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

61

OnClike –אירועי עכבר

turtle -מסך ה

ניתן לקבוע את גודל המסך

turtle.setup(300, 300)

פיקסלים. 300* 300 –קובע את גודל המסך ל

import turtle

turtle.setup(300, 300)

wn = turtle.Screen()

alex = turtle.Turtle()

alex.shape("turtle")

alex.goto(-120,0)

alex.goto(120,0)

turtle.mainloop()

הקשבה ללחיצת כפתור עכבר

חלון הפלט של הצב:

tw = turtle.Screen()

.הצבנרצה להאזין ללחיצת כפתור על מסך

נרצה להאזין ללחיצת כפתור העכבר על מסך הציור.

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

tw.onclick)(

.y –וציר ה x -בלחיצה על העכבר, תחזיר לנו את המיקום של העבר על ציר ה ()onclikeת פעול

Page 62: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

62

מקבלת שם פעולה )פרוצדורה( onclickפעולת הרישום

.נבחר שם עם משמעות –אותה יש לבצע

.get_pos )פרוצדורה( במקרה לחיצה נבצע את הפעולה

tw.onclick(get_pos)

בכל לחיצה של העכבר: y –ו xתכנית המדפיסה למסך את נקודות

import turtle

def get_pos(x, y):

print x, y

turtle.setup(300, 300)

tw = turtle.Screen()

alex = turtle.Turtle()

alex.shape("turtle")

tw.onclick(get_pos)

turtle.mainloop()

Page 63: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

63

תכנית המזיזה את הצב למיקום העכבר:

import turtle

def get_pos(x, y):

print x, y

alex.goto(x,y)

turtle.setup(300, 300)

tw = turtle.Screen()

alex = turtle.Turtle()

alex.shape("turtle")

tw.onclick(get_pos)

turtle.mainloop()

OnClike דף עבודה

Turtle OnClike

התכנית הבאה מייבאת את הספרייה של הצב

wtבשם פיקסלים( 400* 400יוצרת חלון פלט לצב )גודל

helenיוצרת צב בשם

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

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

Page 64: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

64

הדפסת מיקם העכבר

import turtle

def get_pos(x, y):

print x, y

turtle.setup(400, 400)

tw = turtle.Screen()

helen = turtle.Turtle()

helen.shape("turtle")

tw.onclick(get_pos)

turtle.mainloop()

תזוזת הצב למיקום העכבר

תזיז את הצב למיקום העכבר.אשר ()goto_gotצרו פעולה חדשה בשם

import turtle

def goto_dot (x,y):

helen.goto(x, y)

turtle.setup(400, 400)

tw = turtle.Screen()

helen = turtle.Turtle()

helen.shape("turtle")

#tw.onclick(get_pos)

tw.onclick(goto_dot)

turtle.mainloop()

תוספות לתכנית

הפקודה לשינוי צבע רקע החלון:

wn.bgcolor("lightgreen")

הפקודה לשינוי צבע העט:

tess.color("purple")

רשימת צבעים

Page 65: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

65

black cyan green pink violet

blue gold magenta purple white

brown gray orange red yellow

קשור לרשימת צבעים מורחבת

אפשרויות שונות ל"ראש" הצב:t.shape("turtle")

arrow circle square triangle turtle

classic

סימון מיקום לחיצת העכבר

במיקום של הצב.נקודה נרצה לשרטט

נשנה את גודל ראש הצב

helen.turtlesize(0.5)

פיקסלים(. 4העכבר נשרטט נקודה )בגודל לחיצת ובמיקום

helen.dot(4)

.y –ו xהמקבלת כפרמטרים את מיקום העכבר על ציר ()print_dotצרו פעולה חדשה

הרימו את העט

של העכבר y –ו xקפצו למיקום

הורידו את העט

ציירו נקודה.

def print_dot(x, y):

helen.penup()

helen.goto(x, y)

helen.pendown()

helen.dot(4)

זמנו את הפעולה ובדקו את התכנית.

tw.onclick(print_dot)

Page 66: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

66

הרחבות

שנו את צבע הנקודות ע"י הפקודה

helen.pencolor("red")

helen.color("red")

?()helen.colorמה עושה הפקודה

קובעת את צבע הצב

שנו את ראש הצב לצורת צב

1שגודלו יהיה

ובמקום להדפיס נקודה במיקום העכבר נדפיס למסך צב

מדפיסה למסך את ראש הצב. ()helen.stampהפקודה

import turtle

def get_pos(x,y):

print x, y

def print_dot(x, y):

helen.penup()

helen.goto(x, y)

helen.pendown()

helen.stamp()

turtle.setup(400, 400)

tw = turtle.Screen()

helen = turtle.Turtle()

helen.shape("turtle")

helen.turtlesize(1)

helen.pencolor("red")

helen.color("red")

#tw.onclick(get_pos)

tw.onclick(print_dot)

turtle.mainloop()

Page 67: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

67

מקלדת

האזנה למקלדת

אשר תאזין לאירועי מקלדת.פקודה כדי לעבוד עם המקלדת צריך להוסיף לחלון הצב

האזנה למסך, כדי לקלוט אירועי מקלדת )הקשות מקלדת(פקודה

של הצב את הפקודה מיד לאחר יצירת החלון נוסיף

wn.listen()

יצירת צב

)אפשרי גם צורה אחרת( turtleנקבע את צורת צב זה לצורת

נוסיף פקודה ה"מאזינה" למסך כדי לקלוט אירועי מקלדת )הקשות מקלדת(

ניד לאחר יצירת החלון.נוסף את הפקודה

wn.listen()

import turtle

wn = turtle.Screen()

wn.setup(500, 500)

wn.listen()

t = turtle.Turtle()

t.penup()

t.setposition(-230, 230)

t.pensize(4)

t.color("purple")

t.pencolor("purple")

t.shape("turtle")

turtle.mainloop()

ניצור ארבע פעולות אשר יגרמו לתזוזת הצב על פי החיצים שנקיש במקלדת:

פיקסלים: 5"מזיזה" את הצב לכיוון שמאל ההפעולה

פיקסלים אני לא רוצה שהצב יעבור את רוחב הקו 5צעדים כי רוחב הקו שלנו הוא 5 -)בחרתי ב

בקפיצות שהוא עושה(

.500* 500יצירת חלון בגול •

האזנה למקלדת •

יצירת צב •

הזזת הצב לפינה הימנית העליונה, •

קביעת צבע, צורת וגודל הצב. •

"הרמת העט" •

כדי שהצב לא יצייר בתזוזה שלו.

Page 68: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

68

def kL():

pt.setheading(180)

pt.forward(20)

זימון הפעולה בתכנית הראשית:

wn.onkey(kL, "Left")

צרו עוד שלוש פעול לתזוזת הצב:

"Right" -( 0ימינה )

"Up" –( 90למעלה )

"Down" –( 270למטה )

וזמנו אותם מהתכנית הראשית.

בדקו אם הצב הולך לפי כיון החיצים.

אם כן שמרו בשם חדש והמשיכו הלאה.

הגבלת תנועת הצב

אנחנו רוצים שהצב שלנו לא יוכל לצאת מגבולות המסך.

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

פיקסלים ולכן הערכים שהצב יוכל להתקדם אליהם הם מ 500* 500קבענו את גודל המסך שלנו ל

+ )בשני הצירים(230עד -230 -

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

פרוצדורות.

global x,y

משתנה גלובאלי

משתנים המוגדרים בתוך פעולה, הם משתנים מקומיים. •

משתנה מקומי לא נשמר בזיכרון המחשב לאחר צאתנו מהפעולה. •

הוא משתנה אשר ערכו נשמר גם מחוץ לפועלה. –משתנה גלובאלי •

בהצהרת המשתנה בפעולה יש להצהיר עליו כמשתנה גלובאלי. •

global x,y

Page 69: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

69

מיקום הצב

.y –וציר ה x –מחזירה לנו את המיקום של הצב על ציר ה ()turtle.posההוראה

.y –ו xניצור פעולה אשר תחזיר לנו את מיקום הצב למשתנים גלובאליים

def get_pos(x,y): # Get x, y coordinates playing turtle

global x,y

x, y = t.pos()

print x, y

נוסיף לכל אחת מהפעולות של תזוזת הצב את הזימון לפעולה.

def kL():

get_pos()

t.setheading(180)

t.forward(20)

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

והמיקום על חלון הצב. בהתאם לתזוזת הצב 210 –היא גודלה או קטנה מ y –או ציר ה x–ציר ה

אחרת נאפשר את תזוזת הצב. returnאם המספר גדול נצא מפעולה ע"י פקודת

210 -גדול מ xנבדוק אם המיקום הבא של הצב על ציר בתזוזה ימינה

-210 -קטן מ xנבדוק אם המיקום הבא של הצב על ציר בתזוזה שמאלה

210 -גדול מ yנבדוק אם המיקום הבא של הצב על ציר בתזוזה למטה

-210 -קטן מ yנבדוק אם המיקום הבא של הצב על ציר בתזוזה למעלה

def kL():

get_pt_pos()

pt.setheading(180)

# print "px", px # no need just to check

if (x - 5) < -210:

return

else:

pt.forward(5)

return

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

לסוף החלון )מהו ציר הבדיקה?(

בדקו את התכנית אם תקינה שמרו בשם חדש.

Page 70: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

70

אלגוריתם מתקדם

אלגוריתם מתקדם

וצובריםפעולות, לולאות, מונים

דף הוראות בפייתון:

קלט

a=int(raw_input("Insert an integer number: "))

f=float(raw_input("text")) # קלט מספר ממשי

st=raw_inputt("text") # מחרוזת

פלט

print "string" - הדפסת מחרוזת

print num - משתנה סתהדפ

print a + b מחרוזות שרשור -

print "{0} {1}".format (num, string)

print num, string

אופרטורים חשבוניים:

+- ** / * //

if תנאי משפט

אופרטורים לוגיים: > < => =< == =!

and or notתנאי מורכב:

if < תנאי >:

הוראות לביצוע

elif > תנאי < :

הוראות לביצוע

else:

הוראות לביצוע

if < תנאי >:

הוראות לביצוע

else:

הוראות לביצוע

if < תנאי >:

הוראות לביצוע

for -אתלול

for item in xrange (start, end):

הוראות לביצוע

while תלולא

Page 71: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

71

while < תנאי >:

הוראות לביצוע

מחרוזות

st1="string"

st2="string"

st[index]

st[start : end : step]

len(st)

print st*2

הגדרת פעולה

def funcName ():

return

# main

funcName () # זימון )קריאה( לפעולה

def funcName (a,b):

return

# main

funcName (a,b) # זימון )קריאה( לפעולה

def funcName (a,b):

return c

# main

x = funcName (a,b) # זימון )קריאה( לפעולה

def funcName (a,b):

return c

# main

print funcName (a,b) # זימון )קריאה( לפעולה

Page 72: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

72

for -תרגילים

.12כתבו תכנית המציגה את כל המספרים עד .1

הרחיבו את התכנית ומנו )ספרו( כמה מספרים זוגיים ברשימה.

הציגו את סכום כל המספרים.

שאת המספר ההתחלתי ואת הסופי נקבל מהמשתמש בתור משתנים.שנו את התכנית כך

count = 0

sum = 0

for num in xrange (12): print num,

count +=1

sum += num

print ""

print "count: ", count

print "sum: ", sum

בתסריט הבא מקבלים כקלט מהמשתמש משקלי חרוזים בגרמים. .2

מהו פלט התכנית עבור נתוני הקלט הבאים?

10, 8, 12, 15, 11נתוני הקלט הם משמאל לימין

num = 5

sum = 0

for n in xrange (num):

g = int(raw_input("Enter weight in grams: "))

sum += g

print sum

התכנית עברה שינוי קטן. מהו פלט התכנית החדשה?

num = 5

sum = 0

for num in xrange (num):

g = int(raw_input("Enter weight in grams: "))

sum += g

print sum

כמה מספרים ברשימה?

מהו המספר הראשון ברשימה?

מהו המספר האחרון ברשימה?

פלט התכנית:

פלט התכנית:

Page 73: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

73

מטר. 100המורה לספורט נתנה לתלמידי הכיתה לרוץ למרחק של .3

בסוף הריצה כל תלמיד קיבל את זמן הריצה שלו.

שניות הם אצנים. 20תלמידים שרצו מתחת לזמן של

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

שלבים לפתרון הבעיה:הדרכה :

0והשמו בו את הערך (count)צרו משתנה שימנה את מספר האצנים בכיתה •

, וקבלו את מספר התלמידים בכיתה כקלט.(p)צרו משתנה למספר התלמידים בכיתה •

(p)החוזרת על עצמה כמספר התלמידים בכיתה -כתבו לולאה חזור •

o קבלו מהמשתמש את זמן הריצה(time) שימו לב , ת זמן הריצה צריך להיו

float )מספר ממשי(

o 20 –בדקו האם תוצאת הריצה קטנה או שווה ל.

o הוסיפו למונה –אם אמת(count) 1

הציגו למסך את מספר התלמידים האצנים. •

count = 0

p = int(raw_input("How many students in class? "))

for num in xrange (p):

time = float(raw_input("What is the running time? "))

if time <= 20:

count += 1

print count

הריצו את התכנית ובדקו

)אפשר לקבוע שבכיתה מספר תלמידים בודדים לצורך הבדיקה(

שניות. 35הרחיבו את התכנית ומנו את התלמידים האיטיים, אלה שזמן הריצה שלהם מעל .4

של זריקת קובייה. )מספר אקראי(כתבו תכנית אשר תציג את הערך .5

כדי ל"הגריל" מספר ראשית יש לייבא את הספרייה של המספרים האקראיים.

import random

r = random.randrange(start, end)

r - יקבל ערכים שלמים שביןstart ו– end

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

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

2בש, אם המספרים זהים הציגו את סכום המספרים *-במשחק שש

, אחרת הציגו למסך רק את סכום Doubleוהוסיפו את הכיתוב

המספרים.

זריקות של קוביות. 10 הוסיפו לולאה לתכנית שתציג

Page 74: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

74

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

התכנית למנות את כל המספרים הזוגיים.

" ומחזירה את מספר iכתבו פעולה המקבלת מחרוזת ובודקת כמה פעמים מופיע התו " .7

הפעמים.

iמחרוזות ובודקת עבור כל אחד מהם כמה פעמים מופעה האות 5כתבו תכנית המקבלת

במחרוזת.

בכל המחרוזות. iהרחיבו את התכנית ומנו כמה פעמים מופעה האות

whileלולאות

.forובלולאת whileבעזרת לולאת 6עד 1 –כתבו תכנית המדפיסה את כל את כל המספרים מ .1 לולאה המציגה את כל המספרים בטווח שבין שני מספרים המתקבלים כקלט.כתבו .2

התכנית תמנה כמה מספרים זוגיים בטווח

.3 –ותחשב את סכום את כל המספרים המתחלקים ב

אורך שירים בשניות.קולט התסריט הבא .3

כתבו מה פלט התכנית.

עבור הקלט הבא )נתוני הקלט הם מימין לשמאל(:

120, 180, 190, 110, 140, 160, 150,

songs = 0

sum = 0

while songs < 5:

seconds = int(raw_input("Enter the song length in

seconds: "))

sum += seconds

songs += 1

print sum

נתון התסריט הבא .4

Page 75: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

75

number = 1

while number == 5:

print number

number += 1

מהו פלט התכנית?

, מהו פלט התכנית?7 –ל numberשינינו את הערך של

את התנאי של פקודת שינו

number > 5 -ל while –ה

מהו פלט התכנית?

התכנית:נתון התסריט הבא, כתבו מהו פלט .5

number = 200

while number > 0:

number -= 50

print number,

ק"ג. 350נוסעים ומשקל המקסימאלי של 4מעלית בבניין מגורים מסוגל לשאת .6

נתון התסריט הבא:

sum = ???? for n in xrange (4):

weight = float(raw_input("Enter weight: "))

sum += ????

if ????: print "go"

else:

print "stop"

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

נתון תסריט, מהו פלט התסריט? .7

sum = 0

count = 0

num = 2

while (count != 10):

sum += num

number = 7

while number > 5:

print number

number += 1

Page 76: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

76

count += 2

num *= 1

print sum

מתקדם וצבאלגוריתם

מקבץ פקודות של הצב:

פקודה הסבר

import turtle ייבוא ספריה

()tw tw = turtle.Screenפתיחת חלון בשם

()t t = turtle.Turtleיציר צב בשם

()turtlre.mainloop פקודה המונעת את סגירת החלון

t.forward(distance) זוז קדימה)צעדים(

t.back(distance) אחורה)צעדים(זוז

t.bk(distance)

t.back(distance)

t.right(angle) פנה ימינה)זווית(

t.rt(angle)

t.left(angle) פנה שמאלה)זווית(

t.lt(angle)

t.setpos(x,y) על המסך. y –ו xקפיצה לנקודה

t.goto(x,y)

על המסך xקפוץ לנקודה

על המסך yקפוץ לנקודה

t.setx(x)

t.sety(y)

t.color("blue") קובע את צבע העט של הצב

t.pensize(3) קובע את עבי העט של הצב

()t.pendown מצייר עט מטה

t.pd()

t.down()

()t.penup לא מצייר עט מעלה

Page 77: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

77

t.pu()

t.up()

קביעת צבע)צבע(

התחלה מלוי צורה בצבע

סיום מלוי צורה בצבע

t.fillcolor(colorstring)

t.begin_fill()

t.end_fill()

t.circle(radius) שרטוט מעגל)רדיוס(

שימוש בלולאה -ציור מדרגות

הקובעת את זווית ראש הצב: מדרגות. עשו שימוש בהוראה 5שרטטו בעזרת הצב

setheading(angle)

ימינה. 0360למטה, 0270שמאלה, 0180למעלה, setheading :090הזוויות של

ציור ריבוע בתוך ריבוע. -לולאות מקוננות

20*20נתחיל בציור של ריבוע של

import turtle

wn = turtle.Screen() # Open output window

wn.title("Hello, Tess!") # Set the window title

tess = turtle.Turtle() # Create "tess"

tess.color("blue") # Tell tess to change her

color

tess.pensize(3) # Tell tess to set her pen

width

for i in xrange (4):

tess.forward(20)

tess.left(90)

turtle.mainloop()

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

נוסיף לולאה מקוננת למספר הריבועים בציור

Page 78: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

78

num = 20

for j in xrange (3):

for i in xrange (4):

tess.forward(num)

tess.left(90)

num += 20

turtle.mainloop()

בכל פעם שנתחיל לצייר את הריבוע. )נזיז אותו )הציר האופקי( x –על ציר ה נשנה את מיקום הצב

שמאלה(

x –לשם כך נזיז את המיקום של תחיל הריבוע על ציר ה

נעלה את העט של הצב, )להפסיק לצייר(. •

תנה בשם שונשמור אותו למ ()tess.xcorנשלוף את המיקום של הצב ע"י הפקודה •

x.

x tess.setx(x - 10) –נמקם את הצב במיקום החדש על ציר ה •

נוריד את העט של הצב )לחזור לצייר(. •

num = 20

for j in xrange (3):

for i in xrange (4):

tess.forward(num)

tess.left(90)

x = tess.xcor()

tess.penup()

tess.setx(x-10)

num += 20

tess.pendown()

בכל פעם שנתחיל לצייר את הריבוע. )הציר האנכי( y –על ציר ה נשנה את מיקום הצב

(למטה)נזיז אותו

נעלה את העט של הצב, )להפסיק לצייר(. •

תנה בשם שונשמור אותו למ ()tess.ycorנשלוף את המיקום של הצב ע"י הפקודה •

y.

y tess.setx(y - 10) –נמקם את הצב במיקום החדש על ציר ה •

נוריד את העט של הצב )לחזור לצייר(. •

num = 20

for j in xrange (3):

for i in xrange (4):

tess.forward(num)

tess.left(90)

x = tess.xcor()

y = tess.ycor()

Page 79: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

79

tess.penup()

tess.setx(x-10)

tess.sety(y-10)

num += 20

tess.pendown()

שימוש בפעולה. –ציור ספירלה

.090 –בספירלה מציירים קו ופונים ב

מגדילים את אורך הקו

ושוב מציירם את הקו

090 –לשם כך ניצור פעולה המקבלת כפרמטר את אורך הקו, ומציירת קו ופונה ב

לולאה המזמנת את הפעולה ומגדילה את רוך הצלע של הקו.ניצור

090 –יצירת פעולה המציירת קו ופונה בסיומו ב

def draw(num):

t.forward(num)

t.right(90)

פעולה ראשית היוצרת את הצב,

numקובעת ערך למשתנה

ומזמנת את הפעולה לציור קו.

# Main

tw = turtle.Screen() # Open output window

t = turtle.Turtle() # Create "t"

t.color("purple") # Tell tto change her color

t.pensize(4) # Tell t to set pen width

num = 20

draw(num)

turtle.mainloop()

הפעולה ולהגדלת ערך הצלע.לולאה החוזרת מספר פעמים לזימון

Page 80: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

80

num = 20

for i in xrange(8):

draw(num)

num += 20

:משחקים בעיגולים

t.circle(radius)ההוראה לציור עיגול היא:

t.setheading(angle)זווית של ראש הצב: הההוראה לשינוי

ת ופונה לכיוון על פי הפקודה. טהיא הוראה מוחל – setheadingההוראה

ימינה. 360למטה, 270שמאלה, 180למעלה, setheading :90הזוויות של

ניתן לשנות את זווית ראש הצב ניתן גם להשתמש בפקודה של פנייה:

t.left(angle) , t.right(angle)

שראש הצב היה הפקודה של פנייה היא הוראה יחסית, ומשנה את הזווית בהתאם לנקודה

בה לפני כן.

נסו לכתוב תכנית המציירת ספירלה של עיגולים:

שחקו עם הערכים של זווית הסיבוב של המעגל, רדיוס המעגל וכמות המעגלים

האם תוכלו ליצור ספירלה אחרת?

setheading(angle) -התכנית בשימוש פקודת הקובעת את זווית ראש הצב

import turtle

tw = turtle.Screen() # Open output window

t = turtle.Turtle() # Create "t"

t.color("Blue") # Tell t to change her color

t.pensize(1) # Tell t to set pen width

radius = 20

angle = 60

for num in xrange (6):

t.setheading(angle) # sets the heading of the turtle angel

t.circle(radius)

angle += 60

Page 81: דימלתל הדובע יפד 'ח התיכל ןותייפblog.csit.org.il/UpLoad/FilesUpload/PythonWorkBook....5 / 2 = 2 קוליח תלועפב המגודל.)םימלש םירפסמ

עמליה אפל| פייתון לכיתה ח'

81

tw.exitonclick()

כתבו תכנית המציירת מעגל בתוך מעגל, עשו שימוש במשתנים ופעולות.

ניצור פעולה המקבלת כפרמטר את רדיוס המעגל מציירת מעגל. •

)מחזור( ניצור לולאה המזמנת את הפעולה לציור המעגל ולאחר איטרציה •

של הלולאה נגדיל את הערך הרדיוס.

.y –נשנה את מיקום תחילת העיגול על ציר ה •

ציור מצולעים:

)ויקיפדיה( מצולע הוא חלק ממישור המתוחם על ידי מספר סופי של קטעים

. כאשר אנו מציירים מרובע גודלה של כל זווית הוא 0360 סכום הזוויות במצולע הוא

360 / 4 = 90.

כאשר נרצה לשרטט משושה מה יהי גודל כל זווית?

צלעות( באותו החלון. 8שרטטו עם הצו משושה ומתמן )

אל תשכחו להים את העט במעבר ממצולע למצולע.

כתבו פעולה המקבלת את אורך הצלע, ומספר הצלעות ומשרטטת מצולע.

האם נוכל לצייר מעגל עם פעולה זו?

ציור ספירלה של משולשים:

הריצו את התכנית הבאה ובדקו את התוצאה:

import turtle

tw = turtle.Screen()

painter = turtle.Turtle()

painter.pencolor("red")

for i in range(41):

painter.forward(100)

painter.left(123)

turtle.done()