آموزش برنامه نویسی پایتون


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

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

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


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

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

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


3 کاربرد اصلی پایتون

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


توسعه وب

چهارچوب های وب که براساس پایتون بنا شده اند، اخیرا برای توسعه وب بسیار محبوب گشته اند. این چهارچوب های وب به شما کمک می کنند تا کد سمت سرور (کد بک-اند (به یادداشت پایان مقاله رجوع کنید)) را در پایتون ایجاد کنید. این کدی است روی سرور شما اجرا می شود.

چرا به یک چهارچوب وب نیاز داریم؟

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

از کدام چهارچوب پایتون باید استفاده کنیم؟

Django و Flask دو مورد از محبوب ترین چهارچوب های وب پایتون هستند. اگر تازه کار را شروع کرده اید توصیه می کنیم از یکی از این دو استفاده کنید.

تفاوت بین Django و Flask چیست؟

مهم ترین تفاوت:

Flask سادگی و انعطاف پذیری را فراهم می کند. (به شما امکان تصمیم گیری در چگونگی پیاده سازی کارها را می دهد.)

Django تجربه ای فراگیر را در اختیار شما قرار می دهد: شما یک پنل ادمین، رابط های پایگاه داده، یک ORM و ساختار دایرکتوری برای برنامه ها و پروژه های خود دریافت می کنید.

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

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

علوم داده: شامل یادگیری ماشین، تجزیه و تحلیل داده ها و مصورسازی اطلاعات

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

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

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

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

این روند بی شباهت به نحوه یادگیری یک کودک نیست. یک کودک چگونه تفاوت یک سگ و یک نیمکت را می آموزد؟ احتمالا با استفاده از یک دسته مثال. شما به صراحت به کودک نمی گویید،”اگر چیزی خزدار است و موهای قهوه ای روشن دارد ، احتمالا یک سگ است.” فقط می گویید ، “این یک سگ است. و آن یک نیمکت است.”

الگوریتم های یادگیری ماشین نیز تقریبا به همین روش کار می کنند.

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

سیستم های توصیه گر(YouTube ، Amazon و Netflix)، تشخیص چهره، تشخیص صدا

الگوریتم های یادگیری ماشین متداول که شاید درباره آن ها شنیده باشید عبارتند از:

• شبکه های عصبی

• یادگیری عمیق

• ماشین های بردار پشتیبان

• جنگل های تصادفی

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

کتابخانه ها و چهارچوب های یادگیری ماشین متداولی برای پایتون وجود دارد. دو مورد از محبوب ترین آن ها scikit-Learn و TensorFlow هستند. اگر تازه یک پروژه یادگیری ماشین را شروع کرده اید ، توصیه می کنم ابتدا با scikit-Learn شروع کنید. اما اگر کاری با بهره وری بالا را آغاز کرده اید، توصیه می کنم که از TensorFlow استفاده کنید.

تجزیه و تحلیل داده ها و مصورسازی اطلاعات


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

اسکریپت نویسی چیست؟

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

در مورد توسعه بازی چطور؟

می توانید از کتابخانه ای به نام PyGame برای توسعه بازی ها استفاده کنید؛ اما این متداول ترین کتابخانه نیست. شما می توانید از آن برای ساختن یک پروژه سرگرمی استفاده کنید، اما اگر در مورد توسعه بازی جدی هستید، این کتابخانه را توصیه نمی کنیم. در عوض Unity که یکی از محبوب ترین موتورهای بازی است را پیشنهاد می کنیم. Unity این امکان را به شما می دهد تا برای بسیاری از سیستم عامل ها، از جمله Mac ، Windows ، iOS و Android ، بازی ایجاد کنید.

در مورد برنامه های دسک تاپ چطور؟

می توانید از Tkinter استفاده کنید ، اما به نظر نمی رسد که بهترین انتخاب باشد. درعوض، زبان هایی مانند Java ، C # و C ++ برای این امر محبوبیت بیشتری دارند.

یادداشت: تعریفی ساده از کدهای بک-اند و فرانت-اند

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

Swift برای iOS

Java برای Android

JavaScript برای مرورگرهای وب

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

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

به بیان ساده این تفاوت بین کد بک-اند و کد فرانت اند است.

