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

راه حل مسئله ی 705A در سایت codeforces.com

لینک سوال : http://codeforces.com/problemset/problem/705/A

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

تعداد حل کنندگان تا این لحظه : 8487



دریافت راه حل و سورس کد به زبان پایتون


۱ نظر

آموزش برنامه نویسی شی گرا با کتاب Mastering Object Oriented Python

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

کتابی که در این پست قرار داده شده است کتاب Mastering Object Oriented Python است که انتشارات PACKT آن را منتشر کرده و نگارش آن بر عهده ی Steven F. lott بوده است.


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


۰ نظر

جنگو (Django) چیست ؟

خیلی از دوستان از ما نحوه ی ساخت وبسایت با استفاده از پایتون رو می پرسیدند. سوالاتی از این قبیل : "آیا امکان ساخت وب سایت با پایتون هست؟" "جنگو بهتره یا Flask ؟ " و امثالهم ...، در این مقاله سعی می کنم به شما Django رو معرفی کنم. ببینید زبان برنامه نویسی پایتون یک زبان General Purpose هست بدین معنی که برای کار به خصوصی ساخته نشده و قابلیت به کارگیری در هر جایی رو داره. مثلا با پایتون میشه برنامه های تحت دسکتاپ ساخت، میشه اپلیکیشن های موبایلی درست کرد، میشه در روباتیک ازش استفاده کرد و هزاران جای دیگه که یکی از اون جاها فضای آنلاین هست. 


سوال : چرا پایتون برای طراحی وبسایت خوبه ؟

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


سوال : web framework چیه ؟

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



سوال : میشه چند تا از web framework های معروف پایتون رو معرفی کنید ؟

پاسخ : Web2py - Flask - Tornado - Django


سوال : مزیت Django نسبت به بقیه ی این فریمورک ها چیه ؟

پاسخ : ببینید دوستان، جنگو برای پروژه های خیلی بزرگ طراحی شده یعنی قرار نیست که شما با جنگو برای خودتون یه صفحه ی شخصی درست کنید ! نه هدف از جنگو این نیست بلکه هدف این هست که شما در ساده ترین شکل ممکن پیچیده ترین ایده ها رو اجرایی کنید. به علاوه اینکه فریمورک Django یک فریمورک کامل هست و خیلی کم پیش میاد که شما نیاز داشته باشید از کتابخانه های خارجی در پروژه ی خودتون استفاده کنید. ولی فریمورک هایی مثل Flask اینطوری نیستند و شما باید برای کارهای مختلف ماژول های مختلفی رو نصب کنید. یکی دیگه از قابلیت های خوبش هم این هست که شمارو با پایگاه های داده درگیر نمی کنه به عبارت دیگر شما نیاز نیست که SQL یاد بگیرید و برای کار با انواع پایگاه های داده مانند sqlite3 - mysql - postgre می توانید از یک ساختار ثابت استفاده کنید و جنگو خودش حرف های مارو برای پایگاه های داده ترجمه می کنه. به عنوان یکی دیگه از قابلیت های خوبش هم می تونم به داشتن سرور توسعه اشاره کنم، در جنگو شما نیازی نیست که یک سرور برای اجرا کردن پروژه هاتون نصب کنید چون خود جنگو چنین امکانی رو برای شما فراهم کرده و دیگه نیازی نیست که یک سرور خارجی مثل Apache نصب کنید. البته در هنگامی که بخواهید پروژه ی خودتون رو در فضای واقعی وب اجرا کنید دیگه نمی تونید از این سرور استفاده کنید. جنگو مزیت ها و قابلیت های خوب دیگری هم داره که در طی آموزش ها حتما بهش اشاره خواهم کرد.


سوال : ساختار کدنویسی در جنگو چیه ؟

پاسخ : جنگو از ساختار MVC پیروی می کنه البته خیلی هم MVC نیست چون در جنگو View نقش Controller رو بر عهده داری و چیزی به نام Template وظیفه ی View رو بر عهده داره پس یک فریمورک MTV هست. که البته این ها مفاهیمی هستند که در فاز عملی خیلی بهتر درک می کنید.


سوال : یکی از قسمت های سخت کار با جنگو چیه ؟

