שיעורי מודול (1/4)
להגדיר ולחזור
פונקציה היא גוש קוד שניתן לשימוש חוזר: אתה מגדיר אותו פעם אחת עם def,
ואז תתקשר אליו כמה פעמים שתרצה. פונקציות הופכות את הקוד למודולרי,
ניתן לבדיקה ותיעוד עצמי.
תחביר בסיסי
def saluta(nome):
return f"Ciao, {nome}!"
saluta("Ada") # 'Ciao, Ada!'defמציג את הפונקציה, ואחריה השם והפרמטרים ב סוגריים.- ה-
:פותח את הבלוק המוזח. returnשולח ערך בחזרה למתקשר ומסיים את הפונקציה.
return מפורש לעומת None מרומז
אם לא תכתוב return, הפונקציה מחזירה את None באופן מרומז:
def stampa_e_basta(x):
print(x)
risultato = stampa_e_basta("ciao")
# prints 'ciao'
print(risultato) # Nonereturn חשוף (ללא ערך) מחזיר גם None, אך הוא יכול לשמש כמוקדם
יציאה:
def primo_pari(nums):
for n in nums:
if n % 2 == 0:
return n
return None # explicit: communicates "not found"מספר ערכים? החזר טופלה
לפייתון אין "פרמטרים החוצה": כדי להחזיר יותר מדבר אחד, החזר א tuple (לעתים קרובות פורק על ידי המתקשר).
def divisione_resto(a, b):
return a // b, a % b
quoziente, resto = divisione_resto(17, 5)
# 3, 2Docstring: תיעוד מובנה
המחרוזת הראשונה בתוך הפונקציה היא מחרוזת doc: היא מופיעה ב
help(fn) וכתיאור כלי ב-IDEs.
def area_cerchio(raggio):
"""Calcola l'area di un cerchio dato il raggio."""
import math
return math.pi * raggio ** 2היקף: משתנים מקומיים
משתנים המוגדרים בתוך פונקציה הם מקומי: הם לא קיימים בחוץ.
def f():
x = 10
return x
f() # 10
x # NameError: name 'x' is not definedפונקציות תמיד מחזירות משהו
ב-Python, אם פונקציה לא מכריזה במפורש על משפט return או כוללת return ריק, היא תחזיר באופן מרומז את הערך המיוחד None. אין פונקציות שלא מחזירות ערך.
נסה את זה
הגדר פונקציה `double(x)` שמחזירה `x *2`. ואז קרא לזה עם 7 והקצה את התוצאה ל'תוצאה'. הערכת `תוצאה`.
הצג רמז
השתמש בהחזר x * 2.
הפתרון זמין לאחר 3 ניסיונות
סקירת התרגיל
הגדר `min_max(nums)` שמחזיר tuple `(מינימום, מקסימום)`. קרא לזה '[3, 1, 4, 1, 5, 9, 2, 6]' ושחרר את התוצאה לתוך 'mn, mx'. הערך את `(mn, mx)`.
הצג רמז
החזר min(nums), max(nums)
הפתרון זמין לאחר 3 ניסיונות
אתגר נוסף
הגדר פונקציה \`is_palindrome(text)\` שמחזירה \`True\` אם מחרוזת הקלט שווה לגרסה ההפוכה שלה, ו-\`False\` אחרת. בדוק את הפונקציה עם \`is_palindrome("radar")\` כביטוי האחרון.
הצג רמז
השתמש בטקסט חיתוך [::-1] כדי להפוך את המחרוזת ולהשוות אותה לטקסט המקורי.
הפתרון זמין לאחר 3 ניסיונות