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

درس های برنامه نویسی از ابتدا پایتون. زبان برنامه نویسی پایتون در حال نابودی است

(ترجمه)

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

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

خواص اساسی

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

نحو

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

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

>>>myvar=3

>>> myvar += 2

>>> myvar - = 1

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

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

>>> mystring = "سلام"

>>> mystring += "world."

>>> پرینت 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]

>>> چاپ mylist #خواندن عناصر از اول تا آخر

رشته های

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

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

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

تعداد: 3

رشته: ---

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

در چندین خط

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

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

اپراتورها

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

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"). همچنین می‌توانیم از خارج به متغیر کلاس مقداری اختصاص دهیم. مثال:

classMyclass:

مشترک = 10

Def __init__ (خود):

Self.myvariable = 3

Def myfunction (self، arg1، arg2):

بازگشت self.myvariable

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

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

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

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

>>> classinstance2 = Myclass()

>>> classinstance.common

>>> classinstance2.common

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

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

>>>Myclass.common = 30

>>> classinstance.common

>>> classinstance2.common

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

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

>>> classinstance.common = 10

>>> classinstance.common

>>> classinstance2.common

>>>Myclass.common = 50

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

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

>>> classinstance.common

>>> classinstance2.common

# کلاس زیر زیر کلاس Myclass است

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

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

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

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

Def __init__ (خود، arg1):

Self.myvariable = 3

چاپ arg1

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

سلام

>>> classinstance.myfunction(1، 2)

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

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

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

>>> classinstance.test = 10

>>>classinstance.test

استثناها

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

defsomefunction():

تلاش كردن:

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

10 / 0

به جز ZeroDivisionError:

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

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

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

>>> fnexcept()

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

وارد كردن

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

واردات تصادفی #کتابخانه "تصادفی" را وارد کنید

from time import clock #و در عین حال تابع "clock" از کتابخانه "time".

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

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

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

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

ترشی وارداتی

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

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

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

