בקשת מידע | קורס פייתון
-
@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))
שונה מהקוד שאני כתבתי?
@פלדה כמובן, יחי ההבדל הקטן!
עקרון מאד חשוב בתיכנות הוא "מרחב השמות", כלומר התחום בו אני יכול לקרוא למשתנה מסוים. בתוך פונקציה בעקרון אפשר לקרוא רק לערכים שנשלחו לפונקציה, או לערכים שנוצרו בתוכה, ואתה קראת לערך old_leterd_guessed שהוגדר מחוץ לפונקציה. לכן שלחתי אותו לפונקציה ואז קראתי לערך שנשלח ולא לערך שבחוץ. ודוק.
-
@פלדה כמובן, יחי ההבדל הקטן!
עקרון מאד חשוב בתיכנות הוא "מרחב השמות", כלומר התחום בו אני יכול לקרוא למשתנה מסוים. בתוך פונקציה בעקרון אפשר לקרוא רק לערכים שנשלחו לפונקציה, או לערכים שנוצרו בתוכה, ואתה קראת לערך old_leterd_guessed שהוגדר מחוץ לפונקציה. לכן שלחתי אותו לפונקציה ואז קראתי לערך שנשלח ולא לערך שבחוץ. ודוק.
-
@פלדה כמובן, יחי ההבדל הקטן!
עקרון מאד חשוב בתיכנות הוא "מרחב השמות", כלומר התחום בו אני יכול לקרוא למשתנה מסוים. בתוך פונקציה בעקרון אפשר לקרוא רק לערכים שנשלחו לפונקציה, או לערכים שנוצרו בתוכה, ואתה קראת לערך old_leterd_guessed שהוגדר מחוץ לפונקציה. לכן שלחתי אותו לפונקציה ואז קראתי לערך שנשלח ולא לערך שבחוץ. ודוק.
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
-
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
8
2
9
3 -
@פלדה הגדרת לו הדפסה בכל איטרציה של הלולאה, כלומר כל פעם אחרי פעולה של הוספה לרשימה - הוא מדפיס את אורך הרשימה. בתחילה רק את רשימת התוים שאינם מספרים, בסדר עולה - עם כל תו שמתווסף, ולאחר מכן - הוא מתחיל להדפיס את רשימת הספרות - כאשר בין לבין יש גם תו שאינו מספר - הנקודה, לכן זה נראה כך
1
8
2
9
3אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,
ודו"ק -
אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,
ודו"ק@איסתרק-השלישי כתב בבקשת מידע | קורס פייתון:
אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,
ואיפה לשים אותו? בקריאה לפונקציה?
-
@איסתרק-השלישי כתב בבקשת מידע | קורס פייתון:
אם אתה רוצה שידפיס לך רק פעם אחת, תוציא את ה print מהבלוק של ה for,
ואיפה לשים אותו? בקריאה לפונקציה?
@פלדה לא, כך:
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 שהיה בקריאה לפונקציה, הוא מיותר.
-
@פלדה לא, כך:
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 שהיה בקריאה לפונקציה, הוא מיותר.
@איסתרק-השלישי
ו--
מה הבעיה בזה??>>> def main(): ... products = input("הזן רשימת מוצרים לקניות, מופרדת בפסיקים ללא רווחים: ") ... action = int(input("הזן מספר פעולה: ") ... if action == 1: File "<stdin>", line 4 if action == 1: ^ SyntaxError: invalid syntax
למה קבלתי הודעת שגיאה?
-
@איסתרק-השלישי
ו--
מה הבעיה בזה??>>> def main(): ... products = input("הזן רשימת מוצרים לקניות, מופרדת בפסיקים ללא רווחים: ") ... action = int(input("הזן מספר פעולה: ") ... if action == 1: File "<stdin>", line 4 if action == 1: ^ SyntaxError: invalid syntax
למה קבלתי הודעת שגיאה?
@פלדה אני לא רואה שום בעיה, אולי בטעות יש רווח מיותר אחרי הנקודתיים?
-
@פלדה אני לא רואה שום בעיה, אולי בטעות יש רווח מיותר אחרי הנקודתיים?
-
@פלדה
הגדרתי את HANGMAN_ASCII_ART כמשתנה למשפט Welcome to the game Hangman
ושנתתי את הפקודה Print ("HANGMAN_ASCII_ART") זה הדפיס לי את המשתנה ולא את המשפט שאותו הוא 'מייצג'
במה טעיתי? -
@פלדה
טעית בזה ששמת למשתנה מרכאות ובכך הפכת אותו למחרוזת חסרת משמעות ערכית
למעשה עליך להכניס את המשתנה ללא המרכאות@הרשי-רוז תן לי לנחש שאתה מגיע משפת תכנות אחרת שאינה פייתון....
-
@הרשי-רוז תן לי לנחש שאתה מגיע משפת תכנות אחרת שאינה פייתון....
@איסתרק-השלישי אני מC#
אבל גם לומד JS וקצת פייתון... -
-
שלום אני מתכנת מתחיל בפייתון וניסיתי לכתוב מחשבון
וזה הקוד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'
מה לא נכון? -
שלום אני מתכנת מתחיל בפייתון וניסיתי לכתוב מחשבון
וזה הקוד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 כתב בבקשת מידע | קורס פייתון:
מה לא נכון?
פייתון נותן הסבר על השגיאות שלו בצורה די ברורה,
תמיד תסתכל על השורה האחרונה של טקסט השגיאה,
במקרה שלנו זה:ValueError: invalid literal for int() with base 10: 'Insert a number'
אתה יכול גם לנסות לתרגם בטרנסלייט,
לענינינו הפונקיה int מצפה לקבל מספר ולא טקסט.
-
@ישראל-1-0 כתב בבקשת מידע | קורס פייתון:
מה לא נכון?
פייתון נותן הסבר על השגיאות שלו בצורה די ברורה,
תמיד תסתכל על השורה האחרונה של טקסט השגיאה,
במקרה שלנו זה:ValueError: invalid literal for int() with base 10: 'Insert a number'
אתה יכול גם לנסות לתרגם בטרנסלייט,
לענינינו הפונקיה int מצפה לקבל מספר ולא טקסט.
-
@ישראל-1-0 כתב בבקשת מידע | קורס פייתון:
מה לא נכון?
פייתון נותן הסבר על השגיאות שלו בצורה די ברורה,
תמיד תסתכל על השורה האחרונה של טקסט השגיאה,
במקרה שלנו זה:ValueError: invalid literal for int() with base 10: 'Insert a number'
אתה יכול גם לנסות לתרגם בטרנסלייט,
לענינינו הפונקיה int מצפה לקבל מספר ולא טקסט.
-
-