Sharedassignments / assignment5 / assignment5_lists.ipynbOpen in CoCalc
Author: yotam israeli
Views : 76

רשימות - lists

My Name:yotam israeli

My Partner Name:itamar kalmanson

In [10]:
from IPython.display import YouTubeVideo YouTubeVideo("KwDesuX1e_0")
בכל שאלה שאתם מתבקשים לומר מה התוצאה. במידה ויש שורות קוד שעליכם לומר מה יודפס, לכן אתם מתבקשים להעתיק את שורות הקוד לתא חדש , להריץ, ולכתוב תשובה (אפשר בעזרת סולמית לכתוב בעברית)
1. רשימה יכולה להכיל רק פריטים מאותו סוג? נכון/לא נכון
In [11]:
#true
2. מה ידפיס קטע הקוד שבהמשך.
items = [-3.2, 4, True, 'a', 'A', ['as',4,1]]
print(len(items)-1)
In [12]:
items = [-3.2, 4, True, 'a', 'A', ['as',4,1]] print(len(items)-1) #5
5
3. כמה טיפוסי משתנים שונים ברשימה items בתרגיל הקודם?
In [13]:
#5
4.מה ידפיס קטע הקוד שבהמשך:
a = []
print(type(a))
In [12]:
a = [] print(type(a)) #יכתוב את הסוג של a
<class 'list'>
5. נתונה הרשימה:
my_list=[2,5,-2,12.3,7] 
מה יודפס על ידי המשפט:
print (3*my_list[1])
In [15]:
my_list=[2,5,-2,12.3,7] print (3*my_list[1]) #15
15
6. נתונה הרשימה:
l1 = ['A', 'B',  7]
ונתונה הרשימה
l2 = [1, 2, 3]
מה תוצאת הביטוי:
l1 + l2
In [16]:
l1 = ['A', 'B', 7] l2 = [1, 2, 3] #its going to be ['A','B',7, 1, 2,3] l1+l2
['A', 'B', 7, 1, 2, 3]
7. עבור הרשימות l2 ו- l1 שבתרגיל הקודם, מה האיבר הרביעי ברשימה l1 אחרי הפקודה :
l1.append(l2)?
In [17]:
#its going to be [1,2,3]
In [18]:
l1 = ['A', 'B', 7] l2 = [1, 2, 3] l1.append(l2)
In [ ]:
8. נתונה הרשימה:
mass = [1.23, 3.45, 6.7, 2.3, 11.5]
מה יחזיר המחשב אחרי הקלדת המשפט:
6.7 in mass
In [19]:
#True
In [20]:
mass = [1.23, 3.45, 6.7, 2.3, 11.5] 6.7 in mass
True
9. נתונה הרשימה
l=[0]
מה תוצאת הביטוי 4* l?
In [21]:
#[0,0,0,0]
In [22]:
l=[0] l *4
[0, 0, 0, 0]
10.נתונות הרשימות
l1=[1,2,3]
l2=[0] 
צרו מהן את הרשימה:
[0,0,0,1,2,3,0,0,0]
In [23]:
l1=[1,2,3] l2=[0] l2*3+l1+l2*3
[0, 0, 0, 1, 2, 3, 0, 0, 0]
11.בעזרת הרשימה
l=[1,5,2,7]
צרו את הרשימה:
[1,2,5,7,7,5,2,1,2,2,2,2,2]
In [24]:
l=[1,5,2,7] x=[1,5,2,7] y=[1,5,2,7] l.sort() l x.sort() x.reverse() x y.remove(1) y.remove(7) y.remove(5) y l+x+y*5
[1, 2, 5, 7, 7, 5, 2, 1, 2, 2, 2, 2, 2]
In [ ]:

הפונקציה range

הפונקציה:
 range(start,stop,step)
היא פונקציה המיצרת אובייקט המחזיר סידרה חשבונית של מספרים שלמים המתחילים ב-start ומסתימים באיבר הגדול ביותר שעדיין קטן מ- stop - step. הפרש הסידרה הוא step. הפרמטרים start, step ו- stop חייבים להיות מספרים שלמים.
In [25]:
r = range(-5,5,2) #+מחזיר רשימה. שני צעדים כל פעם. מתחיל מ 5- וממשיך עד < 5 i = 0 while i < len(r): print (r[i]) i = i + 1
-5 -3 -1 1 3
כדי ליצור אובייקט מסוג range רשימה נשתמש בפונקציה list:
In [26]:
list(r)
[-5, -3, -1, 1, 3]
ברירת המחדל ל- start היא 0 ואילו ברירת המחדל ל- step היא 1
In [27]:
[r]
[range(-5, 5, 2)]
11. על ידי שימוש ב - range צרו את כל אחת מהרשימות שלמטה:
  • [-2, -1, 0, 1, 2]
  • [0, -1, -2, -3]
  • [7, 10, 13, 16, 19]
