דילוג לתוכן
  • חוקי הפורום
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
לוגו מותג
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. Python
  5. עזרה הדדית - Python
  6. עזרה | בהבנת דרך פיתרון לתרגיל פייתון

עזרה | בהבנת דרך פיתרון לתרגיל פייתון

מתוזמן נעוץ נעול הועבר עזרה הדדית - Python
30 פוסטים 11 כותבים 755 צפיות 8 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • THMHET מנותק
    THMHET מנותק
    THMHE
    כתב ב נערך לאחרונה על ידי THMHE
    #1

    לפני בערך חצי שנה העליתי את הבעיה שאני מעלה עכשיו ואז העליתי גם פיתרון
    אני כרגע לא רוצה פשוט להסתכל בפיתרון הישן אלא להבין למה הקוד לא עובד לי
    יש לי תרגיל כזה:
    de7efd75-eb78-4cbc-a7ab-165b49464981-image.png
    ואני מנסה לפתור אותו
    בינתיים כתבתי את הקוד הזה:

    def fix_age(age):
            if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                return 0
    
    
    def filter_teens(a=13, b=13, c=13):
            fix_age(a)
            fix_age(b)
            fix_age(c)
            return a + b + c
    
    
    print(filter_teens(45, 13, 15))
    

    אבל בקריאה לפונקציה filter_teens הפונקציה לא מקבלת מהפונקציה fix_age את המספר 0 בתור ערך אלא ממשיכה להשאיר את הגיל לפי איך שמי שקרא לפונקציה הגדיר ולא את הגיל המתוקן
    הפונקציה fix_age כן עובדת ומשדרת נתונים לפונקציה הראשית כי כשאני מגדיר את הקוד הזה:

    def fix_age(age):
            if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                print(0)
    
    
    def filter_teens(a=13, b=13, c=13):
            fix_age(a)
            fix_age(b)
            fix_age(c)
            return a + b + c
    
    
    print(filter_teens(45, 13, 15))
    

    (שימו לב שיניתי בשורה 3 מההגדרה return להגדרה print ואז כל הפונקציה עובדת מעולה ומחזירה הדפסות של אפסים
    אז למה היא לא מצליחה להחזיר ערך של אפס אלא רק הדפסה של 0?
    אשמח לתשובתכם (לא איך לפתור את התרגיל, אלא מה הבעיה בקוד)
    @אלישי @MGM-IVR (הפעם אתה וודאי אמור לדעת..) @מתכנת-חובב ו @אהרן-שובקס אתם עזרתם לי פעם שעברה קבוצת @תכנות תנו בראש!

    I love to learn
    I learn English and Python

    shloimyS ד MGM IVRM מ mefateachM 5 תגובות תגובה אחרונה
    0
    • THMHET THMHE

      לפני בערך חצי שנה העליתי את הבעיה שאני מעלה עכשיו ואז העליתי גם פיתרון
      אני כרגע לא רוצה פשוט להסתכל בפיתרון הישן אלא להבין למה הקוד לא עובד לי
      יש לי תרגיל כזה:
      de7efd75-eb78-4cbc-a7ab-165b49464981-image.png
      ואני מנסה לפתור אותו
      בינתיים כתבתי את הקוד הזה:

      def fix_age(age):
              if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                  return 0
      
      
      def filter_teens(a=13, b=13, c=13):
              fix_age(a)
              fix_age(b)
              fix_age(c)
              return a + b + c
      
      
      print(filter_teens(45, 13, 15))
      

      אבל בקריאה לפונקציה filter_teens הפונקציה לא מקבלת מהפונקציה fix_age את המספר 0 בתור ערך אלא ממשיכה להשאיר את הגיל לפי איך שמי שקרא לפונקציה הגדיר ולא את הגיל המתוקן
      הפונקציה fix_age כן עובדת ומשדרת נתונים לפונקציה הראשית כי כשאני מגדיר את הקוד הזה:

      def fix_age(age):
              if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                  print(0)
      
      
      def filter_teens(a=13, b=13, c=13):
              fix_age(a)
              fix_age(b)
              fix_age(c)
              return a + b + c
      
      
      print(filter_teens(45, 13, 15))
      

      (שימו לב שיניתי בשורה 3 מההגדרה return להגדרה print ואז כל הפונקציה עובדת מעולה ומחזירה הדפסות של אפסים
      אז למה היא לא מצליחה להחזיר ערך של אפס אלא רק הדפסה של 0?
      אשמח לתשובתכם (לא איך לפתור את התרגיל, אלא מה הבעיה בקוד)
      @אלישי @MGM-IVR (הפעם אתה וודאי אמור לדעת..) @מתכנת-חובב ו @אהרן-שובקס אתם עזרתם לי פעם שעברה קבוצת @תכנות תנו בראש!

      shloimyS מנותק
      shloimyS מנותק
      shloimy
      כתב ב נערך לאחרונה על ידי shloimy
      #2

      @THMHE לבעיה שתיארת זה הקוד הנכון:

      def fix_age(age):
          if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
              return 0
          else:
              return age
      
      
      def filter_teens(a=13, b=13, c=13):
          a = fix_age(a)
          b = fix_age(b)
          c = fix_age(c)
          return a + b + c
      
      
      print(filter_teens(45, 13, 15))
      

      הסיבה, אצלך קראת לפונ' אבל לא עדכנת את הערך של המשתנה עם ערך ההחזרה של הפונ' fix_age.

      THMHET תגובה 1 תגובה אחרונה
      5
      • ת מנותק
        ת מנותק
        תוכניתן
        מדריכים
        כתב ב נערך לאחרונה על ידי
        #3

        א. להבנתי,

        print(0)
        

        לא מחזיר 0 אלא רק מדפיס אותו.
        אתה רוצה שהערך ישתנה אז צריך return 0.

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

        a = fix_age(a)
        

        וכך לכל השלוש.

        THMHET תגובה 1 תגובה אחרונה
        4
        • shloimyS shloimy

          @THMHE לבעיה שתיארת זה הקוד הנכון:

          def fix_age(age):
              if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                  return 0
              else:
                  return age
          
          
          def filter_teens(a=13, b=13, c=13):
              a = fix_age(a)
              b = fix_age(b)
              c = fix_age(c)
              return a + b + c
          
          
          print(filter_teens(45, 13, 15))
          

          הסיבה, אצלך קראת לפונ' אבל לא עדכנת את הערך של המשתנה עם ערך ההחזרה של הפונ' fix_age.

          THMHET מנותק
          THMHET מנותק
          THMHE
          כתב ב נערך לאחרונה על ידי
          #4

          @shloimy כלומר בגלל שורות 4 ו5?
          המחשב לא יודע לבד שאם לא החזרתי כלום זה נשאר על מה שהיה קודם?

          I love to learn
          I learn English and Python

          shloimyS תגובה 1 תגובה אחרונה
          0
          • THMHET THMHE

            @shloimy כלומר בגלל שורות 4 ו5?
            המחשב לא יודע לבד שאם לא החזרתי כלום זה נשאר על מה שהיה קודם?

            shloimyS מנותק
            shloimyS מנותק
            shloimy
            כתב ב נערך לאחרונה על ידי shloimy
            #5

            @THMHE כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

            @shloimy כלומר בגלל שורות 4 ו5?
            המחשב לא יודע לבד שאם לא החזרתי כלום זה נשאר על מה שהיה קודם?

            לא בגלל 4 5.
            שורות 9 10 11.

            שורות 4 5 הוספתי למקרה שהפונ' לא משנה כלום המשתנה היה הופך ל - NoneType.

            THMHET תגובה 1 תגובה אחרונה
            2
            • ת תוכניתן

              א. להבנתי,

              print(0)
              

              לא מחזיר 0 אלא רק מדפיס אותו.
              אתה רוצה שהערך ישתנה אז צריך return 0.

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

              a = fix_age(a)
              

              וכך לכל השלוש.

              THMHET מנותק
              THMHET מנותק
              THMHE
              כתב ב נערך לאחרונה על ידי THMHE
              #6

              @תוכניתן כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

              א. להבנתי,

              print(0)
              לא מחזיר 0 אלא רק מדפיס אותו.
              אתה רוצה שהערך ישתנה אז צריך return 0.

              נכון, את זה הבאתי רק לראיה שהפונקציה השניה מצליחה לקרוא את הפונקציה הראשונה..

              @תוכניתן כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

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

              חידדת לי כאן נקודה ממש חשובה! 👍
              אבל אם כן למה כאן:

              @תוכניתן כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

              לכן צריך להחזיר את הערך המתוקן לתוך המשתנה:

              a = fix_age(a)
              וכך לכל השלוש.

              הפיתרון של @shloimy עבד גם בלי לעשות את זה?
              אני זוכר שפעם אחד המתכנתים הסביר לי שצריך לעשות את זה ושכחתי..
              עריכה: אני רואה ש @shloimy כן הוסיף את המשתנים לתוך הקוד שלו..

              I love to learn
              I learn English and Python

              תגובה 1 תגובה אחרונה
              1
              • THMHET THMHE

                לפני בערך חצי שנה העליתי את הבעיה שאני מעלה עכשיו ואז העליתי גם פיתרון
                אני כרגע לא רוצה פשוט להסתכל בפיתרון הישן אלא להבין למה הקוד לא עובד לי
                יש לי תרגיל כזה:
                de7efd75-eb78-4cbc-a7ab-165b49464981-image.png
                ואני מנסה לפתור אותו
                בינתיים כתבתי את הקוד הזה:

                def fix_age(age):
                        if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                            return 0
                
                
                def filter_teens(a=13, b=13, c=13):
                        fix_age(a)
                        fix_age(b)
                        fix_age(c)
                        return a + b + c
                
                
                print(filter_teens(45, 13, 15))
                

                אבל בקריאה לפונקציה filter_teens הפונקציה לא מקבלת מהפונקציה fix_age את המספר 0 בתור ערך אלא ממשיכה להשאיר את הגיל לפי איך שמי שקרא לפונקציה הגדיר ולא את הגיל המתוקן
                הפונקציה fix_age כן עובדת ומשדרת נתונים לפונקציה הראשית כי כשאני מגדיר את הקוד הזה:

                def fix_age(age):
                        if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                            print(0)
                
                
                def filter_teens(a=13, b=13, c=13):
                        fix_age(a)
                        fix_age(b)
                        fix_age(c)
                        return a + b + c
                
                
                print(filter_teens(45, 13, 15))
                

                (שימו לב שיניתי בשורה 3 מההגדרה return להגדרה print ואז כל הפונקציה עובדת מעולה ומחזירה הדפסות של אפסים
                אז למה היא לא מצליחה להחזיר ערך של אפס אלא רק הדפסה של 0?
                אשמח לתשובתכם (לא איך לפתור את התרגיל, אלא מה הבעיה בקוד)
                @אלישי @MGM-IVR (הפעם אתה וודאי אמור לדעת..) @מתכנת-חובב ו @אהרן-שובקס אתם עזרתם לי פעם שעברה קבוצת @תכנות תנו בראש!

                ד מנותק
                ד מנותק
                דני ו
                כתב ב נערך לאחרונה על ידי
                #7

                @THMHE דבר ראשון בפונקציה fix_age לא כתבת מה קורה אם התנאים לא מתקיימים, אתה צריך להגדיר

                else:
                    return age
                

                דבר שני בפונקציית filter_teens אתה לא שומר את הערכים של fix_age בשום מקום, כשאתה כותב fix_age(a) זה לא משנה את a, זה פשוט מביא לך את התוצאה, שאותה אתה אמור לשמור במשתנה.
                א"כ אתה צריך לכתוב את זה כך:

                a = fix_age(a)
                

                ואז זה מעדכן ב a את התוצאה של הפונקציה.

                THMHET תגובה 1 תגובה אחרונה
                2
                • shloimyS shloimy

                  @THMHE כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                  @shloimy כלומר בגלל שורות 4 ו5?
                  המחשב לא יודע לבד שאם לא החזרתי כלום זה נשאר על מה שהיה קודם?

                  לא בגלל 4 5.
                  שורות 9 10 11.

                  שורות 4 5 הוספתי למקרה שהפונ' לא משנה כלום המשתנה היה הופך ל - NoneType.

                  THMHET מנותק
                  THMHET מנותק
                  THMHE
                  כתב ב נערך לאחרונה על ידי
                  #8

                  @shloimy כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                  @THMHE כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                  @shloimy כלומר בגלל שורות 4 ו5?
                  המחשב לא יודע לבד שאם לא החזרתי כלום זה נשאר על מה שהיה קודם?

                  לא בגלל 4 5.
                  שורות 9 10 11.

                  שורות 4 5 הוספתי למקרה שהפונ' לא משנה כלום המשתנה היה הופך ל - NoneType.

                  ניסיתי כרגע להריץ את הפונקציה בלי שורות 4 ו5 ונכשלתי
                  הם כן דרושות
                  עכשיו אני נזכר שבאחד הנסיונות שלי להבין למה הקוד לא עובד הגדרתי משתנים חדשים ועדיין זה לא עבד..
                  כי 4 ו5 הם כן קריטיות

                  I love to learn
                  I learn English and Python

                  shloimyS תגובה 1 תגובה אחרונה
                  0
                  • ד דני ו

                    @THMHE דבר ראשון בפונקציה fix_age לא כתבת מה קורה אם התנאים לא מתקיימים, אתה צריך להגדיר

                    else:
                        return age
                    

                    דבר שני בפונקציית filter_teens אתה לא שומר את הערכים של fix_age בשום מקום, כשאתה כותב fix_age(a) זה לא משנה את a, זה פשוט מביא לך את התוצאה, שאותה אתה אמור לשמור במשתנה.
                    א"כ אתה צריך לכתוב את זה כך:

                    a = fix_age(a)
                    

                    ואז זה מעדכן ב a את התוצאה של הפונקציה.

                    THMHET מנותק
                    THMHET מנותק
                    THMHE
                    כתב ב נערך לאחרונה על ידי
                    #9

                    @דני-ו כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                    @THMHE דבר ראשון בפונקציה fix_age לא כתבת מה קורה אם התנאים לא מתקיימים, אתה צריך להגדיר

                    else:
                        return age
                    

                    דבר שני בפונקציית filter_teens אתה לא שומר את הערכים של fix_age בשום מקום, כשאתה כותב fix_age(a) זה לא משנה את a, זה פשוט מביא לך את התוצאה, שאותה אתה אמור לשמור במשתנה.
                    א"כ אתה צריך לכתוב את זה כך:

                    a = fix_age(a)
                    

                    ואז זה מעדכן ב a את התוצאה של הפונקציה.

                    מצוין!
                    תודה על העזרה
                    זה בעצם סיכום תמציתי של מה שכתבו חבריך הטובים @shloimy ו @תוכניתן ..

                    I love to learn
                    I learn English and Python

                    תגובה 1 תגובה אחרונה
                    0
                    • THMHET THMHE

                      @shloimy כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                      @THMHE כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                      @shloimy כלומר בגלל שורות 4 ו5?
                      המחשב לא יודע לבד שאם לא החזרתי כלום זה נשאר על מה שהיה קודם?

                      לא בגלל 4 5.
                      שורות 9 10 11.

                      שורות 4 5 הוספתי למקרה שהפונ' לא משנה כלום המשתנה היה הופך ל - NoneType.

                      ניסיתי כרגע להריץ את הפונקציה בלי שורות 4 ו5 ונכשלתי
                      הם כן דרושות
                      עכשיו אני נזכר שבאחד הנסיונות שלי להבין למה הקוד לא עובד הגדרתי משתנים חדשים ועדיין זה לא עבד..
                      כי 4 ו5 הם כן קריטיות

                      shloimyS מנותק
                      shloimyS מנותק
                      shloimy
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @THMHE כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                      ניסיתי כרגע להריץ את הפונקציה בלי שורות 4 ו5 ונכשלתי

                      כתבתי לך למה.

                      @shloimy כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                      שורות 4 5 הוספתי למקרה שהפונ' לא משנה כלום המשתנה היה הופך ל - NoneType.

                      וכאשר אתה מנסה להשתמש באופרטור + למשתנה NoneType אתה מקבל שגיאה.

                      תגובה 1 תגובה אחרונה
                      2
                      • THMHET THMHE

                        לפני בערך חצי שנה העליתי את הבעיה שאני מעלה עכשיו ואז העליתי גם פיתרון
                        אני כרגע לא רוצה פשוט להסתכל בפיתרון הישן אלא להבין למה הקוד לא עובד לי
                        יש לי תרגיל כזה:
                        de7efd75-eb78-4cbc-a7ab-165b49464981-image.png
                        ואני מנסה לפתור אותו
                        בינתיים כתבתי את הקוד הזה:

                        def fix_age(age):
                                if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                                    return 0
                        
                        
                        def filter_teens(a=13, b=13, c=13):
                                fix_age(a)
                                fix_age(b)
                                fix_age(c)
                                return a + b + c
                        
                        
                        print(filter_teens(45, 13, 15))
                        

                        אבל בקריאה לפונקציה filter_teens הפונקציה לא מקבלת מהפונקציה fix_age את המספר 0 בתור ערך אלא ממשיכה להשאיר את הגיל לפי איך שמי שקרא לפונקציה הגדיר ולא את הגיל המתוקן
                        הפונקציה fix_age כן עובדת ומשדרת נתונים לפונקציה הראשית כי כשאני מגדיר את הקוד הזה:

                        def fix_age(age):
                                if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                                    print(0)
                        
                        
                        def filter_teens(a=13, b=13, c=13):
                                fix_age(a)
                                fix_age(b)
                                fix_age(c)
                                return a + b + c
                        
                        
                        print(filter_teens(45, 13, 15))
                        

                        (שימו לב שיניתי בשורה 3 מההגדרה return להגדרה print ואז כל הפונקציה עובדת מעולה ומחזירה הדפסות של אפסים
                        אז למה היא לא מצליחה להחזיר ערך של אפס אלא רק הדפסה של 0?
                        אשמח לתשובתכם (לא איך לפתור את התרגיל, אלא מה הבעיה בקוד)
                        @אלישי @MGM-IVR (הפעם אתה וודאי אמור לדעת..) @מתכנת-חובב ו @אהרן-שובקס אתם עזרתם לי פעם שעברה קבוצת @תכנות תנו בראש!

                        MGM IVRM מנותק
                        MGM IVRM מנותק
                        MGM IVR
                        מדריכים
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @THMHE כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                        הפעם אתה וודאי אמור לדעת..

                        יש פה עוד אנשים, ואין צורך לתייג אותי בנפרד.
                        זה ממש מציק

                        תגובה 1 תגובה אחרונה
                        4
                        • צדיק תמיםצ מנותק
                          צדיק תמיםצ מנותק
                          צדיק תמים
                          מדריכים
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @THMHE אני ממליץ על הספר https://data.cyber.org.il/python/python_book.pdf. לדוגמה הפרק העוסק בעניין הscope והעותק ש @תוכניתן הזכיר:
                          CleanShot 2024-01-31 at 19.37.16@2x.pdf

                          רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                          ת THMHET 2 תגובות תגובה אחרונה
                          2
                          • צדיק תמיםצ צדיק תמים

                            @THMHE אני ממליץ על הספר https://data.cyber.org.il/python/python_book.pdf. לדוגמה הפרק העוסק בעניין הscope והעותק ש @תוכניתן הזכיר:
                            CleanShot 2024-01-31 at 19.37.16@2x.pdf

                            ת מנותק
                            ת מנותק
                            תוכניתן
                            מדריכים
                            כתב ב נערך לאחרונה על ידי תוכניתן
                            #13

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

                            צדיק תמיםצ תגובה 1 תגובה אחרונה
                            2
                            • ת תוכניתן

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

                              צדיק תמיםצ מנותק
                              צדיק תמיםצ מנותק
                              צדיק תמים
                              מדריכים
                              כתב ב נערך לאחרונה על ידי צדיק תמים
                              #14

                              @תוכניתן עכשיו אני מבין שציטטתי את הפרק הלא נכון מקודם
                              זה הקטע שחיפשתי, שמסביר את זה מאוד טוב על ידי הסבר קודם של is ו-id, ואז מציג דוגמה מעשית של מה שקורה בשינוי ארגומנט של פונקציה (סוף עמוד 81), וזה הסיבה שאני מאוד ממליץ על הספר הזה. הוא בנוי בצורה מעולה, ומאוד מעשי.
                              78-83.pdf

                              רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                              תגובה 1 תגובה אחרונה
                              3
                              • צדיק תמיםצ צדיק תמים

                                @THMHE אני ממליץ על הספר https://data.cyber.org.il/python/python_book.pdf. לדוגמה הפרק העוסק בעניין הscope והעותק ש @תוכניתן הזכיר:
                                CleanShot 2024-01-31 at 19.37.16@2x.pdf

                                THMHET מנותק
                                THMHET מנותק
                                THMHE
                                כתב ב נערך לאחרונה על ידי
                                #15

                                @צדיק-תמים כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                                CleanShot 2024-01-31 at 19.37.16@2x.pdf

                                תודה על הספר!
                                שגיאה 403.. (אני בנטפרי)

                                I love to learn
                                I learn English and Python

                                צדיק תמיםצ תגובה 1 תגובה אחרונה
                                0
                                • THMHET THMHE

                                  @צדיק-תמים כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                                  CleanShot 2024-01-31 at 19.37.16@2x.pdf

                                  תודה על הספר!
                                  שגיאה 403.. (אני בנטפרי)

                                  צדיק תמיםצ מנותק
                                  צדיק תמיםצ מנותק
                                  צדיק תמים
                                  מדריכים
                                  כתב ב נערך לאחרונה על ידי צדיק תמים
                                  #16

                                  @THMHE כתב בעזרה | בהבנת דרך פיתרון לתרגיל פייתון:

                                  שגיאה 403.. (אני בנטפרי)

                                  תשבית בהגדרות סינון את אזהרת שיבוש קבצים

                                  אבל מה שצירפתי פה זה רק עמודים ספציפיים, זה המלא: https://data.cyber.org.il/python/python_book.pdf

                                  רוצה לזכור קריאת שמע בזמן? לחץ כאן! || אתר שכולו מדריכים

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • THMHET THMHE

                                    לפני בערך חצי שנה העליתי את הבעיה שאני מעלה עכשיו ואז העליתי גם פיתרון
                                    אני כרגע לא רוצה פשוט להסתכל בפיתרון הישן אלא להבין למה הקוד לא עובד לי
                                    יש לי תרגיל כזה:
                                    de7efd75-eb78-4cbc-a7ab-165b49464981-image.png
                                    ואני מנסה לפתור אותו
                                    בינתיים כתבתי את הקוד הזה:

                                    def fix_age(age):
                                            if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                                                return 0
                                    
                                    
                                    def filter_teens(a=13, b=13, c=13):
                                            fix_age(a)
                                            fix_age(b)
                                            fix_age(c)
                                            return a + b + c
                                    
                                    
                                    print(filter_teens(45, 13, 15))
                                    

                                    אבל בקריאה לפונקציה filter_teens הפונקציה לא מקבלת מהפונקציה fix_age את המספר 0 בתור ערך אלא ממשיכה להשאיר את הגיל לפי איך שמי שקרא לפונקציה הגדיר ולא את הגיל המתוקן
                                    הפונקציה fix_age כן עובדת ומשדרת נתונים לפונקציה הראשית כי כשאני מגדיר את הקוד הזה:

                                    def fix_age(age):
                                            if age == 13 or age == 14 or age == 17 or age == 18 or age == 19:
                                                print(0)
                                    
                                    
                                    def filter_teens(a=13, b=13, c=13):
                                            fix_age(a)
                                            fix_age(b)
                                            fix_age(c)
                                            return a + b + c
                                    
                                    
                                    print(filter_teens(45, 13, 15))
                                    

                                    (שימו לב שיניתי בשורה 3 מההגדרה return להגדרה print ואז כל הפונקציה עובדת מעולה ומחזירה הדפסות של אפסים
                                    אז למה היא לא מצליחה להחזיר ערך של אפס אלא רק הדפסה של 0?
                                    אשמח לתשובתכם (לא איך לפתור את התרגיל, אלא מה הבעיה בקוד)
                                    @אלישי @MGM-IVR (הפעם אתה וודאי אמור לדעת..) @מתכנת-חובב ו @אהרן-שובקס אתם עזרתם לי פעם שעברה קבוצת @תכנות תנו בראש!

                                    מ מנותק
                                    מ מנותק
                                    מנדי הלפרין
                                    כתב ב נערך לאחרונה על ידי מנדי הלפרין
                                    #17

                                    @THMHE למה קיבלתי התראה כשלא הזכרת אותי בפוסט?
                                    d34b14b8-0e8a-4776-b2a4-616a1585adab-image.png

                                    Y תגובה 1 תגובה אחרונה
                                    0
                                    • מ מנדי הלפרין

                                      @THMHE למה קיבלתי התראה כשלא הזכרת אותי בפוסט?
                                      d34b14b8-0e8a-4776-b2a4-616a1585adab-image.png

                                      Y מנותק
                                      Y מנותק
                                      Yehuda 1
                                      כתב ב נערך לאחרונה על ידי
                                      #18

                                      @מנדי-הלפרין תקרא שוב את ההתראה

                                      עכשיו שוב

                                      THMHET מ 2 תגובות תגובה אחרונה
                                      0
                                      • Y Yehuda 1

                                        @מנדי-הלפרין תקרא שוב את ההתראה

                                        עכשיו שוב

                                        THMHET מנותק
                                        THMHET מנותק
                                        THMHE
                                        כתב ב נערך לאחרונה על ידי
                                        #19

                                        @Yehuda-1 קראתי ולא הבנתי, אפשר עכשיו הסבר?

                                        I love to learn
                                        I learn English and Python

                                        MGM IVRM תגובה 1 תגובה אחרונה
                                        0
                                        • Y Yehuda 1

                                          @מנדי-הלפרין תקרא שוב את ההתראה

                                          עכשיו שוב

                                          מ מנותק
                                          מ מנותק
                                          מנדי הלפרין
                                          כתב ב נערך לאחרונה על ידי
                                          #20

                                          @Yehuda-1 אה, סליחה, עכשיו הבנתי

                                          THMHET תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר