با یکی دیگر از آموزشهای این مجموعه در خدمت شما عزیزان هستیم.
در این دوره آموزشی قصد داریم در مورد زبان پایتون که یکی از قویترین و پرکاربردترین زبانهای برنامهنویسی حال حاضر در دنیا است، صحبت کنیم. با این آموزش با ما همراه باشید.
چگونگی معرفی انواع داده ها در نرم افزار پایتون
در بحث گذشته با نحوه نصب و راه اندازی نرم افزار پایتون آشنا شدیم و در این جلسه با بخش بعدی آموزش زبان پایتون در خدمت شما عزیزان هستم. تا اینجای کار علامت نصب و راهاندازی و آمادهسازی محیط کدنویسی را انجام دادیم و دیگر میتوانیم وارد محیط کدنویسی شویم. یکی از مهمترین مواردی که در هر زبان برنامهنویسی مطرح میشود، این است که این زبان چگونه با انواع مختلف دادهای سروکار دارد و آنها را ارائه میدهد.
به طور کلی میتوان گفت عمدهی کارهای زبان برنامهنویسی سروکار داشتن با انواع مختلف دادهای است. اطلاعاتی که در اطراف ما وجود دارند، انواع مختلفی دارند؛ قیمت یک محصول، فاصلهی بین دو تا نقطه، تعداد کارکنان یک شرکت، نام و نام خانوادگی یک شخص، تاریخ اعلان نتایج کنکور و بسیاری موارد دیگر انواع مختلف اطلاعاتی هستند که در اطراف ما وجود دارند. حتی همین نوع دادههایی که مطرح کردم، خودشان دستهبندی میشوند.
به عنوان مثال فاصله بین دو تا نقطه و تعداد کارکنان یک شرکت را در نظر بگیرید. فاصله بین دو نقطه میتواند هر عددی باشد حتی اعشاری؛ مثلا میگویند فاصله ۵/۲ متر است یا مثلا میگویند ۵/۴ کیلومتر است اما تعداد کارکنان یک شرکت همیشه یک عدد صحیح است. ما ۵/۲ نفر کارمند نداریم.
در زبان پایتون اعداد ما به دو دسته کلی اعداد صحیح و اعداد اعشاری تقسیمبندی میشوند که به اعداد صحیح integer میگویند و برای اعداد اعشاری از واژهی float استفاده میکنند. البته نوع عددی دیگری را هم داریم که به complex شناخته میشود که در مورد آن صحبت میکنیم.
دلیل اینکه به اعداد اعشاری float میگویند، به خاطر آن float pointای است که برای نمایش اعشار از آن استفاده میکنند.
حال به سراغ نرمافزار میرویم و با هم مثال را حل میکنیم. میخواهیم یک مثال را با همدیگر پیادهسازی کنیم.
نرم افزار ویژوال استودیو کد را باز میکنیم. یک نکته را در اینجا متذکر میشوم که من از نسخه insider ویژوال استودیو کد استفاده میکنم و فرقی با نسخه خود ویژوال استودیو کد معمولی ندارد. البته نمیتوان گفت که تفاوتی ندارد. تفاوت فاحشی ندارد و دقیقا به همان صورت است.
در کارت پروژه انجام تمام خدمات مدنظر شما در کمترین زمان ممکن امکان پذیر بوده و پروزه های شما با بهترین کیفیت تهیه خواهد شد.
از این قسمت یک file جدید ایجاد میکنیم و نام آن را main.py میگذاریم.

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

enter را میزنیم مشاهده میکنیم که فایل آن ایجاد شده است.
مشاهده میکنید که با استفاده از همان اکستنشن material icon themeای که نصب کردیم، برای ما آیکن آن را تغییر داده است. یک دستور معمولی مینویسیم و میگوییم Mohammad را print کند.
آن را ذخیره میکنیم از همین قسمت کلیک راست میکنیم و روی گزینهی Run Python File in Terminal کلیک میکنیم.
مشاهده میکنیم که Mohammad را در اینجا برای ما نمایش میدهد.

البته میتوانید از همین قمست کلید f5 را بزنید. یک تب در این بالا باز میشود و روی گزینه python File Debug the currently active Python file (یعنی این را برای ما run کند) کلیک میکنیم.
enter را میزنیم.
مشاهده میکنیم که باز هم خروجی ما به همان صورت است.
Mohammad را برای ما چاپ میکند. منتهی الان به تب مربوط به Debug میرود.

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

