טיפים שימושיים

כיצד להפיק נתונים בשפת התכנות של פייתון

Pin
Send
Share
Send
Send


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



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

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

עיצוב פלט נוח

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

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

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

שאלה אחת נותרה, כמובן: כיצד להמיר ערכים למיתרים? למרבה המזל, בפייתון ישנן שתי דרכים להמיר כל ערך למחרוזת - אלה הפונקציות של repr () ו- str ().

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

להלן שתי דרכים להציג טבלת ריבועים וקוביות:

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

דוגמה זו מדגימה את פעולת שיטת אובייקט המחרוזת rjust (), אשר מיישרת את המחרוזת לימין בשדה הרוחב שהועבר, תוך כניסה עם רווחים משמאל. שיטות דומות זמינות עבור ljust () ומרכז (). שיטות אלה אינן מדפיסות דבר, הן מחזירות רק שורה חדשה. אם שורת הקלט ארוכה מדי, אז הם לא גוזרים אותה, וזה בדרך כלל הרע במיעוטו. (כדי לקצץ, אתה יכול להוסיף פעולת פרוסה, למשל: x.just (n) [: n].)

קיימת שיטה נוספת - zfill (), הממלאת באפסים את החלל שמשמאל לשורת המספרים. הוא מזהה את סימני הפלוס והמינוס:

הדרך העיקרית להשתמש בשיטת str.format () היא כדלקמן:

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

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

ניתן לשלב באופן שרירותי פרמטרים של עמדות ושמות:

מפרט תבנית ':' אופציונלי עשוי להופיע בשם שדה. השתמש בו כדי לשלוט על עיצוב ערך. הדוגמה הבאה משאירה את ה- Pi שלוש ספרות בלבד אחרי המפריד העשרוני.

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

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

ניתן לעשות את אותו הדבר על ידי העברת מילון של פרמטרים בשם באמצעות הכיתוב "**":

בפרט, טכניקה זו נוחה לשימוש בשילוב עם הפונקציה המובנית vars (), המחזירה מילון עם משתנים מקומיים.

תיאור מפורט של מחרוזות העיצוב בשיטת str.format () מתואר בסעיף התחביר של תחביר מחרוזות העיצוב.

פלט מסך

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

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

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

עיצוב מיתרים בסגנון הישן

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

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

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

קלט משתמש

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

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

אותיות אינן מספרים!

בצורה כל כך פשוטה היכרות עם "קלט ופלט בשפה פייתון«

כתיבת וקריאת קבצים

הפונקציה הפתוחה () מחזירה אובייקט קובץ וברוב המקרים משתמשים בשני ארגומנטים: פתוח (שם קובץ, מצב) .

הפרמטר הראשון הוא מחרוזת המכילה את שם הקובץ. השנייה היא שורה נוספת הכוללת מספר תווים המתארים כיצד להשתמש בקובץ. ערך פרמטר מצב יכול להיות הסמל 'r' אם הקובץ פתוח לקריאה בלבד, 'w' פתוח לכתיבה בלבד (קובץ קיים עם אותו שם יימחק) ו- 'a' הוא הקובץ פתוח להוספה: כל הנתונים שייכתבו לקובץ באופן אוטומטי מתווספים עד הסוף. 'r +' פותח את הקובץ לקריאה וגם לכתיבה. פרמטר מצב אופציונלי: אם הוא מושמט, ההנחה היא שהוא שווה ל- 'r'.

במקרה הרגיל, קבצים נפתחים ב- מצב טקסט (מצב טקסט) - פירוש הדבר שאתה קורא מקובץ וכותב למחרוזות קבצים בקידוד מסוים (כברירת מחדל משתמשים בו Utf-8) אם אתה מוסיף символ b למצב הקובץ, הקובץ ייפתח ב מצב בינארי (מצב בינארי): כעת הנתונים נקראים ונכתבים כאובייקטים בינאריים. יש להשתמש במצב זה לכל הקבצים שאינם מכילים טקסט.

בעת שימוש במצב טקסט, כל סיומות השורות, כברירת מחדל, ספציפיות לפלטפורמה ( n ב- Unix, r n במערכת Windows) מקוצצות לתו n בעת קריאה מקובץ, ומומרות חזרה מ- n לתצוגה ספציפית ל פלטפורמות בעת כתיבה לקובץ. שינויים אלה מאחורי הקלעים בנתוני הקבצים עובדים נכון במקרה של קבצי טקסט, אך הם ישחיתו נתונים בינאריים בקבצים כמו JPEG או EXE. הקפד להשתמש במצב בינארי בעת קריאה וכתיבה של קבצים כאלה.

שיטות אובייקט קבצים

הדוגמאות להלן מניחות כי אובייקט קובץ בשם f נוצר מראש.

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

f.readline () קורא שורה אחת מהקובץ, אופי הקו החדש ( n) נשאר בסוף הקריאה בשורה ונעדר בעת קריאת השורה האחרונה בקובץ רק אם הקובץ לא מסתיים בשורה ריקה. כתוצאה מכך, ערך ההחזרה הופך להיות חד משמעי: אם f.readline () מחזיר שורה ריקה, סוף הקובץ יגיע, ובאותה עת, השורה הריקה המיוצגת על ידי ' n' מכילה רק תו חדש.

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

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

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

לכתובמחרוזת) כותב את התוכן מיתרים לקובץ ומחזיר את מספר הבתים שנכתב.

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

f.tell () מחזיר מספר שלם המייצג את המיקום הנוכחי בקובץ f, שנמדד בבתים מתחילת הקובץ. כדי לשנות את מיקום אובייקט הקובץ, השתמש ב- F.seek (עקירה, מאיפה) המיקום מחושב על ידי הוספת הקיזוז לנקודת ההתייחסות, נקודת ההתייחסות נבחרת מהפרמטר מאיפה . ערך פרמטר 0 מאיפה מודד את הקיזוז מתחילת הקובץ, ערך 1 מחיל את המיקום הנוכחי בקובץ, וערך 2 משתמש בסוף הקובץ כנקודת ייחוס. פרמטר מאיפה ניתן להשמיט ולהגדיר כ- 0 כברירת מחדל, תוך שימוש בתחילת הקובץ כנקודת ייחוס.

בעבודה עם קבצי טקסט (נפתחו ללא תו b בשורת המצב), חיפוש מותר רק מתחילת הקובץ (למעט גלילה לסוף הקובץ באמצעות חיפוש (0, 2)).

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

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

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

מודול חמוצים

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

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

אם יש לך אובייקט x ואובייקט קובץ f פתוחים לכתיבה במצב בינארי (מצב בינארי, עם הפרמטר 'wb'), הדרך הפשוטה ביותר לשמר לאובייקט דרוש שורת קוד יחידה:

לשמר מחדש את האובייקט, בתנאי ש- f הוא מושא הקובץ הפתוח לקריאה (גם במצב בינארי, עם הפרמטר 'rb'):

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

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

עורך, מחבר: פרד ל דרייק ג'וניור (פרד ל. דרייק, ג'וניור) ואחרים

אוספים

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

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

האם תהית אי פעם איך להסתכל בתוך חפץ בפיתון ולהסתכל על התכונות שלו? כמובן, הם חשבו.

1 באוגוסט בשעה 10:00, און ליין, חינם

השתמש בשורת הפקודה:

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

אמוג'י של pip להתקין

ואל תעמיד פנים שאתה לא רוצה לנסות:

מייבוא ​​__future__

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

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

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

Pip להתקין גאופיי

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

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

נתקתם מבעיה ואינכם זוכרים את הפיתרון שלה? צריך ללכת ל- StackOverflow, אבל לא רוצה לצאת מהטרמינל?

אז אתה לא יכול להסתדר בלי כלי שורת הפקודה הזה:

להתקין howdoi $

שאל כל שאלה והוא ינסה למצוא את התשובה לה:

אך היזהר: הוא מחלץ קוד מהתשובות המובילות ב- StackOverflow ולא תמיד מספק מידע שימושי:

$ Howdoi יציאה

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

להלן משתמש בשיטת inspect.getsource () כדי להפיק קוד מקור משלה. שיטת inspect.getmodule () משמשת גם לפלט של המודול בו היא מוגדרת.

