آموزش پایتون - سینتکس پایه

سینتکس پایتون مجموعه‌ای از قوانین را تعریف می‌کند که برای ایجاد یک برنامه پایتون استفاده می‌شوند. سینتکس زبان برنامه‌نویسی پایتون شباهت‌های زیادی به زبان‌های برنامه‌نویسی پرل (Perl)، سی (C) و جاوا (Java) دارد. با این حال، تفاوت‌های مشخصی نیز بین این زبان‌ها وجود دارد.

اولین برنامه پایتون

بیایید یک برنامه پایتون برای چاپ "Hello, World!" را در دو حالت مختلف برنامه‌نویسی پایتون اجرا کنیم: (الف) برنامه‌نویسی در حالت تعاملی (Interactive Mode) (ب) برنامه‌نویسی در حالت اسکریپت (Script Mode).

پایتون - برنامه‌نویسی در حالت تعاملی

ما می‌توانیم یک مفسر پایتون را از طریق خط فرمان با تایپ عبارت python در خط فرمان به شکل زیر فراخوانی کنیم:

$ python3
Python 3.10.6 (main, Mar 10 2023, 10:55:28) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

در اینجا عبارت >>> نشان‌دهنده پرامپت دستور پایتون است که می‌توانید دستورات خود را در آن تایپ کنید. بیایید متن زیر را در پرامپت پایتون تایپ کرده و کلید Enter را فشار دهیم:

>>> print ("Hello, World!")

اگر از نسخه‌های قدیمی‌تر پایتون مانند پایتون 2.4.x استفاده می‌کنید، باید از دستور print بدون پرانتز استفاده کنید، مانند print "Hello, World!". اما در پایتون نسخه 3.x، این دستور نتیجه زیر را تولید می‌کند:

Hello, World!

پایتون - برنامه‌نویسی در حالت اسکریپت

ما می‌توانیم مفسر پایتون را همراه با پارامتر اسکریپت فراخوانی کنیم که اجرای اسکریپت را آغاز کرده و تا پایان اسکریپت ادامه می‌دهد. زمانی که اسکریپت به پایان می‌رسد، مفسر دیگر فعال نیست.

بیایید یک برنامه ساده پایتون را در یک اسکریپت بنویسیم که یک فایل متنی ساده است. فایل‌های پایتون دارای پسوند .py هستند. کد منبع زیر را در فایلی به نام test.py تایپ کنید:

print ("Hello, World!")

ما فرض می‌کنیم که مسیر مفسر پایتون در متغیر PATH تنظیم شده است. اکنون، بیایید سعی کنیم این برنامه را به شکل زیر اجرا کنیم:

$ python3 test.py

این کار نتیجه زیر را تولید می‌کند:

Hello, World!

بیایید روش دیگری را برای اجرای یک اسکریپت پایتون امتحان کنیم. در اینجا فایل اصلاح‌شده test.py قرار دارد:

#!/usr/bin/python3

print ("Hello, World!")

ما فرض می‌کنیم که مفسر پایتون در دایرکتوری usr/bin/ در دسترس است. اکنون سعی کنید این برنامه را به شکل زیر اجرا کنید:

$ chmod +x test.py     # این دستور برای قابل اجرا کردن فایل است
$./test.py

این کار نتیجه زیر را تولید می‌کند:

Hello, World!

شناسه‌ها در پایتون (Python Identifiers)

شناسه در پایتون نامی است که برای تشخیص یک متغیر، تابع، کلاس، ماژول یا شیء دیگر استفاده می‌شود. یک شناسه با یک حرف از A تا Z یا a تا z یا یک خط زیر (_) شروع می‌شود و در ادامه می‌تواند شامل صفر یا چند حرف، خط زیر و رقم (0 تا 9) باشد.

پایتون اجازه استفاده از کاراکترهای علامت‌گذاری مانند @، $ و % را در داخل شناسه‌ها نمی‌دهد.

پایتون یک زبان برنامه‌نویسی حساس به حروف کوچک و بزرگ (Case-sensitive) است. بنابراین، Manpower و manpower دو شناسه متفاوت در پایتون محسوب می‌شوند.

