| Hosted by CoCalc | Download
Kernel: Python 3 (Anaconda 2019)

רשימות - lists

My Name: הילה טטונגל

My Partner Name:

from IPython.display import YouTubeVideo YouTubeVideo("KwDesuX1e_0")
בכל שאלה שאתם מתבקשים לומר מה התוצאה. במידה ויש שורות קוד שעליכם לומר מה יודפס, לכן אתם מתבקשים להעתיק את שורות הקוד לתא חדש , להריץ, ולכתוב תשובה (אפשר בעזרת סולמית לכתוב בעברית)
1. רשימה יכולה להכיל רק פריטים מאותו סוג? נכון/לא נכון
#לא נכון
2. מה ידפיס קטע הקוד שבהמשך.
items = [-3.2, 4, True, 'a', 'A', ['as',4,1]] print(len(items)-1)
items = [-3.2, 4, True, 'a', 'A', ['as',4,1]] print(len(items)-1) #5
5
3. כמה טיפוסי משתנים שונים ברשימה items בתרגיל הקודם?
#5
4.מה ידפיס קטע הקוד שבהמשך:
a = [] print(type(a))
#list a = [] print(type(a))
<class 'list'>
5. נתונה הרשימה:
my_list=[2,5,-2,12.3,7]
מה יודפס על ידי המשפט:
print (3*my_list[1])
#15 my_list=[2,5,-2,12.3,7] print (3*my_list[1])
15
6. נתונה הרשימה:
l1 = ['A', 'B', 7]
ונתונה הרשימה
l2 = [1, 2, 3]
מה תוצאת הביטוי:
l1 + l2
#['A', 'B', 7, 1, 2, 3] l1 = ['A', 'B', 7] l2 = [1, 2, 3] print(l1 + l2) l1.append(l2) print(l1)
['A', 'B', 7, 1, 2, 3] ['A', 'B', 7, [1, 2, 3]]
7. עבור הרשימות l2 ו- l1 שבתרגיל הקודם, מה האיבר הרביעי ברשימה l1 אחרי הפקודה :
l1.append(l2)?
# 1
8. נתונה הרשימה:
mass = [1.23, 3.45, 6.7, 2.3, 11.5]
מה יחזיר המחשב אחרי הקלדת המשפט:
6.7 in mass
#true mass = [1.23, 3.45, 6.7, 2.3, 11.5] 6.7 in mass
True
9. נתונה הרשימה
l=[0]
מה תוצאת הביטוי 4* l?
[0,0,0,0]
l=[0] print(4*l)
[0, 0, 0, 0]
10.נתונות הרשימות
l1=[1,2,3] l2=[0]
צרו מהן את הרשימה:
[0,0,0,1,2,3,0,0,0]
#kncji l1=[1,2,3] l2=[0] l3=[] l3.append(l2*3+l1+l2*3) print(l3)
[[0, 0, 0, 1, 2, 3, 0, 0, 0]]
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]
[[7, 5, 2, 1]]
l=[1,5,2,7] l1=[1,5,2,7] l.sort() l1.sort() l1.reverse() l2=l1[2:3]*5 k=l+l1+l2 k
[1, 2, 5, 7, 7, 5, 2, 1, 2, 2, 2, 2, 2]

הפונקציה range

הפונקציה:
range(start,stop,step)
היא פונקציה המיצרת אובייקט המחזיר סידרה חשבונית של מספרים שלמים המתחילים ב-start ומסתימים באיבר הגדול ביותר שעדיין קטן מ- stop - step. הפרש הסידרה הוא step. הפרמטרים start, step ו- stop חייבים להיות מספרים שלמים.
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:
list(r)
[-5, -3, -1, 1, 3]
ברירת המחדל ל- start היא 0 ואילו ברירת המחדל ל- step היא 1
[r]
[range(-5, 5, 2)]
11. על ידי שימוש ב - range צרו את כל אחת מהרשימות שלמטה:
  • [-2, -1, 0, 1, 2]

  • [0, -1, -2, -3]

  • [7, 10, 13, 16, 19]

