בנק 2.0 שתי שאלות

אהלן :slight_smile:

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

  1. כאשר אני רוצה לוודא אם הסיסמה שהכניסו מתאימה לסיסמה שיש לאותו שם משתמש בקובץ, קראתי מהטקסט כל פעם שורה אחת והפכתי כל שורה לרשימה. אחרי זה ניגשתי למקום השני ברשימה (איפה שמופיעה הסיסמה) ועשיתי לה ניקוי של \n. עם זאת עדיין גם אם הסיסמה הייתה זהה למה שרשום בטקסט זה עדיין לא הראה לי כאילו הן שוות. ניסיתי לשנות Int\stg וגם “לנקות” עם strip וזה לא עזר. בסוף מה שעשיתי זה להשתמש בIn ולבדוק האם הסיסמה שהמשתמש הזין נמצאת בתוך הסיסמה של הטקסט אבל אני מבין את הבעייתיות בכך.

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

תודה רבה,

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

  2. יש דרך אחרת, תחשוב על הפעולות השונות שהכרנו לפנות לקובץ :slight_smile:
    ייתכן שזה ייצא פתרון נאיבי שלא נפעיל אותו בעולם האמיתי, אך זהו פתרון שעובד. שנית אם נמשיך עם הפתרון שלך, אז בעצם יש לך שורה ריקה מתחת לשורה האחרונה. אולי יש סיבה לכך שהוא נוצר בשל השורה מעליו?

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

  2. אתה יכול לעשות replace גם ל\n. בפייתון זה פחות מקובל לעבוד ככה. נסה לחשוב על דרך אחרת לעבוד עם המידע בקובץ.

אגב, יש סיכוי שאתה האורן שאני מכיר מבה״ד1? :slight_smile:

3 לייקים

נוימן תודה רבה! אנסה את זה :slight_smile: