כתיבת קוד עבודה לא תמיד מספיקה; אתה צריך לנסות לכתוב קוד מובנה היטב שקל להבין גם. קוד נקי יקל עליך - ואחרים - לתחזק את התוכנה שלך.
לפייתון יש תכונות ופונקציות רבות שיכולות לעזור לך לכתוב קוד נקי יותר. הנה כמה מהטובים ביותר.
1. אוטומציה של סגירת משאבים עם מנהל הקשר
סגירה ידנית של משאבים עלולה להיות לא נוחה כאשר הקוד שלך מקיים אינטראקציה עם משאבים רבים. אתה עלול לשכוח לסגור משאב. זה גורם לתוכנית שלך להשתמש במשאבי המערכת בצורה לא יעילה, מה שעלול להוביל ל- דליפת זיכרון.
קוד זה פותח קובץ ואז סוגר אותו באופן ידני:
קובץ = פתוח('test.txt', 'ר')
file_contents = file.read()
file.close()
words = file_contents.split(' ')
word_count = לן (מילים)
הדפס (ספירת מילים)
אתה יכול להפוך את סגירת הקובץ לאוטומטית באמצעות מנהל הקשר. מנהלי הקשר מטפלים במשאבים עבורך, כך שאינך צריך לזכור לנהל אותם באופן ידני. להשתמש ב עם הצהרה ליצירת הקשר לניהול משאב:
עם לִפְתוֹחַ('test.txt', 'ר') כפי ש קוֹבֶץ:
file_contents = file.read()
words = file_contents.split(' ')
word_count = לן (מילים)
הדפס (ספירת מילים)
הקוד בבלוק זה פועל בהקשר של אובייקט הקובץ ש לִפְתוֹחַ החזרות. Python סוגר אוטומטית את הקובץ הזה כשהקוד עוזב את ההקשר הזה, גם אם מתרחש חריג.
2. כתיבת הצהרות תנאי נקיות יותר
אתה עלול למצוא את עצמך כותב הרבה קוד מיותר בעת התמודדות עם אם-אחר הצהרות. לפייתון יש אופרטורים טרינריים שיעזרו לך לכתוב הצהרות קומפקטיות יותר. בלוק הקוד למטה מציג הצהרת if-else רגילה.
מצב = נָכוֹן
אם מַצָב:
x = 1
אַחֵר:
x = 0
הדפס (x)
אתה יכול לשכתב את הקוד הזה באמצעות אופרטור טרינרי המאפשר לך לכתוב את התנאי בשורת קוד אחת.
מצב = נָכוֹן
x = 1אם מַצָב אַחֵר0
הדפס (x)
חשוב לציין שעליך להשתמש באופרטורים טרינריים בעת יישום לוגיקה פשוטה. בלוגיקה מורכבת יותר והצהרות מותנות מקוננות, האופרטור השלישוני יכול להיות קשה להבנה.
3. מעקב אחר פריטים באמצעות הפונקציה למנות
כשאתה חוזר על רשימת Python, אתה יכול לגשת לאינדקס של הפריט הנוכחי בשתי דרכים. דרך אחת היא שימוש בלולאה המסורתית עבור. זה עובד מצוין, אבל הקוד לא נקי כפי שהוא יכול להיות. זה גם מחייב אותך לאתחל את האינדקס באופן ידני.
מכוניות = ['בוגאטי', 'מרסדס', "טויוטה"]
אינדקס = 0
ל אוטו ב מכוניות:
הדפס (אינדקס, מכונית)
אינדקס += 1
הדרך השנייה היא שימוש בפונקציית ה-Enumerate המובנית של Python. זה יאפשר לך לגשת לאינדקס ולערך המתאים ברשימה במהלך לולאה.
מכוניות = ['בוגאטי', 'מרסדס', "טויוטה"]
ל אינדקס, מכונית ב למנות (מכוניות):
הדפס (אינדקס, מכונית)
כעת אינך צריך לעקוב אחר האינדקס באופן ידני.
4. לולאה על פני מספר רשימות עם פונקציית ה-Zip
אתה יכול גם להשתמש בפונקציית ה-enumerate ללולאה על מספר רשימות בו-זמנית. קבל את האינדקס של הרשימה הראשונה, ולאחר מכן השתמש בו כדי לגשת לערכים המתאימים ברשימות אחרות.
english_names = ['מזון', 'מים', 'אוטו']
ספרדית_שמות = ['alimento', 'אגואה', 'אוטומטי']
ל אינדקס, שם ב Enumerate (אנגלית_שמות):
ספרדית = ספרדית_שמות [אינדקס]
הדפס (ו' {שֵׁם} בספרדית הוא {ספרדית}')
זה עובד מצוין, אבל תצטרך לכתוב הרבה קוד מיותר אם מספר הרשימות יגדל. כדי לכתוב קוד נקי יותר אתה יכול להשתמש בפונקציית zip ולהעביר אליה את שמות הרשימה שלך.
english_names = ['מזון', 'מים', 'אוטו']
ספרדית_שמות = ['alimento', 'אגואה', 'אוטומטי']
ל אנגלית, ספרדית ב zip (שמות_באנגלית, ספרדיות_שמות):
הדפס(ו' {אנגלית} בספרדית הוא {ספרדית}')
עליך להמשיך להשתמש בפונקציית ה-enumerate כדי לולאה על רשימה בודדת. אבל אם אתה עובר בלולאה על כמה רשימות ביחד, שקול להשתמש בפונקציית zip.
בעת הזנת מידע רגיש, הקלט לא אמור להיות גלוי כטקסט רגיל על המסך. הדרך הרגילה לקחת קלט ב-Python היא להשתמש בפונקציית הקלט:
שם משתמש = קלט('שם משתמש: ')
סיסמה = קלט('סיסמה: ')
הדפס('מתחבר...')
עם זאת, פונקציית הקלט הופכת את הסיסמה לגלויה כטקסט רגיל על המסך במהלך ההקלדה. כדי לוודא שהסיסמה אינה מוצגת על המסך, עליך להשתמש בפונקציית getpass במקום זאת:
מ getpass יְבוּא getpass
שם משתמש = קלט('שם משתמש: ')
סיסמה = getpass('סיסמה:')
הדפס('מתחבר...')
מודול getpass הוא חלק מהספרייה הסטנדרטית של Python, כך שאינך צריך להתקין אותו.
6. הפיכת מספרים גדולים לקריאה באמצעות מצייני מיקום של קו תחתון
כאשר אתה מתמודד עם מספרים גדולים בתוכנית שלך, הם יכולים להיות מאוד קשים לקריאה במבט חטוף. הקצאת מספרים שגויים למשתנים מובילה לתוכנית פגומה ואיתור שגיאה זו יכול להיות קשה מאוד.
מספר1 = 10000000000
מספר 2 = 100000000
סך = מספר1 + מספר2
הדפס (סה"כ)
אתה יכול לשכתב את הקוד לעיל באמצעות קווים תחתונים כדי להפריד בין קבוצות של אלפים, דרך נפוצה להפוך מספרים גדולים לקריאה יותר.
מספר1 = 10_000_000_000
מספר 2 = 100_000_000
סך = מספר1 + מספר2
הדפס(ו'{סה"כ:,}')
מחרוזת f בפונקציית ההדפסה מפרידה את הפלט באמצעות מפריד האלפים.
7. שימוש בפונקציית העזרה כדי ללמוד עוד על מודול
פונקציית העזרה חשובה מאוד ב- Python. זה יאפשר לך לדעת איך להשתמש במודול שהתקנת. כדי להשתמש בו, התקן את המודול, ולאחר מכן הפעל את מתורגמן Python במסוף והצביע על הנתיב שהתקנת את המודול. ייבא את המודול ולבסוף העביר את שם המודול לפונקציית העזרה.
כדי לגלות באילו שיטות ותכונות אתה יכול להשתמש, החלף את פונקציית העזרה בפונקציית dir.
הפונקציה dir מחזירה את השיטות והתכונות שהמודול תומך לא בכל התיעוד. זה שימושי כאשר אתה רוצה לקבל הצצה למה שהמודול עושה.
כתיבת קוד פייתון מנקה
פייתון היא שפה מאוד מגוונת. כמו בכל שפה אחרת, אתה תהיה טוב יותר בכתיבת קוד Python נקי יותר עם הזמן.
לפייתון יש הרבה מודולים ופונקציות מובנות. במקרים מסוימים, אתה יכול לכתוב קוד קשה לקריאה מכיוון שחסר לך ידע על קיומה של פונקציה מסוימת. כדי לוודא שאתה מודע יותר, עליך לקרוא מאמרים נוספים כיצד לכתוב קוד טוב יותר.