برای مثال ما اینجا گفتیم که این رشته (نام Mohammad) را print کند.

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

میتوان گفت یک دستوری است که برای ما نوع دادهای را برمیگرداند. به عنوان مثال میگوییم type مربوط به عدد ۵ را برای ما برگرداند.
روی آن کلیک راست میکنیم و گزینهی Run Python File in Terminal را کلیک میکنیم.
مشاهده میکنید که Mohammad را چاپ کرده است. بعد از آن <class ‘int’> نوشته شده است که int مخفف integer است.

بعدا در مورد خود این class صحبت میکنیم. در حال حاضر ذهن خود را درگیر آن نکنید. فقط integer را نگاه کنید.
این بار میخواهیم type مربوط به عدد 5.3 را print کند.

به نقطه بین 5 و 3 float میگویند. در اصل float point عدد 5.3 این نقطه «.» است.
در اینجا باز هم دستور خود را اجرا میکنیم و میگوییم که python را run کند.

مشاهده میکنید که Mohammad آمده است و در خط بعد <class ‘int’> و در خط بعد هم <class ‘float’> چاپ شده است.
چاپ class float و class int
Complex Type که در مورد آن صحبت کردیم چیست؟
میخواهیم یک کپی از print(type(5.3)) بگیریم. Ctrl , c و بعد ctrl , v را میزنیم. خودش آن را در پایین قرار میدهد.

به جای 5.3 قرار میدهیم 5j. آن را ذخیره میکنیم.

بر روی آن کلیک راست میکنیم و Run python File in Terminal را انتخاب میکنیم.
در پایین صفحه int، float و complex را مشاهده میکنید. complex به اصطلاح نوع داده پیچیده است که همان معنی complex است.
اگر میخواهید بدانید type نوشته Mohammad چیست، همین نوشته ‘Mohammad’ را برمیداریم، آن را copy میکنیم و در خط ۶ میگوییم type مربوط به ‘Mohammad’ را print کند. باز هم بر روی آن کلیک راست میکنیم و گزینه Run python File in Terminal را کلیک میکنیم.
در پایین تصویر مشاهده میکنید که نوشته شده str. بعدا در مورد آن بسیار صحبت میکنیم. str همان string است که یک رشته است. بعدا به صورت مفصل در مورد آن صحبت خواهیم کرد. فعلا با آن کاری نداریم و آن را پاک میکنیم.

بحث بعدی این است که میخواهیم دو عدد را با همدیگر جمع کنیم. اکنون با سه مورد خط ۳ و ۴و ۵ آشنایی دارید و فهمیدید که 5 یک int است، 5.3 به دلیل float point ای که دارد، یک عدد float (اعشاری) است و 5j هم یک complex یا نوع دادهای پیچیده است که عدد و حرف با هم ترکیب شدهاند. ماوس را که روی آن قرار دهیم، مشاهده میکنید که type آن را به ما نشان میدهد که complex است.

ماوس را روی 5.3 قرار میدهیم و float را در تصویر زیر مشاهده میکنید.

ماوس را روی 5 قرار میدهیم و مشاهده میکنیم که int را نشان میدهد.

ماوس را روی Mohammad قرار میدهیم و مشاهده میکنیم که str را نشان میدهد.

اینها همان type هستند. وظیفه type برگرداندن نوع آن دادهای است.
حال با همدیگر یک سری عملیات ریاضی انجام میدهیم. برای مثال میگوییم 3+6 را print کند.

Alt, shift, F را میزنیم تا کمی کدها مرتب شود و بعد روی آن کلیک راست میکنیم و …

البته اجازه دهید در اینجا کمی زیباسازی انجام دهیم. میگوییم این خط زیر را برای ما چاپ کند که اینها از همدیگر جدا شوند. بعد کلیک راست میکنیم و Run Python File in Terminal را انتخاب میکنیم.
مشاهده میکنید که عدد 9 را در اینجا برای ما آورده است که ۳ به اضافه ۶ میشود ۹ و برای ما آن را چاپ کرده است و همانطور که میدانید print به معنی چاپ کردن است.

ماوس را که روی آن (print) قرار دهید، یک سری توضیحات را برایتان میآورد که به زبان انگلیسی است و میتوانید آن را مطالعه کنید.