به هر حال ، پایتون تنها انتخاب برای نوشتن کد بک-اند نیست. گزینه های محبوب دیگری نیز از جمله Node.js وجود دارد که مبتنی بر JavaScript است.


چگونه با استفاده از پایتون یک چت بات ساده بسازیم؟


کمپانی گارتنر تخمین می زند که تا انتهای سال ٢٠٢٠ چت بات ها ٨۵ درصد از تعاملات مشتریان و خدمات را بر عهده خواهند داشت.

در این مقاله نحوه ساخت چت بات با پایتون را به صورت ساده آموزش می دهیم .

آنچه در این نوشته خواهیم داشت

  • چت بات چیست؟

  • چت بات چگونه کار می کند؟
    چت بات قانون محور (Rule-Based) و چت بات خودآموز(Self-Learning)
    ساخت چت بات با
    یادگیری پایتون پردازش زبان طبیعی ( NLP )
    NLTK: معرفی کوتاه
    دانلود و نصب NLTK:
    پیش پردازش متن با NLTK
    کوله کلمات ( Bag of Words )
    رویکرد TF-IDF
    وارد کردن کتابخانه های ضروری:
    مجموعه نوشته ها ( Corpus )
    پیش پردازش متن
    تطبیق کلید واژه
    تولید پاسخ در چت بات
    جمع بندی

چت بات چیست؟

چت بات یک نرم افزار دارای هوش مصنوعی در یک دستگاه مانند (Siri ، Alexa ، Google Assistant و غیره) ، اپلیکیشن و یا وبسایتی است که سعی می کند نیازهای مصرف کنندگان را ارزیابی کرده و سپس به آن ها در انجام یک کار خاص مانند یک معامله تجاری کمک کند. مثل رزرو هتل، ارسال فرم و غیره. امروزه چت بات ها در بسیاری از شرکت ها مورد استفاده قرار می گیرند تا بتواند با کاربران تعامل داشته باشند. از جمله کاربردهای چت بات در شرکت ها می توان به موارد زیر اشاره کرد :

ارائه اطلاعات پرواز

ارتباط با مشتریان و امور مالی آنها

پشتیبانی مشتری

چت بات چگونه کار می کند؟

به طور کلی دو نوع چت بات وجود دارد.

چت بات قانون محور (Rule-Based) و چت بات خودآموز(Self-Learning)

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

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

١-٢. در مدل مبتنی بر بازیابی، چت بات از یک سری الگوریتم های فراابتکاری به منظور انتخاب پاسخ از یک کتابخانه دارای پاسخ های از پیش تعیین شده استفاده می کند.

٢-٢ چت بات تولیدی می تواند پاسخ ها را تولید کند و همچنین همیشه به یک سوال یک پاسخ تکراری نمی دهد. هرچه تعدا پرسش و پاسخ ها بیشتر شود، چت بات هوشمندتر می شود.

ساخت چت بات با پایتون

پیش نیازها:

داشتن دانش کلی از کتابخانه scikit و NLTK. اما اگر در NLP تازه وارد هستید باز هم می توانید مقاله را بخوانید و سپس به منابع مراجعه کنید.

پردازش زبان طبیعی ( NLP )

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

NLTK: معرفی کوتاه

NLTK (ابزار زبان طبیعی) یک بستر پیشرو برای ساختن برنامه های پایتون برای کار با داده های زبان انسانی است. NLTK “ابزاری فوق العاده برای آموزش و کار در زبانشناسی محاسباتی با استفاده از پایتون” و “یک کتابخانه شگفت انگیز برای بازی با زبان طبیعی” معرفی شده است. پردازش زبان طبیعی با پایتون مقدمه ای عملی برای برنامه نویسی برای پردازش زبان است.

دانلود و نصب NLTK:

NLTK را نصب کرده و pip install nltk را اجرا کنید.

آزمایش نصب: پایتون را اجرا کرده و import nltk را تایپ کنید.

نصب بسته های NLTK:

NLTK را وارد کنید و nltk.download () را اجرا کنید. با این کار NLTK downloader را باز کرده و می توانید مدل ها را برای بارگیری انتخاب کنید. همچنین می توانید همه بسته ها را به طور همزمان دانلود کنید.

پیش پردازش متن با NLTK

