• בלוג
  • שלום עולם ב Python עם טוויסט

שלום עולם ב Python עם טוויסט

16/06/2020

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

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

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

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

הנה התוכנית ב-4 שורות.

from gtts import gTTS

google_voice = gTTS(text="Hello world", lang='en')
google_voice.save('sound.mp3')

לפני שנעבור על הקוד שורה אחרי שורה קחו שתי דקות להקשיב לו. הכנסו לקישור: https://repl.it/@ynonp/AjarFatalCallbacks#main.py

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

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

1. שורה 1

נעבור על הקוד שורה אחר שורה כדי ללמוד קצת על פייתון ואיך הדברים מתחברים. השורה הראשונה נקראת שורת import (למרות ש import היא רק המילה השלישית בשורה):

from gtts import gTTS

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

python -m pip install --user gtts

2. שורה 2

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

google_voice = gTTS(text="Hello world", lang='en')

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

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

google_voice = gTTS(lang='en', text="Hello world")

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

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

3. שורה 3

השורה השלישית והאחרונה בתוכנית נראית כך:

google_voice.save('sound.mp3')

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

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

4. מה הלאה

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

האמיצים שביניכם יכולים לנסות גם להתקין Python על המכונה שלכם ולהריץ את התוכנית עם ה Python שהתקנתם.

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