Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 446
Kernel: Python 3 (system-wide)

רשימות - lists

My Name:מאי אלימלך

My Partner Name:

from IPython.display import YouTubeVideo YouTubeVideo("KwDesuX1e_0")
בכל שאלה שאתם מתבקשים לומר מה התוצאה. במידה ויש שורות קוד שעליכם לומר מה יודפס, לכן אתם מתבקשים להעתיק את שורות הקוד לתא חדש , להריץ, ולכתוב תשובה (אפשר בעזרת סולמית לכתוב בעברית)
1. רשימה יכולה להכיל רק פריטים מאותו סוג? נכון/לא נכון
#רשימה יכולה להכיל פריטים מכל הסוגים כמו string,boolian,int,float
2. מה ידפיס קטע הקוד שבהמשך.
items = [-3.2, 4, True, 'a', 'A', ['as',4,1]] print(len(items)-1)
#ידפיס 5 items = [-3.2, 4, True, 'a', 'A', ['as',4,1]] print(len(items)-1)
5
3. כמה טיפוסי משתנים שונים ברשימה items בתרגיל הקודם?
#ברשימה זו יש מספרים מסוג int ו float יש ביטויי בוליאני , יש משתנים מסוג string של גם אותיות קטנות וגם גדולות ויש רשימה בתוך רשימה
4.מה ידפיס קטע הקוד שבהמשך:
a = [] print(type(a))
#<class '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] l1 + l2
['A', 'B', 7, 1, 2, 3]
7. עבור הרשימות l2 ו- l1 שבתרגיל הקודם, מה האיבר הרביעי ברשימה l1 אחרי הפקודה :
l1.append(l2)?
#['A', 'B', 7,[1, 2, 3]] l1 = ['A', 'B', 7] l2 = [1, 2, 3] l1.append(l2) l1
['A', 'B', 7, [1, 2, 3]]
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] l*4
[0, 0, 0, 0]
10.נתונות הרשימות
l1=[1,2,3] l2=[0]
צרו מהן את הרשימה:
[0,0,0,1,2,3,0,0,0]
l1=[1,2,3] l2=[0] l3=l2*3 l3+l1+l3
[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]
l=[1,5,2,7] l.sort() l2=[1,5,2,7] l2.sort() l2.reverse() #l3=l+l2 #l3 l3=l[1:2]*5 l4=l+l2+l3 l4
[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]
11. על ידי שימוש ב - range צרו את כל אחת מהרשימות שלמטה:
  • [-2, -1, 0, 1, 2]

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

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

#g=range(-2,3,1) #list(g) #h=range(0,-4,-1) #list(h) j=range(7,20,3) list(j)
[7, 10, 13, 16, 19]
12. צרו רשימה במרווחים קבועים שאינם דווקא שלמים. רשמו ליד כל שורת קוד הערה המסבירה אותו
l2=[]#יצרתי תחילה רשימה שהיא ריקה count=0 while count<10: count+=1.5#משתנה זה מעלה כל מספר ברשימה ב1.5 count2=count l2.append(count2)#הוספתי לרשימה את משתנה count2 כך שבכל פעם הקפיצות של האיברים ברשימה יגדלו ב1.5 l2
[1.5, 3.0, 4.5, 6.0, 7.5, 9.0, 10.5]
13.היפכו את הקוד בשאלה הקודמת לפונקציה בשם array. הפונקציה צריכה לקבל שלושה מספרים עשרוניים start, stop, ו- step ולהחזיר רשימה של מספרים עשורניים בתחום
start<=x<stopstart<=x< stop
שההפרש בין כל שניים צמודים הוא step.
def array(start,step,stop): l2=[] count=start l2.append(start) while count<stop: count+=step count2=count l2.append(count2) return list(l2) print(array(1,1.5,5))
[1, 2.5, 4.0, 5.5]
נניח כי בניסוי התקבלו שתי קבוצות של תוצאות האחת מוכלת ברשימה:
x = [-2, 3, -5, 4]
והשנייה ברשימה :
y = [1.6, 7, 3.1, 9]
בעזרת הקוד שבהמשך נוכל לשרטט גרף שלהן:
import matplotlib.pyplot as plt x = [-2, 3, -5, 4] 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')
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-11-d3b81d789617> in <module> 2 x = [-2, 3, -5, 4] 3 ----> 4 plt.plot(x ,y, 'ro')#איך קובעים את גודל הנקודה? 5 plt.plot(x ,y, 'b.')# 6 plt.xlabel('x', fontsize = 12) NameError: name 'y' is not defined
במידה ותרצו להעמיק באפשרויות שיש בספריה של יצירת גרפים matplotlib אני מפנה אתכם לקישור:
14. בדקו והסבירו מה עושות הפונקציה sum ו- zip כאשר הן פועלות על רשימה
#zip כלומר היא לוקחת את האיברים שנמצאים באותו המקום בשתי רשימות ומדפיסה אותםמייצר שתי זוגות טפלים מרשימות שהוא מקבל L1=[1,2,3] L2=['a','b','c'] for x in zip(L1,L2): print(x)
(1, 'a') (2, 'b') (3, 'c')
l=[1,2,3,4]#sum מחשבת את סכום אברי הרשימה sum(l)
10
15. קבלו רשימה שכל איבר בה הוא השורש של כל המספרים השלמים בין 1 ל- 1000. מה סכום האיברים ברשימה זו?
from math import sqrt num1=1 num2=[1] while (num1<=1000): num1+=1 if(sqrt(num1) % 1==0): num2.append(num1) sum(num2)
10416
from math import sqrt # sqrt צריכים להייבא מהספריה את הפקודה המחשבת שורש של מספר
16.כתבו פונקציה בשם avg הפונקציה מקבל רשימה ומחזירה את ממוצע איברי הרשימה.
l=[1,2,3,4] def avg(l): sum(l) len(l) print(sum(l)/len(l))
2.5
17.בדקו מה עושות הפונקציות min ו- max כאשר הן פועלות על רשימות, כלומר תכתבו שורות קוד, תריצו ותראו
l=[1,2,3,4] min(l)#הפונקציה מוצאת את האיבר הכי הקטן ברשימה ומדפיסה אותו
1
l2=[1,1000,3,4] max(l2)#הפונקציה מוצאת את האיבר הכי גדול ברשימה ומדפיסה אותו
1000
None