مسئله اصلی در مورد داده های متن این است که همه در قالب متن هستند. اما الگوریتم های یادگیری ماشین با پایتون به نوعی از بردار ویژگی عددی احتیاج دارند. بنابراین قبل از شروع هر پروژه NLP باید آن را از قبل پردازش کنیم تا مناسب سازی شود. پیش پردازش متن اصلی شامل موارد زیر است:

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

Tokenization: Tokenization (نشانه گذار) فقط اصطلاحی است که برای توصیف فرآیند تبدیل رشته های متن معمولی به لیستی از نشانه ها بکار رفته است. نشانه گذار جمله می تواند برای یافتن لیست جملات مورد استفاده قرار گیرد و از نشانه گذار کلمات برای یافتن لیست کلمات در رشته ها استفاده می شود.

کوله کلمات ( Bag of Words )

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

رویکرد TF-IDF

مشکل کوله کلمات در این است که کلمات پر تکرار شروع به غالب شدن در سند می کنند؛ اما ممکن است شامل محتوای اطلاعاتی (informational) نباشند. همچنین کوله کلمات به اسناد طولانی تر وزن بیشتری می دهد. یک روش برای رفع این مشکل این است که به هر کلمه متناسب با تعداد تکرار آن در کل سند امتیاز داده شود. این رویکرد امتیاز دهی Term Frequency-Inverse Document Frequency یا به اختصار TF-IDF گفته می شود. در این روش، Term Frequency به معنی امتیاز دهی تعداد کلمات در سند فعلی و Inverse Document Frequency به معنای امتیازدهی کم تکرار بودن کلمات در سند می باشد.

(تعداد کل کلمات)/(تعداد دفعات مشاهده کلمه)=TF

(تعداد اسنادی که کلمه در آن ها مشاهده شده)/(تعداد اسناد)IDF=1+log

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

مثال:

سندی را در نظر بگیرید که شامل ١٠٠ کلمه است و در آن کلمه “تلفن” ۵ بار تکرار شده است. TF برای این کلمه 5/100 است. حال ، فرض کنید ما ١٠ میلیون سند داریم و کلمه تلفن در هزار مورد از آنها تکرار شده است. آنگاه IDF برابر خواهد بود با: log (10،000،000 / 1،000) = 4 . بنابراین TF-IDF 0.2 می باشد.

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

وارد کردن کتابخانه های ضروری:

import nltk

import numpy as np

import random

import string # to process standard python strings

مجموعه نوشته ها ( Corpus )

به عنوان مثال، ما از صفحه ویکی پدیا به عنوان مجموعه نوشته برای چت بات خود استفاده خواهیم کرد. محتویات را از صفحه کپی کرده و آن را در یک پرونده متنی بنام “chatbot.txt” قرار دهید. با این حال، شما می توانید از هر مجموعه نوشته دلخواه دیگر استفاده کنید. ما در فایل corpus.txt کل مجموعه را به لیست جملات و کلمات برای پیش پردازش بیشتر تبدیل می کنیم.


f=open('chatbot.txt','r',errors = 'ignore')raw=f.read()raw=raw.lower()# converts to lowercasenltk.download('punkt') # first-time use only

nltk.download('wordnet') # first-time use onlysent_tokens = nltk.sent_tokenize(raw)# converts to list of sentences

word_tokens = nltk.word_tokenize(raw)# converts to list of words

مثالی از sent_tokens و word_tokens را ببینید:


sent_tokens[:2]

['a chatbot (also known as a talkbot, chatterbot, bot, im bot, interactive agent, or artificial conversational entity) is a computer program or an artificial intelligence which conducts a conversation via auditory or textual methods.',

'such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the turing test.']word_tokens[:2]

['a', 'chatbot', '(', 'also', 'known']

پیش پردازش متن

اکنون باید تابعی به نام LemTokens تعریف کنیم.

1


lemmer = nltk.stem.WordNetLemmatizer()

#WordNet is a semantically-oriented dictionary of English included in NLTK.def LemTokens(tokens):

return [lemmer.lemmatize(token) for token in tokens]

remove_punct_dict = dict((ord(punct), None) for punct in string.punctuation)

def LemNormalize(text):

