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

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

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

הפעלת הדוגמאות

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

קובץ Script

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

 python3.0 

זה צריך להיות בערך אותו דבר ב- Windows ו- Mac גם, אם כי ייתכן שיהיה עליך לציין את הנתיב המלא למתורגמן Python, כגון

 C: \ Python30 \ python.exe myfile.py 

מתורגמן אינטראקטיבי

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

Ctrl-D תצא מהמתורגמן.

רווח לבן

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

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

 1 2 3 4 5 
 x = 0 x x <10: print (x) x + = 1 print ("הכל נעשה") 

קוד התפלגות: לולאה בזמן אומר Python להפעיל את בלוק הקוד הבא, כל עוד תנאים מסוימים נכונים. במקרה זה, התנאי הוא ש- x הוא פחות מ -10. הוא ימשיך לולאה מעל גוש זה עד X x 10. "x + = 1" מתרגם ל "x = x + 1" או "x גדול יותר על ידי 1 ". שימו לב לקו הסופי לא מקבל לרוץ עד לולאה בזמן הוא סיים. Python רואה את השורות הזוהרות, ומטפל אלה כקבוצת קוד להיות לרוץ על כל נסיעה דרך לולאה בזמן . הקו הסופי אינו מזויף עם האחרים, ולכן Python אינו פועל על זה עד לולאה בזמן הוא סיים.

הקלדה דינמית

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

 1 2 3 4 5 6 7 8 
 x = 0 (x = 0) x (= x) (x = x) = x = [1, 2, 3, 4] print ("x הוא:", הקלד (x)) 

אשר נותן לנו את הפלט להלן

מבני מידע

שלושת מבני הנתונים שבהם תשתמש בדרך כלל בפייתון הם

  • רשימות
  • זוגות
  • מילונים

רשימות

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

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 
 #create רשימה עם כמה פריטים לדוגמה myList = [1, 2, 3, 4, 5] #len () נותן ספירה של כמה פריטים הרשימה שלנו מחזיק להדפיס ("myList שלי", len (myList), "פריטים . ") # פריטים ברשימה לא צריך להיות מאותו סוג myList.append (" שש ") myList.append (" שבע ") myList.append (8) # צירפנו שלושה פריטים חדשים כדי ("הפריט הראשון") ("הפריט הראשון"), myList [0]) # and now ("myList"). את הפריט הרביעי להדפיס ("פריט רביעי:, mylist [3]) # לאחר מכן פופ את הפריט האחרון מתוך הרשימה להדפיס (" ומסתיים ", (myList.pop ()) (" myList עכשיו יש ", len ( myList), "פריטים.") #And לראות מה עשינו להדפיס ("התוכן המלא הם:", myList) 

זוגות

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

מילונים

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

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

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
 myDict = {} # ערך מפתח myDict ["שם"] = "ג'וש" myDict ["עיסוק"] = "חנון המחשב" myDict ["FavFood"] = "האני מיוחד (ללא חסה)" myDict ["FavBand"] = ("גיבור") = "טום ווייטס, קורט וונגוט, SpaceBat" myDict ["FavNumber"] = 3.141592 myDict [42] = "זה גם מספר טוב" ("השם שלי: "(" הגיבורים שלי ") (" הגיבורים שלי ") (" הגיבורים שלי ") הדפס (" המספר האהוב עלי: ", myDict [" FavNumber "]) (" מה אני חושב על 42? "#, myDict [42]) print () # עכשיו אני אשנה את המספר האהוב עלי מבלי ליצור # מילון חדש לגמרי myDict [+ FavNumber] + = 100 print (" המספר החדש המועדף עלי: ", myDict [" FavNumber " ]) 

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

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

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

תביא את כל זה הביתה

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

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

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 
 # הזן את סכום הכסף הכולל = קלט ("הזן סכום כסף בדולרים: $") #Reading מ קלט טקסט מניח טקסט, אז להמיר #to עשרוני מרובים על ידי כך שאנחנו יכולים לספור פרוטות # (פשוט יותר במתמטיקה ככה) פרוטות = לצוף (סה"כ) * 100 # create מילון להחזיק ערכים שינוי שלנו = {"quarters": 0, "dimes": 0, "nickels": 0, "pennies": 0} # Loop עד שכל הכסף כבר טופל כאשר מטבע <> #Subtract כל מטבע מסכום הכל, הוסף 1 לספור # עבור כל מטבע, ולהפעיל מחדש את הלולאה לאחר הספירה אם פרוטות> = 25: שינוי ["רבעונים"] + = 1 פרוטות - = 25 המשך פרוטות אליף> = 10 = שינוי: [= "nickels"] + = 1 פרוטות = = 5 המשך המשך: שינוי ["pennies"] = int (פרוטות) ("d", "שינוי" "dimes") ("N", שינוי ["nickels"] ) הדפס ("P", שינוי ["פרוטות"]) 

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

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

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

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

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

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