دو تا عدد صحیح را در اینجا با هم جمع کردیم و خروجی آن نیز یک عدد صحیح شده است.
به سراغ کد بعدی میرویم. میگوییم عدد 6 + 7.2 را print کند. جواب 13.2 میشود. بر روی کد کلیک راست میکنیم و گزینه Run Python File in Terminal را انتخاب میکنیم.

13.2 را برای ما چاپ کرده است.
مشاهده میکنید که یک عدد صحیح با یک عدد اعشاری جمع شده است و type آن 13.2 شد.
یک نکته وجود دارد که اگر بخواهیم عدد 7 را به صورت float نمایش دهیم، عدد 0 را بعد از نقطه قرار میدهیم. 7.0 در اصل همان 7 است اما نوع دادهای آن float است. روی آن کلیک راست میکنیم و گزینهی Run Python File in Terminal را انتخاب میکنیم.
اگر run را بزنیم، به نظر شما چه نوع عددی را برمیگرداند؟ float یا int؟
همانطور که مشاهده کردید، 13.0 را چاپ کرده است. پس مشاهده کردید که حاصل جمع یک عدد صحیح با یک عدد اعشاری یک اعداد اعشاری است.
حال دو عدد اعشاری را با هم جمع میکنیم. print(6 + 7.0) را کپی پیست میکنیم و عدد 6 را به 6.9 تغییر میدهیم.

آن را ذخیره میکنیم. بر روی آن کلیک راست میکنیم و گزینهی Run Python File in Terminal را انتخاب میکنیم.

مشاهده میکنید که 13.0 و 13.9 چاپ شده است. البته ما در اینجا فقط داریم عملیات جمع را انجام میدهیم. میتوانیم عملیات تفریق را هم انجام دهیم.

چهار عمل اصلی در اینجا مجاز است و مشکلی ندارد.
4.9 – 7.0 را میخواهیم چاپ کند. f5 را میزنیم، از منوی ظاهر شده گزینه python file debug the currently active python file را انتخاب میکنیم تا آن را run کند.
خروجی را در تصویر زیر مشاهده میکنیم.

در خروجی -2.0999999999999996 را چاپ کرده است که یک عدد اعشاری با تعداد رقم اعشار بسیار زیاد است. چرا به این صورت نمایش داده شد؟ مگر 7 – 4.9 جوابش 2.1 نباید باشد؟ چرا به این شکل نشان داده است؟ .0 را از جلوی 7.0 برمیداریم و 7 را باقی میگذاریم که یک عدد int یا صحیح است و یک عدد اعشاری از آن منها شده است.
حال آن را اجرا میکنیم.
در خروجی مشاهده میکنیم که باز هم همان عدد -2.0999999999999996 را چاپ کرده است. چرا به این شکل نمایش میدهد؟ وجود این اعشار به چه دلیل است؟ جلوتر در مورد آن صحبت میکنیم و میگوییم که به چه علت چنین اتفاقی میافتد.
فعلا همین 4.9 را 4 میکنیم که 4-7 را داشته باشیم. F5 را میزنیم و آن را run میکنیم.

مشاهده میکنیم که عدد صحیح -3 را برای ما چاپ کرده است. بعدا در مورد آن نکته صحبت میکنیم و میگوییم به چه دلیل آن اتفاق میافتد.

در مورد عملیات دیگر هم صحبت میکنیم. چند تا از این کدها را کپی پیست میکنم. و print(‘————–‘) در خط ۷ را برمیداریم و در خط ۱۱ پیست میکنیم که یک خط قرار دهد و برای مثال علامت – (منها) در خط ۱۳ را به + (جمع) تغییر میدهیم، در خط ۱۴ همانی که بود را میگذاریم باشد. خط ۱۵ را به * (ضرب) تغییر میدهیم و خط ۱۶ را به 49 – 7 تغییر میدهیم.
مجدد f5 را میزنیم و آن را اجرا میکنیم.

4+7 میشود 11؛ 4-7 میشود -3؛ 4*7 میشود 28 و 49-7 هم میشود 42 که البته ما قرار بود در این مورد به جای علامت منها (-) علامت تقسیم (/) را قرار دهیم. علامت تقسیم slash (/) است. در خط ۱۶ 49-7 را به 49/7 تغییر می دهیم و مجدد اجرا میکنیم.

مشاهده میکنید که در خروجی 7.0 را نمایش داده است.

