פיצ'ר 2: בדיקת תקינות קלט
מה יקרה אם השחקנים מקלידים בטעות כתשובה לשאלה ערך שונה מ-1 עד 4?
השחקנים יכולים (בטעות או בכוונה) להקליד כל ערך, למשל 5 או 7 או אפילו "משה".
נתחיל בבדיקה
נקליד ערך שגוי ונבדוק - איך תגיב התוכנית?
איך התוכנית מגיבה לקלט 7? איך התוכנית מגיבה לקלט "משה'?
איך ניתן לתקן?
כרגע אנחנו כנראה קולטים את התשובה באופן הבא:
answer = int(input())
יש כאן הסבה מיידית של הקלט ל-int. לכן, אם הקלט הוא כלל אינו int… תהיה לנו בעיה רצינית!
יש כל מיני דרכים להתמודד עם זה, למשל:
-
לא לעשות הסבה מיידית ל-int, אלא קודם כל להשתמש בפקודת פייתון isnumeric שבודקת האם משתנה הוא מספרי. הנה דוגמת שימוש:
my_number = input("Enter a number:")
if my_number.isnumeric():
print("This is a number")
my_number = int(my_number)
else:
print("This is NOT a number")
-
לא לעשות הסבה ל-int בכלל, אלא להישאר עם קלט מטיפוס מחרוזת. נוכל לבדוק את תקינות הקלט באמצעות תנאי מורכב שבודק האם הקלט הוא "1" , "2", וכו'...
אחרי שוידאנו תקינות, כן יש להסב ל-int בשביל להשוות למספר אחר.
ועכשיו נשפר את התוכנית שלנו!
אם קלטנו משהו שאינו מספר 1-4, נציג הודעת שגיאה ונמשיך לקלוט עד אשר יוקלד מספר שנמצא בטווח.
עברו לקולאב לשלב 'פיצ'רים' בשביל לעבוד על פיצ'ר זה!



