January 28, 2021

פייתון 5 - רשימות


הפרק הקודם:

פייתון 4 - קלט ופלט

מה נלמד

  • רשימות

רשימות

מערך או רשימה זהו אוסף של ערכים - 0 ערכים או יותר.
עד כה אם רצינו לאתחל 3 ערכים היינו עושים את זה כך:

1
2
3
a = "Hello"
b = "World"
c = "!"

a,b,c הם 3 משתנים שונים שמגדירים את הערכים.
ניתן להגדיר אותם עם משתנה אחד בלבד:

1
2
3
4
5
6
7
8
9
# Full name: Array
arr = ["Hello", "World", "!"]
print(arr)

arr2 = [1,2,3,4]
print(arr2)

arr3 = [1,"A", 2.5]
print(arr3)
  • יצירת רשימה חדשה נעשת בעזרת הסוגריים המרובעות [].
  • ערכים נוספים כותבים בעזרת פסיק ,.
  • הערכים מסודרים ע”פ סדר הופעתם משמאל לימין.
    למשל [1,2,3].
  • שימו לב: בתכנות קוראים להם “מערכים” אך בפייתון נהוג לקרוא להם “רשימות”.

האיבר הראשון הוא 0

עכשיו מגיע הקונספט הקשה להבנה בהתחלה: האיבר הראשון מתחיל במספר 0 ולא 1.
האיבר הראשון הוא 0, לא 1.

יש לנו 4 איברים ברשימה, כאשר הראשון הוא 0, השני הוא 1, שלישי 2, והאחרון 3.
באופן פשוט אפשר לחשוב על זה ככה, הסוגריים המרובעים “קופצים” לאיבר כמו פעולת חיבור על הרשימה.
האיבר הראשון = arr + 0
האיבר השני = arr + 1
האיבר השלישי = arr + 2
האיבר הרביעי = arr + 3

הגישה לרשימה מתבצעת בעזרת סוגריים מרובעות

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

לפני שתריצו את הקוד הבא תנסו לנחש מה הוא מדפיס,
אם ניחשתם הכל נכון - סימן שהבנתם את זה!

1
2
3
4
5
6
7
8
9
10
11
12
13
arr = [1,2,3,4,5]

# first:
print(arr[0])

# last:
print(arr[4])

# Also last:
print(arr[-1])

# One before last:
print(arr[-2])

מה קורה בסיטואציה הבאה?

1
2
arr = [1,2,3,4]
arr[4] # Problem!

תרגיל

  1. אתחלו רשימה עם 3 מספרים וסכמו אותם.
  2. אתחלו מערך עם 2 מחרוזות - אחת השם הפרטי שלכם והשני שם המשפחה שלכם, והדפיסו.
  3. מציאת מידע לבד:
    מצאו כיצד למצוא את גודל רשימה.
    אתחלו את הרשימה שלכם עם מס’ משתנים והדפיסו למסך את גודלו

להוסיף ולהוריד ערכים

אפשר לשנות משתנים רגילים, אם אתחלנו מספר כלשהו ל-5, בהמשך אנחנו יכולים לשנות אותו ל-6.
כך גם למערכים אפשר לשנות את האיברים שהם מכילים.

דוגמא:

1
2
3
arr = [1,2,3]
arr[0] = 5
print(arr[0]) # מה מודפס?

נניח אנחנו רוצים להוסיף עוד מספר, כיצד אנחנו עושים את זה?
בעזרת הפעולה insert או append.
insert - מוסיף ערך כלשהו באינדקס מסוים.
append - מוסיף את הערך בסוף הרשימה.

דוגמא:

1
2
3
4
5
6
arr = [9,8,7]
arr.append(5) # שם בסוף הרשימה 5.
print(arr)

arr.insert(2,4) # שם באינדקס 2 את הערך 4.
print(arr)

התמונה הזו ממחישה את מה שבעצם מתבצע

אפשר להבין את insert בכך שהוא כמו ישראלי טוב דוחף בתור למקום מסוים, במקרה שלנו למקום ה2.
זוכרים שאינדקס 2 זהו בעצם האלמנט השלישי? אם לא תעברו שוב לאחור ותקראו מחדש.

על מנת להוריד איברים מהמרשימה אנחנו יכולים להשתמש בpop או ב-remove
pop - מוריד ערך באינדקס מסוים.
remove - מוריד מהרשימה ערך מסוים.

1
2
3
4
5
6
arr = [9,8,7]
arr.pop(2)
print(arr)

arr.remove(8)
print(arr)

הpop הוריד לנו את האיבר במקום השני - שזהו האלמנט השלישי ברשימה, ערכו הוא 7.
ה-remove הוריד את הערך הראשון שהוא מצא 8.

1
2
3
4
5
arr = [9,8,7]
arr.pop(2)
print(arr)
arr.remove(8)
print(arr)

נסו זאת בעצמכם, קודם כל תנסו להבין מה קורה בקוד ובמידה ולא הצלחתם נסו להריץ אותו ולראות את ערכי הרשימה!

1
2
3
4
5
arr = [9,8,8]
arr.remove(8)
print(arr) # מה יודפס פה?
arr.remove(8)
print(arr) # ומה יודפס פה?

if in

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

1
2
3
4
5
arr = [1,2,3]
if 1 in arr:
print("Found one")
else:
print("Didnt find one")

מה יודפס כאן?

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

מחרוזת מורכבת מכמה תווים ולכן מייצגים אותה כרשימה של תווים!
בפייתון רשימה ומחרוזת הם משתנים מסוג שונה.
אך יש למחרוזות התנהגות דומה לרשימות.

גישה עם If-In

1
2
3
mySentence = 'Hello world, my name is iluga'
if 'Hello' in mySentence:
print('hello iluga')

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

אינדקס

1
2
name = 'Ilya'
print(name[0])

האם זה ייעבוד?

1
2
name = 'Elza'
name[0] = 'A'

תרגיל

  1. מהו אינדקס?
    א. מספר המייצג מיקום ברשימה.
    ב. מספר המייצג ערך ברשימה.
    ג. מספר המייצג את גודל הרשימה.

  2. השלימו את הקוד כך שיודפס “Horray”.

1
2
3
4
5
6
7
8
finalAnswer = 6
arr = [1,2,3]

answer = arr[_] * arr[_]
if answer == finalAnswer:
print("Horray")
else:
print("Something is wrong")
  1. השלימו את הקוד כך שיודפס “Horray”.
1
2
3
4
5
6
arr = [1]

if len(arr) == 4 and arr[-2] == 3:
print("Horray")
else:
print("Something is wrong")




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

פייתון 6 - לולאות

על הפוסט

הפוסט נכתב על ידי Ilya, רישיון על ידי CC BY-NC-ND 4.0.

שתפו את הפוסט

Email Facebook Linkedin Print

קנו לי קפה

#Software#Python