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

היי,

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

נראה לי הגיוני ביותר לצאת מנקודת הנחה באיזו עמודה הם.

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

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

בכל מקרה זה לא מוסיף הרבה יותר מדי שורות קוד אז בגדול אני מניח שאם בא לך
לכי על זה :slight_smile:

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

לייק 1

אפשר לצאת מנקודת הנחה של סדר העמודות.
אם אתה רוצה לעשות אקסטרה כבונוס – אנחנו נשמח לראות את זה :slight_smile:

סבבה תודה!

וזה אתה, לא את (guy בשם זה דיי רמז :slight_smile: )

צודק ! :slight_smile: סליחה לא שמתי לב

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

נראה לי שהשאלה החשובה זה מה הוא צועק :slight_smile:

ValueError: could not convert string to float:

ואת זה קודם לכן:
if some_row[-1] > the_most_healthy:
11 the_most_healthy = the_most_healthy
12 name_of_cereal = some_row[0]

TypeError: ‘>’ not supported between instances of ‘str’ and ‘int’

מה אתה חושב שאפשר ללמוד מהשגיאות האלה על הפעולות שניסית לעשות?

שהרשימה מכילה ערכים בצורת מחרוזת, ולכן לא ניתן לבצע עליהם השוואות.
אבל לא כל כך ברור לי למה לא ניתן להמיר את הערכים האלה כרצוני

ניתן להשוות בין מחרוזת למחרוזת, וניתן להשוות בין int ל-int.
ובשגיאה הראשונה שציינת, בעברית המשמעות היא, “לא הצלחתי להמיר את המחרוזת למשתנה מסוג float”.
תנסה להבין למה פייתון לא הצליחה לעשות את ההמרה הזו. האם כל מחרוזת אפשר להמיר ל-float? מה צריך לייחד את המחרוזת כדי שנצליח לעשות את זה? תוודא שהמחרוזת שלך עומדת בתנאי הזה.

האם אפשר להשוות בין לדוגמה מחרוזת “55.251” למחרוזת “95.232”?
להבנתי כדי להמיר מחרוזת לfloat היא צריכה להיות מספר (אפילו אם אין לו נקודה עשרונית תיאורטית). אני טועה?

אפשר להשוות בין שתי מחרוזות של מספרים אולם שים לב - ההשוואה לא תהיה בין המספרים עצמם אלא על הערך המספרי של התווים שמרכיבים את המחרוזת ולכן זה לא נכון לעשות השוואה כזו.

אתה צריך חהביא את זה למצב שזה ממש מספר ואז להשוות בין שניהם

זה מה שאני מנסה לעשות ללא הצלחה…

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

לייק 1

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

68.402973
33.983679
59.425505
93.704912
34.384843
29.509541
33.174094
37.038562
49.120253
53.313813
18.042851
50.764999
19.823573
40.400208
22.736446
41.445019
45.863324
35.782791
22.396513
40.448772
64.533816
46.895644
36.176196
44.330856
32.207582
31.435973
58.345141
40.917047
41.015492
28.025765
35.252444
23.804043
52.076897
53.371007
45.811716
21.871292
31.072217
28.742414
36.523683
36.471512
39.241114
45.328074
26.734515
54.850917
37.136863
34.139765
30.313351
40.105965
29.924285
40.692320
59.642837
30.450843
37.840594
41.503540
60.756112
63.005645
49.511874
50.828392
39.259197
39.703400
55.333142
41.998933
40.560159
68.235885
74.472949
72.801787
31.230054
53.131324
59.363993
38.839746
28.592785
46.658844
39.106174
27.753301
49.787445
51.592193
36.187559

מי צועק ומתי? :slight_smile:

לייק 1