הפקודה האחרונה מציגה את מספר השורה עליו הוא ממוקם:

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

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

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

Возможно, вы уже встречались с Jedi — IPython использует эту библиотеку для автодополнения.

Когда изучаешь любой язык, на пути встречается множество краеугольных камней. В случае с Python понимание таинственного синтаксиса **kwargs можно считать одним из них.

Две звёздочки впереди объекта словаря дают возможность передавать в функцию содержимое этого словаря как именованные аргументы.

Ключи словаря — это имена аргументов, а значения передаются в функцию. Вам даже не обязательно называть его kwargs :

Это полезно в тех случаях, когда ваши функции должны обрабатывать именованные аргументы, не определённые заранее.

Прим.перев. זה יכול גם להיות שימושי בעת כתיבת פונקציות עטיפה שמעבירות את כל הארגומנטים לפונקציה אחרת.

רשימת גנרטורים

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

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

כאן מפה () מיישמת פונקציית lambda פשוטה על כל אלמנט של x ומחזירה אובייקט מפה שניתן להמיר לאיזה אובייקט חוזר כמו רשימה או tuple.

magazine3k

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

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

זה אפילו כולל פונקציונליות מובנית NLP.

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

Pip $ התקן עיתון 3k

עומס יתר של מפעיל

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

למעשה הרעיון פשוט. האם תהית אי פעם מדוע Python מאפשר לך להשתמש במפעיל + הן להוספת מספרים ולשרשור מחרוזות? מאחורי זה מסתמן עומס יתר של המפעיל.

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

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

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

חובה לכל מפתח Python העובד עם מבני נתונים מותאמים אישית:

Python תומך בריבוי חוטים, שהמודול הסטנדרטי בתור עוזר להשתמש בהם.

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

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

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

כאן תוכלו לראות דוגמא לשימוש בתורים בתכנות פיתון רב-הברגה.

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

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

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

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

ספריית ה- sh יכולה להיות אלטרנטיבה נחמדה.

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

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

הקלד הערות

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

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

מאז Python 3.5, אתה יכול להוסיף הערות סוג בעת הגדרת פונקציה:

אתה יכול אפילו להגדיר כינויי סוג:

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

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

המודול הסטנדרטי uuid הוא דרך מהירה וקלה לייצר UUID (מזהה ייחודי אוניברסלי).

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

ישנם יותר מ- 2¹² UUIDs אפשריים. זה יותר מחמישה תמותות או 5,000,000,000,000,000,000,000,000,000,000,000,000,000,000.

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

לא רע בשתי שורות קוד.

סביבות וירטואליות

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

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

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

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

מודול הוויקיפדיה הופך את הגישה לממשק API זה נוח כמעט מדי:

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

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

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

הישאר בעצמך, פייתון. הישאר בעצמך.

פירוש YAML "YAML אינה שפת סימון" ("YAML אינה שפת סימון"). זוהי שפת עיצוב נתונים שהיא קבוצת-על של JSON.

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

מודול PyYAM מאפשר לך להשתמש ב- YAML בפיתון. אתה יכול להתקין אותו כך:

Pip $ להתקין פיומל

ואז יבוא:

PyYAML מאפשר לך לאחסן כל אובייקטים ומופעים של Python מכל מחלקות מותאמות אישית.

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

הפונקציה המובנית ב- zip () לוקחת מספר אובייקטים ניתנים להחזרה ומחזירה רצף של קליפות. כל tuple מקבץ את האלמנטים של אובייקטים לפי האינדקס שלהם.

אתה יכול לבצע את ההיפוך של zip () באמצעות zip (*).

ואיזה טכניקות או ספריות שימושיות אתה מכיר? שתפו בתגובות.

  1. 0, 0.0 ↩
  2. 0, 1.0 ↩
  3. 0, 1.0 ↩
  4. 0, -2.0 ↩

כיצד Yandex משתמשת בנתונים שלך ולמידה מכונה כדי להתאים אישית שירותים - קרא וצפה ב- YaC 2019.

Pin
Send
Share
Send
Send