myfile = فایل (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

شماره چاپ

تعریف otherfunc():

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

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

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

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

شماره چاپ

عدد = 3

def yetanotherfunc():

شماره جهانی

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

عدد = 3

پایان

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

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

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

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

پایتون برای مبتدیان فصل اول. "در مورد چی هستیم"

فقط در مورد، کمی "بشارت" خسته کننده. چه کسی از آن خسته شده است، می توانید چند پاراگراف را رد کنید.
Python (تلفظ "Python" نه "python") یک زبان برنامه نویسی است که توسط Guido van Rossum به عنوان یک زبان ساده که یادگیری آن برای یک مبتدی آسان است توسعه یافته است.
امروزه پایتون یک زبان پرکاربرد است که در بسیاری از زمینه ها استفاده می شود:
- توسعه نرم افزارهای کاربردی (به عنوان مثال، لینوکس utilities yum، pirut، system-config-*، Gajim IM client و بسیاری دیگر)
- توسعه برنامه های کاربردی وب (قوی ترین سرور Zope Application و CMS Plone که بر اساس آن توسعه یافته است که برای مثال وب سایت سیا بر اساس آن کار می کند و چارچوب های زیادی برای توسعه سریع برنامه های Plones, Django, TurboGears و بسیاری دیگر)
- به عنوان یک زبان برنامه نویسی جاسازی شده در بسیاری از بازی ها و نه تنها (در مجموعه اداری OpenOffice.org، ویرایشگر Blender 3d، Postgre DBMS) استفاده کنید.
- استفاده در محاسبات علمی (با بسته های SciPy و numPy برای محاسبات و PyPlot برای رسم، Python تقریباً با بسته هایی مانند MatLab قابل مقایسه می شود)

و این مطمئناً لیست کاملی از پروژه هایی نیست که از این زبان فوق العاده استفاده می کنند.

1. خود مفسر، می توانید آن را از اینجا (http://python.org/download/) دریافت کنید.
2. محیط توسعه. لازم نیست با آن شروع کنید، و IDLE موجود در توزیع برای یک مبتدی مناسب است، اما برای پروژه های جدی شما به چیز جدی تری نیاز دارید.
برای ویندوز از PyScripter بسیار سبک وزن (http://tinyurl.com/5jc63t) و برای لینوکس از Komodo IDE استفاده می کنم.

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

فقط python.exe را اجرا کنید. اعلان ورودی زیاد طول نمی کشد، به نظر می رسد:

همچنین می‌توانید در ویرایشگر متن مورد علاقه خود، برنامه‌هایی را روی فایل‌هایی با پسوند py بنویسید، که کاراکترهای نشانه‌گذاری خود را به متن اضافه نمی‌کند (هیچ Word این کار را نمی‌کند). همچنین مطلوب است که این ویرایشگر بتواند "برگه های هوشمند" بسازد و فاصله ها را با کاراکتر تب جایگزین نکند.
برای اجرای فایل ها برای اجرا می توانید 2 بار روی آنها کلیک کنید. اگر پنجره کنسول خیلی سریع بسته می شود، خط زیر را در انتهای برنامه وارد کنید:

سپس مترجم منتظر می ماند تا enter در پایان برنامه فشرده شود.

یا فایل های py را در Far به پایتون مرتبط کنید و با فشردن اینتر باز کنید.

در نهایت، می‌توانید از یکی از بسیاری از IDE‌های مفید پایتون استفاده کنید که هم قابلیت‌های اشکال زدایی و هم برجسته‌سازی نحو و بسیاری از «راحتی‌های» دیگر را ارائه می‌کنند.

کمی تئوری

برای شروع، پایتون یک زبان با تایپ قوی پویا است. این یعنی چی؟

زبان هایی با تایپ قوی (پاسکال، جاوا، سی و غیره) وجود دارند که در آنها نوع متغیر از قبل تعیین شده و قابل تغییر نیست و زبان هایی با تایپ پویا (پایتون، روبی، vb) وجود دارد. ) که در آن نوع یک متغیر بسته به مقدار اختصاص داده شده در آن تفسیر می شود.
زبان های تایپ شده پویا را می توان به 2 نوع بیشتر تقسیم کرد. Strict که اجازه تبدیل نوع ضمنی را نمی دهد (Pyton) و non-strict که تبدیل نوع ضمنی را انجام می دهد (مثلاً VB که می توانید به راحتی رشته "123" و عدد 456 را در آن اضافه کنید).
پس از پرداختن به طبقه بندی پایتون، بیایید سعی کنیم کمی با مفسر "بازی" کنیم.

>>> a = b = 1 >>> a, b (1, 1) >>> b = 2 >>> a, b (1, 2) >>> a, b = b, a >>> a , b (2, 1)

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

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

شرط با استفاده از دستور if که با ":" ختم می شود، مشخص می شود. شرایط جایگزینی که در صورت "شکست" اولین آزمون برآورده می شوند توسط عبارت elif ارائه می شوند. در نهایت، else شعبه‌ای را مشخص می‌کند که در صورتی که هیچ یک از شرایط مطابقت نداشته باشد، اجرا می‌شود.
توجه داشته باشید که پس از تایپ if، مفسر با اعلان "..." نشان می دهد که منتظر ادامه ورودی است. برای اینکه به او بگویید کار ما تمام شده است، باید یک رشته خالی وارد کنید.

(به دلایلی، مثال با شاخه ها، با وجود رقص با تگ های پیش و کد، علامت گذاری روی هابره را می شکند. بابت ناراحتی، آن را اینجا انداختم، pastebin.com/f66af97ba، اگر کسی به من بگوید چه مشکلی دارد، می گویم. بسیار سپاسگزار باشید)

چرخه ها

ساده ترین حالت یک حلقه حلقه while است. یک شرط را به عنوان پارامتر می گیرد و تا زمانی که درست باشد اجرا می شود.
در اینجا یک مثال کوچک است.

>>> x = 0 >>> در حالی که x<=10: ... print x ... x += 1 ... 0 1 2 ........... 10

توجه داشته باشید که از آنجایی که هر دو چاپ x و x+=1 با یک تورفتگی نوشته می شوند، بدنه حلقه در نظر گرفته می شوند (در مورد بلوک ها چه گفتم؟ ;-)).

دومین نوع حلقه در پایتون حلقه for است. شبیه حلقه foreach در زبان های دیگر است. نحو آن به طور متعارف به شرح زیر است.

برای متغیر در لیست:
تیم ها

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

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

>>> x = "سلام پایتون!" >>> برای char در x: ... چاپ char ... H e l ........... !

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

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

در اینجا چند نمونه از استفاده از تابع range آورده شده است که نقش پارامترهای آن را توضیح می دهد.

>>> محدوده (10) >>> محدوده (2، 12) >>> محدوده (2، 12، 3) >>> محدوده (12، 2، -2)

و یک مثال کوچک با یک چرخه.

>>> برای x در محدوده (10): ... چاپ x ... 0 1 2 ..... 9

ورودی خروجی

آخرین چیزی که قبل از شروع استفاده کامل از پایتون باید بدانید این است که چگونه I/O را مدیریت می کند.

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

برای ورودی کنسول، از تابع raw_input(prompt) استفاده می‌شود که یک اعلان را نمایش می‌دهد و منتظر ورودی کاربر می‌ماند و آنچه را که کاربر به عنوان مقدار وارد کرده است برمی‌گرداند.

X = int(raw_input ("عددی را وارد کنید:")) چاپ "مربع این عدد " است، x * x

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

این همه برای درس اول است.

مشق شب.

1-برنامه ای برای محاسبه هیپوتنوز مثلث قائم الزاویه بنویسید. طول پاها از کاربر درخواست می شود.
2-برنامه ای برای یافتن ریشه های معادله درجه دوم به صورت کلی بنویسید. ضرایب از کاربر درخواست شده است.
3. برنامه ای بنویسید تا جدول ضرب را با عدد M نشان دهد. جدول از M * a تا M * b کامپایل شده است که در آن M, a, b از کاربر درخواست می شود. خروجی باید در یک ستون باشد، یک مثال در هر خط به شکل زیر (به عنوان مثال):
5 × 4 = 20
5 × 5 = 25
و غیره.

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

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

پایتون چیست؟

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

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

کار در مترجم

راه اندازی مفسر پایتون در هر سیستم عاملی بسیار آسان است. به عنوان مثال، در لینوکس، فقط دستور پایتون را در ترمینال تایپ کنید:

در اعلان مفسری که باز می شود، نسخه پایتون را می بینیم که در حال حاضر در حال استفاده است. امروزه دو نسخه از Python 2 و Python 3 بسیار گسترده شده اند که هر دو محبوب هستند زیرا اولی برنامه ها و کتابخانه های زیادی را توسعه داده است و نسخه دوم دارای ویژگی های بیشتری است. بنابراین توزیع ها شامل هر دو نسخه می شوند. به طور پیش فرض، نسخه دوم راه اندازی می شود. اما اگر به نسخه 3 نیاز دارید، باید اجرا کنید:

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

عملیات رشته

رشته ها در پایتون تغییر ناپذیر هستند، شما نمی توانید یکی از کاراکترهای یک رشته را تغییر دهید. هر گونه تغییر در محتوا نیاز به کپی جدید دارد. مفسر را باز کنید و مثال‌های فهرست شده در زیر را دنبال کنید تا همه چیز نوشته شده را بهتر بفهمید:

1. الحاق رشته ها

str = "خوش آمدید" + "به پایتون"
چاپ (خ)

2. ضرب رشته

str = "زیان" * 2
چاپ (خ)

3. ترکیب با دگرگونی

شما می توانید یک رشته را به یک عدد یا یک بولی متصل کنید. اما برای این شما باید از یک تبدیل استفاده کنید. یک تابع str() برای این وجود دارد:

str = "این یک عدد آزمایشی است" + str(15)
چاپ (خ)

4. یک زیر رشته را جستجو کنید

می توانید با استفاده از روش Find یک کاراکتر یا زیر رشته را پیدا کنید:

str = "به سایت خوش آمدید"
print(str.find("سایت"))

این روش موقعیت اولین رخداد سایت زیررشته را در صورت یافتن چاپ می کند، اگر هیچ یک یافت نشد، -1 برگردانده می شود. تابع از اولین کاراکتر شروع می شود، اما می توانید از کاراکتر n شروع کنید، مانند 26:

str = "به سایت سایت خوش آمدید"
print(str.find("loss",26))

در این حالت تابع -1 برمی گردد زیرا رشته پیدا نشد.

5. گرفتن یک رشته فرعی

ما موقعیت زیررشته مورد نظر خود را به دست آوردیم و اکنون چگونه می توان خود رشته فرعی را بدست آورد و بعد از آن چیست؟ برای این کار از این نحو استفاده کنید [شروع: پایان]، فقط دو عدد یا فقط عدد اول را مشخص کنید:

str = "یک دو سه"
چاپ (str[:2])
چاپ (خ)
چاپ (خ)
چاپ (خ[-1])

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

6. جایگزینی رشته فرعی

می توانید بخشی از یک رشته را با روش جایگزینی جایگزین کنید:

str = "این سایت در مورد لینوکس است"
str2 = str.replace ("لینوکس"، "ویندوز")
چاپ (str2)

اگر موارد زیادی وجود داشته باشد، فقط اولین مورد را می توان جایگزین کرد:

str = "این یک سایت لینوکس است و من در این سایت مشترک هستم"
str2 = str.replace ("وب سایت"، "صفحه"، 1)
چاپ (str2)

7. تمیز کردن خطوط

با تابع نوار می توانید فضاهای اضافی را حذف کنید:

str = "این یک وب سایت لینوکس است"
چاپ (str.strip())

همچنین امکان حذف فضاهای اضافی فقط در سمت راست rstrip یا فقط در سمت چپ - lstrip وجود دارد.

8. تغییر پرونده

توابع ویژه ای برای تغییر حروف کاراکترها وجود دارد:

str="به گمشده خوش آمدید"
چاپ (str.upper())
print(str.lower())

9. تبدیل رشته

چندین توابع برای تبدیل رشته به انواع عددی مختلف وجود دارد که عبارتند از int() , float() ,long() و غیره. تابع int() به عدد صحیح و float() به عدد ممیز شناور تبدیل می شود:

str="10"
str2 = "20"
چاپ (str+str2)
print(int(str)+int(str2))

10. طول خط

می توانید از توابع min(), max(), len() برای محاسبه تعداد کاراکترهای یک رشته استفاده کنید:

str="به گمشده خوش آمدید"
چاپ (دقیقه (خیابان))
چاپ (حداکثر (خ))
چاپ (لن (خ))

اولی حداقل اندازه کاراکتر، دومی حداکثر و سومی طول کل رشته را نشان می دهد.

11. روی یک خط تکرار کنید

شما می توانید با یک حلقه for به هر کاراکتر یک رشته به صورت جداگانه دسترسی داشته باشید:

str="به سایت خوش آمدید"
برای i در محدوده (len(str)):
چاپ (str[i])

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

عملیات با اعداد

اعداد در پایتون به اندازه کافی ساده هستند که بتوان آنها را اعلام کرد یا در متدها استفاده کرد. می توانید اعداد صحیح یا شناور ایجاد کنید:

num1 = 15
num2 = 3.14

1. گرد کردن اعداد

می توانید با تابع گرد یک عدد را گرد کنید، فقط مشخص کنید که چند رقم باقی بماند:

a=15.5652645
چاپ (گرد (a,2))

2. تولید اعداد تصادفی

می توانید اعداد تصادفی را با استفاده از ماژول تصادفی بدست آورید:

واردات تصادفی
print(random.random())

به طور پیش فرض، عدد از محدوده 0.0 تا 1.0 تولید می شود. اما شما می توانید محدوده خود را تنظیم کنید:

واردات تصادفی
اعداد=
چاپ (تصادفی.انتخاب (اعداد))

عملیات با تاریخ و زمان

زبان برنامه نویسی پایتون دارای یک ماژول DateTime است که به شما امکان می دهد عملیات های مختلفی را در تاریخ و زمان انجام دهید:

زمان واردات
cur_date = datetime.datetime.now()
چاپ (تاریخ_تاریخ)
چاپ (cur_date.year)
چاپ (cur_date.day)
چاپ (cur_date.weekday())
چاپ (cur_date.month)
print(cur_date.time())

مثال نشان می دهد که چگونه می توان مقدار مورد نظر را از یک شی استخراج کرد. می توانید تفاوت بین دو شی را بدست آورید:

زمان واردات
time1 = datetime.datetime.now()
time2 = datetime.datetime.now()
timediff = time2 - time1
چاپ (timediff.microseconds)

شما می توانید اشیاء تاریخ را با مقدار دلخواه خود ایجاد کنید:

time1 = datetime.datetime.now()
time2 = datetime.timedelta (روز = 3)
time3=time1+time2
چاپ (time3.date())

1. قالب بندی تاریخ و زمان

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

  • ٪آ- روز هفته، نام اختصاری؛
  • ٪آ- روز هفته، نام کامل؛
  • %w- تعداد روز هفته، از 0 تا 6؛
  • %d- روز ماه؛
  • %b- نام مختصر ماه؛
  • %B- نام کامل ماه؛
  • %m- شماره ماه؛
  • %Y- شماره سال؛
  • %H- ساعت از روز در قالب 24 ساعته؛
  • %l- ساعت از روز در قالب 12 ساعت؛
  • ٪پ- قبل از ظهر یا بعد از ظهر؛
  • %M- دقیقه؛
  • %S- دومین.

زمان واردات
date1 = datetime.datetime.now()
print(date1.strftime("%d. %B %Y %I:%M%p"))

2. تاریخ را از رشته ایجاد کنید

می توانید از تابع strptime() برای ایجاد یک شیء تاریخ از یک رشته استفاده کنید:

زمان واردات
date1=datetime.datetime.strptime("2016-11-21"، "%Y-%m-%d")
date2=datetime.datetime(سال=2015، ماه=11، روز=21)
چاپ (تاریخ 1)؛
چاپ (تاریخ 2)؛

عملیات سیستم فایل

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

1. فایل ها را کپی کنید

برای کپی کردن فایل ها، باید از توابع ماژول subutil استفاده کنید:

واردات shutil
new_path = shutil.copy("file1.txt"، "file2.txt")

new_path = shutil.copy("file1.txt"، "file2.txt"، follow_symlinks=False)

2. انتقال فایل ها

انتقال فایل ها با استفاده از تابع انتقال انجام می شود:

shutil.move ("file1.txt"، "file3.txt")

تابع تغییر نام از ماژول os به شما امکان می دهد نام فایل ها را تغییر دهید:

واردات سیستم عامل
os.rename("file1.txt"، "file3.txt")

3. خواندن و نوشتن فایل های متنی

می توانید از توابع داخلی برای باز کردن فایل ها، خواندن یا نوشتن داده ها در آنها استفاده کنید:

fd = open ("file1.txt")
content = fd.read()
چاپ (محتوا)

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

fd = open ("file1.txt")
محتوا = fd.read(20)
چاپ (محتوا)

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

content = fd.readlines()
چاپ (محتوا)

برای نوشتن داده در یک فایل، ابتدا باید برای نوشتن باز شود. دو حالت کار وجود دارد - رونویسی و الحاق به انتهای فایل. حالت ضبط:

fd = open ("file1.txt"، "w")

و به انتهای فایل اضافه می کنیم:

fd = open("file1.txt"،"a")
content = fd.write ("محتوای جدید")

4. دایرکتوری ایجاد کنید

برای ایجاد دایرکتوری، از تابع mkdir از ماژول os استفاده کنید:

واردات سیستم عامل
os.mkdir("./پوشه جدید")

5. زمان ایجاد را بدست آورید

می توانید از توابع getmtime()، getatime() و getctime() برای دریافت آخرین تغییر، آخرین دسترسی و زمان ایجاد شده استفاده کنید. نتیجه با فرمت یونیکس خروجی خواهد شد، بنابراین باید به فرم قابل خواندن تبدیل شود:

واردات سیستم عامل
زمان واردات
tim=os.path.getctime("./file1.txt")
print(datetime.datetime.fromtimestamp(tim))

6. لیست فایل ها

با تابع listdir() می توانید لیستی از فایل ها را در یک پوشه دریافت کنید:

واردات سیستم عامل
files=os.listdir(".")
چاپ (فایل)

برای حل همین مشکل می توانید از ماژول glob استفاده کنید:

کره وارداتی
files=glob.glob("*")
چاپ (فایل)

7. سریال سازی اشیاء پایتون

ترشی وارداتی
fd = open ("myfile.pk"، "wb")
pickle.dump(mydata,fd)

سپس برای بازیابی شی از:

ترشی وارداتی
fd = open ("myfile.pk"، "rb")
mydata = pickle.load(fd)

8. فشرده سازی فایل

کتابخانه استاندارد پایتون به شما امکان می دهد با فرمت های مختلف آرشیو مانند zip، tar، gzip، bzip2 کار کنید. برای مشاهده محتویات یک فایل از:

وارد کردن فایل فشرده
my_zip = zipfile.ZipFile("my_file.zip"، mode="r")
چاپ (لیست نام فایل())

و برای ایجاد یک آرشیو فشرده:

وارد کردن فایل فشرده
file=zipfile.ZipFile ("files.zip"، "w")
file.write ("file1.txt")
file.close()

همچنین می توانید بایگانی را از حالت فشرده خارج کنید:

وارد کردن فایل فشرده
file=zipfile.ZipFile("files.zip"،"r")
file.extractall()
file.close()

شما می توانید فایل هایی را به آرشیو مانند این اضافه کنید:

وارد کردن فایل فشرده
file=zipfile.ZipFile("files.zip"،"a")
file.write ("file2.txt")
file.close()

9. تجزیه فایل های CSV و Excel

با استفاده از ماژول pandas می توانید محتویات جداول CSV و Excel را مشاهده و تجزیه کنید. ابتدا باید ماژول را با pip نصب کنید:

sudo pip نصب پاندا

سپس برای تجزیه، تایپ کنید:

واردات پاندا
data=pandas.read_csv("file.csv)

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

data.to_csv("file.csv)

به همین ترتیب، می توانید فایل اکسل را تجزیه کنید:

data = pd.read_excel("file.xls", sheetname="Sheet1")

اگر نیاز به باز کردن همه جداول دارید، از موارد زیر استفاده کنید:

data = pd.ExcelFile ("file.xls")

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

data.to_excel("file.xls", sheet="Sheet1")

شبکه سازی در پایتون

برنامه نویسی پایتون 3 اغلب شامل شبکه است. کتابخانه استاندارد پایتون دارای قابلیت های سوکت برای دسترسی به شبکه سطح پایین است. این برای پشتیبانی از بسیاری از پروتکل های شبکه ضروری است.

سوکت واردات
میزبان = "192.168.1.5"
پورت=4040
my_sock = socket.create_connection((میزبان، پورت))

این کد به پورت 4040 دستگاه 192.168.1.5 متصل می شود. هنگامی که سوکت باز است، می توانید داده ها را ارسال و دریافت کنید:

my_sock.sendall (b"سلام دنیا")

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

msg = b"پیام طولانی تر اینجا می رود"
mesglen = len(msg)
کل = 0
در حالی که کل< msglen:
ارسال شده = my_sock.send(msg)
کل = کل + ارسال شده

برای دریافت داده ها نیز باید یک سوکت باز کنید، فقط از روش my_sock_recv استفاده می شود:

data_in = my_sock.recv (2000)

در اینجا ما نشان می دهیم که چه مقدار داده باید دریافت شود - 20000، تا زمانی که 20000 بایت داده دریافت نشده باشد، داده ها به متغیر منتقل نمی شوند. اگر پیام بزرگتر است، برای دریافت آن، باید یک حلقه ایجاد کنید:

بافر = آرایه بایت (b" " * 2000)
my_sock.recv_into (بافر)

اگر بافر خالی باشد، پیام دریافتی در آنجا نوشته می شود.

کار پستی

کتابخانه استاندارد پایتون به شما امکان دریافت و ارسال پیام های ایمیل را می دهد.

1. دریافت نامه از سرور POP3

برای دریافت پیام ها از سرور POP استفاده می کنیم:

وارد کردن getpass، poplib
pop_serv = poplib.POP3 ("192.168.1.5")
pop_serv.user("myuser")
pop_serv.pass_(getpass.getpass())

ماژول getpass به شما این امکان را می دهد که رمز عبور کاربر را به روشی امن بازیابی کنید تا روی صفحه نمایش داده نشود. اگر سرور POP از اتصال ایمن استفاده می کند، باید از کلاس POP3_SSL استفاده کنید. اگر اتصال موفقیت آمیز بود، می توانید با سرور تعامل داشته باشید:

msg_list = pop_serv.list() # برای فهرست کردن پیام ها
msg_count = pop_serv.msg_count()

برای تکمیل کار خود از:

2. دریافت نامه از سرور IMAP

ماژول imaplib برای اتصال و کار با سرور IMAP استفاده می شود:

import imaplib، getpass
my_imap = imaplib.IMAP4 ("imap.server.com")
my_imap.login("myuser"، getpass.getpass())

اگر سرور IMAP شما از اتصال ایمن استفاده می کند، باید از کلاس IMAP4_SSL استفاده کنید. برای دریافت لیست پیام ها از:

data = my_imap.search (هیچکدام، "ALL")

سپس می توانید لیست انتخاب شده را حلقه بزنید و هر پیام را بخوانید:

msg = my_imap.fetch(email_id, "(RFC822)")

اما فراموش نکنید که اتصال را ببندید:

my_imap.close()
my_imap.logout()

3. ارسال نامه

برای ارسال نامه، از پروتکل SMTP و ماژول smtplib استفاده می شود:

واردات smtplib، getpass
my_smtp = smtplib.SMTP(smtp.server.com")
my_smtp.login("myuser"، getpass.getpass())

مانند قبل، از SMTP_SSL برای اتصال ایمن استفاده کنید. هنگامی که اتصال برقرار شد، می توانید یک پیام ارسال کنید:

from_addr=" [ایمیل محافظت شده]"
to_addr=" [ایمیل محافظت شده]"
msg = "از: [ایمیل محافظت شده]\r\nبه: [ایمیل محافظت شده]\r\n\r\nسلام، این یک پیام آزمایشی است"
my_smtp.sendmail(from_addr، to_addr، msg)

کار با صفحات وب

برنامه نویسی پایتون اغلب برای نوشتن اسکریپت های مختلف برای کار با وب استفاده می شود.

1. خزیدن وب

ماژول urllib به شما این امکان را می دهد که صفحات وب را به روش های مختلف پرس و جو کنید. برای ارسال درخواست عادی از کلاس درخواست استفاده می شود. به عنوان مثال، اجازه دهید یک درخواست صفحه معمولی را اجرا کنیم:

واردات urllib.request
my_web = urllib.request.urlopen("https://www.google.com")
print(my_web.read())

2. استفاده از روش POST

اگر نیاز به ارسال فرم وب دارید، باید از POST به جای درخواست GET استفاده کنید:

واردات urllib.request
mydata = b"داده های شما به اینجا می رود"
my_req = urllib.request.Request("http://localhost", data=mydata,method="POST")
my_form = urllib.request.urlopen(my_req)
چاپ (my_form.status)

3. یک وب سرور ایجاد کنید

با کلاس Socket، می توانید اتصالات ورودی را بپذیرید، به این معنی که می توانید یک وب سرور با حداقل ویژگی ها ایجاد کنید:

سوکت واردات
میزبان = ""
پورت=4242
my_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_server.bind((میزبان، پورت))
my_server.listen(1)

زمانی که سرور ایجاد می شود. می توانید شروع به پذیرش اتصالات کنید:

addr = my_server.accept()
print("اتصال از میزبان"، addr)
داده = conn.recv(1024)

و فراموش نکنید که اتصال را ببندید:

چند رشته ای

مانند بسیاری از زبان های مدرن، پایتون به شما اجازه می دهد تا چندین رشته موازی را اجرا کنید، که در صورت نیاز به انجام محاسبات پیچیده می تواند مفید باشد. کتابخانه استاندارد دارای یک ماژول threading است که شامل کلاس Therad است:

واردات رشته
def print_message():
print ("پیام از یک موضوع دیگر چاپ شد")
my_thread = threading. Thread(target=print_message)
my_thread.start()

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

واردات رشته
تعداد = 1
my_lock = threading.Lock()
def my_func():
شماره جهانی، my_lock
my_lock.acquire()
مجموع = عدد + 1
چاپ (جمع)
my_lock.release()
my_thread = threading. Thread(target=my_func)
my_thread.start()

نتیجه گیری

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

در پایان مقاله، یک سخنرانی عالی در مورد پایتون:

معرفی


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

در این راستا، توجه ویژه ای به زبان برنامه نویسی نسبتا جدید پایتون (python) است که توسط نویسنده آن Guido van Rossum در اوایل دهه 90 ایجاد شد.

اطلاعات کلی در مورد پایتون مزایا و معایب


پایتون یک زبان برنامه نویسی تفسیر شده و بومی شی گرا است. این بسیار ساده است و حاوی تعداد کمی از کلمات کلیدی است، در عین حال بسیار انعطاف پذیر و رسا است. این زبان سطح بالاتری نسبت به پاسکال، C++ و البته C است که عمدتاً به دلیل ساختارهای داده سطح بالا (لیست ها، دیکشنری ها، تاپل ها) به دست می آید.

مزایای زبان
مزیت بدون شک این است که مفسر پایتون تقریباً بر روی تمام پلتفرم ها و سیستم عامل ها پیاده سازی می شود. اولین چنین زبانی C بود، اما انواع داده‌های آن می‌توانستند مقادیر متفاوتی از حافظه را در ماشین‌های مختلف اشغال کنند، و این به عنوان مانعی در نوشتن یک برنامه واقعا قابل حمل عمل کرد. پایتون این عیب را ندارد.

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

مزیت بعدی وجود تعداد زیادی ماژول پلاگین است که ویژگی های اضافی مختلفی را ارائه می دهد. چنین ماژول هایی به زبان C و پایتون نوشته می شوند و می توانند توسط همه برنامه نویسان ماهر توسعه داده شوند. ماژول های زیر نمونه هایی هستند:

  • پایتون عددی - قابلیت های ریاضی پیشرفته مانند دستکاری با بردارهای اعداد صحیح و ماتریس ها.
  • Tkinter - ساخت برنامه های کاربردی با استفاده از یک رابط کاربری گرافیکی (GUI) بر اساس رابط کاربری Tk به طور گسترده در X-Windows.
  • OpenGL - استفاده از کتابخانه گسترده مدل سازی گرافیکی اشیاء دو بعدی و سه بعدی Open Graphics Library از Silicon Graphics Inc. این استاندارد، از جمله، در سیستم عامل های رایج مانند Microsoft Windows 95 OSR 2، 98 و Windows NT 4.0 پشتیبانی می شود.
ایرادات زبانی
تنها ایرادی که نویسنده به آن اشاره کرده سرعت اجرای نسبتا پایین برنامه پایتون است که به دلیل قابلیت تفسیر آن است. با این حال، به نظر ما، این بیشتر از مزایای زبان هنگام نوشتن برنامه هایی است که برای سرعت اجرا خیلی مهم نیستند.

نمای کلی ویژگی


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

2. در زبان هایی مانند Pascal، C، C++ سازماندهی لیست ها مشکلاتی را به همراه داشت. برای پیاده سازی آنها باید اصول کار با اشاره گر و حافظه پویا را به خوبی مطالعه کرد. و حتی با داشتن مدرک خوب، یک برنامه نویس، هر بار که مکانیسم های ایجاد، کار و از بین بردن لیست ها را دوباره پیاده سازی می کند، به راحتی می تواند اشتباهات ظریفی مرتکب شود. با توجه به این موضوع، ابزارهایی برای کار با لیست ها ایجاد شد. به عنوان مثال، دلفی پاسکال یک کلاس TList دارد که لیست ها را پیاده سازی می کند. STL (کتابخانه الگوی استاندارد) برای C++ توسعه یافته است که شامل ساختارهایی مانند بردارها، لیست ها، مجموعه ها، فرهنگ لغت ها، پشته ها و صف ها می باشد. با این حال، چنین امکاناتی در همه زبان‌ها و پیاده‌سازی‌های آنها در دسترس نیست.

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

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

  2. (1, 2, 5, 8)
    (3.14، "رشته"، -4)
    همه عناصر از ابتدا ایندکس می شوند. برای بدست آوردن عنصر i، باید نام تاپل و به دنبال آن شاخص i را در پرانتز مشخص کنید. مثال:
    t = (0، 1، 2، 3، 4)
    چاپ t، t[-1]، t[-3]
    نتیجه: 0 4 2
    بنابراین، اگر عناصر آن همیشه همگن باشند، می‌توان یک تاپل را بردار ثابت نامید.
  3. فهرست کنید . یک مثال خوب و خاص از یک لیست، رشته توربو پاسکال است. عناصر یک رشته تک کاراکتر هستند، طول آن ثابت نیست، می توان عناصر را حذف کرد یا برعکس، آنها را در هر جایی از رشته درج کرد. عناصر لیست می توانند اشیاء دلخواه باشند، نه لزوما از یک نوع. برای ایجاد یک لیست، کافی است عناصر آن را با کاما از هم جدا کنید و همه اینها را در پرانتز قرار دهید:


  4. ['string', (0,1,8), ]
    بر خلاف تاپل، لیست ها را می توان به دلخواه تغییر داد. دسترسی به عناصر به همان روشی که در تاپل ها است انجام می شود. مثال:
    l = ]
    چاپ l، l، l[-2]، l[-1]
    نتیجه: 1 ثانیه (2.8) 0
  5. فرهنگ لغت . یادآور نوع رکورد (رکورد) در پاسکال یا ساختارها (ساختار) در C. با این حال، به جای طرح "فیلد رکورد" - "مقدار"، از "کلید" - "مقدار" در اینجا استفاده شده است. دیکشنری مجموعه ای از جفت های "کلید" - "مقدار" است. در اینجا "کلید" یک ثابت از هر نوع است (اما رشته ها عمدتا استفاده می شوند)، برای نامگذاری (شاخص) مقداری مربوط به آن (که می توان آن را تغییر داد) استفاده می شود.

  6. یک فرهنگ لغت با فهرست کردن عناصر آن (جفت های کلید-مقدار جدا شده با دو نقطه)، جداسازی شده با کاما، و محصور کردن همه آن در پرانتزهای مجعد ایجاد می شود. برای دسترسی به یک مقدار مشخص، لازم است که کلید مربوطه را بعد از نام دیکشنری در کروشه مربع بنویسید. مثال:
    d = ("الف": 1، "ب": 3، 5: 3.14، "نام": "جان")
    d["b"] = د
    چاپ d["a"]، d["b"]، d، d["نام"]
    نتیجه: 1 3.14 3.14 جان
    برای افزودن یک جفت "کلید" - "مقدار" جدید، کافی است مقدار مربوطه را با کلید جدید به عنصر اختصاص دهید:
    d["new"] = "مقدار جدید"
    چاپ د
    نتیجه: ("a":1، "b":3، 5:3.14، "نام": "جان"، "جدید": "مقدار جدید")

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

4. یکی از ویژگی های پایتون این است که چگونه یک متغیر به متغیر دیگر اختصاص داده می شود، i.e. هنگامی که در هر دو طرف اپراتور " = "متغیر هستند.

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

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

انتساب در پایتون به این صورت عمل می کند: if قابل واگذاریشی نمونه‌ای از انواعی مانند اعداد یا رشته‌ها است، سپس معناشناسی کپی می‌شود، اما اگر سمت راست نمونه‌ای از یک کلاس، فهرست، فرهنگ لغت یا تاپل باشد، معناشناسی اشاره‌گر اعمال می‌شود. مثال:
a = 2; b = a; b = 3
print " copy semantics: a=", a, "b=", b
a = b = a; b = 3
print " pointer semantics: a=", a, "b=", b
نتیجه:
معناشناسی کپی: a= 2 b= 3
معناشناسی اشاره گر: a=b=

برای کسانی از شما که می خواهند بدانند موضوع چیست، من یک برداشت متفاوت از تکلیف در پایتون به شما ارائه خواهم کرد. اگر در زبان هایی مانند Basic، Pascal، C / C ++ با متغیرهای "ظرفیت" و ثابت های ذخیره شده در آنها (عددی، کاراکتر، رشته - مهم نیست) سروکار داشته باشیم، و عملیات انتساب به معنای "ورود" به ثابت در متغیر اختصاص داده شده، سپس در پایتون باید با متغیر-"names" و اشیاء نامگذاری شده توسط آنها کار کنیم. (به قیاسی با Prolog توجه کنید؟) یک شی در پایتون چیست؟ این هر چیزی است که می توان نامی برای آن قائل شد: اعداد، رشته ها، لیست ها، دیکشنری ها، نمونه های کلاس (که در Object Pascal به آنها اشیاء گفته می شود)، خود کلاس ها (!)، توابع، ماژول ها و غیره. بنابراین، هنگام اختصاص دادن یک شی به یک متغیر، متغیر به نام آن تبدیل می شود و شی می تواند هر تعداد از این نام ها را داشته باشد و همه آنها به یکدیگر وابسته نیستند.

اکنون اشیاء به دو دسته قابل تغییر (تغییرپذیر) و غیر قابل تغییر تقسیم می شوند. قابل تغییر - آنهایی که می توانند "محتوای داخلی" خود را تغییر دهند، به عنوان مثال، لیست ها، لغت نامه ها، نمونه های کلاس. و غیرقابل تغییر - مانند اعداد، تاپل ها، رشته ها (بله، رشته ها نیز؛ شما می توانید به یک متغیر یک رشته جدید که از رشته قدیمی به دست آمده است اختصاص دهید، اما نمی توانید خود رشته قدیمی را تغییر دهید).

بنابراین، اگر بنویسیم a = b = a; b = 3، پایتون این را چنین تفسیر می کند:

  • به شی یک "لیست" بدهید " نام آ ;
  • به این شی نام دیگری بدهید - ب ;
  • عنصر تهی شی را تغییر دهید.

  • این معنای «شبه» اشاره گرها است.

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

    T = (1, 2, , "string") t = 6 # مجاز نیست del t # همچنین یک خطا t = 0 # معتبر است، اکنون جزء سوم یک لیست است t = "S" # خطا: رشته ها قابل تغییر نیستند

    5. کاملاً اصلی روشی است که در آن عملگرها در پایتون گروه بندی می شوند. پاسکال برای این کار از پرانتز استفاده می کند. شروع-پایان، در C، C++، جاوا - پرانتزهای فرفری ()، در Basic، پایان های بسته سازه های زبان استفاده می شود (NEXT، WEND، END IF، END SUB).
    در زبان پایتون، همه چیز بسیار ساده تر است: انتخاب یک بلوک از عبارات با جابجایی گروه انتخاب شده توسط یک یا چند فاصله یا کاراکتر تب به سمت راست نسبت به عنوان ساختاری که این بلوک به آن اشاره می کند، انجام می شود. برای مثال:

    اگر x > 0: چاپ ' x > 0 ' x = x - 8 دیگری: چاپ ' x<= 0 ’ x = 0 بنابراین، یک سبک خوب از برنامه نویسی، که توسط معلمان پاسکال، C ++، جاوا و غیره فراخوانده می شود، از همان ابتدا در اینجا به دست می آید، زیرا به سادگی کار متفاوتی ندارد.

    شرح زبان. ساختارهای کنترلی



    رسیدگی به استثناها


    تلاش كردن:
    <оператор1>
    [بجز[<исключение> [, <переменная>] ]:
    <оператор2>]
    [دیگر <оператор3>]
    انجام<оператор1>اگر استثنایی رخ دهد<исключение>، سپس<оператор2>. اگر<исключение>دارای یک مقدار است، اختصاص داده شده است<переменной>.
    در صورت تکمیل موفقیت آمیز<оператора1>، انجام<оператор3>.
    تلاش كردن:
    <оператор1>
    سرانجام:
    <оператор2>
    انجام<оператор1>. اگر هیچ استثنایی وجود نداشت، پس<оператор2>. در غیر این صورت،<оператор2>و یک استثنا بلافاصله پرتاب می شود.
    بالا بردن <исключение> [<значение>] استثنا می اندازد<исключение>با پارامتر<значение>.

    استثناها فقط رشته ها هستند. مثال:

    My_ex = 'بدست ایندکس' امتحان کنید: اگر بد است: my_ex را افزایش دهید، بد به جز my_ex، مقدار: چاپ 'خطا'، مقدار

    اعلام عملکرد



    اعلامیه کلاس



    کلاس cMyClass: def __init__(self, val): self.value = val # def printVal (self): print ' value = ', self.value # # end cMyClass obj = cMyClass (3.14) obj.printVal () obj.value = "(!LANG: رشته اکنون" obj.printVal () !} نتیجه:
    مقدار = 3.14
    ارزش = رشته در حال حاضر

    عملگر برای انواع دنباله ها (لیست ها، تاپل ها، رشته ها)


    اپراتورها برای لیست ها (فهرست)


    s[i] = x عنصر i s با x جایگزین می شود.
    s = t بخشی از عناصر s از i تا j-1 با t جایگزین می شود (t همچنین می تواند یک لیست باشد).
    دل اس قسمت s را حذف می کند (همانند s = ).
    s.append(x) عنصر x را به انتهای s اضافه می کند.
    s.count(x) تعداد عناصر s برابر با x را برمی گرداند.
    s.index(x) کوچکترین i را به گونه ای برمی گرداند که s[i]==x.
    s.insert(i,j) بخشی از s که از عنصر i-ام شروع می شود به سمت راست منتقل می شود و s[i] به x اختصاص می یابد.
    s.remove(x) همانند del s[ s.index(x) ] - اولین عنصر s برابر با x را حذف می کند.
    s.reverse() رشته را به ترتیب معکوس می نویسد
    مرتب سازی() لیست را به ترتیب صعودی مرتب می کند.

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


    اشیاء فایل


    ایجاد شده توسط عملکرد داخلی باز کن()(توضیحات زیر را ببینید). برای مثال: f = open('mydan.dat','r').
    مواد و روش ها:

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


    = وظیفه.
    چاپ [ < c1 > [, < c2 >]* [, ] ] مقادیر خروجی< c1 >, < c2 >به خروجی استاندارد بین آرگومان ها فاصله می گذارد. اگر در انتهای لیست آرگومان ها کاما نباشد، به خط جدیدی می رود.
    شکم (x) مقدار مطلق x را برمی گرداند.
    درخواست دادن( f , <аргументы>) تابع (یا روش) f را با< аргументами >.
    chr(i) یک رشته کاراکتری با کد اسکی i برمی گرداند.
    cmp (x, y) اگر به ترتیب x باشد یک مقدار منفی، صفر یا مثبت برمی گرداند<, ==, или >از y
    divmod(a,b) یک تاپل (a/b، a%b) را برمی‌گرداند، که در آن a/b یک div b است (قسمت صحیح نتیجه تقسیم)، a%b یک mod b است (باقیمانده تقسیم).
    ارزش(ها)
    شی داده شده در s را به عنوان یک رشته برمی گرداند. S می تواند شامل هر ساختار زبانی باشد. S همچنین می تواند یک شی کد باشد، برای مثال: x = 1 ; incr_x = eval("x+1").
    شناور (x) مقدار واقعی برابر با عدد x را برمی گرداند.
    هگز (x) رشته ای حاوی نمایش هگزادسیمال عدد x را برمی گرداند.
    ورودی(<строка>) نمایش می دهد<строку>، یک مقدار را از ورودی استاندارد می خواند و برمی گرداند.
    int(x) مقدار صحیح x را برمی گرداند.
    لنز(ها) طول (تعداد عناصر) شی را برمی گرداند.
    طولانی (x) مقداری از نوع long integer x را برمی گرداند.
    حداکثر (ها), دقیقه بزرگ‌ترین و کوچک‌ترین عنصر یک دنباله s را برمی‌گرداند (یعنی s یک رشته، لیست یا تاپل است).
    اکتبر (x) رشته ای حاوی نمایش عدد x را برمی گرداند.
    باز کن(<имя файла>, <режим>='r' ) یک شی فایل باز شده برای خواندن را برمی گرداند.<режим>= 'w' - برای نوشتن باز است.
    ord(c) کد کاراکتر اسکی (رشته ای به طول 1) را برمی گرداند.
    پوو (x، y) x را به توان y برمی گرداند.
    دامنه(<начало>, <конец>, <шаг>) لیستی از اعداد صحیح بزرگتر یا مساوی را برمی گرداند<начало>و کوچکتر از<конец>با یک داده تولید شده است<шагом>.
    ورودی خام( [ <текст> ] ) نمایش می دهد<текст>به خروجی استاندارد می رسد و یک رشته را از ورودی استاندارد می خواند.
    دور (x، n=0) یک x واقعی گرد شده به nامین رقم اعشار را برمی گرداند.
    خ (<объект>) یک نمایش رشته را برمی گرداند<объекта>.
    نوع(<объект>) نوع شی را برمی گرداند.
    برای مثال: if type(x) == type(''): print 'این یک رشته است'
    xrange (<начало>, <конец>, <шаг>) شبیه محدوده است، اما فقط یک لیست را بدون ایجاد آن شبیه سازی می کند. در یک حلقه for استفاده می شود.

    توابع ویژه برای کار با لیست ها


    فیلتر(<функция>, <список>) لیستی از آن عناصر را برمی گرداند<спиcка>، برای کدام<функция>مقدار "درست" را می گیرد.
    نقشه (<функция>, <список>) اعمال میشود<функцию>به هر عنصر<списка>و لیستی از نتایج را برمی گرداند.
    كاهش دادن( f , <список>,
    [, <начальное значение> ] )
    مقدار بدست آمده با "کاهش" را برمی گرداند.<списка>تابع f. این بدان معناست که مقداری متغیر داخلی p وجود دارد که مقداردهی اولیه شده است<начальным значением>، سپس برای هر عنصر<списка>تابع f با دو پارامتر p و عنصر فراخوانی می شود<списка>. نتیجه بازگردانده شده توسط f به p اختصاص داده می شود. بعد از تکرار همه چیز<списка>کاهش بازده p.
    با استفاده از این تابع، می توانید برای مثال، مجموع عناصر یک لیست را محاسبه کنید: def func (قرمز، el): برگردان red+el sum = کاهش (func، 0) # now sum == 15
    لامبدا [<список параметров>] : <выражение> یک تابع "ناشناس" که نام خود را ندارد و در محل فراخوانی آن نوشته می شود. پارامترهای مشخص شده در را می پذیرد<списке параметров>، و یک مقدار را برمی گرداند<выражения>. برای فیلتر، کاهش، نقشه استفاده می شود. برای مثال: >>>فیلتر چاپ (لامبدا x: x>3، ) >>>نقشه چاپ (لامبدا x: x*2، ) >>>p=reduce (lambda r, x: r*x, , 1) >>> چاپ ص 24

    وارد کردن ماژول ها



    ماژول ریاضی استاندارد


    متغیرها: پی, ه.
    کارکرد(مشابه توابع زبان C):

    acos (x) پول نقد (x) ldexp(x,y) sqrt(x)
    asin (x) exp(x) ورود به سیستم (x) قهوهای مایل به زرد (x)
    آتان (x) fabs (x) sinh (x) frexp(x)
    atan2 (x,y) طبقه (x) پوو (x,y) modf(x)
    سقف (x) fmod(x,y) گناه (x)
    cos(x) log10 (x) tanh (x)

    ماژول رشته


    کارکرد:

    نتیجه


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

    ادبیات


    1. Budd T. برنامه نویسی شی گرا. - سن پترزبورگ: پیتر، 1997.
    2. گیدو ون روسوم. آموزش پایتون. (www.python.org)
    3. کریس هافمن. یک مرجع سریع پایتون (www.python.org)
    4. گیدو ون روسوم. مرجع کتابخانه پایتون (www.python.org)
    5. گیدو ون روسوم. راهنمای مرجع پایتون (www.python.org)
    6. گیدو ون روسوم. کارگاه برنامه نویسی در پایتون. (http://sultan.da.ru)

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

    بخش ها:

    برای مبتدی ها

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

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

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

    یکی دیگر از کتاب های پایتون تحسین شده با 52 تمرین تنظیم شده برای یادگیری زبان پس از جدا کردن آنها، متوجه خواهید شد که زبان چگونه کار می کند، چگونه برنامه ها را به درستی بنویسید و چگونه اشتباهات خود را اصلاح کنید. موضوعات زیر پوشش داده شده است:

    • تنظیم محیط؛
    • سازمان کد؛
    • ریاضیات پایه؛
    • متغیرها؛
    • خطوط و متن؛
    • تعامل با کاربران؛
    • کار با فایل ها؛
    • چرخه ها و منطق؛
    • ساختارهای داده؛
    • توسعه نرم افزار؛
    • وراثت و ترکیب؛
    • ماژول ها، کلاس ها و اشیاء؛
    • بسته ها؛
    • اشکال زدایی؛
    • تست اتوماسیون؛
    • توسعه بازی؛
    • توسعه وب.

    این کتاب برای مبتدیان برای یادگیری برنامه نویسی در نظر گرفته شده است. این از یک رویکرد بسیار استاندارد برای یادگیری استفاده می کند، اما یک زبان غیر استاندارد 🙂 شایان ذکر است که این بیشتر یک کتاب در مورد اصول برنامه نویسی است تا در مورد Python.

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

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

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

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

    • انواع شی داخلی؛
    • عبارات و نحو برای ایجاد و پردازش اشیاء.
    • توابع و ماژول ها؛
    • OOP (ما یک جداگانه داریم)؛
    • توابع داخلی، استثناها و ویژگی ها؛
    • روش های اضافه بار اپراتور؛
    • ماژول ها و برنامه های افزودنی محبوب؛
    • گزینه های خط فرمان و ابزارهای توسعه؛
    • نکات؛
    • API پایگاه داده Python SQL.

    کتابی برای یادگیری پایتون با هزاران مثال کاربردی.

    نمونه های عملی را می توان در بخش ما یافت. به عنوان مثال، پیاده سازی خودمان از تابع zip را بخوانید.

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

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

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

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

    برای پیشرفته

    اگر می خواهید به پایتون 3 مهاجرت کنید یا کدهای قدیمی پایتون 2 را به درستی به روز کنید، این کتاب برای شما مناسب است. و همچنین برای شما - در انتقال پروژه از پایتون 2 به پایتون 3 بدون دردسر.

    در این کتاب مثال های کاربردی زیادی در پایتون 3.3 خواهید دید که هر کدام به تفصیل مورد تجزیه و تحلیل قرار گرفته اند. موضوعات زیر پوشش داده شده است:

      • ساختار داده ها و الگوریتم ها؛
      • خطوط و متن؛
      • اعداد، تاریخ و زمان؛
      • تکرار کننده ها و مولدها؛
      • فایل ها و عملیات خواندن/نوشتن؛
      • کدگذاری و پردازش داده ها؛
      • کارکرد؛
      • طبقات و اشیاء؛
      • فرابرنامه ریزی؛
      • ماژول ها و بسته ها؛
      • برنامه نویسی وب؛
      • رقابت پذیری؛
      • مدیریت سیستم؛
      • تست و رفع اشکال؛
      • پسوندهای C.

    با خواندن این کتاب، همزمان با یادگیری مزایای عملی توسعه آزمایش محور، یک برنامه کاربردی وب توسعه خواهید داد. شما موضوعاتی مانند یکپارچه سازی پایگاه داده، ابزارهای اتوماسیون JS، NoSQL، سوکت های وب و برنامه نویسی ناهمزمان را پوشش خواهید داد.

    این کتاب Python 3 را به طور مفصل پوشش می دهد: انواع داده ها، عملگرها، شرایط، حلقه ها، عبارات منظم، توابع، ابزارهای برنامه نویسی شی گرا، کار با فایل ها و دایرکتوری ها، ماژول های کتابخانه استاندارد که معمولاً استفاده می شوند. علاوه بر این، این کتاب همچنین بر پایگاه داده SQLite، رابط دسترسی به پایگاه داده و نحوه دریافت داده از اینترنت تمرکز دارد.

    بخش دوم کتاب کاملاً به کتابخانه PyQt 5 اختصاص دارد که به شما امکان می دهد برنامه هایی با رابط گرافیکی در پایتون ایجاد کنید. در اینجا ما ابزارهایی را برای پردازش سیگنال ها و رویدادها، مدیریت ویژگی های پنجره، توسعه برنامه های کاربردی چند رشته ای، توصیف اجزای اصلی (دکمه ها، فیلدهای متنی، لیست ها، جداول، منوها، نوار ابزار و غیره)، گزینه هایی برای قرار دادن آنها در داخل پنجره، در نظر می گیریم. ابزارهایی برای کار با داده های پایگاه داده، چند رسانه ای، چاپ اسناد و صادرات آنها در فرمت Adobe PDF.

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

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

    نویسندگان Adrian Holovaty و Jacob Kaplan-Moss نگاهی دقیق به اجزای چارچوب دارند. این کتاب حاوی مطالب فراوانی در مورد توسعه منابع وب با جنگو است، از اصول اولیه تا موضوعات تخصصی مانند تولید PDF و RSS، امنیت، حافظه پنهان و بین المللی سازی. توصیه می شود قبل از مطالعه کتاب به مفاهیم اولیه توسعه وب تسلط داشته باشید.

    توسعه بازی

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

    بازی های رایانه ای خود را با پایتون اختراع کنید به شما می آموزد که چگونه در پایتون با استفاده از توسعه بازی به عنوان مثال برنامه نویسی کنید. در بازی های بعدی ساخت بازی های دو بعدی با استفاده از کتابخانه Pygame مد نظر است. یاد خواهید گرفت:

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

    تجزیه و تحلیل داده ها و یادگیری ماشین

    مهارت های خود را با کار با ساختارهای داده و الگوریتم ها به روشی جدید - علمی ارتقا دهید. نمونه هایی از سیستم های پیچیده را با توضیحات واضح کاوش کنید. کتاب ارائه می دهد:

    • مفاهیمی مانند آرایه های NumPy، روش های SciPy، پردازش سیگنال، تبدیل فوریه سریع و جداول هش را بیاموزید.
    • با مدل های انتزاعی سیستم های فیزیکی پیچیده، فراکتال ها و ماشین های تورینگ آشنا شوید.
    • کشف قوانین و نظریه های علمی؛
    • نمونه هایی از مسائل پیچیده را تجزیه و تحلیل کنید.

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

    هر فصل از کتاب به یک کتابخانه خاص برای کار با داده های بزرگ اختصاص داده شده است. فصل اول به IPython و Jupyter، دوم به NumPy و سوم به Panda ها می پردازد. فصل 4 درباره Matplotlib است، فصل 5 درباره Scikit-Learn است.

    "پایتون برای تجزیه و تحلیل داده ها" در مورد انواع روش های پردازش داده ها می گوید. این کتاب یک مقدمه عالی برای محاسبات علمی است. در اینجا چیزی است که با آن آشنا خواهید شد:

    • پوسته IPython تعاملی؛
    • کتابخانه محاسبات عددی NumPy:
    • کتابخانه تجزیه و تحلیل داده پانداها;
    • کتابخانه رسم matplotlib.

    همچنین یاد خواهید گرفت که چگونه داده ها را در طول زمان اندازه گیری کنید و مسائل تحلیلی را در بسیاری از زمینه های علم حل کنید.

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

    • مدیریت داده ها؛
    • حل مسائل علم داده؛
    • ایجاد تجسم با کیفیت بالا؛
    • اعمال رگرسیون خطی برای ارزیابی روابط بین متغیرها.
    • ایجاد سیستم های توصیه کننده؛
    • مدیریت کلان داده ها

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

    دیگر

    اگر تا به حال ساعت ها را صرف تغییر نام فایل ها یا به روز رسانی صدها سلول صفحه گسترده کرده اید، می دانید که چقدر می تواند خسته کننده باشد. آیا می خواهید یاد بگیرید که چگونه چنین فرآیندهایی را خودکار کنید؟ کتاب "Automate the Boring Stuff with Python" نحوه ایجاد برنامه هایی را توضیح می دهد که وظایف مختلف روتین را در چند دقیقه حل می کند. پس از خواندن، یاد خواهید گرفت که چگونه فرآیندهای زیر را خودکار کنید:

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

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

    این کتاب اصول برنامه نویسی سیستم Raspberry Pi را پوشش می دهد. نویسنده قبلاً اسکریپت های زیادی را برای شما گردآوری کرده است و همچنین راهنمای قابل فهم و دقیقی برای ایجاد اسکریپت خود ارائه کرده است. علاوه بر تمرینات معمول، از شما برای اجرای سه پروژه دعوت شده است: بازی جلاد، ساعت LED و ربات کنترل شده با برنامه.

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

    کتاب های مفید پایتون را در نظرات به اشتراک بگذارید!

    برترین مقالات مرتبط