מה בדיוק אתה יכול לעשות עם פייתון? להלן 3 היישומים העיקריים של פייתון.

אם אתה חושב ללמוד פייתון - או אם התחלת ללמוד אותו לאחרונה - ייתכן שאתה שואל את עצמך:

"בשביל מה בדיוק אוכל להשתמש בפייתון?"

ובכן זו שאלה טריקית לענות עליה, מכיוון שיש כל כך הרבה יישומים עבור Python.

אבל עם הזמן הבחנתי שיש 3 יישומים פופולריים עיקריים לפייתון:

  • בניית אתרים
  • מדע נתונים - כולל למידת מכונה, ניתוח נתונים והדמיית נתונים
  • תסריט

בואו נדבר על כל אחד מהם בתורו.

בניית אתרים

מסגרות אתרים שמבוססות על פייתון כמו Django ו- Flask הפכו לאחרונה לפופולריות מאוד לפיתוח אתרים.

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

אבל רגע, למה אני צריך מסגרת אינטרנט?

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

באיזו מסגרת אינטרנט של פייתון עלי להשתמש?

Django ו- Flask הן שתי מסגרות הפיתון הפופולריות ביותר. אני ממליץ להשתמש באחד מהם אם אתה רק מתחיל לעבוד.

מה ההבדל בין ג'נגו לפלאסק?

יש מאמר מצוין על הנושא הזה מאת גארת 'דווייר, אז הרשו לי לצטט אותו כאן:

te>

ניגודים עיקריים:

  • הבקבוק מספק פשטות, גמישות ושליטה דק. זה לא מנוהל (זה מאפשר לך להחליט איך אתה רוצה ליישם את הדברים).
  • Django מספק חוויה כוללת: אתה מקבל מחוץ לקופסה פאנל מנהל, ממשקי מסדי נתונים, ORM [מיפוי-יחסי אובייקטים] ומבנה ספריות עבור האפליקציות והפרויקטים שלך.

אתה בטח צריך לבחור:

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

te>

במילים אחרות, אם אתה מתחיל, Flask היא כנראה בחירה טובה יותר מכיוון שיש בה פחות רכיבים להתמודד. כמו כן, בקבוק הוא בחירה טובה יותר אם אתה רוצה התאמה אישית רבה יותר.

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

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

תוכלו למצוא כאן גם את פרקי המדגם החינמיים של אותו ספר.

אוקיי, בוא נעבור לנושא הבא!

מדע נתונים - כולל למידת מכונה, ניתוח נתונים והדמיית נתונים

קודם כל, בוא נעבור עליהם מה למידת מכונה הוא .

אני חושב שהדרך הטובה ביותר להסביר מהי למידת מכונה היא לתת לך דוגמה פשוטה.

נניח שאתה רוצה לפתח תוכנית שמזהה אוטומטית מה בתמונה.

לכן, בהתחשב בתמונה זו למטה (תמונה 1), אתה רוצה שהתוכנית שלך תכיר בכך שזה כלב.

בהתחשב בתמונה זו למטה (תמונה 2), אתה רוצה שהתוכנית שלך תזהה שמדובר בטבלה.

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

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

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

כאן נכנסת למידת מכונה.

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

אתה יכול לתת, למשל, 1,000 תמונות של כלב ו -1,000 תמונות של שולחן לאלגוריתם של למידת מכונה. ואז, זה ילמד את ההבדל בין כלב לשולחן. כשאתה נותן לו תמונה חדשה של כלב או שולחן, הוא יוכל לזהות איזה מהם הוא.

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

אתה כנראה לא אומר במפורש לתינוק, "אם משהו פרווה ויש לו שיער חום בהיר, כנראה שזה כלב."

אתה בטח פשוט אומר, "זה כלב. זה גם כלב. וזהו שולחן. זה גם שולחן. ”

אלגוריתמים של למידת מכונה עובדים באותה צורה.

אתה יכול ליישם את אותו רעיון על:

  • מערכות המלצות (חשוב YouTube, אמזון ונטפליקס)
  • זיהוי פנים
  • זיהוי קולי

בין שאר היישומים.

אלגוריתמים פופולריים של למידת מכונה שאולי שמעת עליהם כוללים:

  • רשתות עצביות
  • למידה עמוקה
  • תמיכה במכונות וקטוריות
  • יער אקראי

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

פיתון ללימוד מכונה

ישנן ספריות ומסגרות פופולריות ללמידת מכונה עבור Python.

שניים מהפופולריים ביותר הם Scikit- Learning ו- TensorFlow .

  • scikit-learning מגיע עם כמה מהאלגוריתמים הפופולריים יותר של לימוד מכונה המובנים. הזכרתי חלקם מעל.
  • TensorFlow היא יותר ספריה ברמה נמוכה המאפשרת לך לבנות אלגוריתמים מותאמים אישית של למידת מכונה.

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

כיצד עלי ללמוד למידת מכונה?

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

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

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

מה לגבי ניתוח נתונים והדמיית נתונים?

כדי לעזור לך להבין כיצד אלה עשויים להיראות, תן לי לתת לך דוגמה פשוטה כאן.

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

ואז, כאנליסט נתונים, אתה יכול לצייר גרף עמודות כזה.

מגרף זה אנו יכולים לדעת שגברים קנו מעל 400 יחידות ממוצר זה ונשים קנו כ -350 יחידות ממוצר זה ביום ראשון זה.

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

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

