מה זה פיתון? תכנות עוצמתי ואינטואיטיבי

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

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

סרטון קשור: כיצד פיתון מקל על התכנות

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

היתרונות העיקריים של פייתון 

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

קל ללמוד ופיתון

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

פייתון מאומץ ונתמך באופן נרחב

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

פיתון אינה שפה "צעצועית"

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

פייתון ממשיך להתקדם

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

לשם מה משמש פייתון

מקרה השימוש הבסיסי ביותר עבור Python הוא כשפת סקריפטים ואוטומציה. פייתון אינו רק תחליף לתסריטי מעטפת או קבצי אצווה; הוא משמש גם לאוטומציה של אינטראקציות עם דפדפני אינטרנט או ממשקי משתמש של יישומים או לביצוע הקצאת תצורה של המערכת בכלים כגון Ansible ו- Salt. אבל סקריפטים ואוטומציה מייצגים רק את קצה הקרחון עם פייתון.

G תכנות יישומים eneral עם Python

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

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

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

שירותי אינטרנט ו- API של RESTful ב- Python

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

תכנות מטפורוגרפי והפקת קוד בפייתון

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

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

"קוד דבק" בפייתון

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

איפה שפייתון נופל

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

פייתון היא שפה ברמה גבוהה, ולכן היא לא מתאימה לתכנות ברמת המערכת - מנהלי התקנים או גרעיני מערכת הפעלה הם מחוץ לתמונה.

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

לבסוף, פייתון אינו הבחירה הטובה ביותר כאשר המהירות היא בראש סדר העדיפויות המוחלט בכל היבט ביישום. לשם כך, עדיף לך להשתמש ב- C / C ++ או בשפה אחרת מאותה קליבר.

איך פייתון הופך את התכנות לפשוט

התחביר של פייתון נועד להיות קריא ונקי, עם מעט העמדת פנים. "שלום שלום" סטנדרטי בפייתון 3.x אינו אלא:

הדפס ("שלום עולם!")

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

עם פתוח ('myfile.txt') כ- my_file:

    file_lines = [x.rstrip ('\ n') עבור x בקובץ my_file]

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

[x … for x in my_file]הבנייה היא עוד מאידיוסינקרטיות Python, את הבנת הרשימה . הוא מאפשר לבצע פריט שמכיל פריטים אחרים (כאן, my_fileוהשורות שהוא מכיל) לעבור, והוא מאפשר xלעבד כל אלמנט חוזר (כלומר כל אחד ) ולצרף אותו אוטומטית לרשימה.

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

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

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

פיתון 2 לעומת פיתון 3

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

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

הספריות של פייתון

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

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

הפצת ברירת המחדל של פייתון מספקת גם ספריית GUI בסיסית, אך שימושית, באמצעות פלטפורמה באמצעות Tkinter, ועותק משובץ של מסד הנתונים SQLite 3.

אלפי ספריות הצד השלישי, הזמינות דרך אינדקס החבילות של Python (PyPI), מהוות חלון הראווה החזק ביותר לפופולריות ולרב-צדדיות של Python.

לדוגמה:

  • ספריית BeautifulSoup מספקת ארגז כלים All-in-One לגירוד HTML - אפילו HTML מסובך ושבור - וחילוץ נתונים ממנו.
  • בקשות הופכות את העבודה עם בקשות HTTP בקנה מידה ללא כאבים ופשוטים.
  • מסגרות כמו Flask ו- Django מאפשרות פיתוח מהיר של שירותי רשת המקיפים מקרי שימוש פשוטים ומתקדמים.
  • ניתן לנהל שירותי ענן מרובים באמצעות מודל האובייקטים של Python באמצעות Apache Libcloud.
  • NumPy, Pandas ו- Matplotlib מאיצים פעולות מתמטיות וסטטיסטיות, ומקלים על יצירת ויזואליזציות של נתונים.

הפשרות של פיתון

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

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

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

עם פתוח ('myfile.txt') כ- my_file:

    file_lines = [x.rstrip ('\ n') עבור x בקובץ my_file]

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

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

האם פייתון איטי? לא בהכרח

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