پاسخ : به طور کلی قسمت سختی نداره، چون مستندات خیلی کاملی داره و به هرچیزی که نیاز داشته باشید می تونید از سایت رسمی خودش پیدا کنید. آدرس سایت رسمی جنگو http://www.djangoproject.com/ هست که با مراجعه کردن بهش اطلاع زیادی کسب خواهید کرد. ولی به طور کلی اگه بخوام یکی از قسمت های سخت جنگو رو نام ببرم قسمت Deploying هستش و زمانی که قرار هست پروژه ی واقعیو در فضای واقعی ران کنید چون متاسفانه در ایران سرور های Pre-configured برای جنگو وجود نداره و این در حالیه که در جاهایی غیر از ایران این سرور ها وجود داره و ما با چند تا کلیک می تونیم پروژه ی خودمونو اجرا کنیم. امیدوارم در آینده ی نزدیک شاهد حضور چنین PaaS هایی در ایران باشیم. البته بازم می گم اونقدرها سخت نیست. کافیه شما یک سرور مثل Apache نصب کنید و یک پایگاه داده مثل Mysql و بعد از اون یکسری تغییرات انجام بدید. البته سرور آپاچی حتما باید ماژول mod_wsgi رو داشته باشه.



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


موفق باشید./

۲ نظر

آموزش عبارات با قاعده (Regular Expressions) در پایتون به زبان فارسی

عبارت باقاعده، که تحت عنوان regex یا regexp (مخفف عبارت انگلیسی regular expression) نیز نامیده می‌شود در علوم رایانه، به معنی تطبیق رشته در متن است، که از قبیل نویسه‌های خاص، کلمات و الگوهایی از نویسه‌ها می‌باشد. یک عبارت باقاعده با زبان معمولی نوشته می‌شود که می‌تواند توسط یک پردازشگر عبارت باقاعده، یا یک برنامه که به عنوان تولیدکنندهٔ مترجم یا بررسی‌کنندهٔ متن و تشخیص قسمت‌هایی از آن به وسیلهٔ مشخصات استفاده شود. ایران پایتون مفتخر است که امروز اولین نسخه از کتابچه ی رسمی خود را برای عبارات با قاعده در پایتون معرفی می کند. این اولین مقاله در ایران و به زبان فارسی است که عبارات با قاعده در زبان فارسی را مورد بررسی قرار داده است.

 


۰ نظر

دوره ی آموزش مقدماتی پایتون - جلسه ی پانزدهم

به نام خدا . کاربران عزیز ایران پایتون امیدوارم ایام را به خوبی سپری کنید و همواره با نشاط باشید . در این پست که ادامه ی پست های قبل هست جلسه ی 15 از "دوره ی آموزش مقدماتی پایتون" را برای شما قرار می دهیم. در این جلسه به بررسی ادامه ی مفاهیم شیئ گرایی پرداخته شده است و بسیار مهم می باشد لذا موضوعات زیر در آن گنجانده شده است :


آشنایی با متد __str__

دریافت داده با صورت لیست

آشنایی با وراثت

__________________________

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

By IranPython


۳ نظر

دوره ی آموزش مقدماتی پایتون - جلسه ی چهاردهم

به نام خدا با عرض سلام خدمت کاربران عزیز. در جلسه ی چهاردهم از "دوره ی آموزش مقدماتی پایتون" که توسط ایران پایتون برای شما فراهم شده است شما را به دنیای جدیدی وارد می کنیم که Object Oriented Programming نام دارد و در آینده ی نزدیک به کمک شما خواهد آمد. در ای جلسه  به موضوعات زیر پرداخته شده است :

- تئوری برنامه نویسی شیئ گرا
- آشنایی با کلاس
- آشنایی با متد
- آشنایی با __init__
_______________________________
برای دریافت این قسمت می توانید بر روی عکس زیر کلیک کنید.


۰ نظر

دوره ی آموزش مقدماتی پایتون - جلسه ی سیزدهم

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

تابع ناشناس چیست ؟
نحوه ی تعریف یک تابع ناشناس
آشنایی با دستورات lambda و map

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

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








۱ نظر

دوره ی آموزش مقدماتی پایتون - جلسه ی دوازدهم

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


۰ نظر

دوره ی آموزش مقدماتی پایتون - جلسه ی یازدهم

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


۱ نظر

دوره ی آموزش مقدماتی پایتون - جلسه ی دهم

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


۲ نظر

معرفی IDE های مناسب برای توسعه به زبان پایتون

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


Pycharm

این محیط توسعه ی قدرتمند دارای قابلیت های بسیار بالایی هست که می توانید نهایت استفاده را از پایتون ببرید. دارای قابلیت Auto-Complete هست. از ماژول های 3rd-party پشتیبانی می کنه و می توانید برای توسعه ی اپ های Django و Flask هم ازش استفاده کنید. این برنامه در دو نسخه ی رایگان و تجاری منتشر می شود که می توانید از سایت سازنده ی آن به هر دو نسخه دسترسی داشته باشید. از شاخصه های بد این نرم افزار که به تجربه در سیستم های مختلف آن را دیده ام این است که گاهی سرعت پردازش خیلی پایین می آید. همچنین پیچیده بودن نرم افزار سبب می شود تا کاربران تازه وارد نتوانند به راحتی با آن ارتباط برقرار کنند.