כדי להבין אילו מההסברים הללו נכונים, אתה יכול לצייר גרף נוסף כמו זה.

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

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

מצד שני, מה אם אתה רואה גרף כמו זה במקום זאת?

ואז, מה מסביר את ההבדל ביום ראשון?

אתה יכול לומר, אולי גברים נוטים לקנות יותר ממוצר זה רק ביום ראשון משום מה. או, אולי זה היה צירוף מקרים שגברים קנו יותר מזה ביום ראשון.

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

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

השתמשתי ב- SQL בשתי החברות הללו כדי לשלוף נתונים ממאגרי המידע שלנו. ואז הייתי משתמש ב- Python ו- Matplotlib (ב- Google) או ב- JavaScript וב- D3.js (ב- Microsoft) כדי לדמיין ולנתח את הנתונים האלה.

ניתוח נתונים / הדמיה עם פייתון

אחת הספריות הפופולריות ביותר להדמיית נתונים היא Matplotlib.

זו ספריה טובה להתחיל איתה כי:

  • קל להתחיל איתו
  • כמה ספריות אחרות כמו ים ים מבוססות עליו. אז, למידת Matplotlib יעזור לך ללמוד ספריות אחרות אלה בהמשך.

כיצד עלי ללמוד ניתוח נתונים / הדמיה עם Python?

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

בסופו של דבר הכנתי קורס מלא בנושא זה על Pluralsight, אותו תוכלו לקחת בחינם על ידי הרשמה לניסיון בחינם למשך 10 ימים.

אני ממליץ על שניהם.

לאחר לימוד יסודות ניתוח הנתונים והדמיה, יסודות למידה של סטטיסטיקה מאתרים כמו Coursera ו- Khan Academy יעזרו גם כן.

תסריט

מה זה סקריפטים?

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

אז תן לי לתת לך דוגמה מניסיוני האישי כאן.

בעבר עבדתי בסטארט-אפ קטן ביפן בו הייתה לנו מערכת תמיכה בדוא"ל. זו הייתה מערכת עבורנו לענות על שאלות שלקוחות שלחו לנו באמצעות דוא"ל.

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

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

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

מה לגבי יישומים משובצים?

אני לא מומחה ליישומים משובצים, אבל אני יודע שפייתון עובד עם Rasberry Pi. זה נראה כמו יישום פופולרי בקרב חובבי חומרה.

מה לגבי משחקים?

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

במקום זאת, אני ממליץ להתחיל עם Unity עם C #, שהוא אחד ממנועי המשחק הפופולריים ביותר. זה מאפשר לך לבנות משחק עבור פלטפורמות רבות, כולל Mac, Windows, iOS ו- Android.

מה לגבי יישומי שולחן עבודה?

אתה יכול ליצור אחד עם Python באמצעות Tkinter, אבל זה לא נראה כמו הבחירה הפופולרית ביותר.

במקום זאת נראה ששפות כמו Java, C # ו- C ++ פופולריות יותר לכך.

לאחרונה, חברות מסוימות החלו להשתמש ב- JavaScript גם כדי ליצור יישומי שולחן עבודה.

לדוגמה, אפליקציית שולחן העבודה של Slack נבנתה עם משהו שנקרא Electron. זה מאפשר לך לבנות יישומי שולחן עבודה עם JavaScript.

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

עם זאת, אני לא מומחה יישומים שולחניים או, אז בבקשה ליידע אותי תגובה אם אתה לא מסכים או מסכים איתי על זה.

פייתון 3 או פיתון 2?

אני ממליץ על Python 3 מכיוון שהוא מודרני יותר וזו אפשרות פופולרית יותר בשלב זה.

הערת שוליים: הערה אודות קוד אחורי לעומת קוד חזית (למקרה שאינכם מכירים את המונחים):

נניח שאתה רוצה לעשות משהו כמו אינסטגרם.

לאחר מכן תצטרך ליצור קוד חזיתי עבור כל סוג של מכשיר שאתה רוצה לתמוך בו.

אתה יכול להשתמש, למשל:

  • סוויפט ל- iOS
  • ג'אווה לאנדרואיד
  • JavaScript לדפדפני אינטרנט

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

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

כאן נכנס קוד ה- backend / הקוד בצד השרת. יהיה עליך לכתוב קוד backend כלשהו כדי לעשות דברים כמו:

  • עקוב אחר מי עוקב אחרי מי
  • דחיס תמונות כדי שלא יתפסו כל כך הרבה מקום אחסון
  • המלץ על תמונות וחשבונות חדשים לכל משתמש בתכונת הגילוי

אז זה ההבדל בין קוד backend לקוד חזית.

אגב, Python הוא לא הבחירה הטובה היחידה לכתיבת קוד backend / בצד השרת. ישנן הרבה אפשרויות פופולריות אחרות, כולל Node.js, אשר מבוסס על JavaScript.

אהבת את המאמר הזה? ואז, אולי תאהב גם את ערוץ היוטיוב שלי.

יש לי ערוץ YouTube לחינוך לתכנות בשם CS Dojo עם יותר מ -440,000 מנויים, שם אני מייצר תוכן נוסף כמו מאמר זה.

לדוגמה, יתכן שתאהב את הסרטונים הבאים:

בכל מקרה, תודה רבה שקראתם את המאמר שלי!