Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

מדריך Python – פרק 3 – התחביר הבסיסי Basic Syntax

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

התוכנית הראשונה שלי

  • תכנות מתוך המקשר האינטראקטיבי:

 

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

Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
<<<

כתבו בשורת הפקודה של Python את הקוד הבא:


 print ("Hello, Python!")

שלאחר שתריצו אותה יתקבל הפלט הבא:

!Hello, World

 

  • תכנות סקריפטים:

 

כאשר נפעיל את המקשר עם סקריפט, הוא יריץ את הסקריפט וימשיך עד שהסקריפט נגמר, ואז המקשר יפסיק את פעולתו. כעת נכתוב סקריפט ב-Python, כאשר סיומת קובץ הסקריפט היא תמיד py. כתבו את אותה התוכנית לתוך קובץ סקריפט בשם test.py:


 print ("Hello, Python!")

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

C:\Python34>Python test.py

ואז תקבלו מיד את הפלט הרצוי:

!Hello, World

מזהים Identifires ב-Python

מזהים Identifires הם למעשה שמות שמורים עבור משתנים, פונקציותמודולים ועוד, כאשר שם המזהה חייב להתחיל באות קטנה או גדולה, מספר או קו תחתון (_) שאחריו מגיעות אותיות או מספרים. לא ניתן להשתמש בסימנים כמו % או @ בשם המשתמש. כמו כן Python היא שפת תכנות תלוית רישיות Case Sensitive, כלומר שהשפה יודעת להבחין בין אותיות קטנות לגדולות, למשל השם Manpower נחשב שם מזהה שונה מ-manpower.

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

 

מילים שמורות\מילות מפתח

אלו הם מילים שמורות ב-Python 3 שלא ניתן להשתמש בהם כשמות למשתנים או למזהים. שימו לב כי כל המילים השמורות ב-Python כתובות באותיות קטנות בלבד:

and exec not
as finally or
assert for pass
break from print
class global raise
continue if return
def import try
del in while
elif is with
else lambda yield
except

 

הזחה ושורות

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

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


if True:
   print ("True")

else:
   print ("False")

אך הבלוק הבא יחזיר לנו שגיאה :


if True:
   print ("Answer")
   print ("True")

else:
   print "(Answer")
   print ("False")

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

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


import sys

file_finish = "end"
file_text = ""
contents=[]

file_name=input("Enter filename: ")
if len(file_name) == 0:
   print("Please enter filename")
   sys.exit()

try:
   # open file stream
   file = open(file_name, "w")

except IOError:
   print ("There was an error writing to", file_name)
   sys.exit()

print ("Enter '", file_finish,)
print ("' When finished")

while file_text != file_finish:
   file_text = input("Enter text: ")
   contents.append(file_text)

   if file_text == file_finish:
      # close the file
      file.close()
      break

print(contents)
data = ' '.join([str(elem) for elem in contents])  
print(data)
file.write(data)
file.close()
file_name = input("Enter filename: ")

if len(file_name) == 0:
   print ("Next time please enter something")
   sys.exit()

try:
   file = open(file_name, "r")

except IOError:
   print ("There was an error reading file")
   sys.exit()
file_text = file.read()
file.close()
print (file_text)

ביטויים רבי-שורות

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


total = item_one + \
   item_two + \
   item_three

שימו לב כי לביטויים שנמצאים בתוך סוגריים ( ) [ ] { } אין צורך בסימן המשך שורה. למשל:


days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday']

סימני הגרשיים (" ") (' ')

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

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


word = 'word'
sentence = "This is a sentence."
paragraph = """This is a paragraph. It is
made up of multiple lines and sentences."""

הערות צד 

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


# First comment
print ("Hello, World!") # second comment

וכשנריץ תוכנית זו נקבל את הפלט הבא:

!Hello, World

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


# This is a comment.
# This is a comment, too.
# This is a comment, too..
# This is a comment, too...

שורות ריקות

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

מצב המתנה למשתמש

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


input("\n\nPlease press enter to exit.")

הסימן (\n\n) מורה לתוכנית לרדת 2 שורות לפני שיודפס הפלט, כאשר המשתמש לוחץ על המקש Enter במקלדת, התוכנית תסתיים.

מספר ביטויים בשורה אחת 

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


mport sys; x = 'foo'; sys.stdout.write(x + '\n')

קבוצות ביטויים במערכת Suite

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


if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

סימנים בשורת הפקודה

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

רוצים לשתף את המדריך?

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

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

ניתן לתרום 10, 15, 20 או כל סכום אחר שתרצו באמצעות כרטיס אשראי \ Paypal

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

הזמינו אותי לכוס קפה
buy me coffee

אהבתכם את המדריך? פתר לכם תקלה? הזמינו את כותב המדריך לכוס קפה

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