Kernel: Python 3 (Anaconda 2019)
רשימות - lists
My Name:איתמר
My Partner Name:יותם
In [1]:
בכל שאלה שאתם מתבקשים לומר מה התוצאה. במידה ויש שורות קוד שעליכם לומר מה יודפס, לכן אתם מתבקשים להעתיק את שורות הקוד לתא חדש , להריץ, ולכתוב תשובה (אפשר בעזרת סולמית לכתוב בעברית)
1. רשימה יכולה להכיל רק פריטים מאותו סוג? נכון/לא נכון
In [1]:
2. מה ידפיס קטע הקוד שבהמשך.
In [2]:
5
In [0]:
3. כמה טיפוסי משתנים שונים ברשימה items בתרגיל הקודם?
In [3]:
5
4.מה ידפיס קטע הקוד שבהמשך:
In [1]:
<class 'list'>
5. נתונה הרשימה:
מה יודפס על ידי המשפט:
In [0]:
6. נתונה הרשימה:
ונתונה הרשימה
מה תוצאת הביטוי:
In [9]:
['a', 'b', 7, 1, 2, 3]
In [12]:
In [14]:
7. עבור הרשימות l2 ו- l1 שבתרגיל הקודם, מה האיבר הרביעי ברשימה l1 אחרי הפקודה :
In [18]:
8. נתונה הרשימה:
מה יחזיר המחשב אחרי הקלדת המשפט:
In [17]:
9. נתונה הרשימה
מה תוצאת הביטוי 4* l?
In [19]:
[0, 0, 0, 0]
In [20]:
10.נתונות הרשימות
צרו מהן את הרשימה:
In [22]:
[0, 0, 0, 1, 2, 3, 0, 0, 0]
11.בעזרת הרשימה
צרו את הרשימה:
In [0]:
In [115]:
[1, 2, 5, 7, 2, 5, 1, 2, 7, 2, 7, 2, 7, 2, 7, 2, 7]
In [84]:
[1, 2, 5, 7]
In [73]:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-73-7c1773cd4af1> in <module>()
----> 1 l+l2
TypeError: can only concatenate list (not "NoneType") to list
In [0]:
הפונקציה range
הפונקציה:
היא פונקציה המיצרת אובייקט המחזיר סידרה חשבונית של מספרים שלמים המתחילים ב-start ומסתימים באיבר הגדול ביותר שעדיין קטן מ- stop - step. הפרש הסידרה הוא step. הפרמטרים start, step ו- stop חייבים להיות מספרים שלמים.
In [5]:
-5
-3
-1
1
3
כדי ליצור אובייקט מסוג range רשימה נשתמש בפונקציה list:
In [114]:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-114-9b31f56ba9a7> in <module>()
----> 1 list(r)
NameError: name 'r' is not defined
ברירת המחדל ל- start היא 0 ואילו ברירת המחדל ל- step היא 1
In [123]:
range(-2, 3)
11. על ידי שימוש ב - range צרו את כל אחת מהרשימות שלמטה:
[-2, -1, 0, 1, 2]
[0, -1, -2, -3]
[7, 10, 13, 16, 19]
In [124]:
[-2, -1, 0, 1, 2]
In [126]:
[0, -1, -2, -3]
In [127]:
[7, 10, 13, 16, 19]
12. צרו רשימה במרווחים קבועים שאינם דווקא שלמים. רשמו ליד כל שורת קוד הערה המסבירה אותו
In [23]:
[0, 0.4, 0.8, 1.3, 1.8, 2.3, 2.8, 3.3, 3.8, 4.3, 4.8, 5.3, 5.8, 6.3, 6.8, 7.3]
13.היפכו את הקוד בשאלה הקודמת לפונקציה בשם array. הפונקציה צריכה לקבל שלושה מספרים עשרוניים start, stop, ו- step ולהחזיר רשימה של מספרים עשורניים בתחום
שההפרש בין כל שניים צמודים הוא step.
In [27]:
[0.1, 100.6, 201.1, 301.6, 402.1, 502.6, 603.1, 703.6]
נניח כי בניסוי התקבלו שתי קבוצות של תוצאות האחת מוכלת ברשימה:
In [8]:
והשנייה ברשימה :
In [9]:
בעזרת הקוד שבהמשך נוכל לשרטט גרף שלהן:
In [142]:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-142-f12ff1196032> in <module>()
1 import matplotlib.pyplot as plt
----> 2 plt.plot(x ,y, 'ro')#איך קובעים את גודל הנקודה?
3 plt.plot(x ,y, 'b.')#
4 plt.xlabel('x', fontsize = 12)
5 plt.ylabel('x', fontsize = 12)
/ext/anaconda5/lib/python3.6/site-packages/matplotlib/pyplot.py in plot(scalex, scaley, data, *args, **kwargs)
2809 return gca().plot(
2810 *args, scalex=scalex, scaley=scaley, **({"data": data} if data
-> 2811 is not None else {}), **kwargs)
2812
2813
/ext/anaconda5/lib/python3.6/site-packages/matplotlib/__init__.py in inner(ax, data, *args, **kwargs)
1808 "the Matplotlib list!)" % (label_namer, func.__name__),
1809 RuntimeWarning, stacklevel=2)
-> 1810 return func(ax, *args, **kwargs)
1811
1812 inner.__doc__ = _add_data_doc(inner.__doc__,
/ext/anaconda5/lib/python3.6/site-packages/matplotlib/axes/_axes.py in plot(self, scalex, scaley, *args, **kwargs)
1609 kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D._alias_map)
1610
-> 1611 for line in self._get_lines(*args, **kwargs):
1612 self.add_line(line)
1613 lines.append(line)
/ext/anaconda5/lib/python3.6/site-packages/matplotlib/axes/_base.py in _grab_next_args(self, *args, **kwargs)
391 this += args[0],
392 args = args[1:]
--> 393 yield from self._plot_args(this, kwargs)
394
395
/ext/anaconda5/lib/python3.6/site-packages/matplotlib/axes/_base.py in _plot_args(self, tup, kwargs)
368 x, y = index_of(tup[-1])
369
--> 370 x, y = self._xy_from_xy(x, y)
371
372 if self.command == 'plot':
/ext/anaconda5/lib/python3.6/site-packages/matplotlib/axes/_base.py in _xy_from_xy(self, x, y)
229 if x.shape[0] != y.shape[0]:
230 raise ValueError("x and y must have same first dimension, but "
--> 231 "have shapes {} and {}".format(x.shape, y.shape))
232 if x.ndim > 2 or y.ndim > 2:
233 raise ValueError("x and y can be no greater than 2-D, but have "
ValueError: x and y must have same first dimension, but have shapes (1,) and (7,)
במידה ותרצו להעמיק באפשרויות שיש בספריה של יצירת גרפים matplotlib אני מפנה אתכם לקישור:
14. בדקו והסבירו מה עושות הפונקציה sum ו- zip כאשר הן פועלות על רשימה
In [158]:
14
In [159]:
<zip at 0x7f9cc1eb7588>
15. קבלו רשימה שכל איבר בה הוא השורש של כל המספרים השלמים בין 1 ל- 1000. מה סכום האיברים ברשימה זו?
In [160]:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-160-99c3e7c0d591> in <module>()
----> 1 x[1,1001]
TypeError: 'float' object is not subscriptable
In [15]:
21065.833110879048
16.כתבו פונקציה בשם avg הפונקציה מקבל רשימה ומחזירה את ממוצע איברי הרשימה.
In [18]:
26669.0
In [9]:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-9-4583bd2cf784> in <module>()
1 x=[1,2,3,4]
----> 2 x.extend()
TypeError: extend() takes exactly one argument (0 given)
In [180]:
6.0
17.בדקו מה עושות הפונקציות min ו- max כאשר הן פועלות על רשימות, כלומר תכתבו שורות קוד, תריצו ותראו
In [182]:
5
In [1]:
7
In [6]:
[<matplotlib.lines.Line2D at 0x7ff2cdaacad0>]
In [5]:
[<matplotlib.lines.Line2D at 0x7ff2cdd19090>]
In [0]: