نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • ایمنی
  • دستورات پایتون همراه با توضیحات اصول اولیه پایتون در یک نگاه

دستورات پایتون همراه با توضیحات اصول اولیه پایتون در یک نگاه

(ترجمه)

مقاله ای در سایت Poromenos Stuff منتشر شده است که در آن به صورت مختصر در مورد مبانی زبان پایتون صحبت می کنند، ترجمه این مقاله را به شما پیشنهاد می کنم، ترجمه تحت اللفظی نیست، سعی کردم با جزئیات بیشتر برخی را توضیح دهم. نکاتی که شاید واضح نباشد

اگر قصد یادگیری زبان پایتون را دارید، اما نمی توانید راهنمای مناسبی پیدا کنید، این مقاله برای شما بسیار مفید خواهد بود! در مدت زمان کوتاهی قادر خواهید بود با اصول اولیه زبان پایتون آشنا شوید. اگرچه این مقاله اغلب به شما متکی است که قبلاً تجربه برنامه نویسی دارید، امیدوارم حتی مبتدیان نیز از این مطالب مفید باشند. هر پاراگراف را با دقت بخوانید. به دلیل متراکم بودن مطالب، برخی از موضوعات به صورت سطحی بحث می شود، اما حاوی تمام مطالب لازم است.

خواص اساسی

پایتون به اعلان صریح متغیرها نیاز ندارد و یک زبان شی گرا حساس به حروف بزرگ و کوچک است (متغیر var معادل Var یا VAR نیست - آنها سه متغیر مختلف هستند).

نحو

در ابتدا باید به یک ویژگی جالب پایتون اشاره کرد. در عوض شامل براکت‌های عملگر (شروع به پاسکال یا (..) در C) نمی‌شود بلوک ها تورفتگی دارند: فاصله ها یا تب ها، و وارد کردن یک بلوک از دستورات با دو نقطه انجام می شود. نظرات تک خطی با علامت پوند "#" شروع می شوند، نظرات چند خطی با سه گیومه دوتایی """ پایان می یابند.

برای تخصیص یک مقدار به یک متغیر از علامت "=" و برای مقایسه از "==" استفاده می شود. برای افزایش مقدار یک متغیر یا اضافه کردن به یک رشته، از عملگر "+=" و "-=" برای کاهش آن استفاده کنید. همه این عملیات می توانند با اکثر انواع از جمله رشته ها تعامل داشته باشند. مثلا

>>> myvar = 3

>>> myvar += 2

>>> myvar - = 1

""" این یک نظر چند خطی است

رشته های محصور شده در سه گیومه دوتایی نادیده گرفته می شوند"""

>>> mystring = "سلام"

>>> mystring += "جهان."

>>>پرینت mystring

سلام دنیا.

# خط بعدی تغییر می کند

مقادیر متغیرها مبادله می شوند. (فقط یک خط!)

>>> myvar, mystring = mystring, myvar

ساختارهای داده

پایتون شامل ساختارهای داده ای مانند لیست ها، تاپل ها و لغت نامه ها). لیست ها شبیه آرایه های یک بعدی هستند (اما می توانید از یک لیست شامل لیست ها استفاده کنید - یک آرایه چند بعدی)، تاپل ها لیست های تغییرناپذیر هستند، فرهنگ لغت نیز لیست هستند، اما فهرست ها می توانند از هر نوع باشند، نه فقط عددی. «آرایه‌ها» در پایتون می‌توانند حاوی داده‌هایی از هر نوع باشند، یعنی یک آرایه می‌تواند شامل عددی، رشته‌ای و انواع داده‌های دیگر باشد. آرایه ها از شاخص 0 شروع می شوند و آخرین عنصر در شاخص -1 قابل دسترسی است.

>>> نمونه = , ("a", "tuple")] #لیست از یک عدد صحیح، یک لیست دیگر و یک تاپل تشکیل شده است.

>>> mylist = ["List item 1", 2, 3.14] #این لیست شامل یک رشته، یک عدد صحیح و یک کسری است.

>>> mylist = "List item 1 again" #تغییر عنصر اول (صفر) فهرست mylist

>>> mylist[-1] = 3.14 #آخرین عنصر برگه را تغییر دهید

>>> mydict = ("کلید 1": "مقدار 1"، 2: 3، "pi": 3.14) #یک فرهنگ لغت با شاخص های عددی و صحیح ایجاد کنید

>>> mydict["pi"] = 3.15 #عنصر فرهنگ لغت را در فهرست "pi" تغییر دهید.

>>> mytuple = (1، 2، 3) #یک تاپل را مشخص کنید

>>> myfunction = len #Python به شما امکان می دهد مترادف تابع را از این طریق اعلام کنید

>>> print myfunction (mylist)

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

>>> mylist = ["مورد لیست 1"، 2، 3.14]

>>> print mylist[:] #همه عناصر آرایه خوانده می شوند

["مورد لیست 1"، 2، 3.1400000000000001]

>>> print mylist #عدد صفر و اول آرایه خوانده می شود.

["مورد لیست 1"، 2]

>>> print mylist[-3:-1] #عناصر از صفر (-3) تا ثانیه (-1) خوانده می شوند (غیر شامل)

["مورد لیست 1"، 2]

>>> print mylist #Elements از اول تا آخر خوانده می شود

رشته های

رشته ها در پایتون با گیومه های دوتایی """ یا تک نقل قول """ از هم جدا شده اند. نقل‌قول‌های دوگانه می‌توانند شامل نقل قول‌های تکی باشند یا برعکس. به عنوان مثال، خط "او سلام کرد!" به عنوان "او گفت سلام!" نمایش داده می شود. اگر نیاز به استفاده از رشته ای از چند خط دارید، این خط باید با سه گیومه دوتایی """ شروع و به پایان برسد. می توانید عناصر را از یک تاپل یا فرهنگ لغت در قالب رشته جایگزین کنید. علامت درصد "%" بین رشته و تاپل کاراکترهای رشته "%s" را به عنصر تاپلی جایگزین می کند. فرهنگ لغت به شما امکان می دهد عنصری را در یک شاخص معین در یک رشته قرار دهید. برای این کار، از ساختار "%(index)s" در رشته استفاده کنید. در این حالت، به جای "%(index)s"، مقدار فرهنگ لغت در نمایه داده شده جایگزین شاخص می شود.

>>> چاپ "نام: %s\nشماره: %s\nرشته: %s" % (myclass.name, 3, 3 * "-")

نام: پورومنوس

تعداد: 3

رشته: ---

strString = """ این متن قرار دارد

در چند خط"""

>>> چاپ "این %(فعل)s یک %(اسم)s." %("اسم": "تست"، "فعل": "است")

این یک امتحان است.

اپراتورها