یک نکته را باید بگویم که در تقسیم در زبان پایتون خروجی همیشه به صورت یک داده float است. همانطور که در اینجا میتوانید مشاهده کنید. میدانید که ۴۹ بر ۷ بخشپذیر است؛ جواب تقسیم ۷ است و باقیمانده تقسیم صفر است. اما مشاهده میکنید که در خروجی 7.0 را نمایش داده است. برای ما به صورت float برگردانده است.
البته این نکته را هم باید بگویم که قواعد ریاضی در اینجا دقیقا اعمال میشوند. به طور مثال میگوییم 1+3*4/2 را print کند. به نظر شما خروجی چه عددی خواهد بود؟ ابتدا ضرب و تقسیم و بعد جمع انجام میشود. ۳ ضربدر ۴ میشود ۱۲ و ۱۲ تقسیم بر ۲ میشود ۶ و ۶ به اضافه ۱ میشود ۷. حال f5 را میزنیم و این دستور را اجرا میکنیم و میخواهیم خروجی را برای ما برگرداند.
مشاهده میکنید که باز هم 7.0 را آورده است. و اعشار .0 به دلیل وجود همان تقسیم (/) است. با قرار دادن یک تقسیم باز هم float را میآورد و یک عدد اعشاری را نمایش میدهد. جواب 3*4/2 اعشاری میشود و وقتی به اضافه عدد int (صحیح) میشود، یک عدد اعشاری (float) میشود.
با استفاده از پرانتز هم میتوانید اولویتها را تغییر دهید. برای مثال میگوییم ابتدا 1 و 3 را با همدیگر جمع کند. اول و آخر 1+3 یک پرانتز قرار میدهیم که در این صورت ابتدا پرانتز بعد ضرب و بعد تقسیم محاسبه میشود. حال f5 را میزنیم و آن را اجرا میکنیم تا خروجی نمایش داده شود.
مشاهده میکنید که خروجی دیگر 7.0 نیست و 8.0 شده است. چگونه؟ 1+3 میشود 4. 4*4 میشود 16 و 16/2 میشود 8.0
باز هم داده به صورت float برگشته است.

حال میخواهیم در مورد یک نکته دیگر صحبت کنیم. بسیاری از مواقع پیش میآید که ما میخواهیم یک سری توضیحات را در متن و کد خود بنویسیم. و نمیخواهیم این کد اجرا شود. در این مواقع از کامنت (comment) استفاده میکنیم و باید کامنت بنویسیم.
به عنوان مثال در این تصویر در خط ۳ که با ماوس بر روی آن اشاره کردیم، میخواهیم یک سری توضیحات را بنویسیم.
میگوییم که این دستور در خط ۳ قرار است یک int برگرداند و خروجی آن int است. ما نمیتوانیم به عنوان مثال بنویسیم returns int از ما ایراد میگیرد. این نوشته مشکل دارد و نمیتوانیم چنین چیزی را بنویسیم. همانطور که در تصویر زیر مشاهده میکنید، با error مواجه میشویم.

