כמה שאלות על שבוע 2

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

  1. כשיש הרבה טקסט שצריך להדפיס אותו, אני רוצה בשביל הנראות בקוד שלי לחלק אותו לשורות באמצעות אנטר פשוט. נגיד במקום
    print(“first line\n second line”)d
    לכתוב:
    print ("first line
    (second line

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

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

  2. כאשר אני מקבלת מספר בתור מחרוזת, האם אני יכולה לבדוק האם הוא גדול ממחרוזת של מספר אחר ואני תמיד אקבל את התשובה הנכונה מבחינה מספרית? אני יודעת שבאותיות זה לא בדיוק ככה אבל האם “1234” > “0” זה חוקי?

  3. שאלה על IF בכלל- האם אפשר רק לעשות רשימה של IFs ובסופה אין else או שברגע שיש לי IF מתישהו חייב להגיע else? כתבתי קוד שעבד בלי else סגור IF אבל השאלה היא אם זה בסדר לכתוב ככה או שזה יכול ליצור בעיות/ זאת לא הקונבנציה הנכונה לכתוב אותו?

תודה רבה על כל ההשקעה שלכם ממש מעריכה את זה.

לייק 1
  1. על-מנת לעשות את מה שאת רוצה, יש להשתמש ב-""" מכל צד במקום ".
  2. נשמע לי מוזר, אצלי זה כן מופיע בסדר הנכון. אולי כדאי לך לנסות לכתוב כמה שורות בתוך האינפוט?
  3. להשוות מספרים דרך מחרוזות זה בעייתי, למשל מכיוון שבעוד שבמחרוזת ניתן לקבל את ה"מספר" “01” במספר זה לא אפשרי - ובמחרוזת תקבלי את התשובה ש-“1”>“01”. עדיף לדעתי לעשות המרה למספרים ולהשוות ביניהם.
  4. אפשר לעשות רק if-ים. השאלה היא מה המטרה שלך: אם את רוצה ליצור התנהגות מסוימת שתיקח בחשבון כל קלט אפשרי כדאי להשתמש ב-else (במקום לחשוב בעצמך על כל סוג קלט אפשרי וכנראה לפספס מקרי קצה). אם את רוצה שכל קלט מתאים ייכנס לכל אחד מהבלוקים אליהם הוא מתאים את חייבת להשתמש ב-if בלבד, כי במבנה של if-elif-else את נכנסת אך ורק לבלוק הראשון אליו את מתאימה.
4 לייקים

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


מחדד חלק מהתשובות של אורפז:

  1. שתי תכונות מגניבות של פייתון יהפכו את החיים שלך ליפים יותר בהקשר הזה:
    1.1 פייתון יודעת לזרום לשורות הבאות אם יש סוגריים פתוחים.
    1.2 פייתון יודעת לשרשר מחרוזות אם הן כתובות עם גרשיים/גרש אחת ליד השנייה:
x = "hello " "world"
x == "hello world"

1.3 משמע: ההצעה של אורפז עם 3 גרשיים עובדת, אבל אפשר גם כך:

print(
    "In a North London, top floor flat;\n"
    "All white walls, white carpet, white cat,;\n"
    "Rice Paper partitions;\n"
    "Modern art and ambition;\n"
    "The host's a physician[...];"
)

הדוגמה שהבאת לא עובדת כי שכחת לסגור גרש ולהוסיף \n :slight_smile:

  1. זה… מוזר. אשמח לראות דוגמה.
  2. סופר לא מומלץ. באחד הסרטונים אני מדגים כמה השוואה בין מחרוזות היא בעייתית. הדוגמה הכי בסיסי היא '100' < '99'.
  3. מה שאורפז
3 לייקים

תודה על התשובות ועל החידודים של הנושאים.

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

ישש! מצאתי שאלה בנושא :slightly_smiling_face:
חברים לי זה לא עובד, אשמח לעזרה מכם!

  1. אני שואל לגבי הוספת קלט אחרי כמה מילים .
  2. בשורה מתחת הבעייתיות עם הInput, חשבתי על לנקות את ההדפסה+קלט וככה להשים את הקלט בלבד במשתנה
    אז 2.1 האם אפשר לנקות את כל האותיות באיזשהו סימון אחד, נגיד(a-z) או שצריך להכניס בארגומנט של strip את כל האותיות, פיתרון אחר ?!
    2.2 האם מראש יכלתי להדפיס את התשובה מהפונקציה(אם True - מדפיסה משפט) בתור משתנה?
    כי אם כן יכלתי לעשות עליו ישר את הstrip, לדוגמא…

//צונזר קוד//

@orpazf
אם את יודעת לעזור גם פה, בטוח שיעזור לים ולשאר המשתתפים בקורס
וכן. שהמקרר של תמיד יהיה מלא מהאקסטרה רטבים מלמעלה :innocent:

@Yam אולי תעשו שיהיה אפשר לתייג בשאלות את הסגל תחת שם אחד?
ייעול או סרבול - אתה תגיד…

אפשר לתייג את הסגל בעזרת @Educational.Team, אבל זה נחשב מאוד לא מנומס.
הסגל ממילא רואה את כל ההודעות ולא יפה לצפור סתם, אין סיבה שהשאלה שלך תקבל עדיפות על 20 השאלות שמתפרסמות באותו יום :slight_smile:

בגלל החזרה לסמסטר לא הגעתי לתרגיל עדיין, אז אני לא אספיילר לעצמי חלקים מהתשובה :grinning:
אבל תודה על האיחולים, אני תמיד שמחה לגלות הר מיונז במקרר :yum: :yum:

4 לייקים

@Yam

תוכל אז אתה לעזור לי עם השאלה? שלוש הודעות למעלה.
ולגבי התיוג, קיבלתי. 100%…

זה בתרגיל מערכת בנק 2 מחברת 7 שבוע שני

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

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

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

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

Insert username: stam
Insert password: stamSTAMXXXX
Login succeeded. How much you’d like to withdraw? 200
Please take your money (200NIS). Your balance is: 300NIS.

זוהי אחת מהדוגמאות של תוצאה נכונה מהתוכנית.
איך אפשרי לקבל משפט כזה (Login succeeded. How much you’d like to withdraw? 200) בלי לבקש קלט אחרי הטקסט שאני מדפיס אל המשתמש?

הבנתי מה הפער, זה הרבה יותר פשוט משאתה חושב.
את המשפט הזה “Login succeeded. How much you’d like to withdraw?” אתה זה שמדפיס - זו השאלה שעליה אתה מקבל את התשובה “200”.

לייק 1

אוי
את אדירה, תודה

מלא מלא מיונז

2 לייקים

מהמם שסיימתי את התרגיל !! ייאייי

עכשיו יש לי שאלות כלליות שאשמח לתשובה עליהן :

  1. לגבי strip() , האם יש ביטוי אחד לאותיות a-z? כולל גדולות? נניח שיש לי טקסט שאני רוצה לנקות אותו מאותיות בכל ולהשאיר רק מספרים
  2. לגבי מחרוזות - האם ואיך אני יכול לדעת האם המחרוזת מכילה מספרים או אותיות ? חשבתי על פעולה חשבונית או מילולית כמו Upper/lower אבל זה מחזיר לי EROR
    2.1 אפשרי להתנות פונקציה עם ארור? if string_or_not(string) == eror:
  1. איני מכירה משהו כזה, למעט דברים שדורשים מודולים חיצוניים וזה לא על הפרק כרגע. בכל מקרה שים לב ש-strip לא מנקה את כל האותיות מהטקסט; ממליצה לחזור על המתודה.
    כן אפשר “לחלץ” מהטקסט את כל המספרים שבו, אני אשאיר את זה כתרגיל למחשבה עבורך לכשתגיע ללולאות.
  2. יש מתודות שבודקות את זה, מדובר לפחות על חלקן במחברת בשבוע 2 העוסקת במחרוזות. נסה להסתכל - ולאחר מכן כפי שמלמדים במחברת 2.6 נסה לחפש מתודות נוספות רלוונטיות.
    2.1. לא, מהסיבה שאם יש error שלא טופל (נגיע לטיפול בשגיאות בהמשך הקורס אם זכרוני לגבי הסילבוס אינו מטעני) התכנית תקרוס ותפסיק לרוץ באופן מיידי - כפי שאני בטוחה שיצא לך לראות את זה קורה פעם או פעמיים.
לייק 1
  1. חזרתי ולא ממש קלטתי - משיך בניסוי ו’תהיה’ כדי להבין סופית… :sweat_smile:
    אגב ממש בתרגיל הבא במחברת שעבדתי עליה יש חזרה על המתודות במחרוזות וזה היה לי ממש במקום
  2. :point_up_2:

שאלה שרציתי לשאול בהודעה קודמת וקיבלתי בלאקאאוט קטן, איך/האם אפשר בinput לחלק את הקלט ע"י סימן כלשהו? נגיד עם “,”
input("מי היה במגרש?: ") כשהתשובה שאני רוצה לדעת היא האם “דנה”, “רונה”, “אורפז”
או בשאלת שעון עולמי - האם אני יוכל לבקש קלט מחןלק לשעון HH:MM

טנקס !

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

3 לייקים