ABA


"אחרי המון שנים שלא נגעתי בתיכנות אני מתחיל ללמוד מאפס פייתון - שאלה של מתחיל"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #22155 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 22155
Corsa16V  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 23.1.04
20198 הודעות, 6 פידבק
   12:25   17.03.18   
אל הפורום  
  אחרי המון שנים שלא נגעתי בתיכנות אני מתחיל ללמוד מאפס פייתון - שאלה של מתחיל  
 
   עזבו לצורך העניין כמה הקוד "נקי" - יש לי גרסה אחרת שעושה את מה שאני רוצה אבל אני מנסה להבין מה גורם לזה לא לעבוד פה:
באמת רמה מאוד פשוטה של תיכנות

def number_check_loop():
x = int (input("Enter a number from 1 to 5: in order to quit type 0 "))
while (x>0 and x<6):
print (x)
number_check_loop()
if (x == "0"):
print ("goodbye!")
else:
print ("Invalid number try again!")
number_check_loop()

number_check_loop()


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

וגם אם אנחנו כבר בנושא - איך אני מגדיר int
חדש שהוא לא מספרי שלא ישבור לי את הכל?
אם למשל הייתי רוצה להגדיר את המילה quit
כאופציה ליציאה מהתוכנה

תודה מראש למי שעוזר


https://www.sportstats.co.il


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה משווה את המספר 0 לסטרינג 0 Dark-Wish 17.03.18 12:42 1
  תגובה Corsa16V  17.03.18 21:38 2
     לא. שים לב שפה אתה עושה x == 0 ושם עשית x == ''0''. זה היה הבאג כובען  17.03.18 21:43 3
         בידיוק spidey1   17.03.18 23:13 7
             אני אצטרך לבדוק עוד פעם Corsa16V  17.03.18 23:34 9
             הנה זה מה שקורה לי Corsa16V  18.03.18 08:43 10
  אחלה שפה. מת על המבניות שלה. אורי  17.03.18 21:45 4
     +1 Mirage  18.03.18 09:05 11
  מה ניסית לעשות בדיוק בתוכנית הזאת? ShocKi  17.03.18 21:56 5
     לא ניסיתי לעשות כלום Corsa16V  17.03.18 22:15 6
     +1 זה הבאג העיקרי לא הגרשיים The Slayer  23.03.18 00:50 13
         לא רק. קרא תגובה 12 חושחש 23.03.18 14:59 14
  איזה פייתון? 2.7או 3.6? spidey1   17.03.18 23:15 8
  הסיבה היא פשוטה חושחש 18.03.18 12:49 12

       
Dark-Wish
חבר מתאריך 25.5.05
12576 הודעות
   12:42   17.03.18   
אל הפורום  
  1. אתה משווה את המספר 0 לסטרינג 0  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Corsa16V  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 23.1.04
20198 הודעות, 6 פידבק
   21:38   17.03.18   
אל הפורום  
  2. תגובה  
בתגובה להודעה מספר 0
 
   טוב אם אני משנה את הwhile לif וelif אז זה פתאום עובד

יש בעייתיות עם השימוש של while ביחד עם if?

def loop_cycle():

x = int(input("Enter a number from 1 to 5, in order to quit type 0: "))
if (x>0 and x<6):
print (x)
loop_cycle()
elif (x==0):
print ("Goodbye!")
else:
print ("Invalid number, try again! ")
loop_cycle()

loop_cycle()


https://www.sportstats.co.il


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
כובען  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 2.3.10
24350 הודעות, 21 פידבק
   21:43   17.03.18   
אל הפורום  
  3. לא. שים לב שפה אתה עושה x == 0 ושם עשית x == ''0''. זה היה הבאג  
בתגובה להודעה מספר 2
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
spidey1  
חבר מתאריך 1.7.02
25536 הודעות
   23:13   17.03.18   
אל הפורום  
  7. בידיוק  
בתגובה להודעה מספר 3
 
  


Tears Will Get You Sympathy,
Sweat Will Get You Results!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Corsa16V  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 23.1.04
20198 הודעות, 6 פידבק
   23:34   17.03.18   
אל הפורום  
  9. אני אצטרך לבדוק עוד פעם  
