מחברת 3 - תרגיל 'מי דגנים בריאים?'

הדרך הכי קלה לוודא את התשובה היא לפתוח את הקובץ עצמו (אפשר מתוך המחברת כפי שהראו לפני כן).

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

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

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

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

יש חשיבות מאוד גדולה לשורה בה זה צועק ולסוג השגיאה שנצעקת. תוכל להדביק את זה כאן בבקשה?(:

הורדתי את הקוד עצמו, פחות מעניין(:
איך אני הייתי במקומך מגלה מה הערך הבעייתי?
מוסיף print(rating) לפני השורה שמסומן שעליה פייתון קורסת

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

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

4 לייקים

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

לייק 1

אני לא הבנתי משהוא קטן בתרגיל,
האם אני צריכה להדפיס את הrating הגבואה ביותר או את כל הrating לפי הגבואה לנמוך?

לייק 1

להדפיס את הדגנים עם הרייטינג הגבוה ביותר (ואת הרייטינג שלהם)

לייק 1

היי את צריכה להדפיס רק אחת את הגבוה ביותר ברייטינג

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

למה את חושב שאי אפשר להמיר מחרוזת ל-float?

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

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

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

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

לייק 1