In [28]:
r = range(-2,3) list(r)
[-2, -1, 0, 1, 2]
In [29]:
b=range(-3,1) list(b)
[-3, -2, -1, 0]
In [30]:
c=range(7,20,3) list(c)
[7, 10, 13, 16, 19]
In [ ]:
12. צרו רשימה במרווחים קבועים שאינם דווקא שלמים. רשמו ליד כל שורת קוד הערה המסבירה אותו
In [31]:
ex=[0,0.5,1] #הגדרתי בהתחלה רשימה x=1 while x<7 : #הגדרתי לולאה שכל פעם תוסיף חצי עד שתגיע ל7 x=x+0.5 ex.append(x) print(ex)
[0, 0.5, 1, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0]
In [ ]:
13.היפכו את הקוד בשאלה הקודמת לפונקציה בשם array. הפונקציה צריכה לקבל שלושה מספרים עשרוניים start, stop, ו- step ולהחזיר רשימה של מספרים עשורניים בתחום
start<=x<stopstart<=x< stop
שההפרש בין כל שניים צמודים הוא step.
In [32]:
def arrey(start, step, stop): l=[start] while start<stop-step: start+=step l.append(start) return list(l)
In [33]:
print (arrey(-10,2.5,10))
[-10, -7.5, -5.0, -2.5, 0.0, 2.5, 5.0, 7.5]
נניח כי בניסוי התקבלו שתי קבוצות של תוצאות האחת מוכלת ברשימה:
In [34]:
x = [-2, 3, -5, 4]
והשנייה ברשימה :
In [35]:
y = [1.6, 7, 3.1, 9]
בעזרת הקוד שבהמשך נוכל לשרטט גרף שלהן:
In [36]:
import matplotlib.pyplot as plt plt.plot(x ,y, 'ro')#איך קובעים את גודל הנקודה? plt.plot(x ,y, 'b.')# plt.xlabel('x', fontsize = 12) plt.ylabel('x', fontsize = 12) plt.grid(True) plt.title( 'x Vs y grph',fontsize = 18, color = 'blue')
Text(0.5, 1.0, 'x Vs y grph')
במידה ותרצו להעמיק באפשרויות שיש בספריה של יצירת גרפים matplotlib אני מפנה אתכם לקישור:
14. בדקו והסבירו מה עושות הפונקציה sum ו- zip כאשר הן פועלות על רשימה
In [37]:
e=[0,5,2,6] sum(e) #sum זה סכום
13
In [17]:
a=[1,2,3,4] b=[5,6,7,8] # זיפ משלב בין רשימות, list(zip(a,b))
[(1, 5), (2, 6), (3, 7), (4, 8)]
15. קבלו רשימה שכל איבר בה הוא השורש של כל המספרים השלמים בין 1 ל- 1000. מה סכום האיברים ברשימה זו?
In [47]:
t=[] x=0 while x<1001: y=x**0.5 t.append(y) x=x+1 print(sum(t))
21097.455887480734
In [40]:
from math import sqrt # sqrt צריכים להייבא מהספריה את הפקודה המחשבת שורש של מספר
In [41]:
x=1000**0.5 print(x) #בדקתי אם איקס צריך להיות קטן מ1000 או 1001
31.622776601683793
16.כתבו פונקציה בשם avg הפונקציה מקבל רשימה ומחזירה את ממוצע איברי הרשימה.
In [3]:
def avg(list1): #הפונקציה תקבל כל רשימה של שלושה משתנים ותעשה להם ממוצע t=sum(list1) y=len(list1) return t/y
In [9]:
x=list1=[234,53,765] avg(x)
350.6666666666667
17.בדקו מה עושות הפונקציות min ו- max כאשר הן פועלות על רשימות, כלומר תכתבו שורות קוד, תריצו ותראו
In [44]:
A=[1,2,3,4] min(A)
1
In [45]:
A=[1,2,3,4] max(A)
4
In [46]:
#מראה את המספרים הגדולים או הנמוכים ביותר ברשימה
In [ ]: