<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های Taha Daneshmand</title><link>https://virgool.ir/feed/@taha-daneshmand</link><description></description><language>fa</language><pubDate>2026-11-11 15:51:39</pubDate><image><url>https://files.virgool.ir/upload/users/1728751/avatar/avatar.png</url><title>Taha Daneshmand</title><link>https://virgool.ir/@taha-daneshmand</link></image><item><title>آموزش پایتون-قسمت اول</title><link>https://virgool.ir/@taha-daneshmand/آموزش-پایتون-قسمت-اول-oxpmaohplkbt</link><description>سلام و درود به شما عزیزانی که این مقاله رو میخونید.من طاها دانشمند هستم و توی این مقاله میخوام زبون پایتون رو معرفی کنم...زبون پایتون یی از محبوب ترین زبون های برنامه نویسی حال حاضر هستاین توضیحات ویکی پدیا درمورد زبون برنامه نویسی پایتون هست: پایتون (به انگلیسی: Python، US: ‎/ˈpaɪθɑːn/‎) یک زبان برنامه‌نویسی شیءگرا، تفسیری، سطح بالا، و همه منظوره است، که خیدوفان روسوم آن را طراحی کرده‌است، و اولین بار در سال ۱۹۹۱ منتشر شده‌است. فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است و نویسه‌های فاصله خالی در آن معنادار هستند و مکرر استفاده می‌شوند. ساختار زبانی و دیدگاه شیءگرا در پایتون به گونه‌ای طراحی شده‌است که به برنامه‌نویس امکان نوشتن کد منطقی و واضح (بدون ابهام) را برای پروژه‌های کوچک و بزرگ می‌دهد.  کلمات کلیدی و اصلی این زبان به‌صورت حداقلی تهیه شده‌اند و در مقابل کتابخانه‌هایی که در اختیار کاربر است بسیار وسیع هستند.  بر خلاف برخی زبان‌های برنامه‌نویسی رایج دیگر که بلاک‌های کد در آکولاد تعریف می‌شوند (به‌ویژه زبان‌هایی که از نحو زبان سی پیروی می‌کنند) در زبان پایتون از نویسه فاصله و جلو بردن متن برنامه برای مشخص کردن بلاک‌های کد استفاده می‌شود. به این معنی که تعدادی یکسان از نویسه فاصله در ابتدای سطرهای هر بلاک قرار می‌گیرند و این تعداد در بلاک‌های کد درونی‌تر افزایش می‌یابد. بدین ترتیب بلاک‌های کد به صورت خودکار ظاهری مرتب دارند. در پایتون مدل‌های مختلف برنامه‌نویسی (از جمله شی‌گرا و برنامه‌نویسی دستوری و تابع محور) را پشتیبانی می‌شود و برای مشخص کردن نوع متغیرها از یک سامانهٔ پویا استفاده می‌شود.  این زبان از زبان‌های برنامه‌نویسی مفسر بوده و به‌صورت کامل یک زبان شیءگرا است که در ویژگی‌ها با زبان‌های تفسیری پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال مشابهت دارد و از مدیریت خودکار حافظه استفاده می‌کند.  زبان پایتون ۲ رسماً از سال ۲۰۲۰ دیگر پشتیبانی نمی‌شود و پایتون ۲٫۷٫۱۸ آخرین نسخهٔ پایتون ۲٫۷ و همچنین پایتون ۲ است و ازاین به بعد دیگر هیچ وصلهٔ امنیتی‌ای یا بهبود دیگری در این نسخه داده نخواهد شد. با پایان پشتیبانی از پایتون ۲ فقط پایتون ۳ نسخه‌های بعدی آن پشتیبانی خواهند شد.پایتون پروژه‌ای آزاد و متن‌باز توسعه‌یافته‌است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد.خب حالا این یعنی چی این همه اصطلاحات عجیب و غریب گفته اول از همه باید بدونیم:کامپایل و کامپایلر چیه؟ کامپایل به فرآیند ترجمه شدن کد ما به زبون کامپیوتر میگن و کامپایلر ابزاریه که اینکار رو انجام میده به طور مثال کامپایلر زبون C++ که یدونه هم نیست هرکی از یه چیزی استفاده می کنه مثلا gcc یکی  از این کامپایلر هایی است که برای زبون سی پلاس پلاس هستش یسری زبونا هم توسط مفسر تفسیر میشن این یعنی چی؟ مفسر یک نرم افزار کامپیوتری است که هر «عبارت» (گزاره | Statement) یا همان «خط کد» برنامه زبان‌های سطح بالا را به کدهای قابل خواندن برای ماشین تبدیل می‌کند. این کدها شامل «کدهای منبع» (Source Code)، کدهای از قبل کامپایل شده و اسکریپت‌ها می‌شوند. «کامپایلر» و مفسر هر دو هدف مشترکی دارند و آن هم تبدیل برنامه‌های نوشته شده با زبان‌های سطح بالا به کدهای ماشین است. مفسر یا همان Interpreter کدهای زبان سطح بالا را به زبانی میانی تبدیل می‌کند.همچنین این نرم افزار می‌تواند کدهای منبع سطح بالا را تجزیه کند و سپس دستورات را به طور مستقیم انجام دهد، در این حالت دستورات خط به خط یا عبارت به عبارت اجرا می‌شوند.  انسان‌ها فقط زبان‌های سطح بالا را درک می‌کنند، به کدهای این زبان‌ها، کدهای منبع گفته می‌شود.یعنی مثلا کد هایی که ما مینویسیم تفسیر میشه به یه زبون دیگه که کامپایلری باشه و اون کامپایل میشه به زبون کامپیوتر یا همون ۰ و ۱ یا همن باینری یا  همون دو دویی خب تا اینجا معنی اون بخش که میگه پایتون مفسری هستش رو فهمیدیم  اینکه شی گرا چیه شی گرا یه نوع برنامه نویسی هست که درحال حاضر خیلی مهمه با اینکه شی گرا چیه تو مباحث پیشرفته آشنا میشید و الان فقط بدون مهمه که زبون برنامه نویسی شی گرا باشه.  از طرف دیگر، کامپیوترها تنها برنامه‌های نوشته شده توسط زبان‌های دودویی یا باینری را متوجه می‌شوند. به همین دلیل در برنامه نویسی به یک کامپایلر یا مفسر نیاز است که کدهای سطح بالا را به کدهای سطح پایین تبدیل کند. زبان‌های برنامه نویسی با دو روش کامپایلری یا تفسیری پیاده‌سازی می‌شوند. همان‌طور که از نام کلمه مفسر مشخص است، این نرم افزار کدهای سطح بالا را به کدهایی تفسیر یا تبدیل می‌کند که برای ماشین قابل درک باشند یا آن‌ها را به کدهای زبان میانی تبدیل یا تفسیر می‌کند که به راحتی پیاده‌سازی شوند.(منبع: فرادرس) فلسفه اصلی طراحی پایتون «خوانایی بالای کد» است و نویسه‌های فاصله خالی در آن معنادار هستند و مکرر استفاده می‌شوند.یعنی توی زبون پایتون فاصله ها تاثیر دارن مثلا تو پایتونif a == b:&#xA;    print(10)وif a==b:&#xA;    print(10)درستن اماif a = = b:&#xA;    print(10)وif a == b:&#xA;print(10) اشتباه هستند حالا اینکه این چیزی که نوشتم چی بودش؟این کد یعنی اگر a با b مساوی بودش به کاربر نشون بده ۱۰ حالا a و b رو قبلش باید خودمون تعریف بکنیم حالا با اینا جلوتر آشنایی کامل تری پیدا می کنید.کلمات کلیدی و اصلی این زبان به‌صورت حداقلی تهیه شده‌اند و در مقابل کتابخانه‌هایی که در اختیار کاربر است بسیار وسیع هستند.  این یعنی کلمات اصلی این زبون تا حد امکان کم هستش اما کتابخونه های زیادی رو طراحی کرده که کاربر اگر خواست ازشون بهره ببره مثلا دیگه نیومده یه دستور بسازه که بیاد ساعت رو بگه عوضش یه کتابخونه خیلی کامل داره که ساعت تقویم تاریخ همه چی داره یا دیگه یه دستور برای رنگی کردن متن نذاشته اومده یه کتابخونه ساخته کلا برای کار با رنگ ها هستش :) بعد حالا یه امکانی هم داره که کاربرای پایتون کتابخونه بنویسن که جلو تر باهاش آشنا میشید که چجوری باید کتابخونه پایتون رو ساخت :) همه منظوره یعنی چی؟یعنی همه جا کاربرد داره مثلا توی وبسایت ها توی هک و امنیت توی اپ های موبایل توی بازی سازی توی برنامه های دسکتاپی(ویندوزی و لینوکسی و اینا) هوش مصنوعی و... :) که این خیلی خوبهدر پایتون مدل‌های مختلف برنامه‌نویسی (از جمله شی‌گرا و برنامه‌نویسی دستوری و تابع محور) پشتیبانی می‌شود.شی گرا رو گفتیم تو مباحث پیشرفته آشنا میشیم و از الان خودمون رو درگیرش نکنیم.برنامه نویسی دستوری و اعلانی:برنامه نویسی دستوری (به انگلیسی: Imperative programming) در علوم رایانه یکی از شیوه های برنامه نویسی است که در آن مراحل اجرای یک برنامه کامپیوتری قدم به قدم توسط برنامه نویس بیان می شود. این بر خلاف زبانهای اعلانی است که در آنها تنها نتیجه انجام دستورات بیان می شود. به بیان دیگر در زبانهای دستوری چگونگی اجرای برنامه بیان می شود اما در زبانهای اعلانی چیستی نتیجه بیان می شود.(منبع: ویکی پدیا) ( این تو برنامه نویسی اعلانی رو هم توضیح داده :) )به عنوان مثال اگر قصد باز کردن دری را داشته باشیم و با زبان اعلانی این را بخواهیم بیان کنیم خواهیم گفت در را باز کن اما اگر با زبان دستوری بیان کنیم خواهیم گفت بلند شو، به طرف در نزدیک شو، دستگیره را بگیر و در را به طرف بیرون هل بده.بر خلاف برخی زبان‌های برنامه‌نویسی رایج دیگر که بلاک‌های کد در آکولاد تعریف می‌شوند (به‌ویژه زبان‌هایی که از نحو زبان سی پیروی می‌کنند) در زبان پایتون از نویسه فاصله و جلو بردن متن برنامه برای مشخص کردن بلاک‌های کد استفاده می‌شود. به این معنی که تعدادی یکسان از نویسه فاصله در ابتدای سطرهای هر بلاک قرار می‌گیرند و این تعداد در بلاک‌های کد درونی‌تر افزایش می‌یابد. بدین ترتیب بلاک‌های کد به صورت خودکار ظاهری مرتب دارند. این یعنی چی؟توی زبون هایی که شبیه سی هستن ماها به جای اینکه ۴ تا اسپیس یا یه تب بزاریم از []  , {} , () و... استفاده می کنیم اما پایتون این رو نداره نه اینکه اصلا نداشته باشه داره اما اونقدر نیست مثلا همون کدی که نوشته بودم رو اگر پایتون نگارشش شبیه سی بود باید اینجوری مینوشتیمif a == b:&#xA;{&#xA;print(10)&#xA;}حالا فاصله هم میخواستیم بزاریم باید توی {} مینوشتیم در هر حال اما برای راحتی بیشتر پایتون این رو نداره  برنامه نویسی تابع محور چیه حالا؟ این رو هم بعدا جلوتر میفهمید چیه اما چیز کاربردی و خیلی خوبیه نوع متغیرها از یک سامانهٔ پویا استفاده می‌شود. یعنی اینکه پایتون خودش اوتومات تشخیص میده متغیر شما متنه عدده یا چیز های دیگه اما توی خیلی زبونا خودتون باید بگید مثلا میخوایم توی یک زبان فرضی که متغیراش داینامیک نیست عدد 5 را در متغیر a ذخیره کنیم:int a = 5;همین کار رو تو پایتون انجام بدیم میشه این:a = 5اگر جایی رو بد نوشتم یا خوب توضیح ندادم یا سوالی داشتید توی کامنت ها بنویسید جواب میدم. امیدوارم براتون مفید بوده باشه</description><category>Taha Daneshmand</category><author>Taha Daneshmand</author><pubDate>Tue, 02 Aug 2022 11:05:46 +0430</pubDate></item></channel></rss>