פקודת input – דו שיח עם המשתמש
התוכנית שלנו יכולה לנהל שיחה עם המשתמש ולהגיב בהתאם באמצעות פקודת input, בואו נראה איך היא עובדת –
n=input ("what is your name?") print ("Hello",n)
>>>
What is your name?
כעת התוכנה ממתינה שהמשתמש יקליד את שמו –
המשתמש מקליד את שמו נניח, סתם זורק, Eddie ולוחץ על Enter כדי שהיא תדע שהוא סיים.
התוכנית כותבת Hello Eddie
כדי לדרוש נתון מהמשתמש אנו מכינים משתנה שיקלוט את הנתון, בתוכנית למעלה המשתנה הוא n. כעת אנו כותבים את הפקודה input ולאחריה בסוגריים הנחיה למשתמש או שאלה. בהמשך אנו מחליטים מה לעשות עם הנתון הזה (שכעת נמצא בתוך n) – במקרה שלנו הדפסנו את המילה Hello לפני שמו של המשתמש כפי שהועבר לנו.
ברירת המחדל של פייתון כאשר משתמשים בפקודת input היא להניח שהנתון שנכתב הוא מסוג string – מחרוזת. על מנת להראות לתוכנה שאנו מבקשים מספר (מסוג integer) נצטרך להגדיר את ה- input מעט אחרת –
n=int(input("enter number"))
ה- int הוא כדי להגדיר את הערך שיוזן על ידי המשתמש כמספר שלם integer.
משחק הניחושים
כעת נבנה משחק ניחושים – שבו המחשב יבחר מספר סודי (בהמשך זה יכול להיות באמת סודי אם נשתמש בפקודה random שנמצאת בספריה מיוחדת) ולנו יהיו שלושה ניחושים למצוא את המספר הזה, המחשב בכל פעם יגיד לנו אם המספר שלו הוא גדול או קטן מזה שאנחנו מנחשים עד שאנו נפסלים או מנצחים (מה שמסומן מימין לסולמית הוא תשבות המשתמש- אם כבר הזכרנו את סולמית, בפייתון אם כותבים סולמית #, התוכנה מתעלמת מכל מה שכתוב מימין לה, כך שזה משמש לכתיבת הערות בגוף התוכנית בלי שזה פוגע בביצועים).
secretNum=57 for i in range (3): n=int (input ("what is your guess?")) if n==secretNum: print ("you win") break if n>secretNum: print ("your number is too big") if n<secretNum: print ("your number is too small") if i==2: print ("you lose")
>>>
what is your guess? #56
your number is too small
what is your guess? #57
you win
ואם מחטיאים שלוש פעמים:
what is your guess? #20
your number is too small
what is your guess? #39
your number is too small
what is your guess? #60
your number is too big
you lose
הסבר – המספרים בצד השמאלי של הטבלה הם התשובה לשאלות ששאל המחשב.
בשלב זה של חיינו, לפני שלמדנו את פקודת random (בפרק העוסק בספריות מוכנות) אנו קובעים בעצמנו מהו המספר הסודי או שמישהו קובע אותו ומישהו אחר מנסה לנחש וכך זה פחות מוזר, אוליי.
קבענו משתנה בשם secretNumber והחלטנו שהוא יהיה, למשל, 57 .
יצרנו לולאה באמצעות שימוש בפקודת for ובפקודת range(3) כך שהלולאה תרוץ שלוש פעמים (כל פעם i יהיה שווה למספר אחר, החל מ- 0 ועד 3 (לא כולל 3 אבל כן כולל את 2 ויחד עם 0 זה שלוש פעמים).
התנאי הראשון בלולאה הוא מקרה של ניחוש נכון של המספר הסודי – ובמקרה כזה אנו רוצים להדפיס you win ולסיים את המשחק. ולכן אם מתקיים התנאי הזה, יש לנו פקודת break ששוברת את הלולאה ומסיימת את עבודתה באופן מיידי.
שני התנאים הבאים בודקים האם המספר שניחשנו n הוא גדול או קטן מהמספר הסודי ומגיבים בהתאם.
התנאי הרביעי if i==2 בודק האם הלולאה הגיעה לסיבוב השלישי והאחרון (בלי שהיה ניצחון אחרת היא היתה נשברת קודם לכן) ואם כן, מודפס המשפט המשפיל – you lose, שלאחריו הלולאה מסיימת את עבודתה שהוגדרה מראש כשלושה סיבובים בלבד.