הבנת השימוש ב- VSCode, ובעיות ב2 התרגילים הראשונים

לשמחתי הצלחתי היום להתחיל להבין איך משתמשים בתוכנה, ואיך להריץ בדיקת באגים, אמנם זה עדיין מבלבל אבל הצלחתי להבין את העיקרון הבסיסי.
תקלה / משהו מוזר שאני לא בטוח אם זה אמור להיות ככה, וחיפוש באינטרנט רק מבלבל אותי.
כשאני מריץ את הקוד לבדיקת באגים, אני רואה אותו תחת לשונית terminal ביחד עם עוד שורה שמפעילה את הקוד, ובנוסף הוא גם לא מתאפס בכל הרצה (אני מניח שזה אמור להיות ככה), אבל בלשונית output לא מופיע לי כלום, בשורה התחתונה אני מנסה לראות את הפלט ה"נקי" של הקוד בלי כל הדברים מסביב, זאת בכלל אופציה?
לא שהוא לא יוצא נקי תחת לשונית terminal, פשוט כשזה בין השורות שם זה מתבלבל לי ואני רוצה שהקוד יודפס לי בדומה לאיך שעבדנו במחברות גופיטר, קוד נקי שמתאפס בכל פעם, אשמח לדעת אם זו בכלל אופציה, ואם כן מה אני עושה לא נכון.

שתי השאלות הבאת מתייחסות לשני התרגילים הראשונים ביום 1:
הראשונה בתרגיל פיבונאצי, בהתחלה שהדבקתי את הקוד לתוך החלון שלי באמת ראיתי שקיבלתי 2 התראות, שמתי לב שהראשונה קשורה לכך שהמילה fibo לא מוגדרת והמחשב לא מכיר אותה, מהרגל פשוט לחצתי עליה קליק ימני ובחרתי “add word to user dictionary” וכל ההתראות נעלמו לי, רק שאני די בטוח שלא זה הפיתרון.

ניסיתי להריץ שוב את הדיבאג, ניסיתי לפתוח קובץ חדש ולהעתיק, לא משנה מה ההתראות לא קופצות מחדש.

בתרגיל השני, בהתחלה הייתה לי התראה על השורה:

import sounddevice

ההתראה הראשונה הייתה שהמודול לא קיים, לאחר שפתחתי את ה- VSCode מחדש ופתחתי קובץ חדש, עכשיו יש לי את ההתראה הבאה:

Import "sounddevice" could not be resolvedPylance (reportMissingImports)

מחיפוש בגוגל מה שהצלחתי להבין שזו התראה שנובעת מאחת התוספות של VSCode שהוספתי, ספציפית אחת התוספות שתפקידה לבדוק שהקוד תקין.
כמו שאפשר לראות הבעיה קופצת עם ההרחבה pylance, רק כשאני מנסה להוריד את ההרחבה, בדיבאג נוסף אני מקבל התראה שהמודול sounddevice בכלל לא קיים.
המשכתי בחיפוש והבנתי שמדובר במודול חיצוני שאני צריך להתקין, אמנם לא הבנתי איך להתקין דרך הVSCode עדיין, אבל בניסיון להתקין דרך cmd אני מקבל את ההתראה:

ERROR: Could not find a version that satisfies the requirement sounddevice (from versions: none)
ERROR: No matching distribution found for sounddevice

בבדיקה מה הגרסא שמותקנת אצלי, הגרסא העדכנית על המחשב שלי היא 3.7.6, כך שלא אמורה להיות בעיה של גרסא, ולכן, אני לא בטוח איך להתקדם מכאן.

אני לא יודע לגבי ההצגה של הפלט, הטרמינל וכו’
אבל לגבי 2 השאלות שלך:

  1. נשמע שמה שלא מזהה את המילה fibo הוא תוסף של בדיקת איות (כי הוספת אותה למילון, כמו כשמילה לא מוכרת לבודק איות בוורד). אז זה סבבה

  2. ממליץ לך לחזור למחברת שעוסקת במודולים ובהתקנת מודולים :slight_smile:

2 לייקים

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

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

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

5 לייקים

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

העניין הוא שבכלל לא התקנתי אותו אז אין לי גם איך למחוק אותו מהמחשב.
בכל אופן ניסיתי גם לעשות את התרגיל השני שים הוסיף לנו, ואני לא מצליח להבין אם זה משהו שאני עושה לא נכון / לא שם לב אליו.
גם בתרגיל הראשון וגם בתרגיל השני, אני מריץ דיבאג ולא עולות לי התרעות.
היחידות שהיו לי הן על איות של מילים, אותן תיקנתי ברגע ובמצבים כמו itertools לדוגמא פשוט עשיתי קליק ימני והוספתי אותה למילון.
אני מבין שיש פה מצב של לולאה אינסופית (הרצתי במחברות גופיטר כדי לבדוק), אבל בדיבאג לא קופצת לי שום בעיה אז אני לא מצליח למצוא אותה.
ניסיתי גם את האפשרות שאפשר לבחור מתי להגיד לדיבאג לעצור כדי לבדוק מה הוא מחזיר ומה הערכים הנוכחיים וכו’ (הנק’ האדומה) אבל בגלל שהוא מתחיל להיעצר רק בשלב של הלולאה בסוף הוא לא קולט את העצירות שוב, אלא רק עצירה אחת.

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

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

2 לייקים

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

2 לייקים