שאלה לגבי ערך שלא קיים במילון, למשל, אם אין תפוחים, אזי, אין לי ערך של 0 ב TUPLE
אני מקבל הודעת שגיאה, שהוא מצפה לקבל 2 משתנים , אבל בפועל יש רק אחד (מובן לי),
אז, איך ניתן להמנע מזה? ניסיתי לרשום משהו כמו מה שהסבירו כאן: STACKOVERFLOW אבל זה לא עובד עדיין.
for item_name, stock in items_to_find.items(): AttributeError: 'list' object has no attribute 'items'
הפונקציה למטה נכשלת:
def get_stock(item_name_to_find, items_to_find):
for item_name, stock in items_to_find:
if item_name == item_name_to_find:
return stock
items = [('banana', 2), ('apple', ), ('carrot', 4)]
get_stock('apple', items)
Yam
מה זה אומר מבחינה הגיונית שאין שם ערך? אין לזה משמעות סמנטית
אולי צריך להיות שם 0
tobenary
בכוונה עשיתי שלא יהיה שם ערך. מקרה קצה.
אי אפשר להתגבר על זה?
Yam
אפשר הכל, השאלה מה המטרה. במקרה הזה מקרה הקצה לא כ"כ הגיוני בעיניי, יותר הגיוני שכשאין stock יהיה כתוב 0.
יש דרך שלא למדנו, אבל איך שהייתי כותב את זה עם החומר שאנחנו יודעים כרגע זה לשים פונקציה שדואגת שכשאין איבר שני היא שמה שם 0.
tobenary
הבנתי, אז זאת הייתה כוונת המשורר בתרגיל הנ"ל.
כי הרי אם גם ככה אם אני אאתחל את התפוחים ל 0, לא עשיתי משהו בתרגול, כי זה אותו הדבר כמו להחזיר מספר אחר.
אוקיי, אז לפני שאני מתחיל ל"השים" את הפונקציה של לקחת שני משתנים עם FOR, לדאוג לזה שבפועל יהיו שני משתנים, ואם ה LEN הוא 1 במקום 2, לדאוג למלא את החסר ( במקרה שלנו, הכמות תהיה 0 )