دستورات while، if و for عملگرهای حرکت را تشکیل می دهند. هیچ معادلی برای عبارت select وجود ندارد، بنابراین باید به if بسنده کنید. بیانیه for مقایسه ای انجام می دهد متغیر و لیست. برای دریافت لیستی از ارقام تا یک عدد - از تابع range( استفاده کنید ). در اینجا مثالی از استفاده از عملگرها آورده شده است

rangelist = range(10) #دریافت لیستی از ده رقم (از 0 تا 9)

>>> چاپ لیست محدوده

برای عدد در rangelist: #تا زمانی که عدد متغیر (که هر بار یک عدد افزایش می‌یابد) در لیست باشد...

# بررسی کنید که آیا متغیر گنجانده شده است

# عدد تا چند عدد (3، 4، 7، 9)

اگر عدد در (3، 4، 7، 9): #اگر عدد در تاپل (3، 4، 7، 9) باشد...

# عملیات "شکستن" فراهم می کند

# در هر زمان از حلقه خارج شوید

زنگ تفريح

دیگر:

# "ادامه" "پیمایش" را انجام می دهد

# حلقه. این در اینجا مورد نیاز نیست، زیرا پس از این عملیات

# در هر صورت، برنامه به پردازش حلقه برمی گردد

ادامه هید

دیگر:

# "دیگر" اختیاری است. شرط برقرار است

# اگر حلقه با "شکستن" قطع نشد.

پاس # هیچ کاری نکن

if rangelist == 2:

چاپ "مورد دوم (لیست ها بر اساس 0 هستند) 2 است"

elif rangelist == 3:

چاپ "مورد دوم (لیست ها بر اساس 0 هستند) 3 است"

دیگر:

چاپ "نمیدونم"

while rangelist == 1:

عبور

کارکرد

برای اعلام یک تابع، استفاده کنید کلمه کلیدی "def". آرگومان های تابع در داخل پرانتز بعد از نام تابع آورده شده است. شما می توانید آرگومان های اختیاری را مشخص کنید و به آنها یک مقدار پیش فرض بدهید. توابع می توانند تاپل ها را برگردانند، در این صورت باید مقادیر بازگشتی را که با کاما از هم جدا شده اند بنویسید. کلمه کلیدی "لامبدا" برای اعلام توابع ابتدایی استفاده می شود.

# arg2 و arg3 آرگومان های اختیاری هستند، مقدار اعلام شده را به طور پیش فرض بگیرید.

# مگر اینکه هنگام فراخوانی تابع مقدار متفاوتی به آنها بدهید.

def myfunction(arg1، arg2 = 100، arg3 = "تست"):

arg3، arg2، arg1 را برگردانید

# تابع با مقدار آرگومان اول - "Argument 1"، دوم - به طور پیش فرض و سوم - "Argument Named" فراخوانی می شود.

>>>ret1, ret2, ret3 = myfunction("Argument 1"، arg3 = "Named argument")

# ret1، ret2 و ret3 به ترتیب مقادیر "Named argument"، 100، "Argument 1" را می گیرند.

>>> چاپ ret1، ret2، ret3

آرگومان نامگذاری شده 100 آرگومان 1

# زیر معادل def f(x) است: x + 1 را برگردانید

functionvar = لامبدا x: x + 1

>>> تابع چاپ (1)

کلاس ها

زبان پایتون در وراثت چندگانه در کلاس ها محدود است. متغیرهای داخلی و متدهای کلاس داخلی با دو خط زیر "__" شروع می شوند (به عنوان مثال "__myprivatevar"). همچنین می توانیم از خارج به متغیر کلاس مقداری اختصاص دهیم. مثال:

کلاس Myclass:

مشترک = 10

def __init__(self):

Self.myvariable = 3

Def myfunction (self، arg1، arg2):

بازگشت self.myvariable

# در اینجا ما کلاس Myclass را اعلام کرده ایم. تابع __init__ به طور خودکار زمانی که کلاس ها مقدار دهی اولیه می شوند فراخوانی می شود.

>>> classinstance = Myclass() # ما کلاس را مقداردهی اولیه کردیم و myvariable دارای مقدار 3 است که در روش مقداردهی اولیه بیان شد.

>>> classinstance.myfunction(1, 2) #متد myfunction کلاس Myclass مقدار متغیر myvariable را برمی گرداند.

# متغیر مشترک در همه کلاس ها اعلام می شود

>>> classesinstance2 = Myclass()

>>> classesinstance.common

>>> classesinstance2.common

# بنابراین اگر مقدار آن را در کلاس Myclass تغییر دهیم تغییر خواهد کرد

# و مقادیر آن در اشیاء اولیه شده توسط کلاس Myclass

>>> Myclass.common = 30

>>> classesinstance.common

>>> classesinstance2.common

# و در اینجا متغیر کلاس را تغییر نمی دهیم. به جای این

# آن را در یک شی اعلام می کنیم و یک مقدار جدید به آن اختصاص می دهیم

>>> classesinstance.common = 10

>>> classesinstance.common

>>> classesinstance2.common

>>> Myclass.common = 50

# حالا تغییر متغیر کلاس تاثیری نخواهد داشت

# شی متغیر از این کلاس

>>> classesinstance.common

>>> classesinstance2.common

# کلاس زیر از نوادگان کلاس Myclass است

# با به ارث بردن خواص و متدهای آن، چه کسی می تواند کلاس

# ارث بری از چندین کلاس، در این مورد ورودی

# مانند این: کلاس Otherclass (Myclass1، Myclass2، MyclassN)

کلاس دیگر کلاس (Myclass):

Def __init__ (خود، arg1):

Self.myvariable = 3

چاپ arg1

>>> classinstance = Otherclass ("سلام")

سلام

>>> classesinstance.myfunction(1، 2)

# این کلاس تست ویژگی ندارد، اما ما می توانیم

# چنین متغیری را برای یک شی اعلان کنید. علاوه بر این

# این متغیر فقط عضو classinstance خواهد بود.

>>> classesinstance.test = 10

>>> classesinstance.test

استثناها

استثناها در پایتون دارای ساختار try -except هستند:

Def somefunction():

تلاش كردن:

# تقسیم بر صفر باعث خطا می شود

10 / 0

به جز ZeroDivisionError:

# اما برنامه "عملیات غیرقانونی انجام نمی دهد"

# و بلوک استثنا مربوط به خطای "ZeroDivisionError" را کنترل می کند

چاپ "اوه، نامعتبر است."

>>> fnexcept()

اوه، نامعتبر است.

وارد كردن

کتابخانه های خارجی را می توان با استفاده از روش "وارد کردن" متصل کرد، جایی که نام کتابخانه در حال اتصال است. همچنین می توانید از دستور "from import" استفاده کنید تا بتوانید از یک تابع از کتابخانه استفاده کنید:

import random #Import the “random” library

از زمان وارد کردن ساعت #و در عین حال عملکرد "ساعت" از کتابخانه "زمان".

