مجله خبری برنامه‌نویسی پایتون

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

مجله خبری برنامه‌نویسی پایتون

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

مجله خبری برنامه‌نویسی پایتون

زبان پایتون (Python) در سال ۱۹۹۱ توسط یک برنامه‌نویس هلندی به نام گیدو ون روسوم (Guido van Rossum) ابداع شد و از آن زمان تا کنون رشد قابل ملاحظه‌ای را شاهد بوده است.

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

در یک سال گذشته، «Python» یکی از کلماتی بود که شهروندان آمریکایی بسیار زیاد در گوگل جستجو کرده‌اند، حتی بیشتر از نام ستاره‌های تلویزیونی.

۱۴ مطلب در مهر ۱۳۹۷ ثبت شده است

برای دانلود راهنمای سریع (Cheat Sheet) دستورهای پایتون برای علم داده میتوانید از طریق لینک زیر اقدام کنید.

این بخش کتابخانه keras برای شبکه های عصبی را شامل می شود.


دانلود

NumPy سرنامی برای  Numerical Python است. قدرتمندترین ویژگی این کتابخانه، آرایه‌های n-بُعدی هستند. این کتابخانه همچنین شامل توابع پایه‌ای جبر خطی، تبدیل فوریه، تولید پیشرفته اعداد تصادفی و ابزارهایی جهت یکپارچه‌سازی با دیگر زبان‌های سطح پایین مانند C++ ، C و فورترن (Fortran) است.

SciPy سرنامی برای Scientific Python است. SciPy براساس NumPy ساخته شده و یکی از پرکاربردترین کتابخانه‌ها برای انواع گسترده‌ای از ماژول‌های سطح بالای علمی و مهندسی مانند تبدیل فوریه گسسته (discrete Fourier transform)، جبر خطی، بهینه‌سازی و «ماتریس‌های خلوت یا اسپارس» (Sparse Matrix) محسوب می‌شود.

Matplotlib برای ترسیم انواع گسترده‌ای از نمودارها، از هیستوگرام و نمودارهای خطی گرفته تا نمودارهای حرارتی قابل استفاده است. می‌توان از ویژگی Pylab در ipython notebook (به صورت ipython notebook –pylab = inline) به منظور بهره‌گیری از ویژگی‌ رسم نمودار به صورت خطی استفاده کرد. اگر ویژگی inline توسط کاربر نادیده گرفته شود، pylab محیط ipython را به محیطی بسیار شبیه به «متلب» (Matlab) مبدل می‌کند.

