משתנים הם למעשה מקומות שמורים בזיכרון אשר מכילים ערכים. כלומר, כאשר אנו מגדירים משתנה, הוא תופס מקום בזיכרון.
בהתבסס על סוג הנתונים, המקשר מקצה זיכרון עבור המשתנה. אנו יכולים להזין מגוון של סוגי נתונים למשתנים, ממספרים עשרוניים ועד לתווים פשוטים.
הזנת ערכים למשתנים
המשתנים בשפת Python אינם זקוקים להכרזה קודמת כדי שהמקשר יקצה להם זיכרון, ההכרזה נעשית באופן אוטומטי כאשר אנו מזינים ערך למשתנה. יש להשתמש בסימן שווה (=) על מנת להזין ערכים למשתנים. האופרנד שמשמאל לאופרטור (=) הוא שם המשתנה, והאופרנד שמימין הוא הערך שברצוננו להזין למשתנה. לדוגמה:
age = 100 # int kilometers = 1000.0 # float name = "John" # string print (age) print (kilometers) print (name)
כשנריץ תוכנית זו נקבל את הפלט הבא:
100
1000.0
John
הזנת מספר משתנים
שפת התכנות Python מאפשרת לנו להזין ערך אחד למספר משתנים בו זמנית, כפי שניתן לראות בדוגמה הבאה:
a = b = c = 1
בדוגמה זו ראינו כיצד ניתן להזין את הערך 1 אל תוך שלושה משתנים מסוג int בו זמנית כלומר ששלושת המשתנים יאוכסנו באותו מיקום הזיכרון. כמו כן, ניתן להזין בו זמנית מספר ערכים למספר משתנים:
a, b, c = 1, 2, "john"
בדוגמה האחרונה, הזנו את הערכים 1 ו-2 למשתנים a ו-b לפי הסדר, וערך מחרוזת למשתנה c.
סוגי נתונים סטנדרטיים
הנתונים אשר מאוכסנים בזיכרון יכולים להיות נתונים מכל מיני סוגים, למשל, גילו של אדם מאוכסן כערך נומרי וכתובתו של אדם מאוכסנת כתווים אלפאנומריים. בשפת Python יש מגוון של סוגי נתונים שאנו משתמשים בהם על מנת להגדיר את הפעולות שניתן לבצע עליהם ואת שיטת האכסון שלהם.
בשפת Python יש 5 סוגי נתונים סטנדרטיים:
- מספרים – Numbers
- מחרוזות – String
- רשימה – List
- רשימה בלתי משתנה – Tuple
- מילון – Dictionary
מספרים Numbers ב-Python
מספרים הם סוג נתונים ששומרים ערך נומרי. אובייקט מספר נוצר כאשר אנו מזינים אליהם ערך. בדוגמה הבאה ניצור משתנים ונזין אליהם ערך נומרי:
var1 = 1 var2 = 10
וניתן למחוק אובייקטים אלו באמצעות הביטוי del לפי התחביר הבא:
del var1[,var2[,var3[....,varN]]]]
ניתן למחוק אובייקט אחד או יותר בעזרת הביטוי del:
del var del var_a, var_b
בשפת Python נתמכים 3 סוגי מספרים:
- int – מספר שלם
- float – מספר עשרוני
- complex – מספר מורכב
כל המספרים השלמים ב-Python מוצגים כמספרים מסוג Long, אך למרות זאת אין עוד סוגי מספרים שלמים. לפניכם טבלה שבה נוכל לראות דוגמאות של מספרים.
מחרוזות String ב-Python
מחרוזות בשפת Python הן למעשה סט מתמשך של תווים אשר מסומן בגרשיים, כאשר ניתן להשתמש בגרש בודד (' ') מכל צד של המחרוזת או גרשיים כפולות (" ") מכל צד של המחרוזת. ניתן להדפיס חלקים מתוך מחרוזת על ידי שימוש באופרטורים – ([ ]) שנקרא גם סימן החיתוך ואופרטור הנקודותיים (:). למשל:
str = 'Hello World!' print (str) # Prints complete string print (str[0]) # Prints first character of the string print (str[2:5]) # Prints characters starting from 3rd to 5th print (str[2:]) # Prints string starting from 3rd character print (str * 2) # Prints string two times print (str + "TEST") # Prints concatenated string
וכאשר נריץ את התוכנית נקבל את התוצאה הבאה:
!Hello World
H
llo
!llo World
!Hello World!Hello World
Hello World!TEST
רשימות List ב-Python
רשימות List הן הכלי הגמיש ביותר בשפת Python. רשימה מכילה פריטים אשר מופרדים בפסיקים (,) ותחומים בתוך סוגריים מרובעות ([ ]). רשימות בשפת Python הן הקונספט המקביל למערכים בשפת C, רק שאחד ההבדלים הבולטים בין השתיים, הוא שבשפת Python הפריטים אשר מופיעים ברשימה יכולים להיות מסוגי נתונים שונים, לעומת שפת C שבה כל המערך חייב להיות מסוג נתונים אחד.
ניתן לגשת לערכים שנשמרים ברשימה על ידי שימוש בסמל הסוגריים המרובעות ([ ]) וסמל הנקודותיים (:), כאשר האינדקס הראשון (0) מתחיל מהפריט הראשון ברשימה. תפקידו של סמל הפלוס (+) הוא למטרת שרשור רשימות שונות, וסמל המכפלת (*) נועד להכפלת רשימות. למשל:
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ] tinylist = [123, 'john'] print (list) # Prints complete list print (list[0]) # Prints first element of the list print (list[1:3]) # Prints elements starting from 2nd till 3rd print (list[2:]) # Prints elements starting from 3rd element print (tinylist * 2) # Prints list two times print (list + tinylist) # Prints concatenated lists
וכאשר נריץ את התוכנית נקבל את התוצאה הבאה:
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
רשימה בלתי משתנה – Tuple
Tuple הוא סוג נתונים אשר דומה לרשימה List. בדומה לרשימה, Tuple מכילה פריטים אשר מופרדים בפסיקים (,), ובשונה מברשימה רגילה, הרשימה ב-Tuple תחומה בסוגריים רגילות ( ). הבדל נוסף הוא ש-Tuple היא רשימה בלתי משתנה, כלומר שהיא קבועה ולא ניתן לשנות בה את הערכים שהוגדרו לה מראש. לדוגמה:
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) tinytuple = (123, 'john') print (tuple) # Prints complete tuple print (tuple[0]) # Prints first element of the tuple print (tuple[1:3]) # Prints elements starting from 2nd till 3rd print (tuple[2:]) # Prints elements starting from 3rd element print (tinytuple * 2) # Prints tuple two times print (tuple + tinytuple) # Prints concatenated tuple
וכאשר נריץ את התוכנית נקבל את התוצאה הבאה:
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
הדוגמה הבאה איננה תקינה בשפת Python, משום שננסה בדוגמה זו להזין ערך ל-Tuple, מה שכפי שהסברנו איננו חוקי בשפת Python :
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 ) list = [ 'abcd', 786 , 2.23, 'john', 70.2 ] tuple[2] = 1000 # Invalid syntax with tuple list[2] = 1000 # Valid syntax with list
מילון Dictionary ב-Python
מילון Dictionary אשר נקרא גם Hash-Table, הוא מעין תפריט המכיל מפתחות וערכים בדומה למילון סטנדרטי, כאשר אנו מגדירים מילון באמצעות סוגריים מסולסלות ({ }), וניגשים אליו ומזינים לו ערכים באמצעות סוגריים מרובעות ([ ]).
מפתח במילון יכול להיות מרוב סוגי הנתונים, אך בדרך כלל יופיע נתון מסוג מחרוזת או מספר, אך הערך יכול להיות מכל אובייקט אשר קיים ב-Python. לדוגמה:
dict = {} dict['one'] = "This is one" dict[2] = "This is two" tinydict = {'name': 'john','code':6734, 'dept': 'sales'} print (dict['one']) # Prints value for 'one' key print (dict[2]) # Prints value for 2 key print (tinydict) # Prints complete dictionary print (tinydict.keys()) # Prints all the keys print (tinydict.values()) # Prints all the values
וכאשר נריץ את התוכנית נקבל את התוצאה הבאה:
This is one
This is two
{'code': 6734, 'dept': 'sales', 'name': 'john'}
([dict_keys(['code', 'dept', 'name'
([dict_values([6734, 'sales', 'john'
שימו לב כי בניגוד לרשימות, במילונים לא קיים קונספט של סדר בפריטים, ואין משמעות לסדר שבו נרשמו הפריטים במילון.
המרת סוגי נתונים
במהלך עבודתנו כמתכנתים, ניתקל לא מעט פעמים בסיטואציות שבהן נצטרך להמיר סוגי נתונים, ובשפת Python יש פונקציות מובנות אשר נועדו לבצע פעולות מסוג זה. לפניכם טבלה שמבארת מגוון פונקציות שנועדו להמרת סוגי נתונים: