Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News Sign UpSign In
| Download
Views: 270
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
3. כמה טיפוסי משתנים שונים ברשימה items בתרגיל הקודם?
#5
4.מה ידפיס קטע הקוד שבהמשך:
a = [] print(type(a))
#list
5. נתונה הרשימה:
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]
7. עבור הרשימות l2 ו- l1 שבתרגיל הקודם, מה האיבר הרביעי ברשימה l1 אחרי הפקודה :
l1.append(l2)?
#[1, 2, 3]
8. נתונה הרשימה:
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]
10.נתונות הרשימות
l1=[1,2,3] l2=[0]
צרו מהן את הרשימה:
[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]
l=[1,5,2,7] l1=[] l.sort() l1.extend(l) l.reverse() l1.extend(l) l1.extend([l1[1]]*5) l1
[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]

r1=range(-2,3) list(r1)
[-2, -1, 0, 1, 2]
r2=range(0,-4,-1) list(r2)
[0, -1, -2, -3]
r3=range(7,22,3) list(r3)
[7, 10, 13, 16, 19]
12. צרו רשימה במרווחים קבועים שאינם דווקא שלמים. רשמו ליד כל שורת קוד הערה המסבירה אותו
start=0 #נגדיר את המספר הראשון שבו הרשימה תתחיל stop=25 #נגדיר את המספר האחרון בו השימה תפסיק step=2.5 #נגדיר את הקפיצות בין כל מספר ברשימה l=[(start)] #נכין רשימה שמתחילה במספר הראשון while start<stop-step: #נעשה לולאה כדי שהרשימה תעצר במספר שרצינו start+=step #נוסיף למספר ההתחלתי את הקפיצה שרצינו שיעשה l.append(start) #נוסיף את המספר שהגדלנו בשורה הקודמת l #נקרא לרשימה
[0, 2.5, 5.0, 7.5, 10.0, 12.5, 15.0, 17.5, 20.0, 22.5]
13.היפכו את הקוד בשאלה הקודמת לפונקציה בשם array. הפונקציה צריכה לקבל שלושה מספרים עשרוניים start, stop, ו- step ולהחזיר רשימה של מספרים עשורניים בתחום
start<=x<stopstart<=x< stop
שההפרש בין כל שניים צמודים הוא step.
def array(start,stop,step): l=[(start)] while start<stop-step: start+=step l.append(start) return list(l) print(array(0,100,4.5))
[0, 4.5, 9.0, 13.5, 18.0, 22.5, 27.0, 31.5, 36.0, 40.5, 45.0, 49.5, 54.0, 58.5, 63.0, 67.5, 72.0, 76.5, 81.0, 85.5, 90.0, 94.5, 99.0]
נניח כי בניסוי התקבלו שתי קבוצות של תוצאות האחת מוכלת ברשימה:
x = [-2, 3, -5, 4]
והשנייה ברשימה :
y = [1.6, 7, 3.1, 9]
בעזרת הקוד שבהמשך נוכל לשרטט גרף שלהן:
import matplotlib.pyplot as plt x = [-2, 3, -5, 4] y = [1.6, 7, 3.1, 9] plt.plot(x ,y, 'ro',Markersize=20)#איך קובעים את גודל הנקודה? plt.plot(x ,y, 'b.',Markersize=10)# 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 כאשר הן פועלות על רשימה
#מחברת בין 2 רשימות zip l1=(range(0,10,1)) l2=(range(10,20,1)) print('The combined list is:',list(zip(l1,l2))) #בודקת מה הסכום של כל האיברים ברשימה ביחד sum print('All the numbers in list l1 combined=',sum(l1)) print('All the numbers in list l2 combined=',sum(l2))
The Combined List is: [(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15), (6, 16), (7, 17), (8, 18), (9, 19)] all The Numbers in list l1 combined= 45 all The Numbers in list l2 combined= 145
15. קבלו רשימה שכל איבר בה הוא השורש של כל המספרים השלמים בין 1 ל- 1000. מה סכום האיברים ברשימה זו?
from math import sqrt l1=list(range(1,1001)) l2=[] for i in l1: l2.append(math.sqrt(i)) sum(l2)
21097.455887480734
from math import sqrt # sqrt צריכים להייבא מהספריה את הפקודה המחשבת שורש של מספר
16.כתבו פונקציה בשם avg הפונקציה מקבל רשימה ומחזירה את ממוצע איברי הרשימה.
def avg(list): x=sum(list)/len(list) return x l=[100,96,98] #ממוצע מבחנים של ילד גאון חחחחח avg(l)
98.0
17.בדקו מה עושות הפונקציות min ו- max כאשר הן פועלות על רשימות, כלומר תכתבו שורות קוד, תריצו ותראו
l=[2,1,5,23,8,234,3] #מדפיס את האיבר הכי קטן ברשימה(לא הראשון ברשימה) min print(min(l)) #מדפיס את האיבר הכי גדול ברשימה(לא האחרון ברשימה) max print(max(l))
1 234