آموزش زبان برنامه نویسی پایتون : مقدماتی تا متوسطه
پایتون (Python) زبان برنامه نویسی سطح بالایی است که در سال ۱۹۹۱ و در کشور هلند توسط آقای به اسم Guido van Rossum طراحی شد. از ویژگی های اصلی این زبان می توان به سطح بالا بودن، برنامه نویسی شی گرا، مفسر و همه منظوره بودن آن اشاره کرد. زبان پایتون یک زبان متن باز و open source است و به همین دلیل تا به حال کتابخانه های بسیار زیادی بر پایه این زبان نوشته شده است.
فلسفه اصلی Python نوشتن کمتر کدها و بالابردن خوانایی است، از طرف دیگر خیلی از برنامه نویسان ارشد اعتقاد دارند که زبان پایتون بهترین زبان برای یادگیری در سطح مقدماتی است. دلیل آن هم این است که شما، کارهایی را که در پایتون می توانید در یک خط کد بنویسید با زبانی مثل جاوا همان کار را در سه چهار خط باید نوشت. از طرف دیگر پایتون در تمام سیستم عامل ها از جلمه لینوکس، ویندوز و مک قابل دسترس است و می توان با آنها کدنویسی را شروع کرد.
از مزیت های پایتون می توان به تایپ پویا، مدیریت خودکار حافظه و… اشاره کرد، تمام این ها باعث شدند که پایتون یک زبان فوق العاده قدرتمند و آسان در استفاده باشد. تا به حال برای پایتون نسخه های مختلفی آمده است و در حال حاضر نسخه نهایی این زبان ۳ می باشد.
ویژگی های زبان پایتون :
- زبان پایتون یک زبان مفسری است و برای اجرا شدن از کامپایلر استفاده نمی کند. در حقیقت کدهای پایتون خط به خط اجرا می شوند.
- پایتون زبان تعاملی است، کافی است کدی را بنویسید، پایتون به سرعت به شما خروجی را می دهد.
- پایتون شئ گراست و از قابلیت شئ و کلاس و … برخوردار است.
- پایتون Cross-platform است، کدهای پایتون در بیشتر سیستم عامل های شخصی و سرور اجرا می شود.
- پایتون به خاطر نداشتن حالت دستوری پیچیده و همچنین کلمات کلیدی خیلی کم، یکی از ساده ترین زبان های ممکن برای یادگیری است.
- پایتون را می توان در مدیریت سرورها، نوشتن برنامه های ساده، نوشتن بازی، ساخت اپلیکیشن های موبایل، اپلیکیشن تحت وب و… استفاده کرد.
اگر علاقه دارید بیشتر با ویژگی های زبان پایتون و همچنین مقایسه آن با زبان php آشنا شوید، مقاله تفاوت های زبان برنامه نویسی php و Python را مطالعه فرمایید.
اهداف این مقاله
در واقع این مقاله برای کسانی نوشته می شود که هیچ دانشی در زمینه زبان پایتون ندارند و می خواهند تازه با این زبان آشنا شوند تا بتوانند با سینتکس پایتون بیشتر کار کنند. تجربه شخصی ثابت کرده کسانی که قبلا با زبان هایی که سینتکس مشابه به زبان سی دارد کار کرده اند، کمی عادت کردن به سینتکس پایتون برایشان سخت تر خواهد بود چرا که اینجا خیلی کم از علاماتی مثل آکولاد و… استفاده می شود. در این مقاله قصد داریم شما را با آیتم های اولیه یک زبان برنامه نویسی (متغیر، شرط، حلقه و…) آشنا کنیم.
قبل از نصب این نسخه های مختلف پایتون باید اشاره کنم که برای نوشتن کدهای پایتون شما هم می توانید از محیط متنی استفاده کنید و هم از محیط گرافیکی! در این قسمت از آموزش ما صرفا به شما یاد می دهیم که چگونه پایتون را در محیط متنی نصب کنید. چرا؟ درگیر شدن با ابزارهای پیشرفته و پیچیده برای یادگرفتن زبانی به سادگی پایتون در ابتدای یادگیری به نظر شخص بنده کمی نامعقول است.
بهتر است که از ابزارهای متنی مانند ترمینال و کامندپرامپت استفاده کنید. البته اگر به توصیه های من گوش نمی دید و دوست دارید پایتون را در یک محیط برنامه نویسی حرفه ای تجربه کنید پیشنهاد می کنم از این ابزارها استفاده کنید:
- Eric Python IDE
- PyCharm
- IDLE
- PyDev
نصب پایتون در لینوکس
به صورت پیشفرض نسخه ای از زبان پایتون بر روی بیشتر توزیع های لینوکس وجود دارد. روش های مختلفی برای نصب پایتون در توزیع ها وجود دارد. برای نصب پایتون در توزیع اوبونتو کافیست از دستور زیر استفاده کنید.
1 |
Sudo apt-get install python3 |
1 |
sudo yum install python |
نصب پایتون در ویندوز
برای نصب پایتون در محیط ویندوز شما به بسته نصبی پایتون نیاز دارید که می توانید براساس نیازهایتان و نسخه مورد نیاز آنن را از اینجا دانلود و نصب کنید.
نصب پایتون در مک
نصب پایتون در سیستم عامل مک نیز دقیقا مشابه ویندوز است که درباره آن صحبت شد. شما باید بسته نصبی را دانلود کنید و در نهایت آن را بر روی سیستم خود نصب کنید. برای دانلود نسخه های مختلف پایتون برای مک می توانید به این لینک مراجعه کنید.
بعد از نصب پایتون حالا می توانید با وارد شدن به محیط متنی سیستم عامل خود از پایتون استفاده کنید:
وارد شدن به محیط پایتون در سیستم عامل لینوکس و مک
برای وارد شدن به محیط پایتون در سیستم عامل لینوکس و مک کافیست پنجره ترمینال خود را باز کنید و دستور python را بنویسید. بعد از اجرای دستور باید چنین متنی برای شما نمایان شود:
1 2 3 4 5 |
Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. |
1 |
print “danup.ir” |
در نهایت کلید اینتر را فشار دهید و خروجی را آنطور که می خواهید مشاهده کنید.
وارد شدن به محیط پایتون در سیستم عامل ویندوز
شاید استفاده از محیط متنی ویندوز کمی شما را دچار سردرگمی کند ولی مشکلی نیست در نهایت ویندوز همینطور است 🙂 ! برای وارد شدن به محیط پایتون شما نمی توانید به صورت مستقیم دستورات را بنویسید و خروجی را بگیرید، بلکه باید یک فایل با پسوند py ساخته و کدهای مورد نظرتان را داخل آن قرار دهید.
بعد از آن باید از طریق پنجره خط فرمان وارد پوشه فایل شده و آن را اجرا کنید. پس مراحل کار بدین صورت است:
- فایلی را با استفاده از Notepad با اسم roocket.py ایجاد کنید.
- درون فایل دستور زیر را تایپ کنید:
1 |
print “danup.ir” |
- حال وارد محیط خط فرمان شوید.
- با استفاده از دستور cd وارد پوشه ای شوید که فایل را ایجاد کرده اید.
- در نهایت کلمه python و بعد از آن نام فایل همراه با پسوند را تایپ کنید:
1 |
python danup.py |
خب حالا که با نحوه نصب پایتون آشنا شدیم قبل از اینکه وارد زبان برنامه نویسی پایتون و یا هر مسئله ای دیگری شویم، لازم دیدم که کمی شما را با برنامه نویسی و دنیای آن آشنا کنم. خب شاید اولین سوال واقعا این باشد که برنامه نویسی چیست؟
خب اجازه دهید یک تعریف کلی از برنامه نویسی را برای شما شرح دهم. برنامه نویسی به تفکری گفته می شود که برای عملی کردن آن تفکر شما باید کدنویسی کنید. یک تعریف بسیار کوتاه ولی جامع…
زمانی که شما می خواهید یک برنامه ماشین حساب را بنویسید باید قبل از ساخت آن به فرمت کلی آن فکر کنید. ماشین حساب من قرار است ۴ عمل اصلی را انجام دهد و جدا از آن اعمال مهم دیگر ریاضی را نیز انجام دهد. حالا برای اینکه بتوانم این فکر را پیاده سازی کنم، باید از یک زبان برنامه نویسی، فریمورک و… استفاده کنم.
اینجا دقیقا همان جایی است که به آن کدنویسی گفته می شود. برای پیاده سازی این ماشین حساب شما به یک زبان برنامه نویسی خوب و قدرتمند احتیاج دارید. برای چنین برنامه ساده ای می توان گفت می توانید از بیشتر زبان ها استفاده کنید. پس حالا که با برنامه نویسی و کدنویسی آشنا شدیم بیایید سری به زبان های برنامه نویسی بزنیم.
زبان های برنامه نویسی به صورت کلی به بخش های مختلفی تقسیم می شود. زبان ماشین و سطح پایین و زبان سطح بالا. البته در تقسیم بندی دیگر زبان میانی را هم شامل می شود. برای هر کدام از سطح ها می توان مثالی زد، برای مثال برای زبان های سطح بالا میشه پایتون و برای زبان سطح پایین اسمبلی رو اسم برد. ولی سوال اینجاست که تفاوت این سطوح چیست؟
ببینید ما هر چه سطح زبانمان پایین تر بیاید، سینتکس آن زبان و کدنویسی در آن زبان بیشتر شبیه به برنامه های ماشین می شود. می توان گفت کلمات برای شما نامفهوم است و برای هر کاری شما از یکسری کاراکترهای خاص استفاده می کنید. مزیت آن هم سرعت بالایی است که دارد و در ادامه مقاله توضیح خواهم داد.
در مقابل اگر زبان برنامه نویسی مورد نظر هرچقدر سطح بالاتر باشد به زبان آدمیزاد نزدیکتر است و کدهای آن بهتر خوانده می شود. مزیت آن این است که شما حتی با دانش کم هم می توانید از آن استفاده کنید و پیچیدگی خاصی ندارد ولی خب در مقابل زبان های سطح پایین کندتر اجرا می شود.
دلیل این سریع بودن و کند بودن دقیقا چیست؟
خب میرسیم به بحث مترجم و مفسر. ببینید زبان کامپیوتر صفر و یک است. شاید این را هزاران بار شنیده باشید که طرف هزار تا ۰ و ۱ را کنار هم ردیف کرده و می خواهد بانکی را هک کند 🙂 . کامپیوتر مقادیر را اینگونه می فهمد که یا وجود دارند و یا وجود ندارند.
خب زمانی که شما با یک زبان برنامه نویسی کار می کنید که اصطلاحا به زبان آدمیزاد نزدیک است و از زبان کامپیوتر دور است، شما این وسط بی هدف می مانید چرا؟ چون شما زبان کامپیوتر را بلد نیستید پس شما به یک مترجم احتیاج دارید، کسی که کدهای زبان شما را به کدهای صفر و یک تبدیل کند، خب اینجا دو نوع مترجم در اختیار داریم، یکی کامپایلر و دیگری مفسر.
تفاوت کامپایلر و مفسر خیلی بیشتر از یک مقاله می خواهد اما اگر بخواهیم یک تفاوت مهم آن را بگوییم، کامپایلر یک برنامه را به صورت کامل دریافت می کند و در نهایت آن را ترجمه می کند ولی مفسر به این شکل است که برنامه را خط به خط ترجمه می کند و در نهایت خروجی هر خط را به صورت نظیر به نظیر با اجرا به شما نشان می دهد. زبان برنامه نویسی پایتون همانطور که گفته شد یک زبان برنامه نویسی سطح بالا است و یک زبان مفسری حساب می شود.
برنامه را چطور تعریف کنیم؟
خب تعریف ساده ای که می توانیم از یک برنامه داشته باشیم این است که دنباله ای از دستورات هستند که براساس یکسری محاسبات از پیش تعیین شده کاری را برای ما انجام می دهند. به طور کلی برنامه می تواند شامل بخش ورودی، خروجی، ریاضیات، تصمیمات و تکرارها باشد.
ورودی : ورودی برنامه شما که می تواند از طریق کیبورد وارد شود.
خروجی : در نهایت هر برنامه ای خروجی هایی دارد.
ریاضیات : اگر شما یک ماشین حساب را می سازید مطمئنا از عملیات ریاضی استفاده می کنید.
تصمیم گیری : وقتی برنامه شما در حال ساخته شدن است، باید یکسری از شرط و شروط در آن رعایت شود. مثلا تقسیم عدد بر صفر باید به صورت خطا نشان داده شود و …
تکرار : وقتی شما برنامه ای را می سازید ممکن است که در آن از تکرار یکسری از کدها خیلی زیاد استفاده کنید.
اشکال یابی
برنامه ای که می سازید احتمالا دارای یکسری از مشکلات یا اصطلاحا باگ ها است. این باگ ها مانع از اجرای درست برنامه شما می شوند. البته باید گفت باگ چیزی نیست از آسمان بیاید باگ می تواند مربوط به اشتباه تایپی، اشتباه تصمیمی و … باشد.
شما به عنوان یک برنامه نویس، وظیفه دارید که این مشکلات را شناسایی کنید و آن ها را برطرف نمایید. البته باید بگوییم که اشکال یابی خود در بحث کامپیوتر علم محسوب می شود و افرادی متخصص این کار هستند.
شروع برنامه نویسی با پایتون
حال که با چند اصطلاح ساده و پرکاربرد در دنیای برنامه نویسی آشنا شدید، دیگر نوبت آن است که به دنیای پایتون مهاجرت کنیم و این زبان شیرین را یاد بگیریم. برای شروع کار محیط پایتون را مطابق قسمت قبل اجرا کنید.
یکی از عرف های هر زبان برنامه نویسی شیوه نوشتن و چاپ کردن یک متن ساده است. اغلب اگر دیده باشید این متن Hello World! است. خب ما هم برای این کار در این مسیر منحرف نمی شویم و همین راه را میرویم. برای چاپ متن ساده در پایتون از کلمه کلیدی print استفاده کنید. به متونی که بین دو تا “کتیشن” قرار می گیرد اصطلاحا رشته یا String می گویند. به مثال پایین نگاه کنید:
1 |
print "Hello World!" |
در ادامه قصد دارم شما را با انواع داده و متغیرها آشنا کنم. هر زبان برنامه نویسی برای کنترل مقادیر مختلف از نوع داده مخصوصی استفاده می کند، نوع داده به این منظور که هر کدام از مقادیر ما دارای یک نوع هستند. برای مثال وقتی می نویسیم:
1 |
print "Hello World" |
در واقع یک مقدار را تولید کردیم، همانطور که گفتم هر مقدار، یک نوعی هم دارد، در این مثال نوع مقدار ما رشته یا String نام دارد. انواع مختلفی از داده ها وجود دارد، مثلا نوع داده ای عدد صحیح، نوع عدد اعشاری و… .دانستن مفهوم نوع های داده ای بسیار مهم و ضروری هستند، چرا که شما باید انواع داده ای را به خوبی بشناسید تا بتوانید عملیات مختلف را روی داده انجام دهید، به مثال زیر توجه کنید:
1 2 3 |
Print "2+2" print 2+2 |
در دستور اول چون عبارت ها میان جفت کوتیشن قرار دارند، پس از نوع داده ای رشته هستند و همانطور که می دانیم محاسبات ریاضی درون رشته ها تا اندازه بی مفهوم است. اما در دستور دوم بدلیل آنکه کوتیشینی وجود ندارد پس مفسر نوع داده ای این عملیات را عدد در نظر می گیرد و وقتی که با نوع داده ای عدد سروکار داشته باشیم پس می توانیم از محاسبات ریاضی استفاده کنیم.
تشخیص نوع داده ای در زبان پایتون
خب، خیلی اوقات پیش می آید که ما نمی تونیم نوع داده ای یک عبارت، متغیر و … را تشخیص دهیم، خب چاره کار چیست؟ چاره کار این است که از تابع مربوط به تشخیص نوع داده ای استفاده کنیم. به مثال پایین توجه کنید:
1 2 3 |
type ("Arastoo") type (10) |
اگر این مثال را اجرا کنید خواهید دید که برای دستور اول مقدار str برگشت داده شده که مخفف string یا همان رشته است و برای دستور دوم مقدار int که نمایانگر عدد صحیح هستش برگشت داده شده است.
انواع داده ای مختلف دیگری نیز وجود دارد که ما در طول این مقاله آموزشی با آنها آشنا خواهیم شد.
متغیر در زبان پایتون چیست؟
بگذارید متغیر را با یک مثال ساده شروع کنیم. تصور کنید مقداری آب دارید و می خواهید این آب را داخل ظرفی بریزید، پس شما مشغول آن هستید که آب را در جایی ذخیره کنید تا بعدا از آن بیاشامید یا استفاده دیگری از آن کنید. به همین سادگی در زبان های برنامه نویسی وقتی شما با مقداری سر و کار دارید و می خواهید از آن مقدار در جایی دیگر نیز استفاده کنید، از متغیر استفاده می کنید. متغیر در مثال بالا برای شما نقش ظرفی را که آب در آن قرار می گیرد ایفا می کند.
تعریف کلی متغیر :
متغیر نام و فضایی است که به یک مقدار توجه می کند.
متغیر ها در زبان های مختلف به دو نوع پویا و ایستا تقسیم می شوند، در زبان های پویا مانند پایتون احتیاجی نیست که از متغیر خاصی برای ذخیره نوع داده ای خاصی استفاده کنید، برعکس آن در حالت ایستا شما باید حتما نوع متغیر خود را بر اساس نوع داده ای که می خواهید ذخیره کنید، تعیین نمایید.
برای تعریف متغیر در پایتون از علامت نسبت دهی «=» استفاده می شود، به این صورت که شما نام متغیر را نوشته و بعد از علامت نسبت دهی مقدار متغیر را ذخیره می کنید.
1 |
a = "hello world" |
در این مثال شما متغیری با اسم a ساخته اید و مقداری از نوع رشته با داده Hello World را در آن قرار داده اید. حال سوالی که پیش می آید این است که چگونه از این متغیر استفاده کنم؟!
برای استفاده از متغیر کافیست که نام آن را تایپ کنید و در حالت کمی دقیق تر از دستور print استفاده کنید. به مثال زیر توجه کنید :
1 |
print a |
مقدار متغیر a برای شما چاپ خواهد شد.
همانطور که گفته شد متغیرهای پایتون مقادیر مختلفی را در خود ذخیره می کند، شما می توانید بجای یک رشته از عدد استفاده کنید:
1 |
a = 20 |
حال اگر بخواهید مقدار متغیر a را مشاهده کنید خواهید دید که مقدار جدید جایگزین و مقدار قبلی پاک شده است.
یک تمرین ساده : دو متغیر از نوع عدد صحیح ایجاد کنید و حاصل جمع آن ها را در متغیر سوم ذخیره کنید.
استفاده از تابع type برای متغیر نیز صدق می کند، یعنی اگر شما متغیری داشتید و ندانستید که نوع متغیر شما چیست می توانید که دستور type را به صورت زیر بکار ببرید:
1 2 3 |
a = 12.3 type (a) |
1 2 3 |
a = 10 b = 20 |
1 |
c = a+b |
1 |
print c |
در ادامه قصد داریم راجع به عملگرها و عملوندها صحبت کنیم. عملگرها در واقع نمادهایی هستند که برای ما محاسبات و عملیات ریاضی را انجام می دهند. در این بین به مقادیری که از عملگرها استفاده می کنند، عملوند نامیده می شود.
مثلا در مثال ۵+۵: علامت + عملگر است و اعداد ۵ و ۵ عملوند هستند. تقریبا بیشتر عملگرهای برنامه نویسی همان علامت هایی را دارند که در ریاضی با آنها سر و کار داریم. +،-،/،* به ترتیب جمع، تفریق، تقسیم و ضرب هستند.
در ریاضیات برای دسته بندی عملیات ها از پرانتز استفاده می شود، در زبان های برنامه نویسی نیز به این گونه است. برای توان رسانی در زبان برنامه نویسی پایتون از ** استفاده می شود البته می توان برای آن تابع نیز نوشت که در آینده با آن آشنا خواهیم شد.
باید توجه داشته باشید که عملیات ها در برنامه نویسی براساس نوع داده ای آنها نتیجه گیری می شود. برای مثال وقتی شما عدد صحیح ۴۰ را قصد دارید بر ۶۰ تقسیم کنید، نباید انتظار نتیجه عدد اعشاری را داشته باشید. چون هر دو عدد صحیح هستند پس در نهایت عدد حاصله نیز صحیح است. مثال زیر را اجرا کنید.
1 |
Print (40/60) |
1 |
Print (40/60.0) |
ترتیب اجرای عملگرها
در برنامه نویسی وقتی در یک جمله از چندین عملگر استفاده می شود در این حالت باید توجه داشته باشید که عبارت ها براساس ترتیب اولویت عملگرها حساب می شوند. ترتیب عملگر ها بسیار مهم هستند. به نظر شما خروجی عبارت زیر چیست؟
1 |
(40+65*10-10) |
احتمالا در حالت عادی عدد ۴۰ و ۶۵ را با هم جمع می کنیم، سپس مقدار را در ۱۰ ضرب می کنیم و در نهایت از ۱۰ کم می کنیم. اما واقعیت آن است که مفسر این عبارت را طوری دیگر حساب می کند.
براساس ترتیب اجرای عملگرها ابتدا عبارت هایی حساب می شوند که داخل پرانتز قرار دارند، سپس عبارت توان، ضرب/ تقسیم و در نهایت جمع و منها. در این حالت ضرب و تقسیم دارای یک اولویت هستند، پس در این حالت اولویت به آن بستگی دارد که ابتدا از چپ شروع می شود. برای جمع و منها نیز به همین شکل است. عبارت زیر چقدر می شود؟
1 |
print (2-2*8) |
1 |
print ((2-2)*8) |
با در نظر گرفتن این دو مثال می توانید به اهمیت پرانتز پی ببرید. در مثال اول ۲ ابتدا در ۸ ضرب می شود سپس حاصلضرب آنها در ۲ کم می شود. حال در مثال دوم ابتدا عبارت داخل پرانتز حساب می شود بدین صورت که ۲-۲ می شود و سپس حاصل در ۸ ضرب می شود. پس نتیجه صفر می شود.
استفاده از عملگر + و * در رشته ها
بعضی از عملگرها فقط به اعداد خاتمه پیدا نمی کنند. علامت جمع و ضرب برای رشته ها نیز کاربرد دارد. بدین صورت که اگر بین دو رشته مختلف از علامت جمع استفاده کنید آنها را با هم ترکیب می کنید و در نهایت اگر رشته ای را با عددی ضرب کنید آن رشته به تعداد عددی که در آن ضرب کرده اید تکرار خواهد شد. مثال های زیر را در نظر بگیرید.
1 2 3 4 5 |
a = "Hello " b = "World!" print (a+b) |
1 |
print a*10 |
1 |
print (a+b)*3 |
توضیحات
گاهی اوقات برنامه نویس به دلایل مختلف می خواهد متنی را در سورس برنامه بنویسد که در خروجی برنامه تاثیری نداشته باشد. دلایل این کار می تواند به خواناتر کردن قسمت های مختلف برنامه برای خود یا برای دیگران باشد. همچنین می تواند برای آن باشد که اطلاعات کلی برنامه را در همان سورس بنویسد. برای نوشتن توضیحات در پایتون کافی است که از علامت # استفاده کنید.
1 2 3 |
#hello print "Hello" |
در ادامه می خواهیم درباره توابع صحبت کنیم. مفهوم مهم و کاربردی که در زبان های برنامه نویسی و در مفهوم برنامه نویسی کاربرد زیادی دارد. توابع زمانی استفاده می شود که شما می خواهید مجموعه ای از دستورات را به صورت مکرر، اجرا کنید.
خب چه اتفاقی می افتد؟ شما برای هر بار اجرا شدن، مجبور می شوید دستورات را بنویسید. ولی در حالت تابع ما مجموعه ای از دستورات را به یک بسته بندی منتقل می کنیم. از این به بعد هر بار که خواستیم دستورها را اجرا کنیم کافیست آن بسته بندی را فراخوانی کنیم و نیازی نیست تک تک خطوط دستور را از ابتدا تایپ کنیم.
اگر خاطرتان باشد کمی قبل تر در مورد یک دستور به اسم type صحبت کردیم. وظیفه این دستور این است که نوع داده ای مربوط به یک مقدار یا متغیر را برای ما نمایش دهد. در واقع type یک نوع از توابع است که ورودی مخصوصی دارد…
ورودی و خروجی
دو مفهوم کلی درباره تابع وجود دارد. یکی از آنها آرگومان یا «ورودی» است و دومی خروجی نام دارد. تعداد ورودی های مربوط به هر تابع می تواند متفاوت باشد مثلا بعضی از توابع یک ورودی و بعضی ها هیچ ورودی ندارند و بعضی دیگر n ورودی را دریافت می کنند ولی در نهایت هر تابع می تواند یک خروجی داشته باشد.
یعنی شما یک سری ورودی دارید و براساس آن ورودی ها شما در نهایت یک خروجی دارید. مثلا برای تابع type شما داخل پرانتز یک ورودی را قرار می دهید و عدد، متغیر و… بودن آن فرقی ندارد و در نهایت تابع برای شما خروجی را نشان می دهد. مثال :
1 |
type(10) |
خروجی این دستور مقدار int خواهد بود که بیان می کند مقدار نوع داده ای عدد ۱۰، یک عدد صحیح است.
شما می توانید مقدار یک تابع را داخل یک متغیر ذخیره کنید. برای مثال مقدار type(۱۰) را داخل متغیری به اسم a ذخیره کنید و آن را با استفاده از دستور print چاپ کنید:
1 2 3 |
a = type(10) print a |
تبدیل نوع داده ای
با استفاده از بعضی تابع ها ما می توانیم بعضی از مقادیر از نوع داده را به مقادیر دیگری تبدیل کنیم. مثلا یک مقدار که بیان کننده عدد صحیحی است را می توان با استفاده از یک تابع به رشته تبدیل کنیم.
1 2 3 4 5 6 7 |
a = int("23") type(a) b = str(a) type (b) |
1 |
int ("Hello") |
کتابخانه
کتابخانه را زمانی استفاده می کنیم که بخواهیم توابع بیشتری را به محیط کاری پایتون اضافه کنیم. به صورت پیشفرض پایتون یکسری توابع را برای ما فراهم کرده است مثل همین int , type , str … . پس ما به یکسری از توابع دسترسی داریم. ولی چیزی که پایتون را واقعا به یک زبان قدرتمند تبدیل کرده است کتابخانه های پایتون است. مثلا شما برای محاسبات ریاضی از کتابخانه ای به اسم math استفاده می کنید.
اضافه کردن کتابخانه در پایتون
برای اضافه کردن کتابخونه به محیط کاری خود از دستور import استفاده می کنیم. به این صورت:
1 |
import math |
1 |
math.sin(30) |
1 |
from math import cos, sin |
همانطور که گفتم در این حالت تنها دو تابع sin , cos وارد محیط کاری می شود.
افزودن تابع جدید
خب، تا به اینجا متوجه شدیم که تابع چگونه استفاده می شود و اصلا به چه دردی می خورد. ولی نهایت استفاده از تابع زمانی است که خودمان به شخصه بتوانیم آن ها را تعریف کنیم. در این حالت دیگر مجبور نخواهید شد که صرفا به یک کتابخانه یا تابع خاص اکتفا کنید. اگر کار تابعی را نمی پسندید پس بهتر است خودتان دست به کار شوید.برای نوشتن تابع در پایتون شما باید قاعده ای به نام indent را تو رفتگی را رعایت کنید.
ببینید در حالتی که شما بخواهید برای یک دستور مجموعه ای از مقادیر را بنویسید در زبان های سی شارپ و جاوا و … از { و } استفاده می کنید. اما در پایتون بجای آنکه دستورات مربوط به دستور اصلی را درون { و } قرار دهید اینجا باید از حالت تو رفتگی استفاده کنید. در این حالت شما باید دستورات جانبی را با فاصله بنویسید. برای بهتر فهماندن این موضوع می توانیم قاعده زیر را ببینیم:
1 2 3 4 5 6 7 |
main child1 child2 main1 |
در این حالت main اول دارای فرزندی به اسم child۱ است و در همین آن child۲ هم فرزند child۱ است. در این حالت برای آنکه مفسر را متوجه این روابط کنیم باید از تورفتگی استفاده کنیم. اگر دقت کنید main۱ را نیز خواهید دید. در این حالت main۱ به صورت کامل از main جدا است.
خب برای نوشتن تابع ما از کلمه کلیدی def استفاده می کنیم. بعد از آن نام تابع، آرگومان های تابع و در نهایت دستورات مربوط به تابع را می نویسیم. مثال بسیار ساده از یک تابع بدون آرگومان که وظیفه آن تنها چاپ یک متن ساده است، به صورت زیر نوشته می شود:
1 2 3 |
def simple(): print ("Hello") |
1 |
simple() |
1 2 3 4 5 6 7 8 9 10 11 |
def fivelines(): print print print print print |
1 2 3 4 5 |
def tenlines() fivelines() fivelines() |
این نکته بسیار مناسبی است چون مثلا اگر بخواهیم که در آن واحد چند تابع روی یک ورودی عملیاتی را انجام دهد می توانیم آن تابع ها را در بدنه یک تابع جدید قرار دهیم و از آن استفاده کنیم.
تابع همراه با ورودی یا آرگومان
همانطور که تا به الان دیدید، چند تابع تعریف کردیم که روی هیچ ورودی کار نمی کند و بدون هیچ آرگومانی برای ما خروجی را چاپ می کند. اما زمانی که شما بخواهید روی داده ای کاری را انجام بدهید برای این کار حتما باید مقادیر را از ورودی تابع دریافت کنید. برای مثال شما می خواهید برنامه ای بنویسید که هر عددی را به آن دادید به توان خودش برساند، پس شما باید یک ورودی داشته باشید تا عملیات توان رسانی روی آن انجام بگیرد.
1 2 3 |
def simple(x): print(x**x) |
1 |
simple(10) |
1 2 3 4 5 6 7 8 9 |
def simple(a,b): c = a+b d = c-a e = c*b print(c,d,e) |
1 |
simple(1,2) |
متغیر های Global و محلی
اگر در تعریف تابع آخر دقت کرده باشید خواهید دید که سه متغیر c,d,e تعریف شده اند. قضیه ای وجود دارد. آیا اگر از این متغیر ها در بیرون از تابع هم استفاده کنید همان مقادیر را خواهید دید؟! مسلما خیر. در برنامه نویسی دو نوع متغیر یا مقدار ذخیره شده وجود دارد.
مقداری که در سرتاسر برنامه می شود از آن استفاده کرد که به آن متغیر Global می گویند و در طرف دیگر نوعی متغیر وجود دارد که متعلق به یک بسته بندی یا تابع است به این منظور که دیگر نمی شود از آن متغیر در تمام برنامه استفاده کرد بلکه صرفا می توانید در محدوده تابع از آن استفاده کنید. به این دسته متغیر محلی اطلاق می شود. برای مثال دو نوع متغیر زیر با یک نام اما با مقادیر مختلف تعیین شده اند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
def simple(a,b): c = a+b d = c-a e = c*b print(c,d,e) simple(1,2) c = 100 d = 101 e = 102 print (c,d,e) simple (1,2) |
یکی از مقولات مهم در هر زبان برنامه نویسی بحث شرط و تصمیم است! یعنی شما هر اپلیکیشن و برنامه ای را که در نظر بگیرید می توانید این مقوله را در آن بیابید که یکی از مباحث مهم است و باید به آن توجهی ویژه کنید. شرط گذاشتن در یک برنامه آن را منعطف تر می کند! به این شکل که در شرایط مختلف و خروجی های مختلف به کاربر جواب می دهد!
یک مثال ساده : وقتی شما می خواهید برنامه ای بسازید که یک عدد را دریافت کند و به شما بگوید که این عدد زوج است یا فرد، باید از شرط استفاده کنید.
به زبان عامیانه می توان گفت که اگر باقی مانده تقسیم آن عدد بر ۲ برابر با صفر بود پس آن عدد زوج است و در غیر اینصورت فرد! حالا می توانید شرط دیگری را هم بگذارید که اجازه وارد شدن صفر را ندهید چرا که اساسا صفر نه زوج است و نه فرد.
در ادامه این مقاله قصد داریم با دو موضوع عملگرهایشرطیو عملگرهایمنطقیآشنا شویم…
عملگرهایشرطی
اگر یادتان باشد عملگرها در واقع باعث میشوند که عملیاتی روی عملوندها صورت گیرد. مثلا عملگر جمع! اما این بین یک سری عملگر باحال هم داریم که یک شرط را برای ما بررسی میکنند. مثلا می خواهیم بفهمیم که ۱ و ۲ با هم برابر هستند یا نه! اینجا می توانیم از عملگرهای شرطی استفاده کنیم. جواب شرط هایی که بررسی می کنیم از دو حالت خارج نیستن یا مثبت هستند (True) و یا منفی (False)… مثلا یک سوال خیلی ساده این است که آيا عدد ۱ با ۱ برابر است یا نه؟! جواب شما یا مثبت خواهد بود یا منفی.
عملگرهای شرطی عبارت هست از:
== … شرط برابر بودن
< > … شرط بزرگ و کوچک بودن
<= >= … شرط بزرگ، کوچک و مساوی بودن
خب بیایید با چند مثال ساده همراه شویم. می خواهیم بدانیم که آیا عدد ۱ با ۲ برابر است یا نه. برای این کار کافیست دستور زیر را در محیط پایتون وارد کنید:
1 |
1==2 |
در جواب این شرط به شما عبارت False چاپ خواهد شد که به مفهوم اشتباه بودن جواب شرط است.
مثالی دیگر : آیا ۱ کوچکتر یا مساوی با ۲ است؟ برای اینکار دستور زیر را در محیط پایتون وارد کنید :
1 |
1<=2 |
به همین سادگی شما می توانید چنین شروطی را بررسی کنید.
عملگرهایمنطقی
عملگرهای منطقی عبارت هستند از and , or , not. هر کدام از این عملگرها شرایط خاصی را برای شرط ما فراهم می کند! در ابتدا بگویم که کاربرد دو عملگر اول (and , or) زمانی است که بخواهیم دو شرط را بررسی کنیم. یعنی برای یک شرط کار نمی کند.
در نهایت هرکدام از این عملگرهای منطقی هم دو تا مقدار True , False را برای ما چاپ می کنند. and: این عملگر تنها در زمانی مقدار True را نشان می دهد که جواب هر دو شرط ما با هم True باشد به این صورت که مثلا ما دو تا شرط داریم که می گوید : ۱==۱ و ۲==۲ در اینصورت مقدار True را چاپ می کند.
می توان ساده تر گفت که زمانی شرط اول و شرط دوم با هم درست بودند، خروجی درست را نشون می دهد در غیر اینصورت مقدار False را چاپ میکند. به مثال های پایین توجه کنید:
1 2 3 4 5 6 7 |
5==5 and 6==6 5==5 and 6==3 5==2 and 6==6 5==1 and 5==6 |
در تمام حالت های بالا به جز حالت اول مقدار False چاپ خواهد شد.
or : حالا این عملگر منطقی کمی با لطافت بیشتری عمل می کند، این عملگر زمانی True خواهد بود که هر دو یا فقط یک شرط برابر با True باشد. به زبون آدمیزاد و عامیانه می توان اینطور بیان کرد که اگر شرط اول یا شرط دوم درست بود، مقدار درست را چاپ کن. به همین سادگی. به مثال های پایین توجه کنید:
1 2 3 4 5 6 7 |
5==5 or 6==6 5==5 or 6==3 5==2 or 6==6 5==1 or 5==6 |
not : عملگر آخر که معمولا به آن عملگر نقیض یا تناقض می گویند. به چه معنا؟! به این معنا که هر حرف حسابی با این عملگر بزنید می گوید نخیر درست نیست و در عوض اگر حرف اشتباهی با آن بزنید تایید می کند. مثلا اگه به آن بگوییم که صفر از یک کوچیکتر است، می گوید نه،اشتباه است !
یا مثلا اگر به آن بگویید که آیا ماست سفیده، در نهایت اعتماد با شما می گوید خیر! خب امیدوارم که متوجه شده باشید که به چه صورت عمل می کند. به مثال های پایین توجه کنید:
1 2 3 4 5 6 7 |
not 5==5 not 5==1 not 0>1 not 0<1 |
برای استفاده از دستور if باید از حالت تورفتگی کدها استفاده کنیم. چون دستور if یک دستور مرکب است پس باید از این حالت استفاده کنیم. شیوه استفاده از این دستور به صورت زیر است :
1 2 3 4 5 |
x = 10 if x>0: print x,"is positive" |
بیایید تحلیلی ساده از این کد داشته باشیم. ابتدا متغیری با نام x تعریف شده است و مقدار آن برابر با ۱۰ قرار گرفته است. در خط پایینی آن از شرط استفاده کردیم. گفتیم که اگه مقدار x از صفر بزرگتر باشد، پس خط پایین را اجرا کن. در خط پایین گفته شده که مقدار X یک مقدار مثبت است.
به شکل و استایل دستور if دقت کنید. می بینید که بعد از عبارت شرطی از : استفاده شده به این معنا که اگر نتیجه این عبارت شرطی True بود دستور بعد از اون را اجرا کن. همچنین می بینید که دستور بعد از آن کمی با فاصله از حاشیه قرار گرفته است، همانطور که گفتم این حالت را تورفتگی می گویند!
استفاده از حالت دوگانه
دستور بالا را اجرا کنید ولی اینبار بجای مقدار ۱۰ مقدار ۱- را به x نسبت بدید. حالا شرط را اجرا کنید. چه اتفاقی می افتد؟ هیچ. چرا؟ چون شما هیچ حالتی را در صورتی که مقدار شرط برابر با False شد در نظر نگرفتید. عبارت else در برنامه نویسی برای تعیین حالت دوگانه استفاده می شود. به این صورت که اگر مقدار دستور شرطی اول true نبود بدنه else اجرا می شود. حالا بیایید کد بالا را طوری تغییر دهیم که اگر مقدار x از ۰ کوچیکتر بود پیغام دهد که این عدد منفی است.
1 2 3 4 5 |
x = -1 if x>0: print x,"is positive" else: print x,"is negative" |
خب در این حالت خواهید دید که برنامه خروجی مناسب را به ما نشان می دهد.
حالا مشکل دیگر این است که اگر به این برنامه مقدار صفر را بدهیم چه می گوید؟ هیچی ! چرا؟ چون برای آن تعیین نکردیم. ولی اینجا مشکلی وجود دارد. ما فقط دو حالت داریم یا if یا else … خب چطوری این مسئله را حل کنیم؟!
از من بشنوید کاری ندارد. یکی دیگر از مفاهیمی که باید با آن آشنا شویم دستورات شرطی زنجیرهای است. این دستور در حالتی اتفاق می افتد که ما با بیش از دو حالت سر و کار داریم. برای استفاده از این حالت از دستور elif استفاده می کنیم. به صورت زیر:
1 2 3 4 5 6 7 |
x = 0 if x>0: print x,"is positive" elif x<0: print x,"is negative" else: print x,"is zero" |
در دستور بالا ابتدا بررسی شده که x از صفر بزرگتر است یا نه؟ اگر هست دستور بعدی اگر نیست برو به شرط بعدی! شرط بعدی می گوید x از صفر کوچیکتر است یا نه؟ پس دستور بعدی اگر نیست حالت آخر را بررسی کن…
در یک شرط می توانید از n تا elif استفاده کنید. این کار بسته به برنامه ای است که می نویسید.
دقت کردید نسبت دادن دستی به متغیر یک ذره کار ساده و بی مزه ایه؟! نظر شما چیه که یه تابع بنویسیم که یه ورودی داشته باشه و براساس ورودی بهمون بگه که این مقدار مثبته، منفیه و یا صفره؟! من که نظرم مثبته پس بیاید شروع کنیم:
1 2 3 4 5 6 7 |
def pnz(x): if x>0: print x,"is positive" elif x<0: print x,"is negative" else: print x,"is zero" |
خب حالا برای استفاده از این برنامه کافیست مقدارهای مختلفی مثل ۱۰ و ۰ و ۱- رو به تابع بدید… ببینید برنامه تون به درستی کار میکنه یا نه…
دستورهای شرطی به صورت تودرتو
این حالت در واقع زمانی استفاده می شود که بخواهید براساس جواب شرط اولی شروط دیگه ای را بنویسید. اگر یک مثال ساده در زندگی را به شما بگویم خیلی ساده می توانید این موضوع را درک کنید:
صبح از خواب بیدار می شید ساعت رو نگاه می کنید، آیا ساعت ۷ هستش یا نه اگه هفته خب آیا امروز جمعه نیست؟ نه پس پاشو صبحونه بخور چون باید بری سر کار، آیا بارون می باره؟ خیر پس لازم نیست چتر ببری؟ آیا هوا سرده؟ آره پس باید کت بپوشی و این مسئله همینطور جلو میره. در این حالت ها هستش که ما از حالت تودرتو استفاده می کنیم. در مثال قبلی که اعداد مثبت و منفی و صفر رو تشخیص می دادیم می تونستیم از همین حالت استفاده کنیم. به مثال پایین توجه کنید.
1 2 3 4 5 6 7 8 9 10 11 |
def pnz(x): if x>0: print x,"is positive" else: if x<0: print x,"is negative" else: print x,"is zero" pnz(10) pnz(0) pnz(-1) |
در ادامه قصد داریم که چند تا موضوع مرتبط با شرط را بررسی کنیم و بعد این موضوع را خاتمه بدهیم و به سراغ بقیه چیزهای باحال پایتون برویم. خب در بالا که با شرط آشنا شدیم و آن را به درستی تعریف کردیم.
استفاده سادهتر از عبارت های تودرتو شرطی
اگه یادتان باشد موضوع تودرتو نویسی شروط را با هم بحث کردیم. یک شرط را می گذاریم و براساس آن شرط شرط دیگری را اجرا می کنیم. حالا به جای اینکار میتوانید در بعضی از مواقع از عملگر شرطی and استفاده کنید. این کار به ما کمک میکند کدهای کمتری بنویسیم. به مثال پایین دقت کنید:
1 2 3 |
if x>0: if x!=0: print x,"is positive" |
1 2 |
if x>0 and x!=0: print x,"is positive" |
بگذارید به شما دلیل آنکه یک خروجی داشتید را بگویم. در مثال اول گفته شده که اگر شرط اول True بود برو خط بعدی، خط بعدی چیه؟ خط بعدی هم یه شرط دیگهاس. ولی در نهایت این دو شرط به یک دستور print خاتمه پیدا می کنند. پس دستور print در حالتی اجرا میشه که جواب دو شرط قبل از خودش True باشه. حالا مثال دوم، تعریف عملگر and رو اگه یادتون باشه اینجوری گفتیم که اگه جواب هر دو طرف True باشه مقادیر بعد از خودش رو نمایش می ده … این دقیقا همون کاریه که در مثال اول انجام دادیم.
دستور return
بسیاری از اوقات وقتی یک تابع را مینویسیم، می خواهیم که در یک نقطه خاص ادامه بدنه تابع اجرا نشود. برای مثال میخواهید تابعی بنویسید که زوج یا فرد بودن اعداد مثبت را تشخیص دهد. برای اینکار ابتدا باید شرطی بنویسید که کنترل کند، عدد ورودی صفر و یا منفی نباشد. بعد از این کنترل حال به سراغ محاسبات اصلی باید رفت. پس استفاده از if , else های متعدد در این حالت معقول نیست بجای این کار میتوانید از مثال زیر استفاده کنید.
1 2 3 4 5 6 7 8 |
def fun(x): if x <= 0: print "Please Enter a number greater than 0" return if x%2 == 0: print x,"is Even" else: print x, "is Odd" |
همانطور که میبینید در این مثال ابتدا صفر و یا منفی بودن مقدار بررسی میشود اگر جواب این شرط true باشد با مقدار return برخورد خواهد کرد. این مقدار دستورات بعد از خود را نادیده میگیرد و به بیرون از تابع مراجعه میکند.
درک این قضیه بسیار ساده است کافیست در نظر داشته باشید که هر بار با مقدار return بربخورید از بدنه تابع بیرون خواهد آمد.
در ادامه این قسمت از آموزش پایتون می خواهیم در رابطه با حلقه ها صحبت کنیم. تصور کنید که شما می خواهید کاری را چندین بار تکرار کنید. در دنیای واقعی آن کار را به صورت دستی باید به همان تعداد دفعه که می خواهیم انجام بدهیم، ولی یکی از ویژگی هایی که در دنیای کامپیوتر وجود دارد، خودکارسازیه! یعنی چی؟ یعنی اینکه شما یک ار کاری را انجام می دهید، بعد اگر خواستید به تعداد معینی کامپیوتر به صورت خودکار آن کار را انجام می دهد. برای پیاده سازی چنین حالتی در دنیای کامپیوتر از حلقه استفاده میکنیم.
برای ساختن حلقه در پایتون از while و if استفاده می کنیم. در ادامه قصد دارم که هر دو روش را به صورت خیلی واضح توضیح بدم. پس در ادامه با من همراه باشید :
دستور While
تصور کنید که می خواهید اعداد ۱ تا ۹ را به صورت صعودی نشان دهید. یقینا استفاده از ۹ دستور پرینت به صورت مجزا کار معقول و منطقی نیست. برای همین باید از حلقه استفاده کنیم. حالا چطوری؟
1 2 3 4 5 |
a = 10 b = 1 while b<a: print b b = b+1 |
شرح دستور : در دستور بالا، اول از همه یک متغیر a و b تعریف کردیم و مقدار آنها را به ترتیب برابر ۱۰ و ۱ قرار دادیم. در دستور اصلی while گفتیم، تا زمانی که مقدار b از a کوچیکتر است بدنه دستور را اجرا کند. اگه دستور درست بود که بدنه دستور اصلی اجرا می شود. در بدنه دستور اولین بار b چاپ می شود و بعد از آن به مقدار b یکی اضافه می شود. این کار اضافه شدن آنقدر تکرار می شود تا مقدار b برابر با ۱۰ می شود و در این صورت مقدار دستور اصلی while برابر با false می شود و از بدنه دستور خارج می شود.
اگر دستور بالا را اجرا کنید، خروجی درست را خواهید دید.
حلقه بی پایان
در بدنه دستور while همیشه باید در نظر داشته باشیم که مقادیر اصلی (در مثال بالا a و b) باید تغییر کنند، در غیر اینصورت حلقه بی پایان خواهد شد. حلقه بی پایان به حلقه ای گفته می شود که در آن از بدنه while هیچوقت خارج نشویم.
برای مشاهده چنین حالتی کافیست خط آخر دستور بالایی را پاک کنید. به صورت زیر:
1 2 3 4 |
a = 10 b = 1 while b<a: print b |
حال از این دستور خروجی بگیرید، خواهید دید که به صورت مرتب در حال چاپ شدن مقدار ۱ است. این روند تا زمان خارج شدن از برنامه ادامه پیدا می کند.
دستور for
دستور for نیز برای ساختن یک حلقه به کار برده می شود. کارکردن با آن شاید کمی ساده تر به نظر بیاید اما در نهایت همان خروجی را خواهید داشت که while به شما می دهد. استفاده کردن از for ساده است. کافی است که متغیری تعریف کنید و یک محدوده را برای حلقه معین نمایید. به مثال زیر دقت کنید:
1 2 |
for a in [1,2,3,'Dog']: print a |
در این مثال گفته شده که متغیر a را برابر با مقادیر ۱ , ۲ , ۳ , Dog قرار بده و هر بار اون رو چاپ کن. در حقیقت هر بار که دستور پرینت اجرا می شود یکی از مقادیر چاپ می شود.
تصور کنید که میخواهید با استفاده از دستور for اعداد ما بین ۱ تا ۱۰ را چاپ کنید. مطمئنا انجام چنین کاری مانند زیر درست نیست:
1 2 |
for a in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]: print a |
1 |
range(1, 10) |
مقادیر تولید شده این تابع ۱،۲،۳،۴،۵،۶،۷،۸ و۹ است. پس برای دریافت عدد ۱۰ آخرین مقدار تابع بالا را برابر ۱۱ قرار بدهید. اما چگونه می شود از این دستور در حلقه for استفاده کرد؟
یک مثال ساده از این حالت را می توانید در دستور زیر مشاهده کنید:
1 2 |
for a in range(1, 10): print a |
استفاده از break و continue
در استفاده از حلقه ها دو دستور تحت عنوان break و continue وجود دارد. هر کدام از این دستورها با حلقه ما به صورت خاص خود برخورد می کنند:
دستور break: هر وقت مفسر پایتون به این دستور برخورد بکند، از حلقه خارج می شود. برای مثال تصور کنید شما حلقه ای طراحی کردهاید که در آن حلقه هر عددی که وارد می شود براساس معتبر بودن عدد روی آن اعمالی انجام می گیرد. اما اگر مقدار عدد معتبر نباشد از حلقه خارج می شود.
بگذارید مثالی در دنیای واقعی را بیان کنم. تصور کنید شما ۱۰ شکلات دارید. با هر بار اجرای حلقه یکی تعداد شکلات ها کاهش پیدا می کند. زمانی که به مقدار ۵ رسید می خواهیم فورا به ما هشدار بدهد … در مثال پایین، چنین حالتی را پیاده سازی کردهایم.
1 2 3 4 5 6 7 |
Chocolate = 10 while Chocolate>0: print "Number of Chocolate is: ", Chocolate Chocolate = Chocolate-1 if(Chocolate==5): break print "Oh Chocolate is going to be end" |
در حقیقت در این مثال break باعث می شود که از حلقه خارج شده و دستور انتها را چاپ کند.
دستور continue
این دستور نیز شبیه به break از انجام ادامه حلقه خودداری می کند اما تفاوت اینجاست که دستور continue از حلقه خارج نمی شود بلکه دوباره به ابتدای حلقه بر می گردد.
استفاده از حلقه تودرتو
در بعضی از حالت ها مجبور هستید که از چندین حلقه درون یک حلقه استفاده کنید. برای این حالت نیز مشکلی وجود ندارد. با مشاهده مثال زیر می توانید از دستور کلی چنین حالتی را بهتر متوجه شوید:
1 2 3 4 5 6 7 8 9 |
Chocolate = 10 mom = "is sleep" while Chocolate >0: while mom=="is sleep": print 'mom is sleep so eat Chocolate' if Chocolate !=0: Chocolate = Chocolate-1 break print "Chocolate is end of" |
شرح دستور : در این دستور مقدار متغیر Chocolate برابر با ۱۰ و مقدار متغیر mom برابر با is sleep است. حلقه ابتدا بررسی می کند که اگر مقدار شکلات ها از صفر بیشتر بود، حلقه بعد از آن را بررسی کن. حلقه دوم بررسی می کند که آیا مادر خواب است یا خیر. اگر خواب بود به دستورهای بعدی مراجعه کن.
در واقع با استفاده از این حالت می توانید دستورهای پیچیده تری مانند جدول ضرب بنویسید و یا کارهای دیگری را انجام دهید.
منبع : راکت | roocket.ir
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.