زبان پایتون (Python) در سال ۱۹۹۱ توسط یک برنامهنویس هلندی به نام گیدو ون روسوم (Guido van Rossum) ابداع شد و از آن زمان تا کنون رشد قابل ملاحظهای را شاهد بوده است.
اگر چه وی در آن زمان گفته بود: «من به هیچ وجه قصد ندارم زبانی بسازم که به طور گسترده مورد استفاده قرار بگیرد» ولی اکنون و با گذشت نزدیک به سه دهه از آن تاریخ، پایتون تقریباً تمام رقبای خود را کنار زده و به اندازهای محبوبیت یافته که حتی افراد مبتدی نیز کدنویسی را با آن شروع میکنند.
در یک سال گذشته، «Python» یکی از کلماتی بود که شهروندان آمریکایی بسیار زیاد در گوگل جستجو کردهاند، حتی بیشتر از نام ستارههای تلویزیونی.
کتابخانه PIL که مخفف عبارت Python Imaging Library یا کتابخانه تصویر پایتون است، یکی از کتابخانههای پردازش تصویر با پایتون محسوب میشود. این کتابخانه، پشتیبانی از عملیات مرتبط با پردازش تصویر نظیر باز کردن، دستکاری و ذخیرهسازی تصاویر در فرمتهای مختلف را به زبان پایتون اضافه میکند. با این حال، توسعه آن از سال 2009 دچار وقفه شده است.
🔹 تو تایپیک قبل در مورد اینکه چه توابعی برای کلمات در پایتون وجود داره رو گفتیم، الان میخواهیم توابع رو برای رشته ها بگیم. باز یک تعریف کلی داریم و مثال ها رو تو بخش های بعدی خواهیم زد.
1️⃣ تبدیل کردن به حروف کوچک و بزرگ رشته ها و همچنین تبدیل یک رشته به حالت titlecase
s.upper() ; s.lower() ; s.title()
🔹 نکته ای که در توابع بالا نسبت به توابع مربوط به کلمات هست اینه که ما اینجا is رو نداریم. و در واقع اینجا نماییم بررسی کنیم که، آیا رشته ما با حروف بزرگ تشکیل شده یا کوچک.بلکه اینجا کار تبدیل کردن رو انجام خواهیم داد.
2️⃣ جدا کردن کلمات که بارها تو اسلایدهای قبل ازش استفاده کردیم و در بخش های بعدی هم استفاده خواهیم کرد.
s.split()
3️⃣حالا اگر بخواهیم یک سند رو یا یک پارگراف رو بر اساس خطوط جدا کنیم میتونیم از تایع زیر استفاده کنیم.
s.splitlines()
🔹نکته ای که اینجا هست و شاید براتون سوال باشه اینه چطور میتونیم در IDLE پایتون، یک رشته رو در چند خط بنویسیم.برای اینکار کافیه کوتیشن که برای رشته در ابتدا و انتهاش بکار برده میشه بجای یکی از سه تا استفاده کنیم.
>>> s="""how are
you today"""
>>> s
'how are\nyou today'
4️⃣ تابع join برای اتصال رشته ها به هم هست که ما تو بخش های بعدی مثال های خواهیم زد.
s.join()
5️⃣ تابع بعدی برای حذف می باشد وقتی از strip استفاده میکنیم و داخل پرانتر کارکتری رو وارد میکنیم سبب میشه که اون کارکتر از کل رشته حذف بشه و اگر از rsrtip استفاده کنیم از انتهای رشته فقط یک موردش حذف خواهد شد . حالا مثالهای رو در بخش های بعدی خواهید دید.
s.strip() ; s.rstrip()
6️⃣ دستور بعدی برای یافتن یک رشته یا کارکتر داخل رشته دیگه استفاده میشه.اگر عبارت داخل پرانتر در رشته بود اندیس شروع اون عبارت رو بعنوان خروجی برمیگردونه. اما یک تفاوت اساسی در rfind وجود داره اینه که در این تابع حتما باید کلمه مورد نظر بصورت جدا باشه.ما برای این مورد خاص همینجا یک مثال میزنیم
s.find() ; s.rfind()
مثال
>>> s1 = "this is really a string example....wow!!!";
>>> s2 = "is";
>>> s1.find(s2)
2
>>> s1.rfind(s2)
5
🔸 خوب تو مثال بالا کاملا تفاوت این دو تابع مشخصه که ما در rfind کلماتی رو پیدا میکنیم که مجزا باشند و ترکیب شده با حروف دیگری نباشند.
7️⃣ آخرین دستور این بخش دستور جایگزینی یا همون replace هست که میاد تو رشته میگرده و اگر عبارت u وجود داشت با v جایگزین خواهد کرد.
s.replace(u,v)
🔘 در آخر باید بگم حتما مثالهای گوناگونی برای این بخش خواهیم زد. تا تمام این توابع، کامل توضیح داده باشیم
در این دوره
تمامی مراحل لازم برای ساختن یک ماشین یادگیری تشخیص ایمیل اسپم آموزش داده میشود.
آموزشها از مباحث تئوری احتمالات آغاز شده و تا یادگیری Bayesian
ادامه مییابد. سپس مراحل لازم جهت پیادهسازی مباحث تئوری در پایتون از 0 تا 100
طی شده است.
مخاطبان این
دوره میتوانند روش یادگیری Bayesian
را که یکی از مشهورترین شیوههای یادگیری ماشین (Machine
Learning) میباشد، بصورت تئوری فراگرفته و با بکار
گیری آن در عمل به درک و شهود واقعی از آن برسند.
مقدمات برنامهنویسی
این دوره نیز بصورت کامل در آن آموزش داده میشود تا حتی عزیزانی که در حد مقدماتی
و پایینتر با پایتون آَشنایی دارند، بتوانند با ما همراه باشند.
پروژه عملی
آموزش داده شده در این دوره میتواند در کاربردهای وسیعتر پردازش متن، از جمله
تشخیص انواع متون از یکدیگر (مثل تشخیص متون سیاسی از غیر سیاسی، ورزشی از غیر
ورزشی و ...) بکار گرفته شود. این دوره برای کسانی که پیش زمینه اندکی از ماشین
لرنینگ و یا آمار و احتمالات در حد مقدماتی دارند مناسب میباشد.
لازم به ذکر
است جهت درک بهتر، در این دوره از هیچ کتابخانه آماده هوش مصنوعی و ماشین لرنینگ و
دیپ لرنینگ استفاده نشده و تمامی مراحل لازم از 0 تا 100 پیادهسازی شده است.
📘 فرمت تمام
ویدئوها بصورتmp4می باشد که به راحتی با نرم افزارهای پخش مدیا اجرا
خواهند شد.
📘 در صورت
بروز هر گونه مشکل در خرید و دانلود با پست الکترونیکیsendticket.py@gmail.comبا ما در ارتباط باشید.
📘 سرفصل دوره
در بخش زیر قابل مشاهده میباشد، بخشهای
که به رنگ آبی است بصورترایگانقابل دانلود
میباشد.
این روزها تقریبا هر شخصی که دستی در کد زدن و برنامه نوشتن داره، از زبان پایتون صحبت میکنه. پایتون در نوع خودش یک زبان جدید و مدرن محسوب میشه، ابزارهای زیادی داره و خب تقریبا هرجا که ۲-۳ تا برنامه نویس دور هم جمع باشن با تقریب خوبی دو سومشون از پایتون سردرمیارن.
در این مطلب، قصد دارم به سوالی که پرسیدم پاسخ بدم. «چرا باید پایتون بلد باشیم؟». امیدوارم این متن رو حوصله کنید و تا آخر بخونید، چون حاصل مشاهداتیه که در چند سال اخیر از جامعه برنامه نویسان ایرانی داشتم.
سینتکس، مهم ترین عامل
اصولا وقتی شما قرار باشه زبانی رو برای برنامه نویسی انتخاب کنید، احتمالا اولین گزینهای که بررسی میکنید سینتکس اون زبانه. چرا؟ چون وقتی سینتکس زبان ساده باشه، مشخصا یادگیریش هم ساده تر میشه. پایتون با تقریب خوبی نزدیک ترین سینتکس رو به زبان آدمیزاد داره (نه صرفا انگلیسی، زبانی که آدمیزاد بتونه بفهمه) و همین خودش یک نکته مثبت در این زبانه. برای مثال بیاید یک قطعه کد پایتون رو ببینیم :
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
این قطعه کد برای ما فاکتوریل یک عدد ورودی رو محاسبه میکنه. به همین سادگی. خیلی از درگیری هایی که در زبانهای دیگر مثل C داشتیم رو اینجا نداریم، صرفا ایدهای که در ذهنمون اومده رو مینویسیم و اگر اصولی که در این زبان وجود داره رو رعایت کرده باشیم، احتمالا در کمترین زمان ممکن اجرا میشه.
نمونه کدهای بسیار
بعنوان دانشجوی کامپیوتر دست کم ۲۰ واحد درسی داریم که مستقیما به کد زدن ما مربوط میشن. تقریبا از بعد از برنامه نویسی پیشرفته، یعنی از دروسی مثل ساختمان داده و الگوریتم دیگه کم کم اون انحصار از دست یک زبان خارج میشه (برای مثال در دانشگاه ما ++C ) و انتخاب زبان برای پروژه ها، بر عهده خود شخص دانشجو خواهد بود. در دروسی مثل طراحی الگوریتم، بیش از این که زبان پیاده سازی مهم باشه، درک الگوریتم و پیدا کردن راه های پیاده سازیشه که مهمه. عموم الگوریتم های مهمی که در این درس توضیح داده میشن هم، توسط پایتون پیاده سازی شدند و در اینترنت موجودن.
در واقع وقتی در یک زبانی نمونه کد زیادی موجود باشه، نشان از اینه که این زبان پویایی داره و زندهست. پس این میتونه دلیل خوبی باشه بر یادگیری پایتون!
هوش مصنوعی و یادگیری ماشین
این روزها موضوعات مربوط به هوش مصنوعی در همه محافل کاملا نقل مجلس شدند و محاله شما ازشون نشنوید. حتی در جوامع هنری هم این بحث وارد شده و البته تا حد زیادی هم مایه نگرانی خیلی از اشخاصیه که از جایگزینی ماشین با انسان، ترس دارند.
اگر بخواهید در این زمینه فعالیتی کنید، احتمالا بعد از این که ریاضیات و پایه های علمیش رو یاد بگیرید، به شما یکی از کتابخانه های پایتون معرفی میشه جهت انجام پروژه. بهرحال، بسیاری از کتابخانه های قدرتمند مثل تنسرفلو، کراس و ... برای زبان پایتون ساخته شدند و دونستن پایتون شما رو در این مساله به شدت جلو میندازه.
وب
در بازار وب هم، با وجود ابزارهای بسیاری که موجودند، پایتون با فریمورک های جنگو و فلاسک همچنان از پیشتازان ماجرا محسوب میشه. بسیاری از شرکتهای بزرگ روی جنگو یا فلاسک هستند یا حداقل بخشی از API هاشون روی این فریمورکها نوشته شده. البته پایتون دونستن برای بازار وب کافی نیست و احتمالا مجبور خواهید بود از اسمشو نبر هم استفاده کنید!
سایر حوزه ها و پایتون
خب دو حوزه AI و وب معمولا جایین که پایتون خیلی خیلی بولد میشه، در حالی که پایتون در سایر حوزه ها هم حرفی برای گفتن داره معمولا. زبانی که تا این حد پویایی داره تقریبا برای هرچیزی یک راه حلی ارائه داده و برای مثال، آخرین چیزی که من کشف کردم، ابزار MyHDL بود که یک «زبان توصیف سخت افزار» بر پایه پایتونه! پس اگر در حوزه های متفاوتی کار میکنید هم نگران نباشید، تقریبا در این زبان ابزار همه کاری پیدا میشه، ضمن این که شما مجبور نیستید حتما به این زبان مهاجرت کنید!
حرف آخر
چیزی که دانشجو رو زنده نگه میداره، بخصوص دانشجوی کامپیوتر (نه حتما شخصی که در دانشگاه مشغول تحصیله) یادگیری بیش از پیشه. اگر این مطلب رو نوشتم (که هیچوقت فکرش رو نمیکردم بنویسم!) به این خاطره که چند روز اخیر خیلی درگیر پایتونم و پروژه دوست عزیزی با هدف فارسیزایی هم باعث شد که بیش از پیش به اهمیت این زبان پیببرم. من تخصصی روی پایتون کار نمیکنم و ادعایی هم در زمینه پایتون ندارم، ولی این روزها لازم میبینم به همه توصیه کنم که تا حدی این زبان رو یاد بگیرند. امیدوارم این مطلب برای شما مفید واقع شده باشه :).