אני קצת משתגעת פה ואשמח לגאולה.
בתרגיל ימצי קיבלתי הערות על 2-3 list comprehension שעשיתי - התבקשתי לשנות אותן ל-list().
בתור הבחורה הצייתנית שאני, זה בדיוק מה שעשיתי, ולאחר שהעלתי את התרגיל מחדש קורנת מאושר, חשכו עיניי - התבקשתי לעשות את הדבר ההפוך - להפוך את הרשימות שהמרתי כל כך יפה בחזרה ל-list comprehension. אני מרגישה תקועה בלולאה אינסופית!
אני אובדת עצות בשלב הזה, ואודה לעזרה לפני שהבודק ואני נפתח בקרב אורטל קומבט שככל הנראה יגמר ברע.
עוקבת, מבטיחה! ועם זאת אני מרגישה שהכל תקין ועדיין מבולבלת.
אפשר לשאול איך היית כותב את הקוד הזה מבלי עבודה מיותרת?
אני פשוט לא מצליחה לחשוב על כתיבה שהיא לא שימוש ב-list comprehension, והרי ההערות הן על שני הניסוחים שלי.
b = list(number for number in range(1, 10))
b = [number for number in range(1, 10)]
חיפוש בגוגל מביא אותי לכתיבה השנייה לצורך העניין
עריכה:
העמקה נוספת בגוגל הביאה אותי ל-list(range(1, 10)! אוקיי! אך מה לגבי השאר?
הבנתי! ממש תודה על הסבלנות. ילדה צייתנית אך עובדת שעות נוספות כשאין צורך.
ההערות היחידות שנשארו לי בתרגיל הן של ה-request, הבנתי שמהן ניתן להתעלם?
(קיים תנאי שבודק אם הכתובת מתחילה ב-http)
מעניין, אבל אני רואה שבמערכת זה באמת ממשיך לתת את השגיאה למרות שווידאת קלט.
הוא באמת קצת מעצבן, אעיף את השגיאה הזו מהמערכת.
בכ"מ טוב שלמדת להשתמש ב־requests, הוא מודול מוצלח יותר למטרות האלו
בגלל סיבות קצת מוזרות. הבעיה שהוצגה לך אומרת שמישהו בטעות יכול להכניס file:// בתחילת הקישור, ו־urlopen יפתח את זה.
זה אומר שמשתמש עלול להיות מסוגל לקרוא דברים ממערכת הקבצים המקומית שממנה מופעל הסקריפט, אז אם מדובר בשרת שרץ מרחוק משתמש (אולי) יוכל לקרוא/לכתוב לקבצים בשרת, וזה מסוכן מאוד.
ל־requests אין את הפיצ’ר הזה – היא קוראת רק מ־http/https וככה יוצא שהיא בטוחה יותר