You are on page 1of 41

2 ‫שבוע‬ ‫רות בורנשטין‬

rutbor@edu.hac.ac.il
‫אופרטורים‬

‫אופרטורים הם סמלים מיוחדים‪ ,‬שמסמלים חישובים פשוטים כדוגמת חיבור וכפל‪.‬‬

‫סדר הפעולות בפייתון דומה לסדר הקדימויות המתמטי הרגיל‪:‬‬

‫קודם כל סוגריים‪ ,‬לאחר‪-‬מכן חזקה‪ ,‬כפל וחילוק‪ ,‬חיבור וחיסור‪ .‬החישוב מתבצע משמאל‬

‫לימין‪.‬‬
‫אופרטורי פעולה‬

‫דוגמה‬ ‫משמעות‬ ‫אופרטור‬


‫‪2+3=5‬‬ ‫חיבור‬ ‫‪+‬‬
‫‪2-3=-1‬‬ ‫חיסור‬ ‫‪-‬‬
‫‪2*3=6‬‬ ‫כפל‬ ‫*‬
‫‪2**3 = 8‬‬ ‫חזקה‬ ‫**‬
‫‪7/3 = 2.5‬‬ ‫חלוקה ממשית‬ ‫‪/‬‬
‫‪7//3 = 2‬‬ ‫חלוקת שלמים‬ ‫‪//‬‬
‫‪7%3 = 1‬‬ ‫שארית‬ ‫‪%‬‬
‫אופרטורי פעולה ‪ -‬המשך‬

‫דוגמה‬ ‫דוגמה‬ ‫אופרטור‬


‫‪x=5‬‬ ‫‪x=5‬‬ ‫=‬
‫‪x=x+5‬‬ ‫‪x += 5‬‬ ‫=‪+‬‬
‫‪x=x-5‬‬ ‫‪x -= 5‬‬ ‫=‪-‬‬
‫‪x=x*5‬‬ ‫‪x *= 5‬‬ ‫=*‬
‫‪x=x/5‬‬ ‫‪x /= 5‬‬ ‫=‪/‬‬
‫‪x=x%5‬‬ ‫‪x %= 5‬‬ ‫=‪%‬‬
‫‪x = x // 5‬‬ ‫‪x //= 5‬‬ ‫=‪//‬‬
‫אופרטורי השוואה‬

‫דוגמה‬ ‫משמעות‬ ‫אופרטור‬


‫‪x == y‬‬ ‫שווה ל‪-‬‬ ‫==‬
‫‪x>y‬‬ ‫גדול מ‪-‬‬ ‫>‬
‫‪x<y‬‬ ‫קטן מ‪-‬‬ ‫<‬
‫‪x!=y‬‬ ‫שונה מ‪-‬‬ ‫=!‬
‫‪x<=y‬‬ ‫קטן מ‪ -‬או שווה ל‪-‬‬ ‫=<‬
‫‪x>=y‬‬ ‫גדול מ‪ -‬או שווה ל‪-‬‬ ‫=>‬
PRINT-‫פונקציית ה‬
name=“Yoram”

num=3

other_num=1.5

print (name)
Output:
print (num) ‘Yoram’
3
print (other_num)
1.5
‫פונקציית ה‪PRINT-‬‬
‫שימו לב שפונקציית ה‪ print‬מוסיפה באופן‬
‫דיפולטיבי ירידת שורה בסופה‪.‬‬

‫אם נרצה לשנות זאת‪ ,‬לדוגמה‪ ,‬לרווח‬


‫במקום ירידת שורה‪ ,‬נעשה זאת כך‪:‬‬