return LemTokens(nltk.word_tokenize(text.lower().translate(remove_punct_dict)))

تطبیق کلید واژه

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

GREETING_INPUTS = ("hello", "hi", "greetings", "sup", "what's up","hey",)GREETING_RESPONSES = ["hi", "hey", "*nods*", "hi there", "hello", "I am glad! You are talking to me"]def greeting(sentence):

for word in sentence.split():

if word.lower() in GREETING_INPUTS:

return random.choice(GREETING_RESPONSES)

تولید پاسخ در چت بات

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

از کتابخانه scikit Learn ، بردار Tfidf را وارد کنید تا مجموعه ای از اسناد خام را به ماتریسی از ویژگی های TF-IDF تبدیل کنید.

from sklearn.feature_extraction.text import TfidfVectorizer

همچنین ، ماژول cosine similarity را از کتابخانه یادگیری scikit وارد کنید.

from sklearn.metrics.pairwise import cosine_similarity

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

ما یک پاسخ عملکردی را تعریف می کنیم که پرسش کاربر را برای یک یا چند کلمه کلیدی شناخته شده جستجو می کند و یکی از چندین پاسخ ممکن را ارائه می دهد. اگر ورودی مطابق با هر یک از کلمات کلیدی را پیدا نکرد، به عنوان مثال پاسخ می دهد: “متاسفم! من متوجه منظور شما نمی شوم.”



def response(user_response):

robo_response=''

sent_tokens.append(user_response) TfidfVec = TfidfVectorizer(tokenizer=LemNormalize, stop_words='english')

tfidf = TfidfVec.fit_transform(sent_tokens)

vals = cosine_similarity(tfidf[-1], tfidf)

idx=vals.argsort()[0][-2]

flat = vals.flatten()

flat.sort()

req_tfidf = flat[-2] if(req_tfidf==0):

robo_response=robo_response+"I am sorry! I don't understand you"

return robo_response

else:

robo_response = robo_response+sent_tokens[idx]

return robo_response

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

flag=True

print("ROBO: My name is Robo. I will answer your queries about Chatbots. If you want to exit, type Bye!")while(flag==True):

user_response = input()

user_response=user_response.lower()

if(user_response!='bye'):

if(user_response=='thanks' or user_response=='thank you' ):

flag=False

print("ROBO: You are welcome..")

else:

if(greeting(user_response)!=None):

print("ROBO: "+greeting(user_response))

else:

print("ROBO: ",end="")

print(response(user_response))

sent_tokens.remove(user_response)

else:

flag=False

print("ROBO: Bye! take care..")

تقریبا تمام شد.

آموزش آنلاین پایتون درآمانج

مقایسه دو زبان برنامه‌نویسی مهم : پایتون و پی اچ پی

در سال‌های اخیر پایتون به یکی از زبان‌های برنامه‌نویسی پرطرفدار تبدیل شده است. طبق آمارهای گوگل، از سال ۲۰۱۲ طرفداران پایتون حتی از زبان محبوب PHP هم پیشی گرفته و پیش‌بینی‌ها نشان میدهد که در آینده این زبان پیش از بقیه مورد استفاده قرار گیرد.

در این مقاله قصد داریم دو زبان محبوب و رایج، یعنی پایتون و PHP را باهم مقایسه کرده و قابلیت‌های هرکدام را مورد بررسی قرار دهیم.

اگر میخواهید درباره زبان پایتون جزئیات بیشتری بدانید، به مقاله‌ی بهترین راه یادگیری پایتون ( راهنمای گام به گام ٢٠٢٠ ) مراجعه کنید.

آنچه در این نوشته خواهیم داشت

مقایسه پایتون و PHP

هردوی این زبا‌ن‌ها بسیار قدرتمند و محبوب هستند و هرکدام مزایا و معایبی دارند.

زبان برنامه نویسی پی اچ پی، زبانی کلاسیک بوده و از قدیم تا به امروز برای برنامه‌نویسی اَپ‌های تحت وب از آن استفاده شده است.

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

برای مقایسه این دومورد حوزه‌های مختلفی نیاز به بررسی دارند که در ادامه مبینیم.

آسان بودن یادگیری

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

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

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

قابلیت استفاده

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

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

پشتیبانی آنلاین

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

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

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

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

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