تصادفی = random.randint(1، 100)

>>> چاپ تصادفی

کار با فایل سیستم

پایتون کتابخانه های داخلی زیادی دارد. در این مثال، سعی می کنیم ساختار لیست را در یک فایل باینری ذخیره کنیم، آن را بخوانیم و رشته را در یک فایل متنی ذخیره کنیم. برای تغییر ساختار داده، از کتابخانه استاندارد "pickle" استفاده می کنیم:

واردات ترشی

mylist = ["این"، "است"، 4، 13327]

# فایل C:\binary.dat را برای نوشتن باز کنید. نماد "r".

# از جایگزینی کاراکترهای خاص (مانند \n، \t، \b و غیره) جلوگیری می کند.

myfile = file(r"C:\binary.dat"، "w")

pickle.dump (mylist، myfile)

myfile.close()

myfile = فایل (r"C:\text.txt، "w")

myfile.write ("این یک رشته نمونه است")

myfile.close()

myfile = فایل (r"C:\text.txt")

>>> print myfile.read()

"این یک رشته نمونه است"

myfile.close()

# فایل را برای خواندن باز کنید

myfile = فایل (r"C:\binary.dat")

loadedlist = pickle.load(myfile)

myfile.close()

>>> چاپ لیست بارگذاری شده

["این"، "است"، 4، 13327]

ویژگی های خاص

  • شرایط را می توان ترکیب کرد. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • از عملگر "del" استفاده کنید پاک کردن متغیرها یا عناصر آرایه.
  • پایتون فرصت های بسیار خوبی برای کار با لیست ها. می توانید از عملگرهای اعلان ساختار لیست استفاده کنید. عملگر for به شما امکان می دهد عناصر لیست را در یک دنباله خاص مشخص کنید و عملگر if به شما امکان می دهد عناصر را بر اساس یک شرط انتخاب کنید.

>>> lst1 =

>>> lst2 =

>>> چاپ کنید

>>> چاپ کنید

# عملگر "any" true را در صورت وجود برمی گرداند

# در صورتی که یکی از شرایط مندرج در آن برآورده شود.

>>> هر (i % 3 برای i in )

درست است، واقعی

# روش زیر تعداد را می شمارد

# عنصر منطبق در لیست

>>> جمع (1 برای i در اگر i == 3)

>>> del lst1

>>> print lst1

>>> del lst1

  • متغیرهای جهانیخارج از توابع اعلان می شوند و می توانند بدون هیچ اعلان خوانده شوند. اما اگر باید مقدار یک متغیر سراسری را از یک تابع تغییر دهید، باید آن را در ابتدای تابع با کلمه کلیدی "global" اعلام کنید، اگر این کار را انجام ندهید، پایتون متغیری را اعلام می کند که فقط برای آن عملکرد قابل دسترسی است.

عدد = 5

def myfunc():

# خروجی 5

چاپ شماره

def Anotherfunc():

# این یک استثنا ایجاد می کند زیرا متغیر جهانی است

# از یک تابع فراخوانی نشد. پایتون در این مورد ایجاد می کند

متغیر # با همین نام در داخل این تابع و قابل دسترسی است

# فقط برای اپراتورهای این تابع.

چاپ شماره

عدد = 3

def yetanotherfunc():

شماره جهانی

# و فقط از این تابع مقدار متغیر تغییر می کند.

عدد = 3

پایان

البته در این مقاله تمام ویژگی های پایتون توضیح داده نمی شود. اگر می خواهید به یادگیری این زبان برنامه نویسی ادامه دهید، امیدوارم این مقاله به شما کمک کند.

مزایای پایتون

  • سرعت اجرای برنامه های نوشته شده در پایتون بسیار بالاست. این به دلیل این واقعیت است که کتابخانه های اصلی پایتون
    به زبان C++ نوشته شده‌اند و نسبت به سایر زبان‌های سطح بالا زمان کمتری برای تکمیل وظایف می‌گیرند.
  • به همین دلیل، می توانید ماژول های پایتون خود را در C یا C++ بنویسید
  • در کتابخانه های استاندارد پایتون می توانید ابزارهایی برای کار با ایمیل، پروتکل ها پیدا کنید
    اینترنت، FTP، HTTP، پایگاه داده و غیره
  • اسکریپت هایی که با استفاده از پایتون نوشته می شوند در اکثر سیستم عامل های مدرن اجرا می شوند. این قابلیت حمل به پایتون اجازه می دهد تا در طیف گسترده ای از برنامه ها استفاده شود.
  • پایتون برای هر راه حل برنامه نویسی مناسب است، برنامه های آفیس، برنامه های کاربردی وب، برنامه های رابط کاربری گرافیکی و غیره.
  • هزاران نفر از علاقه مندان از سراسر جهان روی توسعه پایتون کار کردند. پشتیبانی از فناوری های مدرن در کتابخانه های استاندارد را می توان به این واقعیت نسبت داد که پایتون برای همه باز بود.

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

مترجم

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

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

اجرای اسکریپت در کنسول

بیایید مفسر را در کنسول اجرا کنیم:

اکنون منتظر ورودی دستور است، دستور زیر را در آنجا وارد کنید:

چاپ "سلام دنیا!"

بله، اولین برنامه ما! :دی

اجرای یک اسکریپت از یک فایل

یک فایل "test.py" با محتوای زیر ایجاد کنید:

# چاپ "سلام دنیا" چاپ "سلام دنیا" # چاپ 2 به توان 10 چاپ 2 ** 10

و این فایل را اجرا کنید:

# python /path/to/test.py

کامپایل پویا و بایت کد

پس از اجرای اسکریپت، ابتدا منبع اسکریپت را به بایت کد برای ماشین مجازی کامپایل می کند. تلفیقیصرفاً یک مرحله ترجمه است و بایت کد یک نمایش سطح پایین و مستقل از پلت فرم از متن منبع برنامه است. پایتون هر دستورالعمل در کد منبع اسکریپت را به گروه هایی از دستورالعمل های بایت کد ترجمه می کند تا سرعت اجرای برنامه را بهبود بخشد زیرا بایت کد بسیار سریعتر اجرا می شود. پس از کامپایل در بایت کد، یک فایل با پسوند ".pyc"در کنار متن اصلی اسکریپت

دفعه بعد که برنامه خود را اجرا می کنید، مفسر مرحله کامپایل را دور می زند و یک فایل کامپایل شده با پسوند ".pyc" را برای اجرا تولید می کند. با این حال، اگر منابع برنامه خود را تغییر دهید، مرحله کامپایل به بایت کد دوباره انجام می شود، زیرا پایتون به طور خودکار تاریخ اصلاح فایل کد منبع را پیگیری می کند.

اگر پایتون نتواند یک فایل بایت کد بنویسد، مثلاً به دلیل نداشتن مجوز نوشتن روی دیسک، برنامه تحت تأثیر قرار نمی‌گیرد، بایت کد به سادگی در حافظه جمع‌آوری می‌شود و با خروج برنامه از آنجا حذف می‌شود.

ماشین مجازی پایتون (PVM)

پس از انجام فرآیند کامپایل، بایت کد به مکانیزمی به نام ارسال می شود ماشین مجازی، که دستورالعمل ها را از بایت کد اجرا می کند. ماشین مجازییک مکانیسم زمان اجرا است، همیشه در سیستم پایتون وجود دارد و جزء افراطی سیستم به نام "مفسر پایتون" است.

برای ادغام آنچه آموخته ایم، بیایید یک بار دیگر وضعیت را روشن کنیم: کامپایل در بایت کد به صورت خودکار انجام می شود و PVM تنها بخشی از سیستم پایتون است که همراه با مفسر و کامپایلر نصب کرده اید. همه چیز به صورت شفاف برای برنامه نویس اتفاق می افتد و شما مجبور نیستید این عملیات را به صورت دستی انجام دهید.

کارایی

برنامه نویسان با تجربه در زبان هایی مانند C و C++ ممکن است متوجه تفاوت هایی در مدل اجرای پایتون شوند. اولین مورد این است که هیچ مرحله ساخت یا فراخوانی ابزار "make" وجود ندارد؛ برنامه های پایتون را می توان بلافاصله پس از نوشتن کد منبع اجرا کرد. تفاوت دوم این است که کد بایت کد ماشین باینری نیست (مثلاً دستورالعمل های یک ریزپردازنده اینتل)، بلکه یک نمایش داخلی از یک برنامه پایتون است.

به این دلایل، برنامه ها در پایتون نمی توانند به سرعت C/C++ اجرا شوند. دستورالعمل ها توسط سیستم مجازی و نه ریزپردازنده عبور می کنند و برای اجرای بایت کد نیاز به تفسیر اضافی دارد که دستورالعمل های آن بیشتر از دستورالعمل های ماشین ریزپردازنده طول می کشد.

با این حال، از سوی دیگر، بر خلاف مفسرهای سنتی، به عنوان مثال در PHP، یک مرحله کامپایل اضافی وجود دارد - مفسر نیازی به تجزیه و تحلیل متن منبع برنامه در هر بار ندارد.

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

پیاده سازی های جایگزین پایتون

آنچه در بالا در مورد کامپایلر و ماشین مجازی گفته شد برای پیاده سازی استاندارد پایتون، به اصطلاح CPython (پیاده سازی در ANSI C) معمول است. با این حال، پیاده سازی های جایگزینی مانند Jython و IronPython نیز وجود دارد که اکنون مورد بحث قرار خواهد گرفت.

این پیاده‌سازی استاندارد و اصلی پایتون است که به این دلیل نامگذاری شده است که با ANSI C نوشته شده است. این همان چیزی است که ما هنگام انتخاب بسته نصب کردیم. ActivePythonیا نصب شده از FreeBSDپورت ها از آنجایی که این یک پیاده سازی مرجع است، به طور کلی است سریع تر، پیوسته تر و بهتر کار می کندنسبت به اجرای جایگزین

جیتون

نام اصلی JPython، هدف اصلی - ادغام کامل با زبان برنامه نویسی جاوا. پیاده سازی Jython از کلاس های جاوا تشکیل شده است که کد پایتون را در بایت کد جاوا کامپایل کرده و سپس بایت کد حاصل را ارسال می کند. ماشین مجازی جاوا (JVM).

هدف Jython این است که به برنامه های پایتون اجازه دهد برنامه های جاوا را کنترل کنند، همانطور که CPython می تواند اجزای C/C++ را کنترل کند. این پیاده سازی یکپارچه سازی یکپارچه با جاوا دارد. از آنجایی که کد پایتون به بایت کد جاوا ترجمه می شود، دقیقاً مانند یک برنامه جاوا واقعی در زمان اجرا عمل می کند. برنامه‌های Jython می‌توانند به‌عنوان اپلت‌ها و سرولت‌ها عمل کنند، یک رابط گرافیکی با استفاده از مکانیسم‌های جاوا ایجاد کنند و غیره. علاوه بر این، Jython از توانایی وارد کردن و استفاده از کلاس‌های جاوا در کد پایتون پشتیبانی می‌کند.

با این حال، از آنجایی که پیاده سازی Jython کندتر و قوی تر از CPython است، برای توسعه دهندگان جاوا که به یک زبان برنامه نویسی به عنوان رابط کد جاوا نیاز دارند، جالب است.

این پیاده سازی برای ارائه یکپارچه سازی برنامه های پایتون با برنامه های ساخته شده برای اجرا بر روی Microsoft .NET Framework سیستم عامل ویندوز، و همچنین Mono، معادل منبع باز لینوکس طراحی شده است. چارچوب دات نت و زمان اجرا سی شارپ به گونه ای طراحی شده اند که قابلیت همکاری بین اشیاء نرم افزار را - صرف نظر از زبان برنامه نویسی مورد استفاده - بر اساس روح مدل قبلی COM مایکروسافت، امکان پذیر می کند.

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

ابزارهای بهینه سازی سرعت اجرا

پیاده سازی های دیگری از جمله یک کامپایلر پویا وجود دارد روانیو مترجم Shedskin C++، که سعی در بهینه سازی مدل اجرای اساسی دارند.

کامپایلر پویا Psyco

سیستم روانیمؤلفه ای است که مدل اجرای بایت کد را گسترش می دهد و به برنامه ها اجازه می دهد سریعتر اجرا شوند. روانییک پسوند است PVM، که اطلاعات نوع را جمع آوری و استفاده می کند تا بخش هایی از بایت کد برنامه را به کد ماشین باینری واقعی ترجمه کند که بسیار سریعتر اجرا می شود. این ترجمه نیازی به تغییر در کد منبع یا کامپایل اضافی در طول توسعه ندارد.

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

در حالت ایده آل، برخی از بخش های کد برنامه تحت کنترل Psyco است می تواند به سرعت کد C کامپایل شده اجرا شود.

Psyco افزایش سرعت را بین 2 تا 100 برابر، اما معمولاً 4 برابر، هنگام استفاده از مفسر پایتون اصلاح نشده ارائه می دهد. تنها نقطه ضعف Psyco این است که در حال حاضر فقط قادر به تولید کد ماشین برای معماری است اینتل x86.

Psyco استاندارد نیست، باید جداگانه دانلود و نصب شود. یک پروژه نیز وجود دارد PyPy، که نشان دهنده تلاشی برای بازنویسی است PVMبه منظور بهینه سازی کد همانطور که در روانی، پروژه PyPyقرار است مقدار بیشتری از پروژه را جذب کند روانی.

مترجم Shedskin C++

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

باینری های منجمد

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

باینری های ثابت برنامه بایت کد، PVM و فایل های پشتیبانی مورد نیاز برنامه ها را در یک فایل بسته واحد ترکیب می کنند. نتیجه یک فایل اجرایی واحد است، مانند فایلی با پسوند ".exe" برای ویندوز.

امروزه سه ابزار اصلی برای ایجاد "باینری های منجمد" وجود دارد:

  • py2exe- می تواند برنامه های مستقل برای ویندوز ایجاد کند که از کتابخانه های Tkinter، PMW، wxPython و PyGTK برای ایجاد یک رابط گرافیکی استفاده می کنند، برنامه هایی که از نرم افزار ساخت بازی PyGame، برنامه های مشتری win32com و بسیاری دیگر استفاده می کنند.
  • PyInstaller- شبیه py2exe است، اما روی لینوکس و یونیکس نیز اجرا می شود و قادر به تولید فایل های اجرایی خودنصب است.
  • یخ زدگی- نسخه اصلی.

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

باینری های ثابت بسیار بزرگ هستند زیرا حاوی PVM هستند، اما طبق استانداردهای مدرن هنوز به طور غیرعادی بزرگ نیستند. از آنجایی که مفسر پایتون مستقیماً در باینری های ثابت ساخته شده است، نصب آن برای اجرای برنامه ها در انتهای گیرنده الزامی نیست.

خلاصه

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

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

بخش 1. قابلیت های زبان و نحو اولیه

سری مطالب:

آیا ارزش یادگیری پایتون را دارد؟

پایتون یکی از محبوب ترین زبان های برنامه نویسی مدرن است. این زبان برای حل انواع مشکلات مناسب است و قابلیت های مشابه سایر زبان های برنامه نویسی را ارائه می دهد: پویایی، پشتیبانی OOP و کراس پلتفرم. توسعه Python توسط Guido Van Rossum در اواسط دهه 1990 آغاز شد، بنابراین تا کنون می توان از شر بیماری های استاندارد "کودکی" خلاص شد، به طور قابل توجهی بهترین جنبه های زبان را توسعه داد و بسیاری از برنامه نویسان را با استفاده از Python برای پیاده سازی خود جذب کرد. پروژه ها.

بسیاری از برنامه نویسان بر این باورند که یادگیری زبان های برنامه نویسی "کلاسیک" مانند جاوا یا سی پلاس پلاس ضروری است، زیرا به هر حال زبان های دیگر قادر به ارائه همان قابلیت ها نیستند. با این حال، اخیراً این باور به وجود آمده است که توصیه می شود یک برنامه نویس بیش از یک زبان بداند، زیرا این امر افق دید او را گسترده تر می کند و به او اجازه می دهد تا با خلاقیت بیشتری مشکلات را حل کند و رقابت خود را در بازار کار افزایش دهد.

یادگیری کامل دو زبان مانند جاوا و سی پلاس پلاس بسیار دشوار است و زمان زیادی را می طلبد. علاوه بر این، بسیاری از جنبه های این زبان ها با یکدیگر در تضاد هستند. در عین حال، پایتون برای نقش زبان دوم ایده‌آل است، زیرا به لطف دانش از قبل موجود OOP بلافاصله جذب می‌شود، و این واقعیت که قابلیت‌های آن در تضاد نیست، بلکه مکمل تجربه به‌دست‌آمده از کار با برنامه‌نویسی دیگر است. زبان

اگر یک برنامه نویس به تازگی در زمینه توسعه نرم افزار شروع کرده است، پایتون یک زبان برنامه نویسی "مقدمه ای" ایده آل خواهد بود. به لطف کوتاه بودن آن، به شما امکان می دهد تا به سرعت بر نحو زبان تسلط پیدا کنید و عدم وجود "میراث" در قالب بدیهیات تشکیل شده در طول سالیان به شما کمک می کند تا به سرعت OOP را تسلط دهید. با توجه به این عوامل، منحنی یادگیری برای پایتون بسیار کوتاه خواهد بود و برنامه نویس می تواند از نمونه های آموزشی به پروژه های تجاری حرکت کند.

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

این سری از مقالات برای کمک به شما برای غلبه بر منحنی یادگیری با ارائه اطلاعاتی از ابتدایی ترین اصول زبان تا قابلیت های پیشرفته آن برای ادغام با سایر فناوری ها طراحی شده است. مقاله اول به ویژگی های اساسی و نحو پایتون می پردازد. در ادامه به جنبه های پیشرفته تر کار با این زبان محبوب، به ویژه برنامه نویسی شی گرا در پایتون خواهیم پرداخت.

معماری پایتون

هر زبان، چه برای برنامه نویسی و چه برای ارتباط، حداقل از دو بخش تشکیل شده است - واژگان و نحو. زبان پایتون دقیقاً به همین ترتیب سازماندهی شده است و یک دستور برای تشکیل عباراتی که برنامه های اجرایی را تشکیل می دهند و یک واژگان - مجموعه ای از عملکردها در قالب یک کتابخانه استاندارد و افزونه ها ارائه می دهد.

همانطور که گفته شد، سینتکس پایتون کاملا مختصر است، به خصوص زمانی که با جاوا یا C++ مقایسه شود. از یک طرف، این خوب است، زیرا هر چه نحو ساده تر باشد، یادگیری آن آسان تر است و اشتباهات کمتری می توانید در هنگام استفاده از آن مرتکب شوید. با این حال، چنین زبان هایی دارای یک اشکال هستند - می توان از آنها برای انتقال ساده ترین اطلاعات استفاده کرد و نمی توانند ساختارهای پیچیده را بیان کنند.

این در مورد پایتون صدق نمی کند، زیرا یک زبان ساده اما ساده است. واقعیت این است که پایتون زبانی است با سطح انتزاع بالاتر، مثلاً بالاتر از جاوا و C++، و به شما امکان می دهد همان مقدار اطلاعات را در مقدار کمتری از کد منبع منتقل کنید.

پایتون همچنین یک زبان همه منظوره است، بنابراین تقریباً در هر زمینه ای از توسعه نرم افزار (مستقل، سرویس گیرنده-سرور، برنامه های کاربردی وب) و در هر زمینه موضوعی قابل استفاده است. علاوه بر این، پایتون به راحتی با اجزای موجود ادغام می شود و به شما امکان می دهد پایتون را در برنامه هایی که قبلاً نوشته اید جاسازی کنید.

یکی دیگر از مؤلفه‌های موفقیت پایتون، ماژول‌های افزونه آن است، هم استاندارد و هم خاص. ماژول های برنامه افزودنی استاندارد پایتون به خوبی طراحی شده اند و عملکردی آزمایش شده برای حل مشکلاتی دارند که در هر پروژه توسعه نرم افزار، پردازش رشته و متن، تعامل با سیستم عامل و پشتیبانی از برنامه های کاربردی وب ایجاد می شود. این ماژول‌ها همچنین به زبان پایتون نوشته شده‌اند، بنابراین مهم‌ترین ویژگی آن را دارند - cross-platform، به شما امکان می‌دهند بدون دردسر و سریع پروژه‌ها را از یک سیستم عامل به سیستم عامل دیگر منتقل کنید.

اگر عملکرد مورد نیاز در کتابخانه استاندارد پایتون نیست، می توانید ماژول افزونه خود را برای استفاده های مکرر بعدی ایجاد کنید. در اینجا شایان ذکر است که ماژول های افزونه برای پایتون را می توان نه تنها در خود زبان پایتون، بلکه با استفاده از سایر زبان های برنامه نویسی ایجاد کرد. در این مورد، اجرای کارآمدتر وظایف با منابع فشرده، مانند محاسبات علمی پیچیده، امکان پذیر است، اما اگر زبان ماژول افزونه مانند پایتون، خود کراس پلتفرم نباشد، مزیت کراس پلتفرم از بین می رود.

زمان اجرا پایتون

همانطور که می دانید، همه زبان های برنامه نویسی کراس پلتفرم بر اساس یک مدل ساخته شده اند: این یک کد منبع واقعا قابل حمل و یک محیط زمان اجرا است که قابل حمل نیست و برای هر پلتفرم خاصی خاص نیست. این محیط اجرا معمولاً شامل یک مفسر است که کد منبع را اجرا می کند و ابزارهای مختلف لازم برای حفظ برنامه - یک اشکال زدا، اسمبلر معکوس و غیره.

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

در حال حاضر سه پیاده‌سازی زمان اجرا برای پایتون وجود دارد: CPython، Jython و Python.NET. همانطور که از نام آن پیداست، فریم ورک اول در C، دومی در جاوا و آخرین فریم ورک در پلتفرم دات نت پیاده سازی شده است.

زمان اجرای CPython معمولاً به سادگی Python نامیده می شود، و وقتی مردم در مورد Python صحبت می کنند، اغلب به این پیاده سازی می گویند. این پیاده‌سازی شامل یک مفسر و ماژول‌های پسوندی است که به زبان C نوشته شده‌اند و می‌توانند بر روی هر پلتفرمی که یک کامپایلر استاندارد C برای آن موجود است استفاده شود. علاوه بر این، نسخه‌های از پیش کامپایل‌شده زمان اجرا برای سیستم‌عامل‌های مختلف، از جمله نسخه‌های مختلف ویندوز وجود دارد. سیستم عامل و توزیع های مختلف لینوکس. در این مقاله و مقاله‌های بعدی، CPython در نظر گرفته می‌شود، مگر اینکه به طور جداگانه خلاف آن ذکر شود.

زمان اجرا Jython یک پیاده سازی پایتون برای اجرای ماشین مجازی جاوا (JVM) است. هر نسخه JVM از نسخه 1.2.2 (نسخه جاوا فعلی 1.6 است) پشتیبانی می شود. کار با Jython به یک ماشین جاوا (محیط زمان اجرا جاوا) و مقداری دانش زبان برنامه نویسی جاوا نیاز دارد. نیازی به دانستن نحوه نوشتن کد منبع در جاوا نیست، اما باید با فایل های JAR و اپلت های جاوا و همچنین مستندات در فرمت JavaDOC سر و کار داشته باشید.

اینکه کدام نسخه از محیط را انتخاب کنید، صرفاً به ترجیحات برنامه نویس بستگی دارد؛ به طور کلی، توصیه می شود هر دو CPython و Jython را روی رایانه نگه دارید، زیرا آنها با یکدیگر تضاد ندارند، بلکه مکمل یکدیگر هستند. محیط CPython سریعتر است زیرا هیچ لایه میانی به شکل JVM وجود ندارد. علاوه بر این، نسخه های به روز شده پایتون ابتدا به عنوان محیط CPython منتشر می شود. با این حال، Jython می تواند از هر کلاس جاوا به عنوان یک ماژول افزونه استفاده کند و بر روی هر پلتفرمی که برای آن پیاده سازی JVM وجود دارد اجرا شود.

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

شروع کار با پایتون

قبل از شروع استفاده از پایتون، باید محیط اجرای آن را نصب کنید - در این مقاله این CPython و بر این اساس، مفسر پایتون است. روش‌های نصب مختلفی وجود دارد: کاربران با تجربه می‌توانند پایتون را از روی کد منبع عمومی آن کامپایل کنند، همچنین می‌توانند فایل‌های اجرایی آماده برای یک سیستم عامل خاص را از وب‌سایت www.python.org دانلود کنند، و در نهایت، بسیاری از توزیع‌های لینوکس می‌آیند. با یک مفسر پایتون از پیش نصب شده این مقاله از نسخه ویندوز Python 2.x استفاده می کند، اما نمونه های ارائه شده را می توان در هر نسخه از Python اجرا کرد.

پس از اینکه نصب کننده فایل های اجرایی پایتون را در دایرکتوری مشخص شده استقرار داد، باید مقادیر متغیرهای سیستم زیر را بررسی کنید:

  • مسیر. این متغیر باید شامل مسیر دایرکتوری که پایتون در آن نصب شده باشد باشد تا سیستم عامل بتواند آن را پیدا کند.
  • PYTHONHOME. این متغیر فقط باید حاوی مسیر دایرکتوری باشد که پایتون در آن نصب شده است. این دایرکتوری همچنین باید حاوی یک زیر شاخه lib باشد که برای ماژول های استاندارد پایتون جستجو می شود.
  • PYTHONPATH. متغیری با فهرستی از دایرکتوری‌های حاوی ماژول‌های افزونه که به پایتون متصل می‌شوند (عناصر فهرست باید با جداکننده سیستم از هم جدا شوند).
  • راه اندازی PYTHON. یک متغیر اختیاری که مسیر اسکریپت پایتون را مشخص می کند که باید هر بار که یک جلسه مفسر تعاملی پایتون شروع می شود اجرا شود.

خط فرمان برای کار با مفسر ساختار زیر را دارد.

PYTHONHOME\python (گزینه ها) [ -c command | فایل اسکریپت | - ] (استدلال)

حالت تعاملی پایتون

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

مقدار عبارت ارزیابی شده در یک متغیر خاص به نام Single Underscore (_) ذخیره می شود تا بتوان از آن در عبارات بعدی استفاده کرد. می توانید یک جلسه تعاملی را با استفاده از میانبر صفحه کلید Ctrl–Z در ویندوز یا Ctrl–D در لینوکس پایان دهید.

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

برای اطمینان از اینکه پایتون به درستی نصب شده و به درستی کار می کند، می توانید دستورات زیر را اجرا کنید:

c:\>python-v
c:\> python –c “import time; print time.asctime()”

گزینه -v نسخه پیاده سازی پایتون مورد استفاده را چاپ می کند و از آن خارج می شود، در حالی که فرمان دوم مقدار زمان سیستم را روی صفحه چاپ می کند.

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

اصول دستور زبان پایتون

اسکریپت های کد منبع پایتون از به اصطلاح تشکیل شده است رشته های منطقی، که هر کدام به نوبه خود از خطوط فیزیکی. نماد # برای نشان دادن نظرات استفاده می شود. مترجم نظرات و خطوط خالی را نادیده می گیرد.

موارد زیر جنبه بسیار مهمی است که ممکن است برای برنامه نویسانی که پایتون را به عنوان زبان برنامه نویسی دوم می آموزند عجیب به نظر برسد. واقعیت این است که در پایتون هیچ نمادی وجود ندارد که بتواند عبارات را از یکدیگر در کد منبع جدا کند، مانند نقطه ویرگول (;) در C++ یا جاوا. نقطه ویرگول به شما این امکان را می دهد که چندین دستورالعمل را در صورتی که در یک خط فیزیکی قرار دارند از هم جدا کنید. همچنین هیچ ساختاری مانند بریس های فرفری () وجود ندارد که به شما امکان می دهد گروهی از دستورالعمل ها را در یک بلوک واحد ترکیب کنید.

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

هیچ تفاوت اساسی دیگری در نحو پایتون با سایر زبان های برنامه نویسی وجود ندارد. مجموعه استانداردی از عملگرها و کلمات کلیدی وجود دارد که اکثر آنها از قبل برای برنامه نویسان آشنا هستند، در حالی که موارد خاص پایتون در این مقاله و مقالات بعدی پوشش داده خواهد شد. قوانین استاندارد همچنین برای تعیین شناسه های متغیرها، متدها و کلاس ها استفاده می شود - نام باید با یک زیرخط یا یک کاراکتر لاتین در هر مورد شروع شود و نمی تواند شامل کاراکترهای @، $، ٪ باشد. همچنین، تنها یک کاراکتر زیرخط را نمی توان به عنوان شناسه استفاده کرد (به پاورقی که در مورد حالت تعاملی عملکرد صحبت می کند، مراجعه کنید).

انواع داده های مورد استفاده در پایتون

انواع داده های مورد استفاده در پایتون نیز مانند سایر زبان ها هستند - انواع داده های عدد صحیح و واقعی. علاوه بر این، یک نوع داده پیچیده پشتیبانی می شود - با یک بخش واقعی و خیالی (نمونه ای از چنین عددی 1.5J یا 2j است که در آن J جذر -1 است). پایتون از رشته‌هایی پشتیبانی می‌کند که می‌توانند در گیومه‌های تک، دو یا سه‌گانه محصور شوند و رشته‌ها، مانند جاوا، اشیایی تغییرناپذیر هستند، یعنی. پس از ایجاد نمی تواند ارزش آنها را تغییر دهد.

پایتون همچنین دارای یک نوع داده منطقی bool با دو گزینه مقدار True و False است. با این حال، در نسخه‌های قدیمی‌تر پایتون چنین نوع داده‌ای وجود نداشت، و علاوه بر این، هر نوع داده‌ای را می‌توان به مقدار بولی True یا False فرستاد. تمام اعداد غیر صفر و رشته ها یا مجموعه های داده غیر خالی به عنوان True و مقادیر خالی و صفر به عنوان False در نظر گرفته شدند. این ویژگی در نسخه های جدید پایتون حفظ شده است، اما برای افزایش خوانایی کد، استفاده از نوع bool برای متغیرهای بولی توصیه می شود. در عین حال، اگر نیاز به حفظ سازگاری با پیاده‌سازی قدیمی‌تر پایتون دارید، باید از 1 (True) یا 0 (False) به عنوان متغیرهای بولی استفاده کنید.

قابلیت کار با مجموعه داده ها

پایتون سه نوع مجموعه را برای ذخیره مجموعه داده ها تعریف می کند:

  • تاپلی (تبلی);
  • لیست (فهرست)؛
  • فرهنگ لغت.

تاپل یک توالی مرتب شده غیرقابل تغییر از داده ها است. می تواند حاوی عناصری از انواع مختلف باشد، مانند تاپل های دیگر. یک تاپل در پرانتز تعریف شده و عناصر آن با کاما از هم جدا می شوند. یک تابع داخلی خاص، tuple()، به شما اجازه می دهد تا از یک توالی داده شده تاپل ایجاد کنید.

لیست یک توالی مرتب و تغییرپذیر از عناصر است. عناصر لیست نیز با کاما از هم جدا می شوند، اما در براکت مشخص می شوند. برای ایجاد لیست ها، تابع list() پیشنهاد می شود.

دیکشنری یک جدول هش است که یک عنصر را به همراه کلید شناسه آن ذخیره می کند. دسترسی بعدی به عناصر نیز توسط کلید انجام می شود، بنابراین واحد ذخیره سازی در یک فرهنگ لغت یک جفت شی-کلید و یک شی مقدار مرتبط است. فرهنگ لغت یک مجموعه قابل تغییر اما نامرتب است، بنابراین ترتیب عناصر در فرهنگ لغت می تواند در طول زمان تغییر کند. فرهنگ لغت در پرانتزهای مجعد مشخص شده است، کلید با یک دونقطه از مقدار جدا می شود و خود جفت های کلید/مقدار با کاما از هم جدا می شوند. تابع dict() برای ایجاد فرهنگ لغت در دسترس است.

لیست 1 نمونه هایی از مجموعه های مختلف موجود در پایتون را نشان می دهد.

فهرست 1. انواع مجموعه های موجود در پایتون
('w','o','r','l','d') # تاپیک از پنج عنصر (2.62،) # چند تایی از یک عنصر ["test", "me"] # لیست دو عنصر # لیست خالی ( 5:'a', 6:'b', 7:'c' ) # فرهنگ لغت سه عنصر با کلیدهایی از نوع int

تعریف توابع در پایتون

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

سینتکس برای تعریف توابع در پایتون بسیار ساده است. با در نظر گرفتن الزامات فوق:

def FUNCTION_NAME(پارامترها): عبارت شماره 1 عبارت شماره 2 ...

همانطور که می بینید استفاده از تابع کلمه def، colon و indentation ضروری است. فراخوانی تابع نیز بسیار ساده است:

FUNCTION_NAME (پارامترها)

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

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

#عملکردی که تقسیم عدد صحیح را انجام می دهد - با استفاده از عملگر // def foo(delimoe, delitel): return delimoe // delitel print divide(50,5) # نتیجه کار: 10 print divide(delitel=5, delimoe=50) # نتیجه کار: 10

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

اگر تابع بسیار ساده باشد و از یک خط تشکیل شده باشد، می توان آن را درست در نقطه استفاده تعریف کرد؛ در پایتون به چنین ساختاری تابع لامبدا می گویند. یک تابع لامبدا یک تابع ناشناس (بدون نام خود) است که بدنه آن عبارت بازگشتی است که مقدار برخی از عبارت ها را برمی گرداند. این رویکرد ممکن است در برخی شرایط راحت باشد، اما شایان ذکر است که استفاده مجدد از چنین توابعی غیرممکن است ("جایی که متولد شد، به کار آمد").

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

توابع در پایتون دارای ویژگی‌های جالب دیگری مانند مستندسازی و توانایی تعریف توابع تو در تو هستند، اما این موارد در مقالات بعدی سری با مثال‌های پیچیده‌تر مورد بررسی قرار خواهند گرفت.

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

1. بازی های رایانه ای خود را با پایتون اختراع کنید

ممکن است قبلاً کتاب پایتون مورد علاقه خود را داشته باشید، اما توصیه می کنم این کتاب را بخوانید. می توانید آن را خریداری کنید، آن را به صورت آنلاین بخوانید یا به صورت رایگان در PDF دانلود کنید. من همان ساختار فصول را دوست دارم: ابتدا مسئله مطرح می شود و سپس نمونه هایی از راه حل های مشکلات با توضیحات مفصل وجود دارد. همین نویسنده 3 کتاب فوق العاده دیگر نوشت.

2. مجسمه سازی

من در مدارسی کار کرده‌ام که به دلایلی (معمولاً دلایل امنیتی) پایتون در دسترس نبود. Skulpt اسکریپت های پایتون را در مرورگر اجرا می کند و شامل چندین نمونه است. اولین مورد از ماژول Turtle برای نمایش اشکال هندسی استفاده می کند. من اغلب از آن برای آزمایش دانش دانش آموزان استفاده می کنم.

3. عدد را حدس بزنید

8. تصادفی

پایتون چندین توابع داخلی مفید مانند چاپ و ورودی دارد. از طرف دیگر، ماژول تصادفی باید قبل از استفاده وارد شود. این به دانش آموزان اجازه می دهد تا کمی غیرقابل پیش بینی به پروژه های خود اضافه کنند.

واردات سکه تصادفی = ['heads','tails'] flip = random.choice(سکه) print(flip)

9. ضد جاذبه

من به ندرت از ماژول ضد جاذبه استفاده می کنم. اما وقتی باید این کار را انجام دهم، از دانش آموزان می پرسم که با واردات آن چه اتفاقی می افتد. معمولاً من پاسخ‌های مختلفی دریافت می‌کنم، گاهی اوقات حتی پیشنهاد می‌کنند که اثر واقعی بی‌وزنی آغاز می‌شود - آنها فکر می‌کنند پایتون بسیار قدرتمند است :) شما می‌توانید خودتان آن را امتحان کنید و به دانش‌آموزان خود پیشنهاد دهید.

