שאלה | שאלה בפקודה בפייתון
-
אני לומד פייתון וניסיתי לעשות התנייה של רשימה בקוד הזה
m = [5] if m is [5] : print('j') elif m is 'k' : print('h') else : print('f')
והתוצאה שאני מקבל זה f למרות שהמשתנה דומה להשוואה הראשונה מה שאמור להביא לי j
@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
אני לומד פייתון וניסיתי לעשות התנייה של רשימה בקוד הזה
m = [5] if m is [5] : print('j') elif m is 'k' : print('h') else : print('f')
והתוצאה שאני מקבל זה f למרות שהמשתנה דומה להשוואה הראשונה מה שאמור להביא לי j
איני בקי בפייתון.
אבל הבעיה בקוד שלך היא לכאורה ההשוואה בין M לערך.
האם זה צריך להיות בסוגריים או בלי?if m is [5] : elif m is 'k' :
-
@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
אני לומד פייתון וניסיתי לעשות התנייה של רשימה בקוד הזה
m = [5] if m is [5] : print('j') elif m is 'k' : print('h') else : print('f')
והתוצאה שאני מקבל זה f למרות שהמשתנה דומה להשוואה הראשונה מה שאמור להביא לי j
איני בקי בפייתון.
אבל הבעיה בקוד שלך היא לכאורה ההשוואה בין M לערך.
האם זה צריך להיות בסוגריים או בלי?if m is [5] : elif m is 'k' :
-
@שמעון-pc למה אתה כותב עם is ולא == ?
עם == זה עובדm = [5] if m == [5]: print('j') elif m == 'k': print('h') else: print('f')
-
@ישראל-פ תודה רבה
אני עשיתי כמו שראיתי במדריך אבל == בהחלט עובד יותר טוב וגם קודם עם is הייתי מקבל את התוצאה עם שגיאה@שמעון-pc גם התוצאה של השוואה ישירה:
[5] is [5]
תהיה
False
, וזאת משום שis
בודק את המיקום בזיכרון ולא מיועד סתם להשוואה האם הערך של שני משתנים זהה.
אתה יכול ללמוד עוד על ההבדלים בסרטון: https://www.youtube.com/watch?v=0_dQpUtcubM
ספר לימוד מומלץ לפייתון: https://data.cyber.org.il/python/python_book.pdf
-
@שמעון-pc גם התוצאה של השוואה ישירה:
[5] is [5]
תהיה
False
, וזאת משום שis
בודק את המיקום בזיכרון ולא מיועד סתם להשוואה האם הערך של שני משתנים זהה.
אתה יכול ללמוד עוד על ההבדלים בסרטון: https://www.youtube.com/watch?v=0_dQpUtcubM
ספר לימוד מומלץ לפייתון: https://data.cyber.org.il/python/python_book.pdf
@צדיק-תמים אז לכן בהתנייה שלי למעלה הid השתנה בגלל שזה לא אותה רשימה אלא רשימה חדשה
תודה רבה לכולכם -
אני לומד פייתון וניסיתי לעשות התנייה של רשימה בקוד הזה
m = [5] if m is [5] : print('j') elif m is 'k' : print('h') else : print('f')
והתוצאה שאני מקבל זה f למרות שהמשתנה דומה להשוואה הראשונה מה שאמור להביא לי j
@שמעון-pc
מק"ה
יש כאן בעיה תחביריתlen(5)
-
@שמעון-pc
מק"ה
יש כאן בעיה תחביריתlen(5)
@משחזר-מידע לא הבנתי
תוכל לפרט יותר? -
@משחזר-מידע לא הבנתי
תוכל לפרט יותר?@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
תוכל לפרט יותר?
אולי תפרט אתה יותר
מה זה הm?
מדובר במערך (array)?@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
אני עשיתי כמו שראיתי במדריך
ואו שתעלה את המדריך המדובר
-
@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
תוכל לפרט יותר?
אולי תפרט אתה יותר
מה זה הm?
מדובר במערך (array)?@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
אני עשיתי כמו שראיתי במדריך
ואו שתעלה את המדריך המדובר
-
@משחזר-מידע הוא דוקא כתב - מדובר ברשימה (list)
@NH-LOCAL כתב בשאלה | שאלה בפקודה בפייתון:
הוא דוקא כתב - מדובר ברשימה (list)
אז איך
m = [5]
ככה מייצרים list?
-
@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
תוכל לפרט יותר?
אולי תפרט אתה יותר
מה זה הm?
מדובר במערך (array)?@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
אני עשיתי כמו שראיתי במדריך
ואו שתעלה את המדריך המדובר
@משחזר-מידע הm זה סתם אות שבחרתי למשתנה מסוג list
-
@NH-LOCAL כתב בשאלה | שאלה בפקודה בפייתון:
הוא דוקא כתב - מדובר ברשימה (list)
אז איך
m = [5]
ככה מייצרים list?
@משחזר-מידע כן זה משתנה list וככה אפשר ליצור אותו
-
@NH-LOCAL כתב בשאלה | שאלה בפקודה בפייתון:
הוא דוקא כתב - מדובר ברשימה (list)
אז איך
m = [5]
ככה מייצרים list?
-
@משחזר-מידע הוא פשוט יצר רשימה עם אייטם אחד בלבד. קצת לא שימושי אולי, אבל אפשרי...
באותה מידה היה ניתן לעשות:
[1, 3, 5]
-
-
@שמעון-pc ועדיין בעייה תחבירית
list = [5] m = 5 if m in list או if 5 in list או if list[0] == 5
-
@משחזר-מידע לא הייתה לי סיבה מיוחדת לקוד סתם ניסיתי פקודה והופתעתי כשהתוצאה הייתה שונה משציפיתי
-
@משחזר-מידע לא הייתה לי סיבה מיוחדת לקוד סתם ניסיתי פקודה והופתעתי כשהתוצאה הייתה שונה משציפיתי
@שמעון-pc כתב בשאלה | שאלה בפקודה בפייתון:
סתם ניסיתי פקודה והופתעתי
כי מדובר בבעיה תחבירית
אין מה להיות מופתע כשיורים באפלה
ראה פקודות תחבירית נכונות לעיל