‫)' '=‪print(“hello world”, end‬‬


PRINT-‫פונקציית ה‬
:‫עוד אופציות‬

print(1, 2, 3, 4)

print(1, 2, 3, 4, sep='*')

print(1, 2, 3, 4, sep='#', end='&')

Output:
1234
1*2*3*4
1#2#3#4&
INPUT-‫פונקציית ה‬

‫ על מנת לקרוא קלט מהמשתמש‬input ‫נשתמש בפונקציה‬

name=input(“please enter your name: ”)

print (name)

Output:

please enter your name: Sharon

‘Sharon’
INPUT-‫פונקציית ה‬
string ‫ מחזירה‬input() ‫שימו לב! הפונקציה‬
int‫ יש לעשות המרה מפורשת ל‬,‫כאשר אנו מעוניינים לקלוט מספר‬

num = input(“please enter a number: “)


type(num)
Output:
num = int(num)
please enter a number: 5
print(num+2)
<class ‘str’>

7
‫כמה נקודות נוספות‪:‬‬
‫• כמו בשפות רבות אחרות‪ ,‬התו ’‪ ‘\n‬בפונקציה ‪ print‬משמעותו שורה חדשה‬
‫• הערה בקוד תסומן על ידי ‪ #‬בתחילת השורה‬
‫לדוגמה‪:‬‬
‫=============== ‪#=============== class ex1‬‬
‫• הערה בת כמה שורות תתחיל ותסתיים על ידי ‪ 3‬מרכאות‬
‫לדוגמה‪:‬‬
‫=============== ‪"""=============== class ex1‬‬
‫"""‪This program implements a calculator‬‬
‫כמה נקודות נוספות‪:‬‬
‫• שורה ארוכה אפשר לחלק בצורה הזו‪:‬‬
‫\‪a=1+2+3+‬‬
‫\‪4+5+6+‬‬
‫‪7+8+9‬‬
‫•כשזה בתוך סוגריים‪ ,‬אין צורך להוסיף כלום‪:‬‬
‫‪a = (1 + 2 + 3 +‬‬
‫‪4+5+6+‬‬
‫)‪7 + 8 + 9‬‬
IF STATEMENT
a = 21
b = 10
If (a == b):
print (“a is equal to b”)
else:
print (“a is not equal to b”)
IF STATEMENT
a = 21
b = 10
If (a == b):
print (“a is equal to b”)
else:
if (a<b):
print (“a is less than b”)
else:
print (“a is not less than b”)
‫‪ELIF‬‬

‫במקום לכתוב ‪else‬‬

‫ובתוך הבלוק שלו להוסיף תנאי חדש‪,‬‬

‫השתמשו פשוט ב‪.elif‬‬


ELIF
a = 21
b = 10
If (a == b):
print (“a is equal to b”)
elif (a<b):
print (“a is less than b”)
else:
print (“a is not less than b”)
ELIF
IF STATEMENT
a = input(“Please enter a number: ”)
b = input(“Please enter another number: ”)
If (a == b):
print (“a is equal to b”)
elif (a<b):
print (“a is less than b”)
else:
print (“a is not less than b”)
‫מבני נתונים ‪ -‬רשימות )‪(LISTS‬‬
‫רשימות הן טיפוס הנתונים השמיש ביותר – "סוס העבודה" של התכנות בפיתון!‬

‫תפקידו של טיפוס הרשימה להחזיק רשימה מסודרת של נתונים‪.‬‬

‫הגדרת רשימה נעשית ע"י שימוש באופרטור סוגרים מרובעים‪[ ] :‬‬


‫מבני נתונים ‪ -‬רשימות )‪(LISTS‬‬

‫שימו לב‪:‬‬

‫‪ ‬אין צורך להצהיר על גודל הרשימה‪.‬‬

‫‪ ‬רשימה אחת יכולה להכיל טיפוסים מסוגים שונים‪.‬‬


‫פנייה לערך ברשימה‬
‫פונקציות הרשימה‬

‫• כל רשימה היא למעשה אובייקט‪.‬‬


‫• לאובייקט הרשימה פונקציות פנימיות המאפשרות הוספה‪,‬‬
‫הסרה ומיון של איברי הרשימה‪.‬‬
‫דוגמאות לפונקציות של רשימה‬
‫אבל אפשר לעשות זאת יותר פשוט ‪..‬‬

‫]‪>>> x = [1, 2, 3, 4, 5‬‬


‫‪>>> x‬‬
‫]‪[1, 2, 3, 4, 5‬‬
‫]‪>>> x = x + [6‬‬
‫‪>>> x‬‬
‫]‪[1, 2, 3, 4, 5, 6‬‬
‫‪>>> x[0] = 7‬‬
‫‪>>> x‬‬
‫]‪[7, 2, 3, 4, 5, 6‬‬
‫‪>>> x * 3‬‬
‫]‪[7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6‬‬
‫‪SLICE OPERATION‬‬
‫ניתן לקבל תתי‪-‬רשימות מתוך רשימה על ידי הגדרת שני אינדקסים‪ ,‬מופרדים על ידי‬
‫נקודתיים‪.‬‬

‫הערך המוחזר מביטוי כזה יהיה רשימה המכילה את האלמנטים של הרשימה המקורית‬
‫לפי הסדר החל מהאינדקס הנתון הראשון ועד האינדקס האחרון‪ ,‬לא כולל‪.‬‬

‫])‪lst[begin_index:end_index(not included‬‬
SLICE OPERATION – EXAMPLES

Output:
['eggs', 'milk', 100, 7, 5.14]
['milk’, 100]
[100, 7]
‫‪SLICE OPERATION‬‬
‫אם רוצים לקחת מתחילת הרשימה או עד סופה‪ ,‬אפשר פשוט להשאיר ריק‪ ,‬ללא אינדקס‪.‬‬

‫אם רוצים מתחילת הרשימה‪:‬‬

‫])‪lst[:end_index(not included‬‬

‫אם רוצים עד סופה‪:‬‬

‫]‪lst[begin_index:‬‬
SLICE OPERATION – EXAMPLES

Output:
Output:
‫‪SLICE OPERATION - CONTINUE‬‬
‫ניתן להוסיף נקודותיים שניות כדי להגדיר את גודל הדילוג בין האלמנטים ברשימה וכך‬
‫לקבל תת רשימה שאינה רציפה‪.‬‬

‫הערך המוחזר מביטוי כזה יהיה רשימה המכילה את האלמנטים של הרשימה המקורית‬
‫לפי הסדר החל מהאינדקס הנתון הראשון ועד האינדקס האחרון )לא כולל( עם דילוגים‪.‬‬

‫]‪lst[begin_index:end_index:step‬‬
SLICE OPERATION – EXAMPLES

Output:
['eggs', 'milk', 100, 7, 5.14, ‘bread’, ‘meat’, 56]
[‘milk’, 7]
[100, ‘bread’]
SLICE OPERATION – EXAMPLES

Output:
SLICE OPERATION – EXAMPLES

Output:
SLICE OPERATION
LIST FUNCTIONS
• len(lst): number of elements in list.
Example: len ([1, 6, 2, 4.6, 1.11, 0.043, 5 ]) 7

• min(lst): smallest element. Must all be the same type!


Example: min([1, 6, 2, 4.6, 1.11, 0.043, 5 ]) 0.043

• max(lst): largest element, all must be the same type

Example: max([1, 6, 2, 4.6, 1.11, 0.043, 5 ]) 6

• sum(lst): sum of the elements, numeric only

Example: sum([1, 6, 2, 4.6, 1.11, 0.043, 5 ]) 19.753


MORE ACTIONS IN LISTS

Results
s=[1,2,3,4]
t=[1,3,5,3,7,3,2,5,3]
x=2
print (s + t) [1, 2, 3, 4, 1, 3, 5,3, 7, 3, 2, 5, 3]

print(t.index(3)) 1

print(t.count(3)) 4
IN AND NOT IN

Results
s=[1,2,3,4]
t=[1,3,5,3,7,3,2,5,3]
x=2
print (x in s) True

print (7 not in s) True


‫מה קרה כאן?‬
‫]‪my_list = [4, 7, 1, 2‬‬
‫)(‪my_list = my_list.sort‬‬
‫)‪print (my_list‬‬ ‫‪None‬‬

‫למה?‬
‫רשימה היא מסוג ‪ ,mutable‬ז"א היא ניתנת לשינוי‪ ,‬ולכן מרבית‬
‫הפונקציות של רשימה משנות את הרשימה עצמה ומחזירות‬
‫‪.None‬‬
‫במקרה הזה הפונקציה מחזירה ‪ None‬ואותו אנו שומרים בתוך‬
‫‪my_list‬‬
‫מטריצה‬
‫• ניצור מטריצה כך‪:‬‬
‫]]‪my_list = [ [1, 2, 3], [4, 5, 6], [7, 8, 9‬‬
‫• אם נרצה להדפיס את העמודה השניה בשורה השניה‪ ,‬נעשה זאת כך‪:‬‬
‫)]‪print (my_list[1][1‬‬
‫• ואפשר כמובן לערבב‪:‬‬
‫]'‪my_list = ['a', [1, 2, 3], 'z‬‬
‫• ואם נרצה להדפיס את הספרה ‪ ,1‬נכתוב‪:‬‬
‫)]‪print (my_list[1][0‬‬
‫לולאות ‪FOR‬‬

‫לולאת ה‪ for‬תמיד עוברת על פריטים ברצף כלשהו לפי סדר הופעתם ברצף‪.‬‬

‫שימו לב‪ ,‬בפייתון אנו עוברים על האובייקטים עצמם ולא על האינדקס!‬


FOR IN LIST
FOR IN LIST

You might also like