واردات ضد جاذبه

10. خرابکاری

بزرگترین چالش برای من به عنوان یک معلم، یافتن خطاهای نحوی در برنامه های دانش آموزان بود. خوشبختانه، قبل از اینکه کاملاً از فرسودگی خسته شوم، به این فکر کردم

دستورالعمل های گام به گام برای هر کسی که می خواهد برنامه نویسی پایتون (یا به طور کلی برنامه نویسی) را یاد بگیرد اما نمی داند اولین قدم را کجا بردارد.

چه باید کرد؟

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

1. ابتدا اصول اولیه را بیاموزید. بیاموزید که متغیرها، ساختارهای کنترلی، ساختارهای داده چیست. این دانش بدون گره خوردن به زبان خاصی ضروری است.

2. ادبیات مطالعه کنید. با کلاسیک شروع کنید - به پایتون شیرجه بزنید. این کتاب در واقع می تواند به یک کتاب مرجع تبدیل شود. همچنین می توانید مایکل داوسون "برنامه نویسی در پایتون" و الکسی واسیلیف "پایتون را با مثال" بخوانید. دوره برنامه نویسی عملی." داوسون یک برنامه نویس و معلم با تجربه است و در کتاب با ساخت بازی های ساده برنامه نویسی را آموزش می دهد. در کتاب واسیلیف، برعکس، بیشتر به مبانی و نظریه توجه شده است.

