דף הבית של Shvoong > מדע > איך מתגברים על חוסר האונות ה"טכנולוגית" בעזרת Python?

.

פתרו את החידה של Shvoong וזכו ב-$500!

איך מתגברים על חוסר האונות ה"טכנולוגית" בעזרת Python?

Summary rating: 4 stars 9 דירוגים
מחבר : רון רייטר
תקציר מאת : ronreiter
ביקורים : 370  מילים: 900   פורסם ב-: יוני 14, 2006
בעולם המחשבים המודרני, קיימת תחושה של חוסר אונות "טכנולוגית", גם בקרב אוכלוסית המתכנתים.
מדוע? זאת מכיוון שאין באפשרות אדם כיום להתמקצע בתחום מסוים במחשבים מבלי להשקיע שעות מחקר וקריאה ארוכות, ובכדי לכתוב תוכנית פשוטה המממשת את רצונו של המתכנת.

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

אבל גם זה לא בדיוק נכון. אם אתם חושבים ככה אז כנראה כבר חיפשתם בגוגל "Programming C Language" והתייאשתם מהר מאוד כשגיליתם עד כמה זה מסובך לעשות את מה שרציתם. למעשה כיום אין שום סיבה הגיונית לכך שתשתמשו בשפה הזאת אם אתם מפתחים למחשבים אישיים ביתיים.

בכדי שלא תפחדו להיכנס לשפות יותר מסובכות כגון C#, C++ ואף Java, אתם צריכים להיות מסוגלים לעשות כל מה שתרצו במחשב בקלות, וכך המעבר לפיתרון תשתיתי (במידה ובכלל יש צורך בכך) הוא פשוט להפליא. הדבר אפשרי באמצעות השפה Python. שוב מפחדים? אז אני אתן לכם דוגמה. ואחר כך עוד דוגמה. עד שתבינו שדרך החשיבה שלכם עד עכשיו פשוט היתה לא נכונה. ובכדי להוכיח לכם עד כמה אני צודק - תשאלו כל יוצא יחידת מחשבים של הצבא, מה שפת המחשב האהובה עליו.

חשוב שתבחנו טוב טוב את הדוגמאות הקצרות הבאות בכדי להבינם.
נניח שברצונכם לקבל רשימה של אורכי המלים במשפט, ובכדי להגזים נוציא גם סטטיסטיקה של אורכי המילים במשפט מ 1 עד 9.
>>> sentence = "The quick brown fox jumped over the lazy dog"
>>> sentence
'The quick brown fox jumped over the lazy dog'
>>> wordcount =
>>> wordcount
<3, 5, 5, 3, 6, 4, 3, 4, 3>
>>> statistics =
>>> statistics
<0, 0, 4, 2, 2, 1, 0, 0, 0>

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

נניח שברצונכם לחשב את כל המספרים הראשוניים עד 100.
notprimes =
primes =



נניח שברצונכם לכתוב תוכנה שמחפשת קבצים המופיעים פעמיים במחשב (לפי שם):
import os

filelist = {}
for path, dirs, files in os.walk("."):
for file in files:
if filelist.has_key(file):
filelist.append(path)
else:
filelist =

הנה משהו יותר מסובך. נניח שברצונכם להוריד את מאגר התמונות המצחיקות של האתר donkey.co.il. הנה דוגמה:

import re, os, urllib
site = 'http://www.donkey.co.il/PictureHolder/View.aspx?CategoryID=17&ID=%d'
id = 1
while True:
for pic in re.findall(r'<img.*?src="(.*?)".*?>',urllib.urlopen(site % id).read()):
print 'Downloading picture %s...' % pic
urllib.urlretrieve('http://www.donkey.co.il' + pic, os.path.basename(pic))
id += 1

לאנשי המתמטיקה שביניכם, תופלאו לגלות עד כמה השפה אינטואיטיבית ועוזרת לחישובים מתמטיים ולהדגמות. ישנו מאמר מצוין כאן: http://www.tc.cornell.edu/~myers/talks/pysci.pdf המספר כיצד בתוך שניות ניתן לעשות חישובים ציוריים ותלת מימדיים. עכשיו אין שום סיבה שתגידו לעצמכם "אין לי מושג איך עושים דברים כאלה, אמנם יש לי תואר שני במתמטיקה אבל אני בקושי יודע לכתוב תוכנה שאומרת שלום".

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

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

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

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

תגובות לאיך מתגברים על חוסר האונות ה"טכנולוגית" בעזרת Python?

קראו סיכומים בחינם - כתבו ותרויחו!

תקצרו את הידע האנושי בShvoong. הצטרפו אלינו!

------