בקשת מידע | קורס פייתון
-
@פלדה ממליץ בחום על סדרת הסרטונים ביוטיוב קורס פיתון יוטיוב פתוח בנטפרי סידרה של 32 סרטונים באורך ממוצע של 20 דקות מסביר מעולה מאפס כול מה שצריך
עריכה חוץ מפרק 18 שחסום -
@פלדה ממליץ בחום על סדרת הסרטונים ביוטיוב קורס פיתון יוטיוב פתוח בנטפרי סידרה של 32 סרטונים באורך ממוצע של 20 דקות מסביר מעולה מאפס כול מה שצריך
עריכה חוץ מפרק 18 שחסום@ישראל-1-0
אני מרוצה מהקורס, תודה.
וזה שיש שאלות זה אלמנטרי... -
@פלדה ממליץ בחום על סדרת הסרטונים ביוטיוב קורס פיתון יוטיוב פתוח בנטפרי סידרה של 32 סרטונים באורך ממוצע של 20 דקות מסביר מעולה מאפס כול מה שצריך
עריכה חוץ מפרק 18 שחסום@ישראל-1-0 @איסתרק-השלישי
אוקיי חבר'ה, זו המשימה שלי:
יש לי כבסיס את הקטע קוד הבא שכתבתי -def is_valid_input(letter_guessed): ... if len(letter_guessed) != 1: ... if(letter_guessed).isalpha(): ... print ("fales") ... else: ... print ("fales") ... else: ... if(letter_guessed).isalpha(): ... print ("true") ... else: ... print ("fales")
בעזרת איזו פקודה אפשר להגדיר שכל ערך תקין יוכנס לרשימה, והערך הבא שיוכנס - אם הוכנס כבר יוחזר הערך הבוליאני fales?
אל תגלו לי רק תגידו מה הפקודות.
אגב, אם יש למישהו הערות על הקטע קוד הנ"ל, אשמח לשמוע.. -
@ישראל-1-0 @איסתרק-השלישי
אוקיי חבר'ה, זו המשימה שלי:
יש לי כבסיס את הקטע קוד הבא שכתבתי -def is_valid_input(letter_guessed): ... if len(letter_guessed) != 1: ... if(letter_guessed).isalpha(): ... print ("fales") ... else: ... print ("fales") ... else: ... if(letter_guessed).isalpha(): ... print ("true") ... else: ... print ("fales")
בעזרת איזו פקודה אפשר להגדיר שכל ערך תקין יוכנס לרשימה, והערך הבא שיוכנס - אם הוכנס כבר יוחזר הערך הבוליאני fales?
אל תגלו לי רק תגידו מה הפקודות.
אגב, אם יש למישהו הערות על הקטע קוד הנ"ל, אשמח לשמוע..@פלדה הערה על הקוד: אם שונה מאחד אין עוד טעם לבדוק אם זו אות, הרי זה ודאי שגיאה.
הקוד המתוקן:
def is_valid_input(letter_guessed): ... if len(letter_guessed) != 1: ... print ("fales") ... else: ... if(letter_guessed).isalpha(): ... print ("true") ... else: ... print ("fales")
-
@פלדה הערה על הקוד: אם שונה מאחד אין עוד טעם לבדוק אם זו אות, הרי זה ודאי שגיאה.
הקוד המתוקן:
def is_valid_input(letter_guessed): ... if len(letter_guessed) != 1: ... print ("fales") ... else: ... if(letter_guessed).isalpha(): ... print ("true") ... else: ... print ("fales")
-
@פלדה הערה על הקוד: אם שונה מאחד אין עוד טעם לבדוק אם זו אות, הרי זה ודאי שגיאה.
הקוד המתוקן:
def is_valid_input(letter_guessed): ... if len(letter_guessed) != 1: ... print ("fales") ... else: ... if(letter_guessed).isalpha(): ... print ("true") ... else: ... print ("fales")
-
@פלדה בדרך כלל משתמשים במילת המפתח in כדי לחפש פריט ברשימה:
if is_valid_input(letter) and letter not in guessed_list:
שים לב כמה הקוד קריא ומובן כמו אנגלית פשוטה.
@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 = ([""])
-
@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 = ([""])
@פלדה הסיבה שהוא לא הצליח לגשת לרשימה זה בגלל שקראת בתוך הפונקציה למשתנה שהוגדר מחוץ לפונקציה, הקוד צריך להיראות כך:
>>> 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)
אגב, זה חלק מדרישות המשימה המקוריות.
-
@פלדה הסיבה שהוא לא הצליח לגשת לרשימה זה בגלל שקראת בתוך הפונקציה למשתנה שהוגדר מחוץ לפונקציה, הקוד צריך להיראות כך:
>>> 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)
אגב, זה חלק מדרישות המשימה המקוריות.
@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))
שונה מהקוד שאני כתבתי?
-
@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
למה קבלתי הודעת שגיאה?
@פלדה אני לא רואה שום בעיה, אולי בטעות יש רווח מיותר אחרי הנקודתיים?
-
@פלדה אני לא רואה שום בעיה, אולי בטעות יש רווח מיותר אחרי הנקודתיים?