דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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
221 פוסטים 22 כותבים 3.7k צפיות 20 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • פ פלדה

    @sivan22
    נסיתי לכתוב (כפתרון לתרגיל) את קטע הקוד הבא:

    >>> old_letters_guessed = []
    >>> letter_guessed = input("נחש תו")
    >>> def is_valid_input(letter_guessed):
    ...     if len(letter_guessed) != 1:
    ...         print ("X")
    ...         "->".join(sorted(old_letters_guessed))
    ...     else:
    ...         if(letter_guessed).isalpha():
    ...             print ("true")
    ...             old_letters_guessed += [letter_guessed]
    ...         else:
    ...             print ("X")
    ...             "->".join(sorted(old_letters_guessed))
    

    וכשקראתי לפונקציה -

    >>> is_valid_input("t")
    true
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 8, in is_valid_input
    UnboundLocalError: cannot access local variable 'old_letters_guessed' where it is not associated with a value
    

    אם הבנתי נכון, הוא לא הצליח לגשת לרשימה.למה?
    הייתי צריך להגדיר אותה ככה?

     old_letters_guessed = ([""])
    
    sivan22S מנותק
    sivan22S מנותק
    sivan22
    כתב ב נערך לאחרונה על ידי
    #163

    @פלדה הסיבה שהוא לא הצליח לגשת לרשימה זה בגלל שקראת בתוך הפונקציה למשתנה שהוגדר מחוץ לפונקציה, הקוד צריך להיראות כך:

    >>> old_letters_guessed = []
    >>> letter_guessed = input("נחש תו")
    >>> def is_valid_input(letter_guessed, old_letters_guessed):
    ...     if len(letter_guessed) != 1:
    ...         print ("X")
    ...         "->".join(sorted(old_letters_guessed))
    ...     else:
    ...         if(letter_guessed).isalpha():
    ...             print ("true")
    ...             old_letters_guessed += [letter_guessed]
    ...         else:
    ...             print ("X")
    ...             "->".join(sorted(old_letters_guessed))
    
    

    ואז הקריאה לפונקציה:

    >>> is_valid_input("t", old_letters_guessed)
    
    

    אגב, זה חלק מדרישות המשימה המקוריות.

    פ תגובה 1 תגובה אחרונה
    2
    • sivan22S sivan22

      @פלדה הסיבה שהוא לא הצליח לגשת לרשימה זה בגלל שקראת בתוך הפונקציה למשתנה שהוגדר מחוץ לפונקציה, הקוד צריך להיראות כך:

      >>> old_letters_guessed = []
      >>> letter_guessed = input("נחש תו")
      >>> def is_valid_input(letter_guessed, old_letters_guessed):
      ...     if len(letter_guessed) != 1:
      ...         print ("X")
      ...         "->".join(sorted(old_letters_guessed))
      ...     else:
      ...         if(letter_guessed).isalpha():
      ...             print ("true")
      ...             old_letters_guessed += [letter_guessed]
      ...         else:
      ...             print ("X")
      ...             "->".join(sorted(old_letters_guessed))
      
      

      ואז הקריאה לפונקציה:

      >>> is_valid_input("t", old_letters_guessed)
      
      

      אגב, זה חלק מדרישות המשימה המקוריות.

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

      @sivan22 כתב בבקשת מידע | קורס פייתון:

      הקוד צריך להיראות כך:

      > 
      > >>> old_letters_guessed = []
      > >>> letter_guessed = input("נחש תו")
      > >>> def is_valid_input(letter_guessed, old_letters_guessed):
      > ...     if len(letter_guessed) != 1:
      > ...         print ("X")
      > ...         "->".join(sorted(old_letters_guessed))
      > ...     else:
      > ...         if(letter_guessed).isalpha():
      > ...             print ("true")
      > ...             old_letters_guessed += [letter_guessed]
      > ...         else:
      > ...             print ("X")
      > ...             "->".join(sorted(old_letters_guessed))
      

      שונה מהקוד שאני כתבתי?

      sivan22S תגובה 1 תגובה אחרונה
      0
      • פ פלדה

        @sivan22 כתב בבקשת מידע | קורס פייתון:

        הקוד צריך להיראות כך:

        > 
        > >>> old_letters_guessed = []
        > >>> letter_guessed = input("נחש תו")
        > >>> def is_valid_input(letter_guessed, old_letters_guessed):
        > ...     if len(letter_guessed) != 1:
        > ...         print ("X")
        > ...         "->".join(sorted(old_letters_guessed))
        > ...     else:
        > ...         if(letter_guessed).isalpha():
        > ...             print ("true")
        > ...             old_letters_guessed += [letter_guessed]
        > ...         else:
        > ...             print ("X")
        > ...             "->".join(sorted(old_letters_guessed))
        

        שונה מהקוד שאני כתבתי?

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

        @פלדה כמובן, יחי ההבדל הקטן!

        עקרון מאד חשוב בתיכנות הוא "מרחב השמות", כלומר התחום בו אני יכול לקרוא למשתנה מסוים. בתוך פונקציה בעקרון אפשר לקרוא רק לערכים שנשלחו לפונקציה, או לערכים שנוצרו בתוכה, ואתה קראת לערך old_leterd_guessed שהוגדר מחוץ לפונקציה. לכן שלחתי אותו לפונקציה ואז קראתי לערך שנשלח ולא לערך שבחוץ. ודוק.

        פ 2 תגובות תגובה אחרונה
        1
        • sivan22S sivan22

          @פלדה כמובן, יחי ההבדל הקטן!

          עקרון מאד חשוב בתיכנות הוא "מרחב השמות", כלומר התחום בו אני יכול לקרוא למשתנה מסוים. בתוך פונקציה בעקרון אפשר לקרוא רק לערכים שנשלחו לפונקציה, או לערכים שנוצרו בתוכה, ואתה קראת לערך old_leterd_guessed שהוגדר מחוץ לפונקציה. לכן שלחתי אותו לפונקציה ואז קראתי לערך שנשלח ולא לערך שבחוץ. ודוק.

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

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

          תגובה 1 תגובה אחרונה
          0
          • sivan22S sivan22

            @פלדה כמובן, יחי ההבדל הקטן!

            עקרון מאד חשוב בתיכנות הוא "מרחב השמות", כלומר התחום בו אני יכול לקרוא למשתנה מסוים. בתוך פונקציה בעקרון אפשר לקרוא רק לערכים שנשלחו לפונקציה, או לערכים שנוצרו בתוכה, ואתה קראת לערך old_leterd_guessed שהוגדר מחוץ לפונקציה. לכן שלחתי אותו לפונקציה ואז קראתי לערך שנשלח ולא לערך שבחוץ. ודוק.

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

            @sivan22

            def numbers_letters_count(my_str):
            ...     numbers = []
            ...     others = []
            ...     for char in my_str:
            ...         if char.isdigit():
            ...             numbers.append(char)
            ...             print (len(numbers))
            ...         else:
            ...             others.append(char)
            ...             print (len(others))
            ...
            >>> print(numbers_letters_count("Python 3.6.3"))
            

            ובכן, הייתי מצפה שהפלט יהיה -

            3
            9
            

            אבל הפלט הוא -

            >>> print(numbers_letters_count("Python 3.6.3"))
            1
            2
            3
            4
            5
            6
            7
            1
            8
            2
            9
            3
            None
            
            א תגובה 1 תגובה אחרונה
            0
            • פ פלדה

              @sivan22

              def numbers_letters_count(my_str):
              ...     numbers = []
              ...     others = []
              ...     for char in my_str:
              ...         if char.isdigit():
              ...             numbers.append(char)
              ...             print (len(numbers))
              ...         else:
              ...             others.append(char)
              ...             print (len(others))
              ...
              >>> print(numbers_letters_count("Python 3.6.3"))
              

              ובכן, הייתי מצפה שהפלט יהיה -

              3
              9
              

              אבל הפלט הוא -

              >>> print(numbers_letters_count("Python 3.6.3"))
              1
              2
              3
              4
              5
              6
              7
              1
              8
              2
              9
              3
              None
              
              א מנותק
              א מנותק
              איסתרק השלישי
              כתב ב נערך לאחרונה על ידי
              #168

              @פלדה הגדרת לו הדפסה בכל איטרציה של הלולאה, כלומר כל פעם אחרי פעולה של הוספה לרשימה - הוא מדפיס את אורך הרשימה. בתחילה רק את רשימת התוים שאינם מספרים, בסדר עולה - עם כל תו שמתווסף, ולאחר מכן - הוא מתחיל להדפיס את רשימת הספרות - כאשר בין לבין יש גם תו שאינו מספר - הנקודה, לכן זה נראה כך
              1
              8
              2
              9
              3

              א תגובה 1 תגובה אחרונה
              0
              • א איסתרק השלישי

                @פלדה הגדרת לו הדפסה בכל איטרציה של הלולאה, כלומר כל פעם אחרי פעולה של הוספה לרשימה - הוא מדפיס את אורך הרשימה. בתחילה רק את רשימת התוים שאינם מספרים, בסדר עולה - עם כל תו שמתווסף, ולאחר מכן - הוא מתחיל להדפיס את רשימת הספרות - כאשר בין לבין יש גם תו שאינו מספר - הנקודה, לכן זה נראה כך
                1
                8
                2
                9
                3

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

                אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,
                ודו"ק

                פ תגובה 1 תגובה אחרונה
                0
                • א איסתרק השלישי

                  אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,
                  ודו"ק

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

                  @איסתרק-השלישי כתב בבקשת מידע | קורס פייתון:

                  אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,

                  ואיפה לשים אותו? בקריאה לפונקציה?

                  א תגובה 1 תגובה אחרונה
                  0
                  • פ פלדה

                    @איסתרק-השלישי כתב בבקשת מידע | קורס פייתון:

                    אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,

                    ואיפה לשים אותו? בקריאה לפונקציה?

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

                    @פלדה לא, כך:

                    def numbers_letters_count(my_str):
                    ...     numbers = []
                    ...     others = []
                    ...     for char in my_str:
                    ...         if char.isdigit():
                    ...             numbers.append(char)
                    ...         else:
                    ...             others.append(char)
                    ...             
                            print (len(numbers))
                            print (len(others))
                    >>> numbers_letters_count("Python 3.6.3")
                    

                    מחקתי גם את ה print שהיה בקריאה לפונקציה, הוא מיותר.

                    פ תגובה 1 תגובה אחרונה
                    1
                    • א איסתרק השלישי

                      @פלדה לא, כך:

                      def numbers_letters_count(my_str):
                      ...     numbers = []
                      ...     others = []
                      ...     for char in my_str:
                      ...         if char.isdigit():
                      ...             numbers.append(char)
                      ...         else:
                      ...             others.append(char)
                      ...             
                              print (len(numbers))
                              print (len(others))
                      >>> numbers_letters_count("Python 3.6.3")
                      

                      מחקתי גם את ה print שהיה בקריאה לפונקציה, הוא מיותר.

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

                      @איסתרק-השלישי
                      ו--
                      מה הבעיה בזה??

                      >>> def main():
                      ...     products = input("הזן רשימת מוצרים לקניות, מופרדת בפסיקים ללא רווחים: ")
                      ...     action = int(input("הזן מספר פעולה: ")
                      ...     if action == 1:
                        File "<stdin>", line 4
                          if action == 1:
                                        ^
                      SyntaxError: invalid syntax
                      

                      למה קבלתי הודעת שגיאה?

                      א תגובה 1 תגובה אחרונה
                      0
                      • פ פלדה

                        @איסתרק-השלישי
                        ו--
                        מה הבעיה בזה??

                        >>> def main():
                        ...     products = input("הזן רשימת מוצרים לקניות, מופרדת בפסיקים ללא רווחים: ")
                        ...     action = int(input("הזן מספר פעולה: ")
                        ...     if action == 1:
                          File "<stdin>", line 4
                            if action == 1:
                                          ^
                        SyntaxError: invalid syntax
                        

                        למה קבלתי הודעת שגיאה?

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

                        @פלדה אני לא רואה שום בעיה, אולי בטעות יש רווח מיותר אחרי הנקודתיים?

                        פ תגובה 1 תגובה אחרונה
                        0
                        • א איסתרק השלישי

                          @פלדה אני לא רואה שום בעיה, אולי בטעות יש רווח מיותר אחרי הנקודתיים?

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

                          @איסתרק-השלישי
                          תודה, גליתי את הבעיה.
                          בשורה הזאת

                          action = int(input("הזן מספר פעולה: ")
                          חסר סגור סוגריים.
                          

                          אגב אשמח אם תוכל לעזור לי בזה

                          תגובה 1 תגובה אחרונה
                          0
                          • פ פלדה

                            @פלדה
                            הגדרתי את HANGMAN_ASCII_ART כמשתנה למשפט Welcome to the game Hangman
                            ושנתתי את הפקודה Print ("HANGMAN_ASCII_ART") זה הדפיס לי את המשתנה ולא את המשפט שאותו הוא 'מייצג'
                            dd4d53a3-667d-4ae4-b069-6abc40e7b1b8-image.png
                            במה טעיתי?

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

                            @פלדה
                            טעית בזה ששמת למשתנה מרכאות ובכך הפכת אותו למחרוזת חסרת משמעות ערכית
                            למעשה עליך להכניס את המשתנה ללא המרכאות

                            א פ 3 תגובות תגובה אחרונה
                            0
                            • ה הרשי רוז

                              @פלדה
                              טעית בזה ששמת למשתנה מרכאות ובכך הפכת אותו למחרוזת חסרת משמעות ערכית
                              למעשה עליך להכניס את המשתנה ללא המרכאות

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

                              @הרשי-רוז תן לי לנחש שאתה מגיע משפת תכנות אחרת שאינה פייתון....

                              ה תגובה 1 תגובה אחרונה
                              0
                              • א איסתרק השלישי

                                @הרשי-רוז תן לי לנחש שאתה מגיע משפת תכנות אחרת שאינה פייתון....

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

                                @איסתרק-השלישי אני מC#
                                אבל גם לומד JS וקצת פייתון...

                                תגובה 1 תגובה אחרונה
                                0
                                • ה הייתי שמח להבין התייחס לנושא זה ב
                                • י מנותק
                                  י מנותק
                                  ישראל 1 0
                                  כתב ב נערך לאחרונה על ידי
                                  #178

                                  שלום אני מתכנת מתחיל בפייתון וניסיתי לכתוב מחשבון
                                  וזה הקוד

                                  def calculator():
                                      number_1 = int(input("Insert a number"))
                                      sign = int(input("Insert a mark"))
                                      number_2 = int(input("Insert a number"))
                                      if sign == "+":
                                          print(number_1 + number_2)
                                      elif sign == "*":
                                          print(number_1 * number_2)
                                      elif sign == "-":
                                          print(number_1 - number_2)
                                      elif sign == "/":
                                          print(number_1 / number_2)
                                      else:
                                          print("Error Please enter a valid mark")
                                  
                                  calculator()
                                  
                                  

                                  וזה השגיאה
                                  Traceback (most recent call last):
                                  File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 16, in <module>
                                  calculator()
                                  File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 2, in calculator
                                  number_1 = input(int("Insert a number"))
                                  ValueError: invalid literal for int() with base 10: 'Insert a number'
                                  מה לא נכון?

                                  נ תגובה 1 תגובה אחרונה
                                  0
                                  • י ישראל 1 0

                                    שלום אני מתכנת מתחיל בפייתון וניסיתי לכתוב מחשבון
                                    וזה הקוד

                                    def calculator():
                                        number_1 = int(input("Insert a number"))
                                        sign = int(input("Insert a mark"))
                                        number_2 = int(input("Insert a number"))
                                        if sign == "+":
                                            print(number_1 + number_2)
                                        elif sign == "*":
                                            print(number_1 * number_2)
                                        elif sign == "-":
                                            print(number_1 - number_2)
                                        elif sign == "/":
                                            print(number_1 / number_2)
                                        else:
                                            print("Error Please enter a valid mark")
                                    
                                    calculator()
                                    
                                    

                                    וזה השגיאה
                                    Traceback (most recent call last):
                                    File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 16, in <module>
                                    calculator()
                                    File "C:\Users\TA1\AppData\Local\Programs\Python\Python312\vfd.py", line 2, in calculator
                                    number_1 = input(int("Insert a number"))
                                    ValueError: invalid literal for int() with base 10: 'Insert a number'
                                    מה לא נכון?

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

                                    @ישראל-1-0 כתב בבקשת מידע | קורס פייתון:

                                    מה לא נכון?

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

                                    ValueError: invalid literal for int() with base 10: 'Insert a number'

                                    אתה יכול גם לנסות לתרגם בטרנסלייט,

                                    לענינינו הפונקיה int מצפה לקבל מספר ולא טקסט.

                                    י 2 תגובות תגובה אחרונה
                                    1
                                    • נ נעזר1000

                                      @ישראל-1-0 כתב בבקשת מידע | קורס פייתון:

                                      מה לא נכון?

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

                                      ValueError: invalid literal for int() with base 10: 'Insert a number'

                                      אתה יכול גם לנסות לתרגם בטרנסלייט,

                                      לענינינו הפונקיה int מצפה לקבל מספר ולא טקסט.

                                      י מנותק
                                      י מנותק
                                      ישראל 1 0
                                      כתב ב נערך לאחרונה על ידי ישראל 1 0
                                      #180

                                      @נעזר1000 אני רוצה גם להדפיס משפט וגם לקבל מידע ולהמיר אותו למספר

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

                                        @נעזר1000 אני רוצה גם להדפיס משפט וגם לקבל מידע ולהמיר אותו למספר

                                        ד מנותק
                                        ד מנותק
                                        דאלינאר
                                        כתב ב נערך לאחרונה על ידי
                                        #181
                                        פוסט זה נמחק!
                                        תגובה 1 תגובה אחרונה
                                        0
                                        • נ נעזר1000

                                          @ישראל-1-0 כתב בבקשת מידע | קורס פייתון:

                                          מה לא נכון?

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

                                          ValueError: invalid literal for int() with base 10: 'Insert a number'

                                          אתה יכול גם לנסות לתרגם בטרנסלייט,

                                          לענינינו הפונקיה int מצפה לקבל מספר ולא טקסט.

                                          י מנותק
                                          י מנותק
                                          ישראל 1 0
                                          כתב ב נערך לאחרונה על ידי
                                          #182

                                          @נעזר1000 ?

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

                                          • התחברות

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

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