4. دوره مقدماتی علوم کامپیوتر و برنامه نویسی پایتون را از MIT بخوانید.

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

6. اگر به فناوری های وب علاقه دارید، به فریمورک های Flask و Django توجه کنید. دریابید که کدام یک برای چه اهدافی مناسب تر است، شروع به مطالعه موردی کنید که مناسب شماست.

7. بیاموزید که چگونه مجموعه داده ها را از سایت های فردی، از سراسر اینترنت و هر جای دیگر به دست آورید و تجزیه و تحلیل کنید - فقط سعی کنید در چارچوب قانون بمانید.

8. به دنبال اطلاعاتی در مورد روش های یادگیری ماشین باشید.

9. بهینه سازی کار با ابزار، خودکار کردن روال و هر چیزی که هنوز خودکار نشده است.

کجا بریم؟

چندین لینک مفید به منابعی که به شما کمک می کند کمی کمتر در گوگل جستجو کنید و تصمیم بگیرید در کدام جهت کار کنید.

منابع مفید

مدرس پایتون

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

باکی رابرتز در یوتیوب

اگر با برنامه نویسی آشنایی ندارید، این آموزش ها به شما کمک زیادی می کند. درک آنها آسان است و هر چیزی را که ممکن است ابتدا نیاز داشته باشید پوشش می دهند، با نصب زبان شروع می شود.

درک باناس در پایتون در یوتیوب

درک یک برنامه نویس خودآموخته است و رویکرد خاص خود را برای یادگیری زبان های برنامه نویسی دارد. او مرورهای ویدئویی کوتاهی از زبان‌های مختلف، 40 تا 60 دقیقه‌ای می‌سازد، که در آن همه چیزهایی را که برای درک کلی هدف زبان نیاز دارید، بیان می‌کند.

کوری شفر در یوتیوب

کوری ویدیوهای خوبی در مورد قالب بندی رشته ها، ژنراتورها، اصطلاحات برنامه نویسی (ترکیب ها و جایگشت ها، DRY، بسته شدن) و موارد دیگر دارد تا به شما در درک مفاهیم کمک کند.

جنگو شروع به کار

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

مقدمه ای بر فلاسک

یک دوره ویدیویی در یوتیوب برای کسانی که می خواهند با Flask آشنا شوند، برخی از ظرافت های آن را درک کنند و بدانند چرا اصلاً به آن نیاز است.

لینک های مفید

تازه کار

پایتون 3 برای مبتدیان
"یک بایت پایتون"

بهترین مقالات در این زمینه