6 תשובות
שואל השאלה:
ואם לדוגמה יבואו 9 אנשים? צריך להשכיר 2 סירות..אם אני אחלק 9ב 8 זה לא יצא לי שאני צריכה 2 סירות..ומה עם 5 אנשים?
שואל השאלה:
יש מצב אתה כותב לי את כל התכנית עם הפקודה if? פלייזז
שואל השאלה:
תודה רבה
הנה הפתרון שלי:
print((lambda a:f'amount of boats required: {a//8}\nprice of the sail: {a//8*50}')(int(input('enter amount of people who will enter the boats: '))))

יש סיכוי שלא תכירי חלק מהנושאים שהשתמשתי כמו פונקציות, פונקציות אנונימיות/תחשיב למדא, פרמטרים, ארגומנטים ו-f-strings, אז תגידי לי אם לא הבנת משהו
שואל השאלה:
^
סורי אבל לא הבנתי כלום ממה שכתבת xd
יש מצב את יודעת אותיי איך לפתור את זה באמצעות לולאת for ועם פקודה if?
אוקיי אז אני מסבירה. אני מגדירה פונקציית אנונימית פה. אבל לפני שאני מסבירה על מה הפונקצייה הזו עושה, צריך קודם להבין פונקציות אנונימיות/תחשיב למדא, ולפני כן צריך להבין פונקציות בכללי

אז הנה הסבר על פונקציות:
פונקצייה היא אובייקט שמקבל רשימת משתנים ושם משלה, אחר כך קוד שהיא צריכה לבצע על המשתנים הללו כשיציבו בה ואז גם לרוב קוראים לה ומציבים בה ערכים. לרוב היא גם מחזירה ערך, אבל רק אם מוגדר שהיא צריכה להחזיר ערך, וגם אז צריך שהיא תגיע לנקודה שבה היא מחזירה ערך ושהיא תחזיר ערך שם (אפשר להגדיר שהיא מחזירה ערך אבל לא להגיד מה הערך).

דוגמה:
def func(a):
return a*2
print(func(3))

אז מה עשיתי כאן? הגדרתי פונקציה, נתתי לה את השם func, הגדרתי לה משתנה (יותר נכון פרמטר, אבל אולי זה יבלבל אותך אם אשתמש במושג) בשם a, ואמרתי לה להחזיר את a אבל כפול 2. לאחר מכן, אני מדפיסה את הערך של פונקצייה זו כאשר אני מציבה בה 3. אם במקום הa נציב 3, אז נקבל 6 כי 3 כפול 2 זה 6

עכשיו זה היה פונקציות אבל עכשיו נעבור לפונקציות אנונימיות

פונקציות אנונימיות או תחשיב למדא, זה פונקציות שאני לא נותנת להן שם שיזהה אותן, לכן הן קרויות אנונימיות. הן כוללות רשימת פרמטרים (המשתנים שצריך להציב בהם ערכים), וביטוי אחד בלבד (ביטוי זה כל אובייקט שמחזיר ערך כלשהו).
הנה דוגמה לשימוש בהן, ואני הולכת להשתמש בדוגמה דומה לפעם הקודמת:
func=lambda a:a*2
print(func(3))

אז הגדרתי פה משתנה בשם func שהוא שווה לתחשיב למדא בו יש את הפרמטר a ומוחזר פה הערך a כפול 2. לאחר מכן אני מדפיסה את הערך של המשתנה כאשר אני אציג בפרמטר a 3, והולך להתקבל 6 כי כמו שאמרתי לפני, 3 כפול 2 זה 6

אני גם יכולה לעשות את זה בשורה אחת, כמו שעשיתי בפתרון שנתתי לשאלה שהייתה לך:
print((lambda a:a*2)(3))

עכשיו אחרי שהסברתי על פונקציות ותחשיב למדא, נעבור לf-string.

f-string היא מחרוזת שפועלת כמו מחרוזת רגילה אבל ביטויים בתוך סוגריים מסולסלות הולכות לחושב בה והם יהפכו להיות חלק מהטקסט שלה. הf ששמתי לפני תחילת המחרוזת הייתה בשביל לסמן שמדובר בf-string, והשתמשתי בה בשביל לחשב 2 ביטויים. הראשון היה a//8 שזה איי חלקי 8 (בלי שארית כך שזה יצא שלם ואפתור לך את הבעיה שזה לא היה שלם), וזה בשביל לחשב את כמות הסירות שצריך. הביטוי השני היה a//8*50 שזה איי חלקי 8 בלי שארית כפול 50. עשיתי את זה בשביל לחשב את מחיר השייט

יש עוד משהו שלא הבנת או שהסברתי את הכל?

אה ואיך שכחתי לומר, אני מדפיסה בסוף את הערך שהצבתי בתחשיב למדא