منابع آموزشی

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

از نظر منابع آموزشی، هر دو زبان برنامه‌نویسی از شرایط خیلی خوبی برخوردار هستند.

قیمت

پایتون و PHP هر دو کاملا رایگان و اپن سورس هستند و در واقع در این زمینه هردوی این برنامه‌ها برتر از زبان‌های برنامه‌نویسی غیر رایگان هستند.

سرعت

نسخه PHP 5.X خیلی کند است و زمان تقریبا زیادی برای اجرا نیاز دارد. با این حال، نسخه PHP 7.X خیلی سریع است، تقریبا 3 برابر سریعتر از پایتون است.

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

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

انتخاب چارچوب

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

از طرف دیگر PHP بیشتر از چارچوب‌های وب کودینیتیر، زند، لاراول و سیمفونی استفاده می‌کند.

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

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

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

رفع باگ

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

پایتون از یک دیباگر (رفع باگ کننده) قوی به نام PDB استفاده می‌کند. یادگیری و استفاده از PDB حتی برای افراد مبتدی بسیار آسان است.

از طرف دیگر، PHP از دیباگر XDebuger برای رفع باگ استفاده می‌کند. هر دوی این‌ها دارای خصوصیات رفع باگ مشابه هستند.

در این زمینه پایتون و PHP عملکرد نزدیکی دارند و هیچکدام از برتری خاصی برخوردار نیستند.

اشتغال و درآمد بالقوه

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

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

در آخر به‌صورت خلاصه قابلیت‌های این دو زبا‌ن برنامه‌نویسی را نام برده‌ایم:

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

  • طراحی بهتر

  • چارچوب برتر

  • مدیریت پکیج‌ها

  • کدنویسی ساده‌تر

  • درک و فهم کدها

  • ارث‌بری چندگانه

  • درون‌گرایی بی‌نظیر

  • ابزارهای اشکال‌زدایی

  • پشتیبانی گسترده و جامع

  • هسته‌ی کوچک و کم‌حجم

  • شی‌گرایی واقعی و بدون ایراد

  • متنوع تر بودن نسبت به PHP

  • حساسیت به بزرگی و کوچکی حروف حتی در توابع

  • قواعدی که باعث می شود غلط‌های لغوی کمتر شوند

  • آرگومان‌های کلمه کلیدی: پارامتر‌ها با نامشان ارسال می شوند، نه با توجه به موقعیتشان

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

  • نوع final و abstract

  • افزایش و کاهش متغیرها

  • آرگومان‌ها پیش فرض در توابع

  • درج کدها در میان کدهای HTML

  • پشتیبانی از تمامی سیستم‌های اجرایی

  • اجرای کد در یک محیط معین و مشخص

  • عبارت های Switch و do … While در پایتون وجود ندارد

  • اصلاح گرهای private و protected و public برای ویژگی ها و توابع

  • کسانی که قبلا سابقه برنامه نویسی دارند به‌راحتی می توانند این زبان را یاد بگیرند

  • Interface ها: که البته می‌توان گفت پایتون نیازی هم به آن ندارد چون ساختار‌های مشابه زیادی دارد و از ارث بری چندگانه پشتیبانی می کند

نتیجه‌گیری

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

هریک از این دو زبان برنامه نویسی قابلیت‌های مختلفی دارند که با توجه به کاربرد پروژه باید آن‌ را انتخاب کرد.

مفاهیم اولیه در یادگیری زبان برنامه نویسی پایتون


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

در اصل؛ هنگام کدنویسی به زبان پایتون گویا شما در حال صحبت با کامپیوتر با زبان و علائم انگلیسی هستید!

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


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

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

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

مفهوم ورودی و خروجی

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

به این منظور ما باید با دو تابع ()input و ()print آشنا شده و نحوه کار با آن را یاد بگیریم.

یکی دیگر از مهم ترین توابع برای ورودی گرفتن در زبان برنامه نویسی پایتون ()import می‌باشد که از آن برای فراخوانی ماژول ها و یا استفاده از متدهای مختلف استفاده می‌شود.

مفهوم متغیرها

متغیرها در واقع همان اعداد، اسامی و … هستند که ما در برنامه نویسی آن ها را صدا میزنیم و یا به عنوان ورودی و خروجی آن ها را می‌خواهیم.

بر فرض مثال عدد ۱۰ یک متغیر می‌باشد اما از نوع عدد صحیح!

ما در برنامه نویسی متغیرهای متفاوتی داریم که از آن‌ها برای ذخیره سازی، انجام عملیات های مختلف و … استفاده می‌کنیم. متغیرها در زبان برنامه نویسی پایتون به ۴ دسته زیر تقسیم می شوند:

اعداد صحیح (integer)

اعداد اعشاری(float)

متغیرهای منطقی (Boolean)

رشته ها(string)

مثال برای موارد فوق:

به عنوان مثال عدد ۱۲ یک عدد صحیح و عدد۰.۱۲ یک متغیر اعشاری می‌باشد.در مورد لیترال یا متغیرهای منطقی باید کمی مثال را پیشرفته تر کرد:

فرض کنید مقدار x=1 و y=1 باشد؛ حال آیا x=y ؟ جواب True می‌باشد و اگر بپرسیم x=2 پاسخ False می‌باشد. منظور از متغیر یا لیترال های منطقی همین True و False است. که برخلاف ظاهر و مفهوم ساده بسیار کاربردی است.

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

نکات مهم متغیرها

– سعی کنید از نام ها و اسامی دارای معنا استفاده کنید.

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

– شما در زبان برنامه نویسی پایتون به هیچ وجه قادر به استفاده از کارکاتر های «!، @، #، $، ٪ نمی‌باشد.

– در پایتون هیچ اسمی با عدد آغاز نمی‌شود.

– اسامی رشته ها می‌تواند ترکیبی از حروف کوچی، حروف بزرگ، اعداد و خط تیره (ـ) باشد.

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

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

نکته: برای فراخوانی توابع از ()def استفاده می کنیم.

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

توابع به صورت کلی به ۴ دسته تقسیم بندی می‌شوند:


ـ توابعی که نه خروجی و نه ورودی دارند و فقط یک پیغام را چاپ می کنند.

ـ توابعی که ورودی ندارند ولی خروجی دارند مثل تابع random

ـ توابعی که خروجی داشته اما ورودی ندارند مثل تابع even_or_odd

ـ توابعی که هم ورودی و هم خروجی دارد مثل multiple_arguments


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

عملگرهای منطقی

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

توضیح عملگرهای منطقی:

فرض میکنیم دو متغیر a و b به ترتیب درست و غلط باشند؛ عملگرهای منطقی به صورت کلی به ما می گویند که دو یا چند متغیر درست هستند یا خیر و اغلب قبل از عملگرهای کنترلی به خصوص شرط ها مورد استفاده قرار می‌گیرند.

عملگر and زمانی درست را به ما نشان می‌دهد که هر دو متغیر درست باشند و وقتی غلط را به ما برمی گرداند که حداقل یک متغیر غلط باشد مثل تصویر فوق.

عملگر or زمانی به ما درست را نشان می‌دهد که حداقل یکی از دو مکتغیر درست باشند و زمانی غلط را به ما برمیگرداند که هر دو متغیر غلط باشند.

عملگر not نیز نقیض عبارت مقابل خود را به ما برمی‌گرداند یعنی اگر عبارت روبروی not درست باشد، غلط و اگر غلط باشد آن را به صورت درست به ما نشان می‌دهد.

بر فرض مثال در تصویر فوق a and b درست نیستند اما چون عملگر not پشت آن قرار دارد، نقیض آن را به ما نشان می دهد.

عملگرهای کنترلی

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

از مهم ترین دستورات کنترلی در زبان برنامه نویسی پایتون می توان به if،for، while، else وelif اشاره کرد.

از if برای ایجاد یک شرط، از while و for برای ایجاد یک حلقه؛ به معنای انجام یکسری کد تا وقتی یک شرط برقرار است، از else برای اجرای دستوراتی خاص وقتی شرط انجام نشد (تک انتخابی) و از elif نیز انجام شروط چند انتخابی استفاده کرد.

جمع بندی

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

در راستای این مقاله است، به شما آموزش داده شود.امیدوارم این مقاله برای شما عزیزان مفید واقع شده باشد

https://lms.utkarafarini.com/