دارد.


Sublime Text

یک محیط توسعه است که قسمت زیادی از خودش هم به زبان پایتون نوشته شده است. زیان های فراوانی را پشتیبانی می کند و بسیار سریع و کم حجم است. دارای قابلیت code-snippet است اما برای دسترسی به امکانات Auto-complete لازم است تا پلاگینی را برای این منظور نصب کنید. این نرم افزار نیز دارای دو نسخه ی Trial و تجاری است که سایت سازنده قابل دسترسی می باشد. از قابلیت های بد این نرم افزار این است که امکانات فراوانی را ندارد و برای دسترسی به امکانات خاص باید plugin مربوطه را نصب کنید که البته کار سختی نیست.


Notepad++

از همان اول که آمد بسیار قدرتمند ظاهر شد و توانست لقب یکی از بهترین پروژه های متن باز و رایگان را به خود بدهد. این برنامه تشابه زیادی با برنامه ی Sublime Text دارد مانند حجم کم و سرعت بالا. همچنین شما می توانید با نصب Plugin قابلیت Auto-Complete را برای زبان پایتون نیز فعال کنید. این محیط توسعه ی خوب از زبان های فراوانی پشتیبانی می کند. طی چند سالی که در حال توسعه است بسیاری از مشکلاتش حل شده و اکنون یک IDE خوب است.



نتیجه گیری

ار بین این سه IDE که معرفی شدند همگی خوب هستند اما این بستگی به وضعیت شما دارد که از کدامیک استفاده کنید. اگر دوست ندارد با مسائل پیچیده ی Pycharm روبه رو شوید ما به شما Sublime Text را معرفی می کنیم. اگر می خواهید با سایر زبان ها ارتباط برقرار کنید Notepad++ گزینه ی خوبی است و اگر می خواهید به توسعه ی وب بپردازید Pycharm گزینه ی خوبی است. اما نکته ای که باید در نظر داشته باشید این است که همه ی این ابزاری که معرفی شدند خوب هستند و کافی است تا با سلیقه ی خود یکی را انتخاب کرده و نکات و قابلیت های آن را یاد بگیرید.

۰ نظر

دوره ی آموزش مقدماتی پایتون - جلسه ی نهم

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


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


-      دستور count()

-      دستور extend()

-      دستور sort()

-      دستور index()

-      دستور insert()

 

۲ نظر

دوره ی آموزش مقدماتی پایتون - جلسه هشتم

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

-      لیست چیست ؟

-      مفهوم ایندکس منفی

-      دستور append()

-      دستور copy()

-      دستور clear()

-      دستور reverse()

-      دستور pop()


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

۱ نظر

دوره ی آموزش مقدماتی پایتون - جلسه هفتم

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

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

-      اعداد اعشاری و تشخیص آن با استفاده از type()

-      دستور is_integer()

-      ماژول چیست ؟ کار با دستور import

-      ماژول math و دستورات pi ، factorial و floor


دانلود در ادامه ی مطلب

۰ نظر

تاریخچه ی زبان برنامه نویسی پایتون

پیدایش

پایتون یک زبان برنامه نویسی قدرتمند است که پروژه ی آن در سال 1990 به دست Guido Van Rossum کلید زده شد. پایتون از سایر زبان های برنامه نویسی مانند پرل ، رابی ، تی سی ال و ... استفاده ی فراوانی برده است. بسیاری بر این باور هستند که نام پایتون از نام مار پایتون گرفته شده است اما در واقع این نام از نام یک برنامه ی کمدی انگلیسی گرفته شده است.



قابلیت ها

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

# متن باز یا Open-Source می باشد.

# شی گراست.

# Easy-to-learn است یعنی به راحتی قابل یادگیری است.

#Easy-to-use  است یعنی به راحتی قابل استفاده است.

# بسیار قدرتمند است. از لحاظ ساختار نحوی بسیار ساده است اما از نظر قدرت مانند زبان های سیستمی همچون C یا C++  عمل می کند.

# می توان از کتابخانه های موجود در سایر زبان های برنامه نویسی مانند C ، C++  و Java در آن استفاده کرد. همچنین می توانید از قابلیت های پایتون در سایر زبان های برنامه نویسی نیز بهره ببرید.

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

 

پایتون تاکنون در کجا استفاده شده است ؟

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

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

شرکت فضایی NASA استفاده های فراوانی از پایتون می کند.

شرکت بزرگ انیمیشن سازی Walt Disnep انیمیشن های خود را با استفاده از پایتون می سازد.


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

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

۰ نظر