در اینجا قراردادهای نام‌گذاری برای شناسه‌های پایتون آورده شده است:

  • نام کلاس‌ها در پایتون با حرف بزرگ شروع می‌شود. تمام شناسه‌های دیگر با حرف کوچک شروع می‌شوند.

  • شروع یک شناسه با یک خط زیر در ابتدا، نشان می‌دهد که آن شناسه یک شناسه خصوصی (private) است.

  • شروع یک شناسه با دو خط زیر در ابتدا، نشان‌دهنده یک شناسه شدیداً خصوصی (strongly private) است.

  • اگر شناسه با دو خط زیر در انتها نیز ختم شود، آن شناسه یک نام ویژه تعریف‌شده توسط زبان است.

کلمات رزروشده در پایتون

لیست زیر کلیدواژه‌های پایتون را نشان می‌دهد. این‌ها کلمات رزروشده هستند و شما نمی‌توانید از آن‌ها به عنوان نام ثابت، متغیر یا هر شناسه دیگری استفاده کنید. تمام کلیدواژه‌های پایتون فقط شامل حروف کوچک هستند.

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

خطوط و تورفتگی‌ها در پایتون

برنامه‌نویسی پایتون هیچ آکولادی برای مشخص کردن بلوک‌های کد در تعریف کلاس‌ها، توابع یا کنترل جریان برنامه ارائه نمی‌دهد. بلوک‌های کد با تورفتگی خطوط (Line Indentation) مشخص می‌شوند که به شدت اجرا و الزامی می‌شود.

تعداد فاصله‌ها در تورفتگی متغیر است، اما تمام دستورات داخل یک بلوک باید به یک اندازه تورفتگی داشته باشند. برای مثال:

if True:
   print ("True")
else:
   print ("False")

با این حال، بلوک زیر یک خطا ایجاد می‌کند:

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

بنابراین، در پایتون تمام خطوط متوالی که با تعداد متساوی فاصله تورفتگی دارند، یک بلوک را تشکیل می‌دهند. مثال زیر دارای بلوک‌های دستورات مختلفی است:

در این مرحله سعی نکنید منطق کد را درک کنید. فقط مطمئن شوید که بلوک‌های مختلف را حتی بدون وجود آکولاد متوجه شده‌اید.
import sys

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 = raw_input("Enter text: ")
   if file_text == file_finish:
      # close the file
      file.close
      break
   file.write(file_text)
   file.write("\n")
file.close()
file_name = raw_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

دستورات چندخطی در پایتون

دستورات در پایتون معمولاً با یک خط جدید به پایان می‌رسند. با این حال، پایتون اجازه استفاده از کاراکتر ادامه خط (\) را می‌دهد تا نشان دهد خط باید ادامه یابد. برای مثال:

total = item_one + \
        item_two + \
        item_three

دستوراتی که داخل کروشه []، آکولاد {} یا پرانتز () قرار دارند، نیازی به استفاده از کاراکتر ادامه خط ندارند. برای مثال دستور زیر به خوبی در پایتون کار می‌کند:

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

نقل‌قول‌ها در پایتون

