הסבר על Python – Variables פייתון משתנים
משתנה או משתנים הם כמו תיבה שבה שאתם מכניסים נתון מסוים וכאשר אתם מבקשים להציגו , הנתון מוצג
דרך נוספת להבין משתנה היא כאשר ערך אחר נכנס לאותה משתנה הוא משתנה , כשמו הערך ימשיך להשתנות לפי הנתון שהזנתם לו או שהקוד שכתבתם יכניס לאותו הערך
את
print ("Hello World")
אתם בטח מכירים, אבל אם לא, אתן אסבר מהיר וקצר – הפקודה print תדפיס כל ערך שאכניס בתוך הסוגריים העגולות ובתוכם "" – מדוע להכניס לתוך ה"" את הטקסט- זה תלמדו בהמשך (הסיבה היא שהטקסט הוא String ולא Intger) וברגע שתריצו את שורת הקוד הזו תקבלו את הטקסט
כעת נעבור למשתנים:
יש כמה סוגים של "טקסט" שאתם מזינים למשתנה ובשביל להבין משתנים יותר טוב נכתוב כמה שורות קוד
נכתוב משתנה בשם Name, אנו למעשה מכריזים שName הוא Tal
name = "Tal"
בכדי להדפיס את המשתנה נכתוב
print(name)
הקוד שלנו יראה כך
name = "Tal"
print(name)
והתוצאה כאשר נריץ את זה
עד כה המשתנה פשוט, כעת נציג משתנה שמשתנה לפי מה שמוזן למשתנה
נוכל להגדיר Input שבו המשתמש מזין את המשתנה וכך הוא מוצג לפי הכתוב וזה יתן לכם הבנה טובה יותר מהו משתנה
name = input("What is your name: ") print(name)
כעת נריץ את הקוד ע"י כפתור Play או Shift + F10
הפלט שנקבל הוא השם שהזנתי באותו הרגע והפך למשתנה name
Operators
הם למעשה פעולות כמו ועוד , פחות כפול חזקה ועוד בנוסף להכל פייתון עובד בצורה מתמטית רגילה שכן יש קדימות לחישובים
נעבור תחילה על הקדימויות והאפשרויות הבאות
פחות
ועוד
כפול
בחזקה
+ – * ** /
a = 5+ 10/2 * 4**3 print(a)
זאת אומרת שהתוצאה כאן תיהיה קודם כל חישוב של החילוק
10/2 = 5
ואז החישוב של 4 בחזקת 3 שהתוצאה היא 64
4**3 = 64
ואז כל זה כפול
5*64 = 320
ובסוף ה+ שהוא 5 , התוצאה למעשה תיהיה
325
אבל אם נזין את פעולת החישוב שנרצה תחילה ב() אז התוצאה תשתנה לחלוטין
a = (5+10) /2 * 4**3 print(a)
כך למעשה פעולת החיבור תתבצע קודם
5+10 = 15
ואז
15 / 2 = 7.5
פעולת החזקה תפעל
4**3 = 64
ולבסוף פעולת הכפל בינהם
7.5 * 64 = 480
Floor Division //
// הוא למעשה הצגה של חילוק ללא שארית, כמו כאן
a = 10 // 5 print(a)
התוצאה היא 2 ללא 2.0
Modulus %
יחזיר את השארית, לדוגמה
a = 13 % 3 print(a)
התוצאה תיהיה 1 שכן השארית היא 1
אופרציה זיקתית- Relational Operator
<>
<> צורה זו אומרת פחות או יותר מ… לדוגמה
a = 5 < 10 print(a)
אתם בטח שואלים את עצמכם מה התוצאה פה?! התוצאה היא שאלה, האם 5 קטן מ10
התוצאה של שורת קוד זו היא – התוצאה היא Booleans בוליאנית של נכון או לא נכון
True
שכן 5 קטן מ10, ואילו היה הפוך והשאלה הנשאלת היא 5 גדול מ10 התוצאה הייתה False
=> =<
אופרציה זו אומרת קטן או שווה ל…
דוגמה
a = 5 <= 10 print(a)
גם כאן התוצאה תיהיה True אבל אם נזין 10
a = 10 <= 10 print(a)
התוצאה עדיין תיהיה True כי שאלנו אם 10 קטן או שווה ל10
אם היינו מכניסים אם 10 קטן מ10 אז התוצאה הייתה Flase שכן 10 לא קטן מ10 הוא שווה לו
a = 10 < 10 print(a)
false
האופציה הנוספת של תצורה זו היא =< שכן זה אותה אופרציה רק עם השאלה גדול או שווה ל…
==
אופרציה זו אומרת אם נתון מצד שמאל שווה לנתון מצד ימין לדוגמה
a = 1 == 1 print(a)
האם 1 מצד שמאל שווה ל1 מצד ימין, כמובן שכן אז התוצאה היא
True
אבל אם נזין
a = 1 == 2 print(a)
התוצאה
False
Boolean
True או False נקרא גם Boolean אך המספרים 1 ו 0 שווים גם הם לTrue או Flase זאת אומרת שאם אכניס את הנתון הבא
a = 0 == True print(a)
התוצאה
False
אבל אם אזין
a = 1 == True print(a)
התוצאה תיהיה True וכן גם הפוך עם 0 ו 1
Not equal to =!
=! אומר לא שווה ל…
זאת אומרת בקוד
a = 10 != 1 print(a)
השאלה שנשאלת פה היא האם 10 לא שווה ל1, התשובה היא
True
שכן 10 לא שווה ל1
=+
אנחנו יכולים לכתוב את הקוד הבא
a= 2 b = a+2 print(b)
כמו שהבנתם זה יצור מצב בו a = שווה ל2 אבל a שווה ל a פלוס 2 וזהו a
אבל נוכל לקצר את הקוד כך
a = 2 a += 2 print(a)
התוצאה תיהיה עדיין 4
ניתן לבצע זאת עם כל האופירטורים כמו למשל לחלק
a = 2 a /= 2 print(a)
Logical Operator
OR AND NOT
אופרטור לוגי הוא למעשה OR AND NOT
AND
נתחיל מ and
a = 5 > 10 and 2 < 7 print(a)
מה השאלה שנשאלה כאן?
האם חמש גדול מ10 ו2 קטן מ7 התשובה של 2 קטן מ 7 אכן זה True אבל בגלל שהגדרנו AND התוצאה חייבת להיות נכונה בשני החישובים שאנחנו עושים כך שאם 5 גדול 10 וזה False, התוצאה תיהיה False
התוצאה של קוד זה
False
אבל אם נשנה הפעם ל
a = 11 > 10 and 2 < 7 print(a)
בו מתקיים גם 11 גדול 10 ו2 קטן מ7 ובגלל AND חייבים שנייהם להתקיים אז התוצאה היא
True
OR
כעת האופרטור אומר או זה או זה חייבים להתקיים
a = 6 > 10 or 2 < 7 print(a)
אם 6 גדול מ10 התוצאה היא False אבל 2 קטן מ 7 זה נכון ולכן התוצאה היא
True
NOT
הוא קצת שונה שכן מטרתו אחת, היא להמיר Boolean מ True ל False ו True ל False
למשל
a = not( 6 > 10 or 2 < 7) print(a)
הכנסתי את הבדיקה של OR שעשינו קודם שהתוצאה היא True, ואותה הכנסתי אל תוך not ולכן התוצאה היא
False
כיוון ש not הפך את זה מTrue
Numbers – Strings VS Intgers
כעת אכניס את מה שכתבנו למעלה ל"הערה" Comment זאת אומרת שהעורך לא יריץ את הקוד שכתבתי , אוכל להכניס לכל שורה # או שאוכל לסמן הכל וללחוץ על Ctrl + / , ה / שציינתי נמצא בצד הכי שמאלי במקלדת למעלה
על מנת להבדיל בין טקסט רגיל למספרים, אזין את הטקסט ללא "" אחרי המשתנה
ככה
a = 1 b = 2 print(a + b)
ברגע שאשמור את קובץ ואריץ את הקוד אקבל
כמו שהבנתם הדפסתי את a + b אבל מה יקרה אם אכניס "" למשל למספר 1
a = "1" b = 2 print(a + b)
הפלט
אני מקבל שגיאה, השגיאה חשובה מאוד שכן פייתון רושם שהוא יכול לחבר Strings ולא intger
Strings – הכוונה היא לאותיות, טקסט
Intger – אומר מספרים
זאת אומרת שאם אכניס גם את 2 ל "2" אז התוצאה תיהיה
a = "1" b = "2" print(a + b)
התוצאה
12
למה 12 שכן הוא ביצע concatenate חיבור של שתי הטקסטים האלו שכן המספר כעת הוא אינו מספר אלא טקסט
אופציה נוספת היא לבדוק את הClass על ידי הפקודה
print(type(a))
אקבל
<class 'str'>
זה למעשה אומר כי זה ערך מסוג String – טקסט ולא Intger
כעת נראה איך משתנה נכנס במשתנה אחר, כמו שהסברתי במאמר הראשון פייתון קורא את הקוד מההתחלה אל הסוף
age = input("What is your age: ") age2 = int(age) + 1 print(age2)
אז מה יש לנו כאן, המשתמש יזין את הגיל ואז משתנה age2 יכניס את age פלוס 1 , זה אומר שאם המשתמש יזין 10 הוא יקבל 11
עד כה אתם מכירים את הSyntax אבל מדוע הכנסתי int ובסוגריים את המשתנה age
הסיבה היא ש input מקבל רק Strings ולכן לא יכול להמיר את הגיל נניח 10 שהוא טקסט ל+ ועוד 1
אז אנחנו ממירים את המשתנה age אחרי שהוא מוזן מהמשתמש לintger וזה מה שעושה הפונקציה int
באותה מידה אפשר להמיר את המשתנה לString על ידי
str(המשתנה שלכם)
דוגמה נוספת היא המרה של המשתנה ל float וזה יגרום לתוצאה להיות עם שארית
age2 = float(age) + 1
ואז התוצאה תיהיה
11.0
תוצאה
Formatted Strings
כאשר אנחנו כותבים משתנים ובתוכם את הערכים שאנחנו רוצים , לפעמים אנחנו רוצים להוסיף סימן או אות באמצע של כל אותו משתנה וזה מבלי ליצור משתנה חדש , נניח ואני רוצה להכניס בתוך השם Tal Ben Shushan את הסימן – בין ה Tal לבין Ben Shushan שאנשים יוכלו להבחין בין השם הפרטי לשם המשפחה
אוכל להכניס עוד משתנה עם הסימן -, אבל במקום זאת אוכל להכניס Formatted String עם ה
f"
ובתוכו את הטקסט והמשתנים שאני רוצה
fn = "Tal"
ls = "Ben Shushan"
אז אכתוב את הקוד
fn = "Tal"
ls = "Ben Shushan"
fullname = f'{fn} – {ls}'
print(fullname)
Methods – שיטות
Methods הם למעשה פעולה שאנחנו מבצעים על המשתנה, לדוגמה
נזין משתנה עם שם וכמובן הערך הוא Strings
fullname = "Tal Ben Shushan"
print(dir(fullname))
כעת ע"י הפקודה dir נבדוק איזה שיטות ניתן להוסיף לאותו המשתנה, הרשימה שנקבל
אם מה שמופיע כמו len יש __ מקדימה ומאחורה , זה אומר שאפשר להשתמש בו לפני המשתנה כמו פה:
נשתמש ב len שסופר כמה "אותיות" יש בתוך המשתנה
התשובה 15
כעת ניקח לדוגמה את upper שמופיע פה
מחקתי את ה len וכעת בסוף ההדפסה במשתנה fullname אכניס . הנקודה הזו תפתח לי את האפשרויות שאני יכול להחיל על המשתנה
לדוגמה upper
fullname = "Tal Ben Shushan"
print(fullname.upper())
עוד Method מעניין הוא ה in שכן הוא בודק האם טקסט מסוים קיים בתוך משתנה
fullname = "Tal Ben Shushan"
print("Ben" in fullname)
אם ben קיים בתוך fullname נקבל true