בתגובה להודעה מספר 7
 
   אבל אני חושב שכשהורדתי את הגרשיים במקורי הוא רשם את הgoodbye חזר על הx האחרון והתחיל את הloop עוד פעם


https://www.sportstats.co.il


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Corsa16V  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 23.1.04
20198 הודעות, 6 פידבק
   08:43   18.03.18   
אל הפורום  
  10. הנה זה מה שקורה לי  
בתגובה להודעה מספר 7
 
   ערכתי לאחרונה בתאריך 18.03.18 בשעה 08:48 בברכה, Corsa16V
 
\


כללתי את הקוד ליד
וזה פייתון 3.6 לשאלה שלך למטה


https://www.sportstats.co.il


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
אורי 
חבר מתאריך 9.7.12
20459 הודעות
   21:45   17.03.18   
אל הפורום  
  4. אחלה שפה. מת על המבניות שלה.  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Mirage 
חבר מתאריך 18.12.11
5193 הודעות
   09:05   18.03.18   
אל הפורום  
  11. +1  
בתגובה להודעה מספר 4
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   21:56   17.03.18   
אל הפורום  
  5. מה ניסית לעשות בדיוק בתוכנית הזאת?  
בתגובה להודעה מספר 0
 
   מעבר לבאג שאמרו לך עליו בתגובות קודמות...
תתן בתוכנית שלך קלט x=5 וזהו, אתה תקוע בלולאה אינסופית.


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Corsa16V  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 23.1.04
20198 הודעות, 6 פידבק
   22:15   17.03.18   
אל הפורום  
  6. לא ניסיתי לעשות כלום  
בתגובה להודעה מספר 5
 
   סתם בניתי סקריפט שאם אתה רושם מספר בין 0 ל5 זה רושם את המספר, אם אתה לוחץ על אפס זה מסיים
וכל דבר אחר אומר לך שאתה רשמת מספר "לא חוקי"
ובמידה ואתה רושם ספרה חוקית או לא חוקית שזה ישאל את השאלה שוב פעם עד שאתה יוצא

סתם לתרגל


https://www.sportstats.co.il


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
The Slayer 
חבר מתאריך 29.4.03
7959 הודעות, 2 פידבק
   00:50   23.03.18   
אל הפורום  
  13. +1 זה הבאג העיקרי לא הגרשיים  
בתגובה להודעה מספר 5
 
   הוא בעצם עושה רקורסיה בתוך לולאת while
כך שברגע שנכנסים ללולאה היא לא עוצרת כי x לא משתנה בה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חושחש
חבר מתאריך 5.3.18
62 הודעות
   14:59   23.03.18   
אל הפורום  
  14. לא רק. קרא תגובה 12  
בתגובה להודעה מספר 13
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
spidey1  
חבר מתאריך 1.7.02
25536 הודעות
   23:15   17.03.18   
אל הפורום  
  8. איזה פייתון? 2.7או 3.6?  
בתגובה להודעה מספר 0
 
   בגדול, קיבלת מהמשתמש מספר (int), ואז כשעשית את הIf, השוות את ה0 (שהוא מספר) ל"0" שהוא סטרינג...


השינוי לelif זה לא מה שפתר לך את זה... אלה העובדה שהעפת את הגרשיים.


אגב,
בשביל תכנות "נכון", הייתי מעדיף שהדבר הזה ירוץ בloop ושהתנאים יהיו בwhile, במקום לקרוא שוב ושוב לפונקציה, סתם קריאות מיותרות..


בהצלחה
אחלה שפה


Tears Will Get You Sympathy,
Sweat Will Get You Results!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חושחש
חבר מתאריך 5.3.18
62 הודעות
   12:49   18.03.18   
אל הפורום  
  12. הסיבה היא פשוטה  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 18.03.18 בשעה 13:07 בברכה, חושחש
 
מעבר להערה הראשונית שאתה משווה x == "0" -

לא טרחתי להתעמק, אבל פיתון קורא ל else שלך כאשר התנאי בלולאה הוא false
מידע נוסף תוכל לקרוא פה - https://stackoverflow.com/questions/3295938/else-clause-on-python-while-statement

אני יודע שרשמת שהקוד מבולגן וכ'ו אבל חשוב להנחיל כתיבת קוד מסודר ונכון בשלבים הראשונים.

עלה והצלח!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net