אינטרפרטר בpython

sagigot

New member
אינטרפרטר בpython

שלום,
אני בוגר תואר ראשון במדעי המוח במסגרת התואר שלי למדתי קצת תכנות בMatlab ובמסגרת לימודים מקוונים בcoursera למדתי תכנות בR, בשתי התוכנות הללו ישנו אינטרפרטר-את האפשרות לראות באופן אינטרקטיבי את המידע שהזנתי לכל פונקציה.
כשחיפשתי בPython את האפשרות הבנתי שכנראה קוראים לזה IDE (נכון?) והורדתי eclipse+pydev. עכשיו הבעיה שלי נובעת מכך שבספר שלקחתי ללימוד השפה "Learning Python the hard way" מבקשים לקמפל את הקוד דרך הcommand shell, השאלה שלי היא- האם זה אפשרי להתעלם מהcmd ולתכנת באופן מלא דרך הeclipse או שיש חובה ללמוד עם הcommand line.
בתודה מראש,
שגיא
 

BravoMan

Active member
בלבול במשוגים:

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

למה שאתה מחפש קוראים debugger, ולרוב הוא מגיע עם "סביבות פיתוח משולבות" (שזה פירוש של IDE) כמו Eclipse.

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

בכל מקרה, מן הסתם אתה יכול להריץ את התוכנה שכתבת ישירות מכל סביבה בה אתה עובד, לא ניסיתי לתכנת ב-Python עם Eclipse, אבל בד"כ יש שם כפתור עם משולש ירוק שמריץ תוכנה, בכל שפה שהיא. נראה כמו כפתור Play בנגנים שונים.

אולי אחד הקישורים האלה יעזור לך:
https://www.google.com/search?client=ubuntu&channel=fs&q=debugging+python&ie=utf-8&oe=utf-8
 

sagigot

New member
תגובה

בקורס שעשיתי בתכנות Matlab אמרו לנו שinterperter מאפשר לתקשר באופן מיידי עם התוכנה (למשל אם אני אקליד x=1:4 אלחץ enter ואח"כ אקליד x או print (x) אני אראה את התוכן של הווקטור מייד. לעומת compiler שדורש לקמפל פיסת קוד שלמה לא באופן אינטראקטיבי. debugger הוצג לנו בצורה אחרת- כלי שמאפשר במידה ויש שגיאה לעבור שורה אחר שורה של קוד ולראות היכן ישנה השגיאה בקוד, האם זה מוטעה?
בנוגע לספר שהזכרתי- אני מחפש ללמוד תכנות בכדי לפתח מטלות התנהגותיות ולא רק ניתוח אותות עצביים (בשביל זה יש לי את Matlab וRׂ). האם לצורך זה הספר יתאים ?
תודה רבה על העזרה.
 

BravoMan

Active member
אוקיי:

אז לא הבנתי אותך כ"כ:
מפרש של תוכנה מפרש את הפקודות שאתה כותב.
הוא יכול לעשות זאת מתוך קובץ ברצף, או הוא יכול לתת לך להזין פקודה פקודה ולבצע אותן מיידית.

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

זו שפת תכנות כללית, והשימוש בה למטרה מסוימת אינו מיידי כמו בשפות ייעודיות שאתה מכיר.

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

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

sagigot

New member
תודה רבה

הבנתי שמה שאני מחפש בסוף נקרא interactive console וזה קיים בpydev.
אני יכול להמשיך לעבוד במטלאב אבל אני מחפש יותר חופש והבנתי שPython היא שפה מאוד פשוטה והיא תופסת תאוצה כשפה שימושית לתלמידי מחקר.
מה הכוונה בספרייה גרפית\ממשק? (מספיק שתגיד לי שם לדוגמא ואני אחפש בעצמי).
בתודה מראש,
שגיא.
 

BravoMan

Active member
"ספרייה" היא פיסת תוכנה שמישהו אחר כתב

והיא נותנת פונקציונליות מסוימת.
אתה מוסיף את הספרייה לתוכנה שלך ומקבל את הפונקציונליות.

ב-Python ספרייה יכולה להכיל אחד או יותר "מודולים" כש "מודול" הוא רכיב שאתה מוסיף לתוכנה שלך.
למשל, יש מודול numpy שמאפשר דיוק גבוהה מאוד במספרים עשרוניים.

גיגול מהיר מעלה כמה הצעות לספריות גרפים:
http://stackoverflow.com/questions/606516/python-graph-library

אם אתה רוצה לבנות חלונות עם כפתורים, שדות טקסט וכו', יש ספריות ממשק כמו PyGtk.

ועוד ועוד ועוד.

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

mazory

New member
תבדוק את IPython

זה פתרון די טוב למה שאתה מחפש (ואגב יש ספריות שגורמות לו להיות די דומה למטלב).
 
למעלה