شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

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

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

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

بیایید برنامه‌ "Hello, World!" پایتون را در حالت‌های مختلف برنامه‌نویسی اجرا کنیم.

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

ما می‌توانیم یک مفسر پایتون را از خط فرمان فراخوانی کنیم با تایپ کردن python در خط فرمان به صورت زیر −

$ python
Python 3.6.8 (default, Sep 10 2021, 09:13:53)
[GCC 8.5.0 20210514 (Red Hat 8.5.0-3)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

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

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

اگر شما از نسخه‌های قدیمی‌تری از پایتون، مانند پایتون ۲.۴.x، استفاده می‌کنید، آنگاه باید از دستور چاپ (print) بدون پرانتز استفاده کنید، مانند print "Hello, World!". با این حال، در پایتون نسخه ۳.x، این نتیجه زیر را تولید می‌کند −

Hello, World!

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

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

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

print ("Hello, World!")

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

$ python test.py

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

Hello, World!

بیایید یک روش دیگر برای اجرای یک اسکریپت پایتون امتحان کنیم. اینجا فایل test.py تغییر یافته ویرایش شده است −

#!/usr/bin/python

print ("Hello, World!")

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

$ chmod +x test.py     # This is to make file executable
$./test.py

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

Hello, World!

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

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

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

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

در ادامه توصیفاتی درباره برخی استاندارد های نامگذاری شناسه‌های پایتون آورده شده است −

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

  • شروع یک شناسه با یک زیرخط (_) نشان دهنده شناسه خصوصی است.

  • شروع یک شناسه با دو زیرخط (_) نشانگر یک شناسه بسیار قوی خصوصی است.

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

کلمات رزرو شده پایتون (Python Reserved Words)

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

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

خطوط و فاصله‌بندی در پایتون (Python Lines and Indentation)

برخلاف اکثر زبان های برنامه نویسی معروف ، زبان برنامه‌نویسی پایتون هیچ علامت آکولادی برای نشان دادن بلوک‌های کد برای تعریف کلاس و تابع یا کنترل جریان ندارد. بلوک‌های کد با استفاده از تورفتگی خطی (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'

sentence = "This is a sentence."

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

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

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

مانند اکثر زبان‌های مدرن، پایتون از توضیحات یک خطی و توضیحات چند خطی پشتیبانی می‌کند. کامنت های پایتون بسیار شبیه به توضیحات موجود در زبان‌های برنامه‌نویسی 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')

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

گروهی از عبارات جداگانه که یک بلوک کد تشکیل می‌دهند، در پایتون با نام سوئیت شناخته می‌شوند. عبارات ترکیبی یا پیچیده مانند if، while، def و class نیاز به یک خط هدر و یک سوئیت دارند.

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

if expression :
   suite
elif expression :
   suite
else :
   suite

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

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

$ python -h
usage: python [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. ]

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