زبان برنامهنویسی پایتون (Python) به عنوان یکی از اصلی ترین و سریعترین زبانهای برنامهنویسی دنیا شناخته شده است که امروز در تمام علوم وارد شده و نقش بسزایی در پیشرفت دانش بشری داشته است. این زبان را گسترهی وسیعی از کتابخانهها، توابع تشکیل میدهند. در این درس به بررسی مفاهیم مقدماتی زبان برنامه نویسی پایتون می پردازیم و با ابتدایی ترین سینتکسهای این زبان آشنا خواهید شد.
زبان برنامه نویسی پایتون (Python) در تمامی سیستم عاملهای ویندوز، مکینتاش و لینوکس قابل اجراست. این زبان در دو ورژن ۲ و ۳ عرضه شد. که آخرین آپدیت آن در تاریخ ۱ اسفند ماه ۱۳۹۵ برابر Python 3.6.0 و Python 2.7.13 است. بسته به نوع نیاز خود میتوانید یکی از ورژنها را انتخاب کرده و آموزش خود را شروع کنید. اما توصیه تیم روکسو به شما عزیزان استفاده کردن از نسخهی ۳ به بالاست. زیرا برخی قواعد نگارشی و نحوی در این نسخه بهینهتر شده و سرعت عملکرد آن نیز تا حدودی افزایش پیدا کرده است، از طرفی آموزشهای شرکت روکسو نیز مبتنی بر نسخه ۳ می باشد.
IDE مخفف Integrated Development Environment یا همان محیط توسعه یکپارچه است که به شما کمک میکند تا نرمافزارها و کدهای خود را بهینهتر و با دقت بیشتری تولید کنید. همچنین یکی از وظایف ارزشمند IDE ها نحوهی خطایابی یا به اصطلاح دیباگ کردن کدها میباشد.
هنگامیکه شما زبان پایتون (Python) را دانلود و روی سیستم عامل خود نصب کنید، یک IDE پیشفرض در اختیار شما قرار میگیرد که درون خود فایل نصبی قرار گرفته است. اما توصیه تیم مهندسی روکسو به شما عزیزان این است که بجای استفاده از Shell یا IDE پیشفرض پایتون از IDE کمپانیهای قدرتمندی چون Microsoft یا JetBrain بهرهمند شوید. این دو شرکت به عنوان معتبرترین شرکتها در زمینه تولید IDE معرفی میشوند.
شرکت Microsoft در IDE خود تحت عنوان VisualStudio یک پک با نام PTVS در اختیار کاربران قرار میدهد تا بتوانند کدهای پایتون خود را به سادگی هرچه تمام تر دیباگ کرده و به مرحله اجرا در بیاورند. از طرفی شرکت JetBrain نیز IDE قدرتمندی تحت عنوان PyCharm ایجاد کرده که جزو قویترینها به حساب میآید. بسته به نوع انتخاب خود میتوانید هر یک از این دو IDE قدرتمند را دانلود کرده و مورد استفاده قرار دهید. لازم به ذکر است که IDE شرکت JetBrain در لینوکس بیشتر مورد استفاده قرار میگیرد. اشاره به این نکته ضروری است که پس از نصب سیستم عامل لینوکس، زبان برنامه نویسی Python در ورژن ۳.۶.۰ بر روی سیستم شما نصب میشود و تنها کافیست از IDE پای چرم برای تولید و اجرای کدهای خود استفاده کنید.
در این قسمت به آموزش نصب پایتون در ویندوز اشاره میکنیم و سپس نحوهی اجرای آن بر روی IDE ویژوال استودیو را ارائه خواهیم داد.
با انجام سه مرحلهی فوق ابزار کار شما آماده شده است و توانایی کدنویسی و نوشتن انواع مختلف برنامه را خواهید داشت.
مشابه تصویر زیر نرم افزار Visual Studio را باز کرده و مسیر File -> New -> Project را انتخاب میکنیم:
سپس در پنجره باز شده گزینهی Python را انتخاب کرده و در صفحه سمت راست نوع نرم افزار خود را انتخاب کنید. برای شروع Python Application بهترین گزینه است.
سپس به مسیر View -> Other Windows -> Python Environment و View -> Other Windows -> Python 64-bit 3.5 Interactive و پنجرههای مذکور را فعال کنید. در انتهای صفحه نمایش شما یک Python Interactive ظاهر میشود که در واقع همان Shell پیش فرض پایتون را برای شما شبیهسازی میکند و در سمت راست صفحه یک رابط تعاملی با پایتون برای شما ایجاد میشود که برای تنظیمات نرم افزار مورد استفاده قرار میگیرد. در تصویر زیر اشارهای به این دو صفحه کردهایم:
تا به اینجای کار نرم افزار ما آمادهی تولید شدن میباشد.
در صفحه Shell انتهای صفحه نرم افزار علامت <<< را مشاهده میکنید که به عنوان شروع خط فرمان شل وجود دارد. پس از این علامت عبارت زیر را تایپ کنید:
>>> 2 + 2 4
مشاهده میکنید که با نوشتن عبارت فوق مقدار ۴ را دریافت خواهید کرد. به 2 + 2 یک عبارت یا Expression گفته میشود که اصول بنیادی هر زبان برنامهنویسی است. عبارتها شامل مقادیر (values) و عملگرها (operators) هستند که کارهای محاسباتی را انجام میدهند.
در مثال قبلی، 2 + 2 محاسبه و مقدار ۴ به خروجی ما ارسال و نمایش داده شد. درصورتیکه هیچگونه عملگری را به کدهای خود اضافه نکنید با خروجی تک رقمی مواجه خواهید شد:
>>> 2 2
در جدول زیر عملگرهای محاسباتی زبان برنامهنویسی پایتون رو مشاهده خواهید کرد:
عملگر | عملیات | مثال | مقدار |
** | توان | 3 ** 2 | 8 |
% | باقیمانده تقسیم | 8 % 22 | 6 |
// | تقسیم عدد صحیح | 8 // 22 | 2 |
/ | تقسیم | 8 / 22 | 2.75 |
* | ضرب | 5 * 3 | 15 |
- | تفریق | 2 - 5 | 3 |
+ | جمع | 2 + 2 | 4 |
در عملیات عملگرها مشابه ریاضی اولویتهایی وجود دارد. بنابراین به ترتیب اولویت داریم:
به عنوان مثال داریم:
>>> (5-1) * ((7 + 1) / (3 - 1)) 16.0
و فرآیند اجرایی این عبارت برابر است با:
(5 - 1) * ((7 + 1) / (3 - 1)) | 4 * ((7 + 1) / (3 - 1)) | 4 * (( 8 ) / (3 - 1)) | 4 * (( 8 ) / ( 2 )) | 4 * 4.0 | 16.0
درنظر داشته باشید که عبارتها تنها مقادیر را با هم ترکیب کرده و محاسبه میکنند و در نهایت یک مقدار را در خروجی ما به نمایش میگذارند. یک نوع داده، دستهبندی مناسبی را برای مقادیر درنظر میگیرد و به عبارتی مقداری را درون خود ذخیره کرده و برای انجام هرگونه عملیاتی آن را آماده سازی میکند. در حالت کلی انواع دادهای در زبان برنامه نویسی پایتون به سه دستهی صحیح، اعشاری و رشتهای تقسیمبندی میشوند:
همانند تمام زبان های برنامه نویسی، رشتهها در پایتون به عنوان strings یا strs شناخته میشوند. و مقدار هر رشته درون یک جفت ' ' قرار میگیرد.
توجه: درصورتیکه در خط فرمان خود با خطای SyntaxError: EOL while scanning string literal مواجه شدید به احتمال خیلی زیاد قرار دادن کوتیشنها ' ' را فراموش کردهاید.
اتصال به معنی وصل کردن دو رشته به یکدیگر با استفاده از عملگرهاست. به عنوان مثال با استفاده از عملگر جمع + میتوانید دو رشته را به یکدیگر متصل کنید که در این حالت نام این عملگر از جمع به متصل کنندهی رشته (String Concatenation) تغییر پیدا میکند. مثال:
>>> 'Roxo' + '.ir' 'Roxo.ir'
با ترکیب دو مقدار فوق، یک رشتهی جدید تحت عنوان Roxo.ir ایجاد میشود. حال اگر شما تلاش کنید که یک رشته را با یک عدد جمع کنید با خطای زیر مواجه خواهید شد:
>>> 'Roxo' + 27 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Can't convert 'int' object to str implicitly
این ارور بدین معنیست که نمیتوان یک نوع دادهی int یا همان صحیح را به یک رشته به صورت درون سازمانی ضمنی (implicitly) تبدیل کرد. برای ترکیب این دو مقدار باید عدد مورد نظر را به صورت صریح Explicitly به نوع رشتهای تغییر داد. به بیان سادهتر: پایتون به صورت اتوماتیک یک دادهی اعشاری را به دادهی رشتهای تبدیل نمیکند و حتما باید از توابع خاصی برای انجام این امر استفاده کرد. در ادامه به توضیح دقیق این توابع میپردازیم.
عملگر * برای ضرب بکار گرفته میشود و در صورتیکه با رشتهها مورد استفاده قرار بگیرد، آن رشته را تکرار میکند که در این صورت به آن عملگر تکرار رشته (String Replication) گفته میشود. به عنوان مثال داریم:
>>> 'Roxo' * 5 'RoxoRoxoRoxoRoxoRoxo'
حال این سوال برای شما پیش میآید که اگر دو رشته را به توان یکدیگر یا یک عدد اعشاری برسانیم چه اتفاقی میافتد؟ به نمونهی خطای زیر توجه کنید:
>>> 'Roxo' * 'Masoud' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can't multiply sequence by non-int of type 'str' >>> 'Roxo' * 5.0 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can't multiply sequence by non-int of type 'float'
یک متغیر مشابه یک جعبه در حافظهی کامپیوتر است و به عنوان مکانیست که یک مقدار در آن ذخیره میشود. در صورتیکه بخواهیم از خروجی یک عبارت محاسبهشده، بعدها در برنامهی خود استفاده کنیم بهترین راه ذخیرهسازی آنها در یک متغیر است.
جملات انتسابی
مقادیر درون یک متغیر به همراه یک عملگر انتساب ذخیره میشوند. یک جمله انتسابی شامل نام متغیر، علامت = (عملگر انتسابی) و مقدار برای ذخیرهسازی است. اگر شما مقدار spam = 42 را تایپ کنید در واقع مقدار ۴۲ را درون متغیر spam ذخیره کردهاید. برای فهم بیشتر این موضوع به تصویر زیر دقت کنید:
حال برای نمونه مثالهای زیر را داخل خط فرمان تایپ میکنیم:
>>> spam = 40 >>> spam 40 >>> eggs = 2 >>> spam + eggs 42 >>> spam + eggs + spam 82 >>> spam = spam + 2 >>> spam 42
همچنین میتوان یک رشته را درون یک متغیر ذخیره کرد:
>>> spam = 'Hello' >>> spam 'Hello' >>> spam = 'Goodbye' >>> spam 'Goodbye'
برای اینکه درک دقیقی از مثال رشته بدست بیاورید به تصویر زیر مراجعه کنید. در این تصویر ابتدا مقدار Hello داخل متغیر spam ذخیره شده و سپس این مقدار از جعبه خارج و مقدار Goodbye جایگزین آن میشود:
نام متغیر
اسامی متغیرها در زبان برنامه نویسی پایتون مانند هر زبان برنامهنویسی دیگری از قواعد و قوانین خاصی پیروی میکند. این قوانین به شرح ذیل می باشد:
در مجموعهی زیر تعدادی از انواع صحیح و نادرست متغیرها را به نمایش گذاشتهایم:
Valid Variable Names Invalid Variable Names ====================================================== balance current-balance (استفاده از علامت - مجاز نیست) currentBalance current balance (استفاده از فضای خالی مجاز نیست) current_balance 4account (متغیرها نمیتوانند با اعداد شروع شوند) _spam 42 (متغیرها نمیتوانند با یک عدد معرفی شوند) SPAM total_$um (متغیرها نمیتوانند شامل علامت خاص مانند $ باشند) account4 'hello' (متغیرها با کاراکترهای خاص '' تعریف نمیشوند)
اسامی متغیرها به بزرگ و کوچک بودن حروف حساس هستند. یعنی نامهای SPAM, Spam, spam با یکدیگر متفاوت هستند.
در این سری از مجموعههای آموزشی زبان برنامه نویسی پایتون نام تمام متغیرها برای حفظ زیبایی و استاندارد کدنویسی همگی از نوع CamelCase (مانند lookLikeThis) هستند.
در صفحه IDE خود، عبارت سلام جهان (Hello World) را میخواهیم چاپ کنیم. بنابراین در وسط صفحه تایپ میکنیم:
# This program says hello and asks for my name. print ('Hello world!') print ("What's your name?") myName = input() print ("It's good to mMeet you, " + myName) print ('The length of your name: ', len(myName)) print ("What's your age?") myAge = input() print ('You will be ' + str(int(myAge)) + ' in a year')
پس از تایپ کردن کد بالا درون IDE گزینه save را از مسیر File -> Save انتخاب کرده تا کدهای شما ذخیره گردد. سپس روی گزینهی Run که به صورت یک فلش سبز رنگ است کلیک کنید (یا دکمهی میانبر F5 را بفشارید). درصورتیکه همه چیز به درستی اجرا شده باشد با صفحهای مشابه تصویر زیر روبه رو خواهید شد که پس از پرسیدن دو سوال در ارتباط با نام و سن شما، مقادیر تایپ شده توسط شما را نمایش میدهد.
۱) در خط ۱ توضیحی در ارتباط با برنامهی موردنظر نوشته شده است. توجه داشته باشید برای توضیح یک برنامه باید از علامت # استفاده کنیم که به این فرآیند کامنتگذاری برای هر بخش یا برنامه گفته میشود. گاهی از علامت # برای غیرفعال کردن یک خط از برنامه به صورت موقت نیز استفاده میشود.
۲) زبان برنامه نویسی پایتون مانند سایر زبانهای برنامهنویسی فضاهای خالی را نادیده میگیرد. بنابراین در خط ۲ هیچ اتفاقی نمی افتد.
۳) در خط سوم برنامه با یک تابع به نام print() آشنا میشوید. این تابع هر رشتهای که درون پرانتز () قرار بگیرد را در خروجی نمایش میدهد. بنابراین هنگامیکه پایتون به خط ۳ میرسد تابع print را صدا میزند و از او درخواست کرده تا مقدار داخل پرانتز را دریافت و پس از انجام محسابات، آن را به ما بازگرداند.
۴) در خط ۴ از تابع input() جهت دریافت مقدار وارد شده توسط کاربر (کیبورد) مورد استفاده قرار میگیرد و پس از فشردن دکمهی ENTER توسط کاربر، مقدار وارد شده را درون متغیر myName ذخیره میکند.
۵) خط ۵ نام وارد شده توسط کاربر را که در متغیر myName ذخیره شده است را به همراه متن It's good to meet you ترکیب کرده و در خروجی نمایش میدهد.
در صورتیکه از عبارتهایی معادل It's استفاده میکنید باید همواره آن رشته را درون دو کوتیشین " " قرار دهید.
۶) در خط ۶ برنامه با استفاده از تابع len() طول نام وارد شده توسط شما را اندازهگیری کرده به تابع print() جهت نمایش ارسال میکند.
۷) در خط ۷ مجددا سوالی معادل "سن شما چقدر است؟" از شما پرسیده میشود.
۸) در خط ۸ ورودی را از کاربر دریافت کرده و داخل متغیر myAge ذخیره میکند.
۹) در خط ۹ برنامه، مقدار سن وارد شده را ابتدا به تابع int() ارسال میکند. وظیفه تابع int() تبدیل عدد وارد شده به نوع داده عدد صحیح است (همانگونه که قبلا ذکر کردیم این نوع تبدیل داده را تبدیل Explicitly یا صریح مینامند). سپس برنامه، مقدار عدد صحیح را به تابع str() جهت تبدیل به نوع داده رشتهای (برای نمایش در خروجی) ارسال میکند و در نهایت با استفاده از تابع print() عبارت موردنظر را چاپ مینماید.
اگر میخواهید اعداد صحیح را به یک رشته متصل کنید و سپس آن را در خروجی با استفاده از تابع print() نمایش دهید باید همواره آن را به صورت '29' به تابع print ارسال کنید. برای تبدیل یک عدد صحیح به رشتهای باید از تابع str() استفاده کرد. به عنوان مثال داریم:
>>> str(29) '29' >>> print('I am ' + str(29) + ' years old.') I am 29 years old.
در مثال زیر انواع تبدیلها را برای توابع فوق مشاهده میکنید:
>>> str(0) '0' >>> str(-3.14) '-3.14' >>> int('42') 42 >>> int('-99') -99 >>> int(1.25) 1 >>> int(1.99) 1 >>> float('3.14') 3.14 >>> float(10) 10.0
همانگونه که ملاحظه کردید در ابتدای این فصل به معرفی مختصر زبان برنامه نویسی پایتون (python) پرداختیم. سپس نحوه نصب IDE موردنظر به همراه ملحقات آنها را ارائه کرده و در نتیجه شروع به یادگیری روند برنامهنویسی کردیم. مبحث اول مطالعه عملگرها و قواعد نحوی و نگارشی بود. سپس به نوشتن اولین عبارت یا expression خود پرداختیم. در نهایت اولویتبندی را برای هر عملگر را مشخص کرده و شما را به دنیای برنامه نویسی زبان پایتون سوق دادیم. در انتها اولین برنامهی خود را کد کرده و به اجرا در آوردیم.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.