a = range(-2,3,1) list(a)
[-2, -1, 0, 1, 2]
b = range(0,-4,-1) list(b)
[0, -1, -2, -3]
c = range(7,20,3) list(c)
[7, 10, 13, 16, 19]
12. צרו רשימה במרווחים קבועים שאינם דווקא שלמים. רשמו ליד כל שורת קוד הערה המסבירה אותו
l=[] x=0 while x<5: x=+0.3 l.append(x) print(l)
x=0 #הגדרתי משתנה x a = [] #יצרתי רשימה while x<4: x+=0.5 #הגדלת המספר כל פעם ב0.5 a.append(x) #הוספת המספר בסוף הרשימה list(a)
[0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0]
13.היפכו את הקוד בשאלה הקודמת לפונקציה בשם array. הפונקציה צריכה לקבל שלושה מספרים עשרוניים start, stop, ו- step ולהחזיר רשימה של מספרים עשורניים בתחום
start<=x<stopstart<=x< stop
שההפרש בין כל שניים צמודים הוא step.
def array(start, stop, step): a = [] a.append(start) while start<stop-step: start+=step a.append(start) return list(a) print(array(2.5,5.5,0.5))
[2.5, 3.0, 3.5, 4.0, 4.5, 5.0]
נניח כי בניסוי התקבלו שתי קבוצות של תוצאות האחת מוכלת ברשימה:
x = [-2, 3, -5, 4]
והשנייה ברשימה :
y = [1.6, 7, 3.1, 9]
בעזרת הקוד שבהמשך נוכל לשרטט גרף שלהן:
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')
Image in a Jupyter notebook
במידה ותרצו להעמיק באפשרויות שיש בספריה של יצירת גרפים matplotlib אני מפנה אתכם לקישור:
14. בדקו והסבירו מה עושות הפונקציה sum ו- zip כאשר הן פועלות על רשימה
#הפונקציה zip לוקחת שתי רשימות ומחברת את האיברים בעלי אותו מספר סידורי לנקודה אחת. ומציגה את כל הנקודות כרשימה חדשה. #הפונקציה sum מחברת את ערכי הרשימה
a = [1,2,3,6,5] b = [5,6,7,8] x = list(zip(a,b)) print(x)
[(1, 5), (2, 6), (3, 7), (6, 8)]
15. קבלו רשימה שכל איבר בה הוא השורש של כל המספרים השלמים בין 1 ל- 1000. מה סכום האיברים ברשימה זו?
from math import sqrt x= 0 l=[] while x<1000: l.append(sqrt(x)) x+=1 sum(l)
21065.833110879048
from math import sqrt x=0 a=[] while x<=1000: b = x**0.5 a.append(b) x+=1 sum(a)
21097.455887480734
from math import sqrt # sqrt צריכים להייבא מהספריה את הפקודה המחשבת שורש של מספר
16.כתבו פונקציה בשם avg הפונקציה מקבל רשימה ומחזירה את ממוצע איברי הרשימה.
def avg(l): suml= sum(l) lenl= len(l) return suml/lenl avg([5,10,3,25,34])
15.4
a=[] def avg(a): x = sum(a) b = len(a) print(x/b) avg([5,7,2.3,3])
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-1-a82fe16274de> in <module>() 4 b = len.a 5 print(x/b) ----> 6 avg([5,7,2.3,3]) <ipython-input-1-a82fe16274de> in avg(a) 2 def avg(a): 3 x = sum(a) ----> 4 b = len.a 5 print(x/b) 6 avg([5,7,2.3,3]) AttributeError: 'builtin_function_or_method' object has no attribute 'a'
17.בדקו מה עושות הפונקציות min ו- max כאשר הן פועלות על רשימות, כלומר תכתבו שורות קוד, תריצו ותראו
a=[-3,1,2,3,4,5,6,7,8,9] b=[3,21,34.5,'we',4,'o'] c=[4,2,8,1] max(c)*min(a) max(c)+min(a)
5
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-5-9a25c962671f> in <module>() 1 b=[3,21,34.5,'we',4,'o'] ----> 2 min(b) TypeError: '<' not supported between instances of 'str' and 'int'