עבור לתוכן

python כמה שאלות :)

Featured Replies

פורסם

1. לאחרונה התחלתי ללמוד את השפה ואני מאוד נהנה הבעיה היחידה היא שהמקורות באנגלית מעט מסובכים ומכילים מושגים שאינני מכיר והמקורות בעברית מסורבלים, חסרי תוכן ולא עקביים כלכך. אשמח אם תוכלו אולי להמליץ לי על מקור אפילו באנגלית שיעשה לי קצת סדר (אני מכיר את המדריך הראשי באתר הראשי אגב). תודה :) 2. בלי קשר, לגבי INPUT מהמשתמש. אם אני רוצה להגביל את הקלט מהמשתמש לרק אותיות או רק מספרים ולענות בPRINT הכנס רק מספרים/או הכנס רק אותיות. באיזו דרך אני עושה את זה? איזו פונקציה או הגדרה אני משתמש כדי שכאילו אם האני רוצה שהINPUT יהיה רק סטרינג אז כשמכניסים INT נגיד או כל מספר זה לא יתקבל. תודה מראש :) מצטער אם הייתי קצת לא מובן

פורסם

לגבי 2:

ל-string יש כל מיני מתודות בשם isdigit (שבודקת אם כל התווים במחרוזת הם ספרות), isalpha (שבודקת אם כל התווים הם אותיות), isalnum (שבודקת אם כל התווים הם רק ספרות ואותיות) ואחרות. יש דוגמאות כאן:

http://www.tutorialspoint.com/python/string_isalpha.htm

http://www.tutorialspoint.com/python/string_isdigit.htm

פורסם
  • מחבר

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

פורסם

נגיד ככה?


if not input_string.isalpha():
print "only letters"

מלבד זאת, תמיד ניתן לעבור איטרטיבית על כל המחרוזת שקיבלת ולבדוק תו תו. עושים את זה באמצעות לולאת for:


for ch in input_string:
# do something on ch

למה הכוונה ב"הפונקציה לא עובדת"? תרשום כאן את השגיאה, יכול להיות שאתה משתמש בה באופן לא נכון.

נערך על-ידי Daglas

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

אז תרשום פה את הקוד שכתבת ואת השגיאה שקיבלת.

פורסם
  • מחבר

תודה רבה! הצלחתי עם הISALPHA, אבל לגבי הדרך השנייה של לבדוק תו תו של DAGLAS לא הבנתי בדיוק איך אני כותב את הקוד, האם CH מוגדר כבר בפייתון בתור תו? או שעלי להגדיר מה זה תו? ואיך? חח.. תודה מראש!

פורסם

כאן:

https://sites.google.com/site/coursecyber/python

יש הסברים בסיסים בעברית על פייתון ואז מצגת על כל נושא... תרגולים וכו'.

וכמובן הסברים מורחבים באנגלית

נערך על-ידי eran256

פורסם
  • מחבר

תודה רבה!! אעיין היום

פורסם
  • מחבר

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

פורסם

אם הבנתי אותך נכון range מחזיר איטרטור שכל קריאה גדל ב-1.

סתם לרשום:

range(0,10)

יהיה חסר משמעות לרוב.

צריך לשים אותו בלולאה וכל איטרציה הוא מתקדם, לדוגמא:


for i in range(0,10)
print(i)

(איך מיישרים קוד לשמאל?)

פורסם

עד גרסה 3, הפונקציה range הייתה תמיד מחזירה רשימה. החסרון הוא שאם אתה רוצה לעשות לולאה מאוד מאוד גדולה - לדוגמה, לולאה שרצה מ-0 עד 1000000000 אז זה היה יוצר לך רשימה בגודל הזה, שסתם תופסת הרבה מאוד זכרון. כשמדפיסים אותה, כל איברי הרשימה מודפסים.

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

אם אתה בכל זאת רוצה את הרשימה, אז אתה יכול להפעיל את הפונקציה list על תוצאה של range ולקבל את הרשימה.

פורסם
  • מחבר

הבנתי, באמת לא מצאתי את xrange חח.. המון תודה, אני משער שיצוצו עוד שאלות :)

פורסם
  • מחבר

עוד שאלה! (סליחה על הדאבל). מדוע כשאני משתמש ב-MAP על פונקציה (נגיד עם RANGE) כדי לקבל את התוצאה של הפונקציה על כל משתנה אני מקבל בPRINT:

<map object at 0x00000000028562E8>

במקום את התוצאה? תודה!

ובלי קשר אשמח אם מישהו יוכל להסביר לי את הפונקציה REDUCE כי לא בדיוק הצלחתי להבין אותה במקורות מידע.. אולי כאן מישהו יוכל לעזור :)

נערך על-ידי Zufp333

פורסם

בדיוק אותו הסבר כמו range - הפונקציה map לא מחזירה רשימה, היא מחזירה אובייקט שמייצג את הרשימה הזו.

אתה יכול לעבור על האובייקט הזה בלולאה (כמו על range) ואתה יכול להמיר אותה לרשימה באמצעות list.

הפונקציה reduce לקוחת רשימה ו"מכווצת" אותה לאיבר אחד (לדוגמה ע"י חיבור כל האיברים). בכל מקרה בפייתון 3 כבר לא נהוג להשתמש בה.

פורסם
  • מחבר

הבנתי, תודה רבה לך שניצל!

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים