هنر برنامه نویسی با پایتون ، بخش دوم : آشنایی با متغیر و دیگر واژگان دنیای برنامه نویسی

کد ماشین یا زبان ماشین  (Machine code) یک مجموعه از دستورات در قالب دودویی ( رشته ای از صفر و یک ها) است که واحد پردازش مرکزی یک رایانه  (CPU) می تواند آنرا به طور مستقیم  اجرا کند  . هر دستور یک کار خاص را انجام می‌دهد، برای مثال: بارگذاری داده از حافظه به cpu و یا انجام یک عمل ریاضی بر روی یک واحد از داده‌ها  . زبان ماشین یک زبان سطح پایین نامیده می شود چرا که به طور مستقیم و بی واسطه توسط واحد پردازش مرکزی (CPU) رایانه اجرا می شود. و درک و بخاطر سپاری دستورات آن برای انسان سخت و دشوار است و برنامه نویسی با آن  طاقت فرساست.در مقابل به زبانهایی چون Java ، C++ و Python  که به زبان انسان نزدیک بوده و درک دستورات و منطق مدیریت داده ها در آن برای آدمی آسان است زبانهای سطح بالا  گفته می شود . 

 

زمانی که ما برنامه ای را با یک زبان برنامه نویسی سطح بالا می نویسیم ، رایانه و یا بهتر بگوییم واحد پردازش مرکزی آن  (CPU)توانایی اجرای مستقیم  برنامه مارا نخواهد داشت چرا که تنها زبان قابل اجرا توسط رایانه ، زبان ماشین است ، از این رو ما نیاز به ابزاری داریم که بتواند کد نوشته شده با یک زبان سطح بالا را به کد زبان ماشین تبدیل کند. این نرم افزار واسط که وظیفه تبدیل کد زبان برنامه نویسی سطح بالا به کد زبان ماشین را بر عهده دارد بر اساس چگونگی رفتار آن با کد زبان سطح بالا به نامهای همگردان (Compiler) و یا مفسر (Interpreter) شناخته می شود. به بیان دیگر تفاوت ، در روش خواندن کدهای زبان سطح بالا است ،  همگردان تمامی کد سطح بالا را به یکباره خوانده و همه آنرا به کد ماشین قابل اجرا در سخت افزار  تبدیل می کند در حالی که Interpreter کد سطح بالا را به هنگام اجرا خط به خط خوانده و هر خط را جداگانه به زبان ماشین ترجمه خواهد کرد.

در  اینجاست که دسته بندی جدیدی از زبانهای سطح بالا شکل می گیرد :

1-    زبانهای مفسری(Interprete) که برای ترجمه کد تولید شده توسط زبان به کد ماشین از مفسر (Interpreter) استفاده می کنند Python  ، PHP و Java Script از  شناخته شده ترین زبانهای برنامه نویسی مفسری هستند.

2-    زبانهای همگردانی (Compile) که برای ترجمه کد تولید شده توسط زبان به کد ماشین از همگردان(Compiler) استفاده می کنند . زبان های C++ ، C# و Java  از  شناخته شده ترین زبانهای برنامه نویسی کامپایلری هستند.


 محیط توسعه یکپارچه (IDE)

یک محیط توسعه یکپارچه (Integrated Development Environment (نرم‌افزاری است که امکاناتی چون : ایجاد و مدیریت یک پروژه برنامه نویسی ، ویرایشگر کد ، مفسر (Interpreter) و یا کامپایلر(Compiler) را در کنار قابلیت های مهمی چون اشکال زدایی از برنامه (Debugger) ، تکمیل کننده هوشمند کد ، و ... را یکجا و در کنار هم در اختیار برنامه نویس قرار می دهد. به ساده ترین و رسا ترین بیان ممکن محیط توسعه یکپارچه  ، هر آنچه را که یک برنامه نویس جهت  نوشتن ، اشکال زدایی و اجرای کد در کمترین زمان ممکن نیازدارد را در یک نرم افزار واحد یکپارچه کرده و به صورت یکجا در اختیار برنامه نویس قرار می دهد.

برای زبان برنامه نویسی Python محیط های توسعه یکپارچه گوناگونی وجود دارد که یکی از محبوب ترین نمونه های آن نرم افزار pycharm  است که توسط شرکت  jetbrains توسعه داده شده و پشتیبانی می شود  PyCharm IDE .یکی از معمول ترین محیطهای توسعه  است که توسط توسعه دهندگان و برنامه نویسان حرفه ای Python استفاده می شود. هرچند که این محیط می تواند به  برنامه نویسان تازه کار نیز کمک کند تا کدهای خود را بهتر و با سرعت بیشتری تولید کنند. برای دریافت این محیط برنامه نویسی پر طرفدار را  می توانید از نشانی زیر دریافت کنید.

https://www.jetbrains.com/pycharm/

 

لازم به یادآوری دوباره است که . ما در سرتاسر این آموزش ها کدهای خود را با نرم افزار Notepad++  خواهیم نوشت. این نرم افزار رایگان را  می توانید از نشانی https://notepad-plus-plus.org دریافت کنید.

 

 

 آشنایی با مفهوم متغیر :

 

 

فرض کنید می خواهید برنامه ساده ای  بنویسید که مساحت یک مثلث را محاسبه و در خروجی چاپ کند. از دیدگاه ریاضی می دانیم که مساحت یک مثلث از رابطه زیر بدست می آید :

                                                        

 

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

نیاز است بدانید که RAM را حافظه اصلی می نامند چرا که در برهم کنش سرراست با پردازنده (CPU) است و هیچ برنامه ای نمی تواند توسط پردازنده اجرا شود مگر آنکه پیش از آن درون حافظه اصلی نشسته باشد.

در زبان های برنامه نویسی به فضای مشخصی از حافظه اصلی رایانه (RAM) که برای ذخیره سازی موقت داده های مورد نیاز برنامه و یا نتایج حاصل از پردازش داده ها تخصیص می یابد  متغیر گفته می شود. به زبان ساده تر متغیر فضایی از حافظه اصلی رایانه است که برای ذخیره موقت داده ها در طول اجرای برنامه کنار گذاشته می شود. از این دیدگاه ، ساده تر آن است که متغیر را ظرفی در نظر بگیرید که به ما اجازه می دهد تا داده های خود را درون آن ذخیره کنیم و یا در زمان مورد نیاز داده ها را از آن برداشته و بکار گیریم. لازم به گفتن است که مدیریت حافظه یکی از وظایف بسیار مهم سیستم عامل است و کامپایلر و یا مفسر فضای مورد نیاز برای ذخیره داده ها ی مورد نیاز برنامه را از سیستم عامل تقاضا می کنند.

سیستم عامل ، حافظه اصلی رایانه را دنباله ای از بایت ها می بیند که بصورت خطی پشت سرهم قرار گرفته اند و هریک از آنها دارای یک نشانی (Address) یکتا و یگانه است. به هر بایت در حافظه اصلی یک خانه حافظه گفته می شود. هر خانه حافظه یک بایت گنجایش دارد و می تواند 8 بیت اطلاعات را در خود جای دهد. هر خانه حافظه دارای یک نشانی سخت افزاری منحصر به فرد است که توسط سیستم عامل به یک نشانی منطقی نگاشت می گردد. به بیان دیگر سیستم عامل حافظه اصلی را بصورت منطقی سازمان دهی می کند.

 همانگونه که در دنیای واقعی برای استفاده از یک ظرف ،  نخست  باید آنرا ساخت و سپس چیزی متناسب با جنس و ظرفیت ظرف درون آن قرار داد و در زمان مورد نیاز ، آنچه درون ظرف است را بکار گرفت ، در زبانهای برنامه نویسی هم تعریف و استفاده از متغیر در سه گام انجام می شود : در گام نخست متغیر مورد نظر تعریف می شود یعنی به آن یک نام داده می شود و نوع داده ای که می تواند در متغیر ذخیره شود نیز مشخص می گردد در دومین گام به متغیر تعریف شده مقداری اختصاص می یابد یعنی داده ای در آن ذخیره می گردد و آخرین گام دسترسی به متغیر و واکشی مقدار ذخیره شده در آن است.

از این رو از دیدگاه زبان برنامه نویسی یک متغیر با چهار ویژگی اصلی شناخته می شود :

 1- متغیر دارای یک نام است که به آن شناسه (Identifier) گفته می شود اختصاص نام به یک متغیر از رهنمون های ویژه ای پیروی می کند که در ادامه این درس به اصول نامگذاری متغیرها در زبان پایتون اشاره خواهد شد.

2- متغیر دارای یک نوع (Type) است ، نوع یک متغیر بیانگر نوع داده ای است که می تواند در متغیر ذخیره گردد. برای مثال اگر یک متغیر از نوع رشته ای تعریف گردد دیگر نمی توان در آن یک عدد ذخیره کرد.

 با توجه به آنکه هرنوع داده نیازمند پردازش ، در نهایت به دنباله ای از بیت های 0 و 1 تبدیل شده و به صورت الگوهای بیتی در خانه های حافظه اصلی ذخیره می گردد بنا براین نوع یک متغیر است که مفسر و یا کامپایلر را یاری می دهد تا تفسیر درستی از بیت های ذخیره شده در حافظه داشته باشد. برای مثال اگر الگوی بیتی   01000001 در خانه ای از حافظه (برای نمونه متغیری به نام age)  ذخیره شده باشد بدون مشخص بودن نوع متغیر مربوطه این الگو هم می تواند به عنوان عدد 65 تفسیر گردد و هم می تواند به عنوان کد اسکی نویسه A در نظر گرفته شود. فایده دیگر تعیین نوع داده برای یک متغیر امکان تعیین بیشینه تعداد بایت های مورد نیاز برای ذخیره مقدار متغیر در حافظه اصلی است.

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

1- داده های عددی شامل اعداد صحیح و اعشاری مانند : 12 ، 8.5 ، 25-

2- داده های متنی شامل حرف و رشته مانند : a ، م ، arash

3- داده های منطقی شامل دو مقدار TRUE (درست)  و FALSE(نادرست)

4- داده های مجموعه ای مانند آرایه ها ، لیست ها ، مجموعه و ...

5- داده های ساخت یافته مانند کلاسها و ...

3- مقدار (Value) متغیر که همان داده ذخیره شده در متغیر است . دادن مقدار به یک متغیر می تواند به هنگام تعریف متغیرانجام شود و یا پس از تعریف آن در خط های بعدی کد صورت پذیرد. به عملیات مقداردهی به یک متغیر انتساب گفته می شود. که در بیشتر زبانهای برنامه نویسی به وسیله عملگر انتساب (=) انجام می گیرد.

4- دامنه دید و یا حوزه یک متغیر (Scope) که بیانگر طول عمر یک متغیر بوده و محدوده ای از کد را مشخص می کند که متغیر در آن  معتبر بوده و قابل دسترسی است. در بیشتر زبانهای برنامه نویسی دامنه دید یک متغیر می تواند سراسر کد باشد و یا به بخش خاصی از کد محدود گردد. در حالت اول دامنه دید متغیر را سراسری (Global) و در حالت دوم محلی (Local ) می نامند.

 

تعریف متغیر در Python

تعریف متغیر در پایتون بسیار ساده است ، کافی است تا نامی برای متغیر مورد نظر خود در نظر بگیرید و آنرا مقداردهی کنید ،  به محض اختصاص مقدار به یک متغیر ، متغیر ساخته می شود.

مثال :

Name="Arash"

Pi=3.14


همچنین در پایتون نیازی نیست تا نوع متغیر به هنگام تعریف آن تعیین گردد ، مفسر پایتون نوع یک متغیر را بر اساس مقدار اختصاص داده شده به متغیر تعریف می کند. برای نمونه در مثال بالا متغیر Name از نوع رشته ای (String) و متغیر PI از نوع عددی تفسیر خواهد شد. برای درک بهتر این ویژگی پایتون یعنی بی نیازی از تعریف نوع متغیر نیاز است بدانید که در بسیاری از زبان های برنامه نویسی شما ناگزیر به تعیین نوع متغیر در زمان تعریف آن هستید برای مثال در c++ برای تعریف یک متغیر با نام Age که می تواند سن یک فرد را در خود نگهدارد و نوع آن یک عدد صحیح است از دستور زیر استفاده می شود :

Int   Age =45;

همان گونه که دیده می شود نوع متغیر (int) در ابتدای تعریف آن و پیش از نام متغیر آمده است

و یا در زبان Visual Basic تعریف و مقدار دهی همان متغیر به روش زیر انجام می شود :

Dim    Age    as   integer=45

در مثالی دیگر تعریف یک متغیر به نام StudentName که می توان نام یک دانش آموز را در آن ذخیره کرد در زبان c++ و کد برابر آن در زبان Visual Basic در زیر آمده است :

string     StudentName ="Arash"

Dim    StudentName     as    string="Arash"

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

Age=45

StudentName ="Arash"

به زبان ساده تر هر کد تعریف متغیر در پایتون دارای سه بخش : نام متغیر ، عملگر انتساب و مقدار متغیر است. عملگر انتساب در پایتون همان نویسه (=)  است که باید بین نام متغیر و مقدار آن قرار گیرد. برای مثال دستور زیر به مفسر پایتون می گوید که ابتدا متغیری به نام Pi تعریف و سپس مقدار عددی 3.14 را درون آن قرار دهد.

Pi=3.14

 

پس از تعریف یک متغیر و اختصاص مقدار به آن ، باز هم می توانید مقدار آنرا تغییر دهید، در این صورت مفسر پایتون نوع متغیر را بر اساس آخرین مقدار اختصاص داده شده به آن در نظر خواهد گرفت. و مقدار موجود در متغیر نیز آخرین مقدار اختصاص داده شده به آن خواهد بود.

مثال :

X=4

X="Arman"

Print(x)

  درمثال بالا در خط اول نوع متغیر x یک عدد صحیح در نظر گرفته خواهد شد و در خط دوم نوع همان متغیر به رشته ای تغییر خواهد یافت. و خروجی دستور print که بر روی نمایشگر برای کاربر نمایش خواهد یافت نیز Arman  خواهد بود.


اگر در برنامه خود می خواهید چند متغیر را در یک زمان مقداردهی کنید ، چنانچه مقدار تمام متغیرها یکسان است می توانید از روش بکاررفته در مثال زیر استفاده کنید :

مثال : در این مثال به چهار متغیر a , b , c , d مقدار 55 داده شده است. بنابراین تمامی دستورات print عدد 55 را چاپ خواهند کرد.

a=b=c=d=55


چنانچه چندین متغیری که می خواهید همزمان مقدار دهی کنید دارای مقدار متفاوت هستند می توانید از روش زیر استفاده کنید :

name, family, age="arash","izanlou",15

در این روش ، مقادیر تمامی متغیرهای سمت چپ عملگر انتساب (=)به ترتیبی که نامگذاری شده اند مقدار دهی می شوند و مقدار هر متغیر با علامت (،) از مقدار متغیر پیش از خود جدا می شود.


قوانین نامگذاری  متغیرها در Python  :

1- نام متغیرها نمی تواند با اعداد آغاز شود و باید با یک حرف و یا علامت خط زیر( _ ) شروع گردد.

2- نام متغیر نباید همنام دستورات و رهنمون های زبان برنامه نویسی پایتون باشد.

3- پایتون یک زبان حساس به بزرگی و کوچکی حروف است از این رو دو متغیر همنام که با حروف کوچک و بزرگ متفاوت نامگذاری شده اند را نمی تواند یکسان فرض کند و آنها را دو متغیر جداگانه در نظر خواهد گرفت.

4- در نام متغیر تنها می توان از حروف بزرگ و کوچک الفبای زبان انگلیسی ، اعداد و خط زیر(a-z , A-Z ,0-9 ,_)استفاده کرد و بکارگیری دیگر نشانه ها و علائم مجاز نیست. برای مثال استفاده از فضای خالی (Space ) در نام گذاری متغیرها مجاز نیست.

چند نمونه از نامگذاری صحیح متغیر ها :

myName="arman"

my_name="arman"

_my_name="arman"

MY_name="arman"

myname2="arman"

چند نمونه از نامگذاری نادرست متغیرها :

2mayname="arman"

My-name="arman"

My name="arman"

نکته : با هدف افزایش خوانایی برنامه و درک بهتر کد ، نام متغیر ها را با معنی و فراخور داده ای که  در آن ذخیره می شود انتخاب کنید برای نمونه بهتر است متغیری که نام یک دانش آموز را در خود نگهداری می کند StudentName  باشد تا  نامهایی چون sn یا name.

نکته : چنانچه نام متغیر از چند واژه مختلف تشکیل شده باشد خواندن آن دشوار است و موجب کاهش خوانایی برنامه و سخت تر شدن  درک کد نوشته شده می شود از این رو بهتر است در نامگذاری چنین متغیرهایی از یکی از سه شیوه زیر در نامگذاری متغیر پیروی کنید :

روش کوهان شتری (camel Case): در این روش بجز نخستین واژه  ، دیگر واژه ها با حروف بزرگ آغاز می شوند. یعنی بجز نخستین واژه ، اولین حرف دیگر واژه ها با حرف بزرگ نوشته می شود.

مثال :

  studentLastName = "arash"

مثال :

 personFirstName = "amiri"

روش Pascal Case  : در این روش هر واژه جداگانه موجود در نام متغیر، با حروف بزرگ آغاز می شود

مثال :

  StudentLastName = "arash"

مثال :

 PersonFirstName = "amiri"

روش حالت مار (snake_case) : در این روش هر واژه با یک علامت خط زیر (_) از واژه پیش از خود جدا می گردد :

مثال :

  student_last_name = "arash"

مثال :

 person_first_name = "amiri"

 

 

پایان بخش دوم هنر برنامه نویسی با پایتون

محمد ایزانلو

اردیبهشت 1401


 

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.