پایتون نقل‌قول‌های تکی (')، دوتایی (") و سه‌تایی (''' یا """) را برای نشان دادن رشته‌ها می‌پذیرد، تا زمانی که همان نوع نقل‌قولی که رشته را شروع کرده، آن را به پایان برساند.

نقل‌قول‌های سه‌تایی برای گسترش رشته در چند خط استفاده می‌شوند. برای مثال، تمامی موارد زیر معتبر هستند:

word = 'word'
print (word)

sentence = "This is a sentence."
print (sentence)

paragraph = """This is a paragraph. It is
 made up of multiple lines and sentences."""
print (paragraph)

کامنت‌ها در پایتون

کامنت یک توضیح یا یادداشت قابل خواندن برای برنامه‌نویس در کد منبع پایتون است. آن‌ها با هدف آسان‌تر کردن درک کد منبع برای انسان‌ها اضافه می‌شوند و توسط مفسر پایتون نادیده گرفته می‌شوند.

مانند اکثر زبان‌های مدرن، پایتون از کامنت‌های تک‌خطی (یا پایان خط) و چندخطی (بلوکی) پشتیبانی می‌کند. کامنت‌های پایتون بسیار شباهت به کامنت‌های موجود در زبان‌های برنامه‌نویسی PHP، BASH و Perl دارند.

علامت هش (#) که داخل یک رشته قرار نداشته باشد، آغازگر یک کامنت است. تمام کاراکترهای بعد از # تا پایان خط فیزیکی بخش کامنت هستند و مفسر پایتون آن‌ها را نادیده می‌گیرد.

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

این کد نتیجه زیر را تولید می‌کند:

Hello, World!

می‌توانید یک کامنت را در همان خط بعد از یک دستور یا عبارت تایپ کنید:

name = "Madisetti" # This is again comment

می‌توانید چند خط را به صورت زیر کامنت کنید:

# This is a comment.
# This is a comment, too.
# This is a comment, too.
# I said that already.

رشته‌های سه‌تایی زیر نیز توسط مفسر پایتون نادیده گرفته می‌شوند و می‌توانند به عنوان کامنت چندخطی استفاده شوند:

'''
This is a multiline
comment.
'''

استفاده از خطوط خالی در برنامه‌های پایتون

خطي که تنها شامل فاصله‌های خالی باشد، احتمالاً به همراه یک کامنت، به عنوان یک خط خالی شناخته می‌شود و پایتون کاملاً آن را نادیده می‌گیرد.

در یک جلسه مفسر تعاملی، برای پایان دادن به یک دستور چندخطی باید یک خط فیزیکی خالی وارد کنید.

انتظار برای کاربر

خط زیر از برنامه، پرامپت و عبارتی را نمایش می‌دهد که می‌گوید برای خروج کلید Enter را فشار دهید و منتظر اقدام کاربر می‌ماند:

#!/usr/bin/python

raw_input("\n\nPress the enter key to exit.")

در اینجا، "\n\n" برای ایجاد دو خط جدید قبل از نمایش خط اصلی استفاده می‌شود. به محض اینکه کاربر کلید را فشار دهد، برنامه به پایان می‌رسد. این یک ترفند خوب برای باز نگه داشتن پنجره کنسول است تا زمانی که کار کاربر با برنامه تمام شود.

چندین دستور در یک خط واحد

نقطه ویرگول ( ; ) اجازه می‌دهد چند دستور در یک خط قرار گیرند، به شرطی که هیچ‌یک از دستورات یک بلوک کد جدید را شروع نکنند. در اینجا یک نمونه کد با استفاده از نقطه ویرگول آورده شده است:

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

گروه‌های دستورات چندگانه به عنوان Suite

گروهی از دستورات فردی که یک بلوک کد واحد را تشکیل می‌دهند، در پایتون Suite نامیده می‌شوند. دستورات مرکب یا پیچیده، مانند if، while، def و class نیازمند یک خط هدر و یک suite هستند.

خطوط هدر دستور را (با کلیدواژه) شروع می‌کنند و با یک دو نقطه ( : ) به پایان می‌رسند و بعد از آن‌ها یک یا چند خط قرار می‌گیرد که suite را تشکیل می‌دهند. برای مثال:

if expression :
   suite
elif expression :
   suite
else :
   suite

آرگومان‌های خط فرمان در پایتون

بسیاری از برنامه‌ها می‌توانند اجرا شوند تا اطلاعات پایه‌ای درباره نحوه اجرایشان به شما ارائه دهند. پایتون به شما امکان می‌دهد این کار را با h- انجام دهید:

$ python3 -h
usage: python3 [option] ... [-c cmd | -m mod | file | -] [arg] ...
Options and arguments (and corresponding environment variables):
-c cmd : program passed in as string (terminates option list)
-d     : debug output from parser (also PYTHONDEBUG=x)
-E     : ignore environment variables (such as PYTHONPATH)
-h     : print this help message and exit

[ etc. ]

همچنین می‌توانید اسکریپت خود را به گونه‌ای برنامه‌نویسی کنید که گزینه‌های مختلفی را بپذیرد. آرگومان‌های خط فرمان یک مبحث پیشرفته است و باید کمی بعدتر و پس از بررسی سایر مفاهیم پایتون مطالعه شود.

پیشرفت مطالعه: وضعیت خوانده‌شدن این درس فقط در همین مرورگر ذخیره می‌شود؛ بدون نیاز به حساب کاربری.