اصلا این نوع نوشتن جالب نیست. توضیحات ما نوع خاصی دارد و باید با قالب خاصی کدنویسی کنیم و دستور خاص خودش را دارد. بسیاری از زبانهای برنامهنویسی از دوتا علامت slash (//) استفاده میکنند. اما در زبان پایتون اینطور نیست. ما در این زبان از هشتگ (#) استفاده میکنیم. مشاهده میکنیم که کمی نوشتهها کمرنگتر شده است. در اینجا دیگر هر چیزی که بخواهیم میتوانیم بنویسیم و هیچ مشکلی پیش نمیآید. برای مثال ما در اینجا میگوییم که type عدد 5، returns integer number type یعنی آن یک type ِ intبرای ما برمیگرداند.
در خط ۴ مینویسیم # returns float number type و داریم کامنت مینویسیم.
منظور از کامنت چیست؟ یک سری توضیحات هستند که زمان اجرا شدن اجرا نمیشوند.
در خط ۵ مینویسیم returns complex type

میخواهیم این قسمت پایین تصویر را پاک کنیم. دستور پاک کردن terminal، cls است. cls را میزنیم و enter میکنیم همه چیز پاک میشود.

حال کلیک راست میکنیم و run python file in Terminal را انتخاب میکنیم.
مشاهده میکنید که در خروجی شما دیگر این موارد (کامنتها) را نمیبینید.

به عنوان مثال برای تقسیم در خط ۱۶ یک کامنت قرار میدهیم و میگوییم # division always returns float یعنی تقسیم همیشه برای شما یک دادهی float برمیگرداند.
البته از کامنتنویسی و کامنت کردن به صورت کلی برای کار دیگری هم استفاده می شود.
به عنوان مثال ما دیگر نمیخواهیم Mohammad را در خروجی چاپ کتد.
اجازه دهید در پایین یک cls تایپ کنیم تا پایین صفحه پاک شود.

در خط یک ابتدای print (‘Mohammad’) یک هشتگ (#) اضافه میکنیم.
چاپ Mohammad
یک کلید میانبر هم برای این کار وجود دارد. روی خطی که میخواهید کامنت شود، کلیک کنید.

در این قسمت ctrl و / را بزنید.

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

Toggle line comment کلید میانبر آن ctrl و / است. اگر این دو کلید را با هم بزنید، برای شما آن خط را کامنت میکند. اگر یک بار دیگر این دو کلید را بزنیم، آن را از حالت کامنت درمیآورد و به اصطلاح toggle میکند.

ما میخواهیم print (‘Mohammad’) در خروجی نمایش داده نشود. آن را کامنت میکنیم و ذخیره میکنیم و بعد اجرا میکنیم.

مشاهده میکنید که Mohammad دیگر در خروجی وجود ندارد.
میخواهیم همه خطوط را کامنت کنیم. از خط ۳ تا ۱۵ را با هم انتخاب میکنیم و کلید میانبر ایجاد کامنت را میزنیم.

آن را ذخیره میکنیم. باز هم cls را در پایین تایپ میکنیم تا پاک شود.
حال میخواهیم آن را run کنیم.
مشاهده میکنید که فقط 7.0 و 8.0 را در خروجی نمایش داده است.
اگر خواستید دستوری اجرا نشود هم میتوانید از کامنت استفاده کنید. حال این کامنتها را به حالت عادی برمیگردانیم.

شما ممکن است با زبان برنامه نویسی دیگری آشنایی داشته باشید و بدانید که کلا کامنتنویسی به چه کاری میآید. ما بنا را بر این گذاشتیم که ممکن است مخاطبان ما برنامهنویس نباشند. میخواهیم یک سری توضیحات مقدماتی دهیم. مسئلهی مربوط به کامنتنویسی بسیار اهمیت دارد. فرض کنید که در یک گروهی دارید کدنویسی میکنید و یا در یک شرکتی دارید روی یک پروژه به صورت گروهی کار میکنید. کامنتنویسی به شما کمک میکند تا از روند عملکرد سایر برنامهنویسها آگاه باشید. یعنی اینکه بدانیم کدهایی که یک شخص دیگر روی پروژه نوشته است به چه صورت است و چگونه کار میکند. به نوعی میتوان گفت که به اصطلاح document نویسی است.
انشاءالله با همدیگر پیش میرویم و یکی یکی نحوهی استفاده از کامنتها و کامنتنویسی را هم یاد میگیریم.
در این جلسه درباره چگونگی معرفی داده ها با هم صحبت کردیم و در جلسه آینده ذرباره عملگرا ها صحبت می کنیم
ممنون که در این بخش با من همراه بودید و وقت ارزشمند خودتان را در اختیار بنده قرار دادید.
با سلام پاسخ این موضوع چه چیزی هستش؟چرا 2.099999999996 در خرجی نمایش داده میشه؟
در خروجی -2.0999999999999996 را چاپ کرده است که یک عدد اعشاری با تعداد رقم اعشار بسیار زیاد است. چرا به این صورت نمایش داده شد؟ مگر 7 – 4.9 جوابش 2.1 نباید باشد؟ چرا به این شکل نشان داده است؟ .0 را از جلوی 7.0 برمیداریم و 7 را باقی میگذاریم که یک عدد int یا صحیح است و یک عدد اعشاری از آن منها شده است.
حال آن را اجرا میکنیم.
در خروجی مشاهده میکنیم که باز هم همان عدد -2.0999999999999996 را چاپ کرده است. چرا به این شکل نمایش میدهد؟ وجود این اعشار به چه دلیل است؟ جلوتر در مورد آن صحبت میکنیم و میگوییم که به چه علت چنین اتفاقی میافتد.