פייתון

נושא

פונקציות ומתודות מוכנות

כל מה שקיים כבר בשפה, ואיפה מחפשים עוד.

מגיע מיחידות: 2, 3, 6, 7, 8

בעמוד הזהפונקציה מול מתודהפונקציותמתודותפרמטרים אופציונלייםאיפה מחפשיםבדיקה עצמית

פונקציה מול מתודה

פונקציה מתודה
צורה שם(פרמטרים) אובייקט.שם(פרמטרים)
דוגמה len(x), math.sqrt(9) "abc".upper(), lst.append(4)
שייכת ל עומדת בפני עצמה, או בתוך ספרייה טיפוס מסוים

הנקודה מטעה. ב-math.sqrt היא אומרת "מתוך הספרייה math". ב-"abc".upper() היא אומרת "המתודה של המחרוזת הזו".

פונקציות

מה עושה דוגמה תוצאה
print מדפיס print("a", 1) a 1
input קולט. מחזיר מחרוזת input("? ") מה שהוקלד
type הטיפוס type(2) <class 'int'>
int, float, str, bool הסבה int("5") 5
list, tuple, dict יצירה או הסבה list("ab") ['a', 'b']
len אורך len([1, 2]) 2
max, sum הגדול, הסכום sum([1, 2]) 3
sorted רשימה חדשה ממוינת sorted([2, 1]) [1, 2]
range סדרת מספרים list(range(3)) [0, 1, 2]
math.sqrt שורש. מחזיר float math.sqrt(9) 3.0
help, dir עזרה, רשימת מתודות dir(str) רשימה

מתודות

טיפוס מתודה מה עושה משנה את המקור?
מחרוזת upper() אותיות גדולות לא, מחזירה חדשה
מחרוזת zfill(n) אפסים משמאל לא, מחזירה חדשה
רשימה append(x) מוסיפה בסוף כן, מחזירה None
רשימה remove(x) מוחקת מופע ראשון כן
רשימה count(x) כמה פעמים לא
רשימה sort() ממיינת כן, מחזירה None
מילון pop(k) מוחקת ומחזירה ערך כן
מילון keys(), values(), items() מפתחות, ערכים, זוגות לא

העמודה האחרונה היא מה שבודקים במבחנים. מתודות של מחרוזת לא יכולות לשנות אותה, כי מחרוזת היא immutable. מתודות של רשימה ומילון כן, והן בדרך כלל מחזירות None.

>>> s = "hi"
>>> s.upper()
'HI'
>>> s
'hi'
>>> lst = [2, 1]
>>> print(lst.sort())
None
>>> lst
[1, 2]

פרמטרים אופציונליים

חלק מהפונקציות מקבלות פרמטרים שלא חייבים לשלוח:

>>> sorted(["moon", "asteroid", "galaxy"], key=len)
['moon', 'galaxy', 'asteroid']
>>> print("a", "b", end="!\n")
a b!

מה כל פונקציה מקבלת: help(sorted), או התיעוד של פייתון.

איפה מחפשים

  • help(): ממשק עזרה. רווח מדפדף, q יוצא
  • help(sorted): ישר לפונקציה, וגם לפונקציות שכתבתם, אם יש להן docstring
  • dir(list): כל המתודות של רשימה
  • אינטרנט: רק תיעוד של פייתון 3

בדיקה עצמית

  1. מה יחזיר "42".zfill(6)?
  2. מה יודפס: x = [3, 1], y = x.sort(), print(y)?
  3. מה ההבדל בין sorted(lst) לבין lst.sort()?
  4. מה התוצאה של len({"a": 1, "b": 2})?

תשובות. 1: '000042'. 2: None. 3: sorted מחזירה רשימה חדשה ולא נוגעת במקור. sort משנה את המקור ומחזירה None. 4: 2, מספר הזוגות.