Pandas برای عملیات روی داده‌های ساختار یافته و دستکاری آن‌ها مورد استفاده قرار می‌گیرد. این کتابخانه به طور گسترده‌ای برای «data munging» (این عبارت یک تعریف استاندارد برای انجام تغییرات غیر قابل بازگشت در داده‌ها است. به نظر می‌رسد عبارت mung سرنام برگرفته شده از Mash Until No Good باشد. در واقع، عبارت data munging اغلب به فرآیند دریافت داده‌های خام و تبدیل و نگاشت آن‌ها به دیگر فرمت‌ها به منظور آماده‌سازی مجموعه داده جهت انجام تحلیل‌های تخصصی، اشاره دارد و از آماده‌سازی داده‌ها به عنوان مقدمه‌ای جهت تحلیل‌ها استفاده می‌شود. Pandas در سال‌های اخیر به پایتون اضافه و منجر به افزایش استفاده از آن در جامعه دانشمندان داده شده است.

Scikit Learn کتابخانه‌ای برای یادگیری ماشین است. این کتابخانه بر اساس SciPy، NumPy و matplotlib ساخته شده و شامل ابزارهای کارآمدی برای یادگیری ماشین و مدل‌سازی آماری شامل «دسته‌بندی» (classification)، «رگرسیون» (regression)، «خوشه‌بندی» (clustering) و «کاهش ابعاد» (dimensionality reduction) است.

Statsmodels برای مدل‌سازی آماری مورد استفاده قرار می‌گیرد. این کتابخانه یک ماژول از پایتون است که به کاربران امکان اکتشاف در داده‌ها، تخمین مدل‌های آماری و انجام آزمون‌های آماری را می‌دهد. Statsmodels یک لیست گسترده از «آمار توصیفی» (descriptive statistics)، «آزمون‌های آماری» (statistical tests)، توابع ترسیم نمودار و نتایج آماری برای انواع گوناگونی از داده‌ها و برآوردگرها است.

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

Bokeh برای ساخت نمودارهای تعاملی، دشبوردها و برنامه‌های داده در مرورگرهای مدرن مورد استفاده قرار می‌گیرد. این کتابخانه کاربر را قادر به تولید گرافیک‌های ظریف و مختصری به سبک D3.js می‌سازد. علاوه بر آنچه گفته شد، این کتابخانه توانایی تعامل با کارایی بالا در مجموعه داده‌های بسیار بزرگ یا جریانی را دارا است.

Blaze به منظور گسترش توانایی‌های Numpy و Pandas برای مجموعه داده‌های توزیع شده و جریانی، مورد استفاده قرار می‌گیرد. این کتابخانه قابل استفاده به منظور دسترسی داشتن به داده‌ها از طریق گروه کثیری از منایع شامل Bcolz ،MongoDB ،SQLAlchemy ،Apache Spark ،PyTables و دیگر موارد است. Blaze در کنار کتابخانه Bokeh می‌تواند به عنوان یک ابزار بسیار قدرتمند جهت ساخت آثاری بصری (گرافیک‌ها و نمودارها) و دشبوردهای موثر برای مجموعه‌های عظیم داده مورد استفاده قرار بگیرد.

Scrapy کتابخانه‌ای برای «خزیدن در وب» (web crawling) است. این کتابخانه برای کشف الگوهای خاص در داده‌ها بسیار مفید به حساب می‌آید. Scrapy توانایی آغاز به کار کردن در URL خانگی وب‌سایت و کاوش کردن در صفحه وب برای گردآوری اطلاعات را دارد.

SymPy برای «محاسبات نمادین» (Symbolic Computation) مورد استفاده قرار می‌گیرد و دارای طیف وسیعی از توانایی‌ها از ریاضیات نمادین پایه گرفته تا حساب، جبر، ریاضیات گسسته و فیزیک کوانتوم است. دیگر ویژگی کارآمد این کتابخانه، توانایی قالب‌بندی نتایج محاسبات به صورت کد «لاتک» (LaTeX) است.

Requests برای دسترسی به وب است. این کتابخانه به صورت مشابه با کتابخانه پایتون استاندارد urllib2 مورد استفاده قرار می‌گیرد، اما کد زدن با استفاد از Requests ساده‌تر است. امکان دارد کاربران با تجربه تفاوت‌های ظریفی بین این دو کتابخانه پیدا کنند، اما Requests برای افراد مبتدی راحت‌تر است.

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

'''@author python.pythonchallenge'''

user = input('enter your anagram:\n')
from itertools import permutations
spel = [''.join(data) for data in permutations(user)]
from nltk.corpus import words
for i in spel:
    if i in words.words():
        print(i)
دقت کنید اگر موقع اجرای برنامه با ارور مواجه شدید ابتدا کد زیر را اجرا کنید:

import nltk
nltk.download('words')


برای دانلود راهنمای سریع (Cheat Sheet) دستورهای پایتون برای علم داده میتوانید از طریق لینک زیر اقدام کنید.

دانلود


برای دانلود راهنمای سریع (Cheat Sheet) دستورهای پایتون برای علم داده میتوانید از طریق لینک زیر اقدام کنید.

دانلود

Image result for python




این روزها تقریبا هر شخصی که دستی در کد زدن و برنامه نوشتن داره، از زبان پایتون صحبت می‌کنه. پایتون در نوع خودش یک زبان جدید و مدرن محسوب میشه، ابزارهای زیادی داره و خب تقریبا هرجا که ۲-۳ تا برنامه نویس دور هم جمع باشن با تقریب خوبی دو سومشون از پایتون سردرمیارن.

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

سینتکس، مهم ترین عامل

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

def factorial(n):
 if n == 0:
  return 1
 else: 
  return n * factorial(n-1)

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

نمونه کدهای بسیار

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

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

هوش مصنوعی و یادگیری ماشین

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

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

وب

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

سایر حوزه ها و پایتون

خب دو حوزه AI و وب معمولا جایین که پایتون خیلی خیلی بولد میشه، در حالی که پایتون در سایر حوزه ها هم حرفی برای گفتن داره معمولا. زبانی که تا این حد پویایی داره تقریبا برای هرچیزی یک راه حلی ارائه داده و برای مثال، آخرین چیزی که من کشف کردم، ابزار MyHDL بود که یک «زبان توصیف سخت افزار» بر پایه پایتونه! پس اگر در حوزه های متفاوتی کار می‌کنید هم نگران نباشید، تقریبا در این زبان ابزار همه کاری پیدا میشه، ضمن این که شما مجبور نیستید حتما به این زبان مهاجرت کنید!

حرف آخر

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

منبع

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

تصور کنید که مشغول انجام کاری در محل کار خود هستید و ناگهان با مشکلی روبرو می‌شوید. چه می‌کنید؟ احتمالا از یکی از همکاران خود کمک می‌خواهید یا خودتان فکر می‌کنید تا به جواب برسید. ده سالی است که برنامه‌نویسان راه بهتری را یافته‌اند!

استک اوورفلو محیطی برای پرسش و پاسخ مخصوص برنامه‌نویسان است. این وب‌سایت، یکی از پربازدیدترین وب‌سایت‌های جهان است. این وب‌سایت، دهمین سالگرد تاسیسش را ماه گذشته جشن گرفت. بر اساس رتبه‌بندی الکسا، Stack Overflow شصت‌وپنجمین سایت محبوب دنیاست.این وب‌سایت، از سایت‌هایی مانند نیویورک تایمز نیز محبوب‌تر است. بیش از ۱۶ میلیون سوال تاکنون در این سایت قرار داده شده است و این سوالات بیش از ۲۵ میلیون جواب گرفته‌اند. استک اوورفلو اعلام کرده‌ است، این مطالب تاکنون ۱۲ میلیارد بازدید در سایت رایگان استک اوورفلو داشته‌اند.

استک اور فلو

همانند توئیتر، وسعت و تاثیرگذاری استک اوورفلو باعث شده تا در قامت یک شرکت ظاهر شود. استک اوورفلو بخشی از شرکت استک اکسچنج (Stack Exchange) است. این شرکت در زمینه‌ی پرسش و پاسخ در تمام موضوعات فعالیت دارد. در سال ۲۰۱۵، ارزش استک اکسچنج، بر اساس گفته‌ی یک شرکت خصوصی معتبر، ۴۶۰ میلیون دلار تخمین زده شده است. درآمدزایی استک اوورفلو، از طریق تبلیغات و  آگهی‌های استخدام است. تبدیل‌شدن استک اوورفلو به مرجعی برای اکثر برنامه‌نویسان باعث شده تا این وب‌سایت، منبع مناسبی برای بررسی ترندهای دنیای برنامه‌نویسی باشد. برای ثبت سوال در این سایت لازم است تا کاربر گروه مربوطه را انتخاب کند. این گروه‌بندی به سایر کاربران کمک می‌کند تا موضوع و سوال مد نظر خود را به‌راحتی پیدا کنند. مثلا اگر سوال کاربر در مورد زبان جاوا باشد، این گروه را انتخاب می‌کند تا زودتر به هدف برسد.

نگاهی به نمودارهای زبان مورد علاقه کاربران نشان از صعود پایتون دارد. تا سال ۲۰۱۲، سوالات مربوط به زبانپایتون تنها ۴ درصد بوده‌است. در سال ۲۰۱۸ حدود ۱۰ درصد سوالات مربوط به پایتون بوده‌ است. به‌نظر می‌رسد در سال ۲۰۱۹، بیشترین سوالات کاربران درباره‌ی جاوا اسکریپت باشد. جاوا اسکریپت زبانی برای برنامه‌نویسی وب است.

مقایسه محبوبیت زبان برنامه نویسی

مقایسه محبوبیت زبان‌های برنامه نویسی

محبوبیت پایتون در حال افزایش است، زیرا این زبان علاوه‌بر ساده بودن،‌ انعطاف‌پذیر نیز است. از پایتون می‌توان برای برنامه‌نویسی وب، انجام تسک‌های معمولی و مهم‌تر از همه، برای تحلیل داده استفاده کرد. در حال حاضر، پایتون اصلی‌ترین ابزار در علم داده است. علم داده سهم مهمی در علوم کامپیوتر دارد. با افزایش تمایل شرکت‌ها به بهره‌وری از داده‌ها با استفاده از هوش مصنوعی و یادگیری ماشینی، موقعیت‌های شغلی برنامه‌نویسان پایتون به‌شدت افزایش یافته است. تاثیر علوم داده در محبوبیت پایتون، کاملا از سوالات کاربران در استک اوورفلو مشخص است. سوالات در مورد ابزارهایی که ریاضیات سنگین را در پایتون آسان می‌کنند (مانند NumPy و Pandas)، ابزارهای مربوط به تصویرسازی داده‌ها (Matplotlib) و یادگیری ماشینی (TensorFlow) از سال ۲۰۱۲ همگی افزایش یافته‌اند.

کتابخانه پایتون

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



منبع : زومیت