Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

‫پایتون‬

‫به زبان ساده‬

‫بی شک این اثر‪ ،‬خالی از اشکال نیست و از شما خوانندگان عزیز میخواهم که با نظرات و پیشنهادات خود بنده را در تکمیل و رفع نواقص آن از طریق پست‬

‫الکترونیکی ‪ younes.ebrahimi.1391@gmail.com‬یاری بفرمایید‪.‬‬

‫مراجعه فرمایید‪.‬‬ ‫برای دریافت فایلها و آپدیتهای جدید این کتاب به سایت ‪www.w3-farsi.com‬‬

‫راههای ارتباط با نویسنده‬


‫وب سایت‪www.w3-farsi.com :‬‬

‫لینک تلگرام‪https://telegram.me/ebrahimi_younes :‬‬

‫‪ ID‬تلگرام‪@ebrahimi_younes :‬‬

‫پست الکترونیکی‪younes.ebrahimi.1391@gmail.com :‬‬


‫‪2‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫پایتون چیست‬
‫پایتون )‪ (Python‬یک زبان برنامهنویسی همه منظوره‪ ،‬شیءگرا و متن باز است که توسط خودو فان راسام )‪(Guido van Rossum‬‬

‫در سال ‪ 1991‬در کشور هلند طراحی شد‪ .‬این زبان از زبانهای برنامهنویسی مفسر بوده و به صورت کامل یک زبان شیءگرا است که به‬

‫زبانهای تفسیری ‪ Perl‬و ‪ Ruby‬شباهت دارد و از مدیریت خودکار حافظه استفاده میکند‪.‬‬

‫پایتون‪ ،‬کد باز )‪ (Open Source‬است‪ ،‬زبانی که گوگل و یا یاهو از آن به عنوان یکی از اصلی ترین ابزارهای توسعه استفاده می کنند‪.‬‬

‫برنامه های پایتون مثل ‪ PHP‬قابل اجرا روی اغلب سیستم عامل هاست‪ .‬پایتون‪ ،‬دستور زبانی شبیه گفتار ساده ی انگلیسی دارد و با دارا‬

‫بودن ‪ 33‬کلمه کلیدی جزء ساده ترین زبان ها است‪.‬‬

‫سادگی و خوانایی از ویژگیهای بارز زبان برنامهنویسی پایتون است‪ ،‬آنچنان ساده که حتی کودکان نیز قادر به آموختن آن هستند و قدرت‬

‫در کنار این سادگی و خوانایی‪ ،‬معجزه پایتون میباشد‪ .‬از نگاه هر برنامهنویسی‪ ،‬برنامههای پایتون مجموعهای از کدهای زیبا هستند‪ ،‬بدون‬

‫هیچ آشفتگی و پیچیدگی‪ .‬جالب است بدانید مایکروسافت نیز این زبان را با نام ‪ IronPython‬در تکنولوژی ‪ .Net‬خود گنجانده است‪.‬‬

‫هم اکنون پایتون در شرکت ها و سازمان های بزرگی مثل ناسا و گوگل و یاهو و … به صورت گسترده مورد استفاده قرار می گیرد‪ .‬تا کنون‬

‫نسخه های مختلفی از این زبان ارائه شده است که لیست آنها را در جدول زیر میشاهده می کنید‪:‬‬

‫تاریخ پیدایش‬ ‫نسخه‬

‫‪January 1994‬‬ ‫‪Python 1.0‬‬


‫‪April 10, 1995‬‬ ‫‪Python 1.2‬‬
‫‪October 12, 1995‬‬ ‫‪Python 1.3‬‬
‫‪October 25, 1996‬‬ ‫‪Python 1.4‬‬
‫‪December 31, 1997‬‬ ‫‪Python 1.5‬‬
‫‪September 5, 2000‬‬ ‫‪Python 1.6‬‬
‫‪October 16, 2000‬‬ ‫‪Python 2.0‬‬
‫‪April 17, 2001‬‬ ‫‪Python 2.1‬‬
‫‪December 21, 2001‬‬ ‫‪Python 2.2‬‬
‫‪July 29, 2003‬‬ ‫‪Python 2.3‬‬
‫‪November 30, 2004‬‬ ‫‪Python 2.4‬‬
‫‪September 19, 2006‬‬ ‫‪Python 2.5‬‬
‫‪October 1, 2008‬‬ ‫‪Python 2.6‬‬
‫‪July 3, 2010‬‬ ‫‪Python 2.7‬‬
‫‪December 3, 2008‬‬ ‫‪Python 3.0‬‬
‫‪June 27, 2009‬‬ ‫‪Python 3.1‬‬
‫‪February 20, 2011‬‬ ‫‪Python 3.2‬‬
‫‪September 29, 2012‬‬ ‫‪Python 3.3‬‬
‫‪March 16, 2014‬‬ ‫‪Python 3.4‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪3‬‬

‫‪September 13, 2015‬‬ ‫‪Python 3.5‬‬


‫‪December 23, 2016‬‬ ‫‪Python 3.6‬‬

‫حال که با پایتون به طور مختصر آشنا شدید‪ ،‬در درس های بعد در مورد این زبان برنامه نویسی بیشتر توضیح می دهیم‪.‬‬

‫دانلود و نصب ‪Python 3.6‬‬


‫برای برنامه نویسی به زبان های مختلف محیط های توسعه ی یکپارچه یا ‪ IDE‬های مختلفی وجود دارند که به برنامه نویسان در نوشتن‬

‫و ویرایش کدها‪ ،‬پیدا کردن خطاها‪ ،‬نمایش خروجی‪ ،‬و برخی موارد دیگر کمک می کنند‪ .‬برای اجرای کدهای ‪ Python‬محیط های مختلفی‬

‫وجود دارد که ساده ترین آنها ‪ IDEL‬می باشد‪ .‬برای دانلود این محیط کدنویسی‪ ،‬بر روی لینک زیر کلیک کنید‪:‬‬

‫‪https://www.python.org/downloads‬‬

‫با کلیک بر روی لینک باال‪ ،‬صفحه ای به صورت زیر باز می شود‪ ،‬که در این صفحه همانطور که در شکل زیر مشاهده می کنید‪ ،‬بر روی دکمه‬

‫ای که با فلش نشان داده شده کلیک کرده‪ ،‬تا آخرین نسخه ‪ IDEL‬دانلود شود‪:‬‬

‫بعد از دانل ود فایل مورد نظر به محل ذخیره آن رفته و بر روی فایل دو بار کلیک کنید‪ .‬سپس در صفحه ای که به صورت زیر نمایش داده‬

‫می شود‪ ،‬تیک مورد نظر را زده و سپس بر روی گزینه ‪ Customize installiation‬کلیک کنید‪:‬‬
‫‪4‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫بعد از کلیک بر روی گزینه مذکور صفحه ای به صورت زیر نمایش داده می شود‪ .‬در این صفحه بر روی دکمه ‪ Next‬کلیک کنید‪:‬‬

‫در صفحه بعد بر روی دکمه ‪ Install‬کلیک کرده و منتظر بمانید تا برنامه نصب شود‪:‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪5‬‬

‫در آخر و بعد از نصب کامل برنامه پیغامی مبنی بر موفقیت آمیز بودن‪ ،‬نصب برنامه به شما نمایش داده می شود و شما می توانید دکمه‬

‫‪ Close‬را بزنید‪:‬‬
‫‪6‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫ساخت یک برنامه ساده‬


‫اجازه بدهید یک برنامه بسیار ساده به زبان پایتون بنویسیم ‪.‬این برنامه یک پیغام را نمایش میدهد‪ .‬از منوی ‪ Start‬محیط برنامه‬

‫نویسی ‪ IDEL‬را به صورت زیر اجرا کنید‪:‬‬

‫با کلیک بر روی ‪ IDEL‬صفحه ای به صورت زیر نمایش داده می شود‪:‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪7‬‬

‫در صفحه باز شده به صورت زیر بر روی منوی ‪ File‬و سپس گزینه ‪ New File‬کلیک کنید‪:‬‬

‫با کلیک بر روی گزینه ‪ New File‬صفحه ای به صورت زیر نمایش داده می شود که شما می توانید کدهای خود را در داخل آن بنویسید‪:‬‬
‫‪8‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫در پنجره باال کدهای زیر را بنویسید‪:‬‬

‫;)"!‪print("Welcome to Python Tutorials‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪9‬‬

‫مانند شکل زیر از منوی ‪ File‬گزینه ‪ Save‬را بزنید‪:‬‬

‫سپس یک مسیر برای ذخیره فایل انتخاب کنید‪ .‬ما در شکل زیر فایل را در درایو ‪ C‬ذخیره کرده ایم‪:‬‬
‫‪01‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫بعد از ذخیره فایل به محیط کدنویسی بر گشته و از منوی ‪ Run‬گزینه ‪ Run Module‬و یا دکمه ‪ F5‬را بزنید‪:‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪11‬‬

‫مشاهده می کنید که برنامه اجرا شده و پیغام ‪ !Welcome to Python tutorials‬چاپ می شود‪:‬‬

‫مثال باال سادهترین برنامه ای است که شما میتوانید در ‪ Python‬بنویسید‪ .‬هدف در مثال باال نمایش یک پیغام در صفحه نمایش است‪.‬‬

‫هر زبان برنامه نویسی دارای قواعدی برای کدنویسی است‪ .‬پایتون دارای متدهای از پیش تعریف شده ای است که هر کدام برای مقاصد‬

‫خاصی به کار می روند‪ .‬هر چند که در آینده در مورد متدها بیشتر توضیح می دهیم ولی در همین حد به توضیح متد بسنده می کنیم که‬

‫متدها مجموعه ای از کدها هستند که دارای یک نام بوده و در جلوی نام آنها عالمت () قرار می گیرد‪ .‬یکی از این متدها‪ ،‬متد)(‪print‬‬

‫است‪ .‬از متد )(‪ print‬برای چاپ یک رشته استفاده میشود‪ .‬یک رشته گروهی از کاراکترها است‪ ،‬که به وسیله دابل کوتیشن (“) محصور‬

‫شده است‪ .‬مانند ‪ .“!Welcome to Python Tutorials” :‬یک کاراکتر میتواند یک حرف‪ ،‬عدد‪ ،‬عالمت یا … باشد‪ .‬در کل مثال باال‬

‫نحوه استفاده از متد )(‪ print‬است‪ .‬توضیحات بیشتر در درسهای آینده آمده است‪ .‬پایتون فضای خالی باال را نادیده میگیرد و از کد‬

‫زیر اشکال نمیگیرد‪:‬‬

‫(‪print‬‬
‫;)"!‪"Welcome to Python Tutorials‬‬

‫همیشه به یاد داشته باشید که ‪ Python‬به بزرگی و کوچکی حروف حساس است ‪.‬یعنی به طور مثال ‪ MAN‬و ‪ man‬در ‪ Python‬با هم‬

‫فرق دارند‪ .‬رشته ها و توضیحات از این قاعده مستثنی هستند که در درسهای آینده توضیح خواهیم داد‪ .‬مثالً کدهای زیر با خطا مواجه‬

‫میشوند و اجرا نمیشوند‪:‬‬


‫‪02‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫;)"!‪Print("Welcome to Python Tutorials‬‬


‫;)"!‪PRINT("Welcome to Python Tutorials‬‬
‫;)"!‪PrinT("Welcome to Python Tutorials‬‬

‫تغییر در بزرگی و کوچکی حروف از اجرای کدها جلوگیری میکند‪ .‬اما کد زیر کامالً بدون خطا است‪:‬‬

‫;)"!‪print("Welcome to Python tutorials‬‬

‫نکاتی در مورد کدنویسی در پایتون‬

‫در زبان هایی مثل جاوا و سی شارپ‪ ،‬از عالمت آکوالد ({}) برای ایجاد یک بالک کد‬

‫‪Block‬‬
‫{‬
‫;‪statement‬‬
‫}‬

‫ولی در زبان پایتون از ترکیب عالمت دو نقطه (‪ ):‬و تو رفتگی برای اینکار استفاده می شود‪:‬‬

‫‪Block:‬‬
‫;‪statement‬‬

‫ما با دونقطه به پایتون میگوییم که قصد داریم یک بلوک کد را آغاز کنیم و با تو رفتگی ابتدای خطوط دستورات آن بلوک را تعریف میکنیم‪.‬‬

‫برای تورفتگی میتوانیم از ‪ 3‬یا ‪ 4‬یا ‪ 11‬فضای خالی استفاده کنیم‪ .‬میزان این فضای خالی تا زمانی که در تمام کد رعایت شود‪ ،‬اهمیتی‬

‫ندارد‪ .‬در کد زیر به اهمیت تو رفتگی ها پی می برید‪:‬‬

‫‪1‬‬ ‫‪Block1:‬‬
‫‪2‬‬ ‫;‪statement‬‬
‫‪3‬‬ ‫;‪statement‬‬
‫‪4‬‬ ‫‪Block2:‬‬
‫‪5‬‬ ‫;‪statement‬‬
‫‪6‬‬ ‫‪Block3:‬‬
‫‪7‬‬ ‫;‪statement‬‬
‫‪8‬‬ ‫;‪statement‬‬
‫‪9‬‬ ‫‪Block4:‬‬
‫‪10‬‬ ‫;‪statement‬‬
‫‪11‬‬ ‫;‪statement‬‬
‫‪12‬‬ ‫;‪statement‬‬

‫در کد باال‪ ،‬بالک اول )‪ (Block1‬از خط ‪ 1‬تا ‪ 3‬را شام ل می شود‪ .‬به این نکته توجه کنید که خطوط بعد از عالمت ‪ :‬حتما باید دارای تو‬

‫رفتگی باشند‪ .‬بالک دوم )‪ (Block2‬از خط ‪ 4‬شروع و به خط ‪ 11‬ختم می شود‪ .‬نکته ای که باید در اینجا دوباره به آن اشاره کنیم این‬

‫است که دستور یا بالک هایی که دارای فاصله های برابر از سمت چپ هست جزو یک بالک می باشند‪ .‬مثال در کد باال خطوط ‪2‬و ‪ 3‬جز‬

‫‪ Block1‬هستند چون تو رفتگی آنها از سمت چپ برابر است و اگر مثال فاصله های خط ‪ 3‬از سمت چپ را حذف کنیم دیگر جز بالک‬

‫محسوب نمی شود‪ .‬یک بالک را می توان زیر مجموعه بالک دیگر کرد‪ .‬مثال در خط ‪ Block3 ،6‬را زیر مجموعه ‪ Block2‬و در خط ‪Block4 ،9‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪13‬‬

‫را زیر مجموعه ‪ Block3‬کرده ایم‪ .‬در نهایت خط ‪ 11‬جز هیچکدام از بالک ها نیست و مستقل اجرا می شود‪ .‬گاهی اوقات و هنگام‬

‫کدنویسی‪ ،‬الزم است که رشته های طوالنی را در چند خط بنویسید‪ .‬برای اینکار در پایتون می توان از عالمت \ به صورت زیر استفاده‬

‫کنید‪:‬‬

‫\ ‪print("Welcome‬‬
‫\ ‪to‬‬
‫\ ‪Python‬‬
‫;)"!‪Tutorials‬‬

‫توضیحات‬
‫وقتی که کدی تایپ می کنید شاید بخواهید که متنی جهت یادآوری وظیفه آن کد به آن اضافه کنید‪ .‬در ‪( Python‬و بیشتر زبانهای برنامه‬

‫نویسی) می توان این کار را با استفاده از توضیحات انجام داد‪ .‬توضیحات متونی هستند که توسط مفسر نادیده گرفته می شوند و به‬

‫عنوان بخشی از کد محسوب نمی شوند‪.‬‬

‫هدف اصلی از ایجاد توضیحات‪ ،‬باال بردن خوانایی و تشخیص نقش کدهای نوشته شده توسط شما‪ ،‬برای دیگران است‪ .‬فرض کنید که‬

‫می خواهید در مورد یک کد خاص‪ ،‬توضیح بدهید‪ ،‬می توانید توضیحات را در باالی کد یا کنار آن بنویسید‪ .‬از توضیحات برای مستند سازی‬

‫برنامه هم استفاده می شود‪ .‬در برنامه زیر نقش توضیحات نشان داده شده است‪:‬‬

‫‪#This line will print the message hello world‬‬


‫;)"!‪print("Hello World‬‬

‫در کد باال‪ ،‬خط اول کد باال یک توضیح درباره خط دو م است که به کاربر اعالم می کند که وظیفه خط دوم چیست ؟ با اجرای کد باال فقط‬

‫جمله ‪ Hello World‬چاپ شده و خط اول در خروجی نمایش داده نمی شود چون مفسر توضیحات را نادیده می گیرد‪ .‬همانطور که‬

‫مشاهده می کنید برای درج توضیخات در پایتون از عالمت ‪ #‬استفاده می شود‪ .‬برای توضیحات طوالنی هم باید در ابتدای هر خط از‬

‫توضیح این عالمت درج شود‪:‬‬

‫‪#This line will print‬‬


‫‪#the message hello world‬‬
‫;)"!‪print("Hello World‬‬

‫کاراکترهای کنترلی‬
‫کاراکترهای کنترلی‪ ،‬کاراکترهای ترکیبی هستند که با یک بک اسلش )\( شروع میشوند و به دنبال آنها یک حرف یا عدد میآید و یک‬

‫رشته را با فرمت خاص نمایش می دهند‪ .‬برای مثال برای ایجاد یک خط جدید و قرار دادن رشته در آن میتوان از کاراکتر کنترلی ‪\n‬‬

‫استفاده کرد‪:‬‬
‫‪04‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫;)"!‪print("Hello\nWorld‬‬

‫‪Hello‬‬

‫‪World‬‬

‫مشاهده کردید که مفسر بعد از مواجهه با کاراکتر کنترلی ‪\n‬نشانگر ماوس را به خط بعد برده و بقیه رشته را در خط بعد نمایش میدهد‪.‬‬

‫جدول زیر لیست کاراکترهای کنترلی و کارکرد آنها را نشان میدهد‪:‬‬

‫کاراکتر کنترلی‬ ‫عملکرد‬ ‫کاراکتر کنترلی‬ ‫عملکرد‬

‫’\‬ ‫چاپ کوتیشن‬ ‫‪\f‬‬ ‫‪Form Feed‬‬

‫”\‬ ‫چاپ دابل کوتیشن‬ ‫‪\n‬‬ ‫خط جدید‬

‫\\‬ ‫چاپ بک اسلش‬ ‫‪\r‬‬ ‫سر سطر رفتن‬

‫‪\0‬‬ ‫چاپ فضای خالی‬ ‫‪\t‬‬ ‫حرکت به صورت افقی‬

‫‪\a‬‬ ‫صدای بیپ‬ ‫‪\v‬‬ ‫حرکت به صورت عمودی‬

‫‪\b‬‬ ‫حرکت به عقب‬ ‫‪\u‬‬ ‫چاپ کاراکتر یونیکد‬

‫ما برای استفاده از کاراکترهای کنترلی‪ ،‬از بک اسلش )\( استفاده میکنیم‪ .‬از آنجاییکه \ معنای خاصی به رشتهها میدهد برای چاپ‬

‫بک اسلش )\( باید از )\\( استفاده کنیم‪:‬‬

‫;)"‪print("We can print a \\ by using the \\\\ escape sequence.‬‬

‫‪We can print a \ by using the \\ escape sequence.‬‬

‫یکی از موارد استفاده از \\‪ ،‬نشان دادن مسیر یک فایل در ویندوز است‪:‬‬

‫;)"‪print("C:\\Program Files\\Some Directory\\SomeFile.txt‬‬

‫‪C:\Program Files\Some Directory\SomeFile.txt‬‬

‫از آنجاییکه از دابل کوتیشن )“( برای نشان دادن رشتهها استفاده میکنیم برای چاپ آن از ”\ استفاده میکنیم‪:‬‬

‫;)"‪print("I said, \"Motivate yourself!\".‬‬

‫‪I said, "Motivate yourself!".‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪15‬‬

‫همچنین برای چاپ کوتیشن )‘( از ’\ استفاده میکنیم‪:‬‬

‫;)"‪print("The programmer\'s heaven.‬‬

‫‪The programmer's heaven.‬‬

‫برای ایجاد فاصله بین حروف یا کلمات از ‪ \t‬استفاده میشود‪:‬‬

‫;)"‪print("Left\tRight‬‬

‫‪Left Right‬‬

‫برای چاپ کاراکترهای یونیکد میتوان از ‪ \u‬استفاده کرد‪ .‬برای استفاده از ‪ ،\u‬مقدار در مبنای ‪ 16‬کاراکتر را درست بعد از عالمت ‪ \u‬قرار‬

‫میدهیم‪ .‬برای مثال اگر بخواهیم عالمت کپی رایت )©( را چاپ کنیم‪ ،‬باید بعد از عالمت ‪ \u‬مقدار ‪ 00A9‬را قرار دهیم مانند‪:‬‬

‫;)"‪print("\u00A9‬‬

‫©‬

‫برای مشاهده لیست مقادیر مبنای ‪ 11‬برای کاراکترهای یونیکد به لینک زیر مراجعه نمایید‪:‬‬

‫‪http://www.ascii.cl/htmlcodes.htm‬‬

‫اگر مفسر به یک کاراکتر کنترلی غیر مجاز برخورد کند‪ ،‬برنامه پیغام خطا میدهد‪ .‬بیشترین خطا زمانی اتفاق می افتد که برنامه نویس برای‬

‫چاپ اسلش )\( از \\ استفاده میکند‪.‬‬

‫متغیر‬
‫متغیر مکانی از حافظه است که شما میتوانید مقادیری را در آن ذخیره کنید‪ .‬میتوان آن را به عنوان یک ظرف تصور کرد که دادههای خود‬

‫را در آن قرار دادهاید‪ .‬محتویات این ظرف میتواند پاک شود یا تغییر کند‪ .‬هر متغیر دارای یک نام نیز هست‪ .‬که از طریق آن میتوان متغیر‬

‫را از دیگر متغیرها تشخیص داد و به مقدار آن دسترسی پیدا کرد‪ .‬همچنین دارای یک مقدار میباشد که میتواند توسط کاربر انتخاب شده‬

‫باشد یا نتیجه یک محاسبه باشد ‪.‬مقدار متغیر میتواند تهی نیز باشد‪ .‬متغیر دارای نوع نیز هست بدین معنی که نوع آن با نوع دادهای‬

‫که در آن ذخیره میشود یکی است‪.‬‬

‫متغیر دارای عمر نیز هست که از روی آن می توان تشخیص داد که متغیر باید چقدر در طول برنامه مورد استفاده قرار گیرد‪ .‬و در نهایت‬

‫متغیر دارای محدوده استفاده نیز هست که به شما میگوید که متغیر در چه جای برنامه برای شما قابل دسترسی است‪ .‬ما از متغیرها به‬
‫‪06‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫عنوان یک انبار موقتی برای ذخیره داده استفاده میکنیم‪ .‬هنگامی که یک برنامه ایجاد میکنیم احتیاج به یک مکان برای ذخیره داده‪،‬‬

‫مقادیر یا دادههایی که توسط کاربر وارد میشوند‪ ،‬داریم ‪.‬این مکان‪ ،‬همان متغیر است ‪.‬‬

‫برای این از کلمه متغیر استفاده میشود چون ما می توانیم بسته به نوع شرایط هر جا که الزم باشد‪ ،‬مقدار آن را تغییر دهیم‪ .‬متغیرها‬

‫موقتی هستند و فقط موقعی مورد استفاده قرار می گیرند که برنامه در حال اجراست و وقتی شما برنامه را میبندید محتویات متغیرها نیز‬

‫پاک میشود‪ .‬قبالً ذکر شد که به وسیله نام متغیر میتوان به آن دسترسی پیدا کرد‪ .‬برای نامگذاری متغیرها باید قوانین زیر را رعایت کرد‬

‫‪:‬‬

‫نام متغیر باید با یکی از حروف الفبا )‪ (a-z or A-Z‬یا عالمت _ شروع شود‪.‬‬ ‫‪‬‬

‫نمیتواند شامل کاراکترهای غیرمجاز مانند ‪ #, ?, ^, $, .‬باشد‪.‬‬ ‫‪‬‬

‫نمیتوان از کلمات رزرو شده در پایتون برای نام متغیر استفاده کرد‪.‬‬ ‫‪‬‬

‫نام متغیر نباید دارای فضای خالی )‪ (spaces‬باشد‪.‬‬ ‫‪‬‬

‫اسامی متغیرها نسبت به بزرگی و کوچکی حروف حساس هستند‪ .‬در پایتون دو حرف مانند ‪ a‬و ‪ A‬دو کاراکتر مختلف به حساب میآیند‪.‬‬

‫دو متغیر با نامهای ‪ myNumber‬و ‪ MyNumber‬دو متغیر مختلف محسوب میشوند چون یکی از آنها با حرف کوچک ‪ m‬و دیگری با حرف‬

‫بزرگ ‪ M‬شروع میشود‪ .‬متغیر دارای نوع هست که نوع دادهای را که در خود ذخیره میکند را نشان می دهد‪ .‬در درس بعد در مورد انواع‬

‫داده ها در پایتون توضیح می دهیم‪ .‬لیست کلمات کلیدی پایتون‪ ،‬که نباید از آنها در نامگذاری متغیرها استفاده کرد در زیر آمده است‪:‬‬

‫‪False‬‬ ‫‪def‬‬ ‫‪if‬‬ ‫‪raise‬‬


‫‪None‬‬ ‫‪del‬‬ ‫‪import‬‬ ‫‪return‬‬
‫‪True‬‬ ‫‪elif‬‬ ‫‪in‬‬ ‫‪try‬‬
‫‪and‬‬ ‫‪else‬‬ ‫‪is‬‬ ‫‪while‬‬
‫‪as‬‬ ‫‪except‬‬ ‫‪lambda‬‬ ‫‪with‬‬
‫‪assert‬‬ ‫‪finally‬‬ ‫‪nonlocal‬‬ ‫‪yield‬‬
‫‪break‬‬ ‫‪for‬‬ ‫‪not‬‬
‫‪class‬‬ ‫‪from‬‬ ‫‪or‬‬
‫‪continue‬‬ ‫‪global‬‬ ‫‪pass‬‬

‫انواع داده‬
‫انواع داده هایی که در پایتون وجود دارند عبارتند از‪:‬‬

‫توضیح‬ ‫نوع‬

‫شامل اعداد مثبت و منفی صحیح می باشد‪.‬‬ ‫‪integer‬‬ ‫عددی)‪(Numeric‬‬

‫شامل اعداد اعشاری می باشد‪.‬‬ ‫‪float‬‬

‫شامل دو مقدار ‪ true‬یا ‪ false‬می باشد‪.‬‬ ‫‪boolean‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪17‬‬

‫به مجموعه ای از کاراکترها که بین دو عالمت کوتیشن یا دابل کوتیشن قرار گرفته باشند‪ ،‬اطالق‬
‫رشته ای)‪(String‬‬
‫می شود‪.‬‬

‫مجموعه ای از آیتم ها هستند که بین دو عالمت [] قرار گرفته و با عالمت کاما (‪ ),‬از هم جدا شده‬
‫لیست)‪(List‬‬
‫اند‪.‬‬

‫مجموعه ای از آیتم ها هستند که بین دو عالمت () قرار گرفته و با عالمت کاما (‪ ),‬از هم جدا شده‬
‫تاپل)‪(Tuple‬‬
‫اند‪.‬‬

‫مجموعه ای از آیتم ها هستند که به صورت کلید و مقدار بوده‪ ،‬بین دو عالمت {} قرار گرفته‪ ،‬و با‬
‫دیکشنری)‪(Dictionary‬‬
‫عالمت کاما (‪ ),‬از هم جدا شده اند‪.‬‬

‫در مورد انواع داده های باال و نحوه استفاده از آنها در متغیرها‪ ،‬در درس بعد توضیح می دهیم‪.‬‬

‫استفاده از متغیرها‬
‫بر خالف زبان هایی مثل جاوا و سی شارپ‪ ،‬که هنگام تعریف متغیر باید نوع متغیر را هم مشخص می کردیم‪ ،‬در پایتون کافیست که فقط‬

‫نام متغیر را نوشته و به وسیله عالمت مساوی یک مقدار به آن اختصاص دهیم‪:‬‬

‫;‪variableName = Value‬‬

‫در مثال زیر نحوه تعریف و مقداردهی متغیرها نمایش داده شده است‪:‬‬

‫‪1‬‬ ‫‪intVar‬‬ ‫=‬ ‫;‪10‬‬


‫‪2‬‬ ‫‪floatVar‬‬ ‫=‬ ‫;‪12.5‬‬
‫‪3‬‬ ‫‪boolVar‬‬ ‫=‬ ‫;‪True‬‬
‫‪4‬‬ ‫‪StringVar‬‬ ‫=‬ ‫;"!‪"Hello World‬‬
‫‪5‬‬ ‫‪listVar‬‬ ‫=‬ ‫;]‪[1,5,8‬‬
‫‪6‬‬ ‫‪tupleVar‬‬ ‫=‬ ‫;)"‪("Python","Programming","begginer‬‬
‫‪7‬‬ ‫‪dictionaryVar‬‬ ‫=‬ ‫}‪{'Name': 'jack', 'family': 'Scalia', 'Age': 7‬‬
‫‪8‬‬
‫‪9‬‬ ‫"}‪print("intVar = {0‬‬ ‫;))‪.format(intVar‬‬
‫‪10‬‬ ‫"}‪print("floatVar = {0‬‬ ‫;))‪.format(floatVar‬‬
‫‪11‬‬ ‫"}‪print("boolVar = {0‬‬ ‫;))‪.format(boolVar‬‬
‫‪12‬‬ ‫"}‪print("StringVar = {0‬‬ ‫;))‪.format(StringVar‬‬
‫‪13‬‬ ‫"}‪print("listVar = {0‬‬ ‫;))‪.format(listVar‬‬
‫‪14‬‬ ‫"}‪print("tupleVar = {0‬‬ ‫;))‪.format(tupleVar‬‬
‫‪15‬‬
‫;))‪print("dictionaryVar = {0}" .format(dictionaryVar‬‬
‫‪16‬‬

‫‪intVar = 10‬‬
‫‪floatVar = 12.5‬‬
‫‪boolVar = True‬‬
‫!‪StringVar = Hello World‬‬
‫‪08‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫]‪listVar = [1, 5, 8‬‬


‫)'‪tupleVar = ('Python', 'Programming', 'begginer‬‬
‫}‪dictionaryVar = {'Name': 'jack', 'family': 'Scalia', 'Age': 7‬‬

‫در خطوط ‪ ، 1-7‬متغیر ها تعریف شده اند‪ .‬اما نوع این متغیرها چیست؟ پایتون نوع متغیرها را بسته به مقداری که به آنها اختصاص داده‬

‫می شود در نظر می گیرد‪ .‬مثال نوع متغیر ‪ StringVar‬در خط ‪ 4‬از نوع رشته است‪ ،‬چون یک مقدار رشته ای به آن اختصاص داده شده‬

‫است‪ .‬به خطوط ‪ 6 ،5‬و ‪ 7‬کد باال توجه کنید‪ .‬در خط ‪ 5‬یک متغیر تعریف شده است و نوع داده ای که به آن اختصاص داده شده است از‬

‫نوع ‪ list‬است‪ .‬همانطور که در درس قبل اشاره شد‪ ،‬برای تعریف ‪ list‬عالمت [] به کار می رود و آیتم های داخل آن به وسیله کاما از‬

‫هم جدا می شوند‪:‬‬

‫;]‪listVar = [1, 5, 8‬‬

‫در خط ‪ 6‬هم یک متغیر تعریف شده است و یک مقدار از نوع ‪ tuple‬به آن اختصاص داده شده است‪ .‬در تعریف ‪ tuple‬به جای عالمت‬

‫[] از () استفاده می شود‪ .‬تفا وت بین این دو را در درس های آینده بیشتر توضیح می دهیم‪ .‬و اما در خط ‪ 7‬یک نوع دیکشنری تعریف‬

‫شده است‪ .‬برای تعریف دیکشنری بین کلید و مقدار عالمت ‪ :‬و بین کلید‪/‬مقدارها هم عالمت ‪ ,‬قرار می گیرد‪:‬‬

‫;}‪dictionaryVar = {Key1:Value1, Key2:Value2, Key3:Value3‬‬

‫مثال در مثال باال یک دیکشنری تعریف کرده ایم که سه آیتم یا کلید‪/‬مقدار دارد که بین آنها عالمت کاما (‪ ),‬قرار داده ایم‪ .‬ولی بین یک کلید‬

‫و مقدار مربوط به آن عالمت ‪ :‬قرار گرفته است‪ .‬برای اختصاص یک مقدار به چند متغیر می توان به صورت زیر عمل کرد‪:‬‬

‫= ‪identifier1‬‬ ‫;‪identifier2 = ... indentifierN = Value‬‬

‫به مثال زیر توجه کنید‪:‬‬

‫;‪num1 = num2 = num3 = num4 = num5 = 10‬‬


‫;"!‪message1 = message2 = message3 = "Hello World‬‬

‫;)‪print(num1‬‬
‫;)‪print(num4‬‬
‫;)‪print(message1‬‬
‫;)‪print(message3‬‬

‫‪10‬‬
‫‪10‬‬
‫!‪Hello World‬‬
‫!‪Hello World‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪19‬‬

‫دقت کنید که برای مت غیرهای تعریف شده در حالت باال یک خانه حافظه تخصیص داده می شود‪ ،‬یعنی مقدار ‪ 11‬در حافظه ذخیره شده و‬

‫متغیرهای ‪ num1‬و ‪ num2‬و ‪ num3‬و ‪ num4‬و ‪ num5‬به آن خانه از حافظه اشاره می کنند‪ .‬همچنین می توان چند متغیر را تعریف کرد‬

‫و برای هر یک از آن ها مقدار جداگانه ای مشخص نمود ‪:‬‬

‫;‪identifier1, identifier2, ... indentifierN = Value1, Value2, ... ValueN‬‬

‫به مثال زیر توجه کنید‪:‬‬

‫;"!‪num1, num2, message1 = 10, 12.5, "Hello World‬‬

‫;)‪print(num1‬‬
‫;)‪print(num2‬‬
‫;)‪print(message1‬‬

‫‪10‬‬
‫‪12.5‬‬
‫!‪Hello World‬‬

‫همانطور که در درس قبل هم اشاره کردیم‪ ،‬یک رشته در اصل یک مجموعه از کاراکترهاست که در داخل عالمت “” یا ‘ ‘ قرار دارند‪ .‬هر کدام‬

‫از این کاراکترها دارای یک اندیس است که به وسیله آن اندیس قابل دسترسی هستند‪ .‬اندیس کاراکترها در رشته از ‪ 1‬شروع می شود‪.‬‬

‫به رشته زیر توجه کنید‪:‬‬

‫;"!‪message = "Hello World‬‬

‫در رشته باال اندیس کاراکتر ‪ O‬برابر ‪ 4‬است‪ .‬برای درک بهتر به شکل زیر توجه کنید‪:‬‬

‫‪H e l l o‬‬ ‫! ‪W o r l d‬‬


‫‪0 1 2 3 4 5 6 7 8 9 10 11‬‬

‫حال برای چاپ یک کاراکتر (مثل ‪ )W‬از این رشته کافیست که به صورت زیر عمل کنیم‪:‬‬

‫;" !‪message = "Hello World‬‬

‫;)]‪print(message[6‬‬

‫‪W‬‬

‫همانطور که در کد باال مشاهده می کنید کافیست که نام متغیر را نوشته‪ ،‬در جلوی آن یک جفت کروشه و در داخل کروشه ها اندیس آن‬

‫کاراکتری را که می خواهیم چاپ شود را بنویسیم‪ .‬چاپ مقدار با استفاده از اندیس در مورد ‪ List‬و ‪Tuple‬هم صدق می کند‪:‬‬

‫;]‪listVar = [1, 5, 8‬‬


‫;)"‪tupleVar = ("Python", "Programming", "begginer‬‬
‫‪21‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫;)]‪print(listVar[2‬‬
‫;)]‪print(tupleVar[1‬‬

‫‪8‬‬
‫‪Programming‬‬

‫و اما در مورد دیکشنری‪ ،‬شما باید نام کلید را بنویسید تا مقدار آن برای شما نمایش داده شود‪:‬‬

‫}‪dictionaryVar = {'Name': 'jack', 'Family': 'Scalia', 'Age': 7‬‬

‫;)]'‪print(dictionaryVar['Family‬‬

‫‪Scalia‬‬

‫نکته ای که بهتر است در همینجا به آن اشاره کنیم این است که کلید‪/‬مقدارها در دیکشنری می توانند از هر نوعی باشند و شما برای چاپ‬

‫مقدار مربوط به یک کلید باید نام کلید را دقیق بنویسید‪ .‬به مثال زیر توجه کنید‪:‬‬

‫‪dictionaryVar‬‬ ‫}‪= {1:'Jack', '2':'Scalia', 3:7‬‬

‫;)]'‪print(dictionaryVar['2‬‬

‫‪Scalia‬‬

‫در مثال باال ما مقدار کلید ‘‪ ’1‬را چاپ کرده ایم‪ .‬حال اگر به جای ‘‪’ 1‬عدد ‪ 1‬را بنویسیم‪ ،‬یعنی عالمت کوتیشن را نگذاریم با خطا مواجه می‬

‫شویم‪:‬‬

‫}‪dictionaryVar = {1:'Jack', '2':'Scalia', 3:7‬‬

‫;)]‪print(dictionaryVar[2‬‬

‫‪Traceback (most recent call last):‬‬


‫‪File "C:/MyFirstProgram.py", line 3, in‬‬
‫;)]‪print(dictionaryVar[2‬‬
‫‪KeyError: 2‬‬

‫جانگهدار)‪(Placeholders‬‬

‫به متد )(‪ print‬در خطوط (‪ ) 9-15‬توجه کنید‪ .‬این متد به دو قسمت تقسیم شده است‪ .‬قسمت اول یک رشته قالب بندی شده است و‬

‫و قسمت دوم هم شامل متدی به نام )(‪ format‬است که دارای مقدار یا مقادیری است که توسط رشته قالب بندی شده مورد استفاده‬

‫قرار می گیرند‪ .‬اگر به دقت نگاه کنید رشته قالب بندی شده دارای عدد صفری است که در داخل دو آکوالد محصور شده است‪ .‬البته عدد‬

‫داخل دو آکوالد میتواند از صفر تا ‪ n‬باشد‪ .‬به این اعداد جانگهدار می گویند‪ .‬این اعداد بوسیله مقدار یا مقادیری که در داخل متد‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪11‬‬

‫)(‪ format‬هستند جایگزین میشوند‪ .‬به عنوان مثال جانگهدار }‪ {0‬به این معناست که اولین مقدار داخل متد )(‪ format‬در آن قرار‬

‫میگیرد‪ .‬برای روشن شدن مطلب به شکل زیر توجه کنید‪:‬‬

‫;))‪print("The values are {0}, {1}, {2}, and {3}.".format(value1, value2, value3, value4‬‬

‫جانگهدارها از صفر شروع میشوند‪ .‬تعداد جانگهدارها باید با تعداد مقادیری که در داخل متد )(‪ format‬آورده شده اند برابر باشد‪ .‬برای‬

‫مثال اگر شما چهار جانگهدار مثل باال داشته باشید باید چهار مقدار هم برای آنها بعد از رشته قالب بندی شده در نظر بگیرید‪ .‬اولین جانگهدار‬

‫با اولین مقدار و دومین جا نگهدار با دومین مقدار جایگزین می شود‪ .‬در ابتدا فهمیدن این مفهوم برای کسانی که تازه برنامه نویسی را‬

‫شروع کردهاند سخت است اما در درسهای آینده مثالهای زیادی در این مورد مشاهده خواهید کرد‪.‬‬

‫عبارات و عملگرها‬
‫ابتدا با دو کلمه آشنا شوید‪:‬‬

‫عملگر‪ :‬نمادهایی هستند که اعمال خاص انجام میدهند‪.‬‬ ‫‪‬‬

‫عملوند‪ :‬مقادیری که عملگرها بر روی آنها عملی انجام میدهند‪.‬‬ ‫‪‬‬

‫مثالً ‪ :X+Y‬یک عبارت است که در آن ‪ X‬و ‪ Y‬عملوند و عالمت ‪ +‬عملگر به حساب میآیند‪.‬‬

‫زبانهای برنامه نویسی جدید دارای عملگرهایی هستند که از اجزاء معمول زبان به حساب میآیند‪ .‬پایتون دارای عملگرهای مختلفی از جمله‬

‫عملگرهای ریاضی‪ ،‬تخصیصی‪ ،‬مقایسهای‪ ،‬منطقی و بیتی میباشد‪ .‬از عملگرهای ساده ریاضی میتوان به عملگر جمع و تفریق اشاره کرد‪.‬‬

‫سه نوع عملگر در پایتون وجود دارد ‪:‬‬

‫یگانی – )‪ (Unary‬به یک عملوند نیاز دارد‬

‫دودویی – )‪ (Binary‬به دو عملوند نیاز دارد‬

‫سه تایی – )‪ (Ternary‬به سه عملوند نیاز دارد‬

‫انواع مختلف عملگر که در این بخش مورد بحث قرار میگیرند‪ ،‬عبارتند از‪:‬‬

‫عملگرهای ریاضی‬ ‫‪‬‬

‫عملگرهای تخصیصی‬ ‫‪‬‬

‫عملگرهای مقایسهای‬ ‫‪‬‬


22 ‫ مبانی زبان پایتون‬:‫فصل اول‬

‫عملگرهای منطقی‬ 

‫عملگرهای بیتی‬ 

‫عملگرهای ریاضی‬
:‫ جدول زیر عملگرهای ریاضی پایتون را نشان میدهد‬.‫پایتون از عملگرهای ریاضی برای انجام محاسبات استفاده میکند‬

‫نتیجه‬ ‫مثال‬ ‫دسته‬ ‫عملگر‬

var3 ‫ و‬var2 ‫ برابر است با حاصل جمع‬Var1 var1 = var2 + var3; Binary +

var3 ‫ و‬var2 ‫ برابر است با حاصل تفریق‬Var1 var1 = var2 – var3; Binary –

var3 ‫ در‬var2 ‫ برابر است با حاصلضرب‬Var1 var1 = var2 * var3; Binary *

var3 ‫ بر‬var2 ‫ برابر است با حاصل تقسیم‬Var1 var1 = var2 / var3; Binary /

var3 ‫ و‬var2 ‫ برابر است با باقیمانده تقسیم‬Var1 var1 = var2 % var3; Binary %

var3 ‫به توان‬var2 ‫ برابر است با مقدار‬Var1 var1 = var2 ** var3; Unary **

‫ (نتیجه به صورت‬var3 ‫ تقسیم بر‬var2 ‫ برابر است با‬Var1


var1 = var2 // var3; Unary //
.)‫صحیح نمایش داده می شود‬

‫ برای‬+ ‫ اگر از عملگر‬.‫ اما استفاده از عملگرهای ریاضی برای نوع رشتهای نتیجه متفاوتی دارد‬.‫مثال باال در از نوع عددی استفاده شده است‬

‫ حال میتوانیم با ایجاد یک برنامه نحوه عملکرد عملگرهای ریاضی‬.‫رشتهها استفاده کنیم دو رشته را با هم ترکیب کرده و به هم میچسباند‬

:‫در پایتون را یاد بگیریم‬

1 #Assign test values


2 num1 = 5;
3 num2 = 3;
4
5 #Demonstrate use of mathematical operators
6 print("The sum of {0} and {1} is {2}." .format(num1, num2, (num1 + num2)));
7 print("The difference of {0} and {1} is {2}." .format(num1, num2, (num1 - num2)));
8 print("The product of {0} and {1} is {2}." .format(num1, num2, (num1 * num2)));
9 print("The quotient of {0} and {1} is {2:.2f}." .format(num1, num2, (num1 / num2)));
10 print("The remainder of {0} divided by {1} is {2}." .format(num1, num2, (num1 % num2)));
11 print("The result of {0} power {1} is {2}." .format(num1, num2, (num1 ** num2)));
12 print("The quotient of {0} and {1} is {2}." .format(num1, num2, (num1 // num2)));
13
14 #Demonstrate concatenation on strings using the + operator
15 msg1 = "Hello ";
16 msg2 = "World!";
17 print(msg1 + msg2);

The sum of 5 and 3 is 8.


The difference of 5 and 3 is 2.
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪13‬‬

‫‪The product of 5 and 3 is 15.‬‬


‫‪The quotient of 5 and 3 is 1.67.‬‬
‫‪The remainder of 5 divided by 3 is 2.‬‬
‫‪The result of 5 power 3 is 125.‬‬
‫‪The quotient of 5 and 3 is 1.‬‬
‫!‪Hello World‬‬

‫برنامه باال نتیجه هر عبارت را نشان میدهد‪ .‬در این برنامه از متد )(‪ print‬برای نشان دادن نتایج در سطرهای متفاوت استفاده شده‬

‫است‪ .‬در خط ‪ 9‬برای اینکه ارقام کسری بعد از عدد حاصل دو رقم باشند از }‪ {2:.2f‬استفاده میکنیم‪ {2:.2f} .‬در این جا بدین‬

‫معناست که عدد را تا دو رقم اعشار نمایش بده‪ .‬پایتون خط جدید و فاصله و فضای خالی را نادیده میگیرد‪ .‬در خط ‪ 17‬مشاهده میکنید‬

‫که دو رشته به وسیله عملگر ‪ +‬به هم متصل شدهاند‪ .‬نتیجه استفاده از عملگر ‪ +‬برای چسباندن دو کلمه “ ‪ “Hello‬و ”‪“!World‬‬

‫رشته ”‪ “!Hello World‬خواهد بود ‪.‬به فاصله های خالی بعد از اولین کلمه توجه کنید اگر آنها را حذف کنید از خروجی برنامه نیز حذف‬

‫میشوند‪.‬‬

‫عملگرهای تخصیصی ( جایگزینی)‬


‫نوع دیگر از عملگرهای پایتون عملگرهای جایگزینی نام دارند ‪.‬این عملگرها مقدار متغیر سمت راست خود را در متغیر سمت چپ قرار‬

‫میدهند‪ .‬جدول زیر انواع عملگرهای تخصیصی در پایتون را نشان میدهد‪:‬‬

‫نتیجه‬ ‫مثال‬ ‫عملگر‬

‫مقدار ‪ var1‬برابر است با مقدار ‪var2‬‬ ‫;‪var1 = var2‬‬ ‫=‬

‫مقدار ‪ var1‬برابر است با حاصل جمع ‪ var1‬و ‪var2‬‬ ‫;‪var1 += var2‬‬ ‫=‪+‬‬

‫مقدار ‪ var1‬برابر است با حاصل تفریق ‪ var1‬و ‪var2‬‬ ‫;‪var1 -= var2‬‬ ‫=‪-‬‬

‫مقدار ‪ var1‬برابر است با حاصل ضرب ‪ var1‬در ‪var2‬‬ ‫;‪var1 *= var2‬‬ ‫=*‬

‫مقدار ‪ var1‬برابر است با حاصل تقسیم ‪ var1‬بر ‪var2‬‬ ‫;‪var1 /= var2‬‬ ‫=‪/‬‬

‫مقدار ‪ var1‬برابر است با باقیمانده تقسیم ‪ var1‬بر ‪var2‬‬ ‫;‪var1 %= var2‬‬ ‫=‪%‬‬

‫مقدار ‪ var1‬برابر است با ‪ var1‬به توان ‪var2‬‬ ‫;‪var1 **= var2‬‬ ‫=**‬

‫مقدار ‪ var1‬برابر است با حاصل تقسیم ‪ var1‬بر ‪var2‬‬ ‫;‪var1 //= var2‬‬ ‫=‪//‬‬

‫از عملگر =‪ +‬برای اتصال دو رشته نیز میتوان استفاده کرد‪ .‬استفاده از این نوع عملگرها در واقع یک نوع خالصه نویسی در کد است‪ .‬مثال ً‬

‫شکل اصلی کد ‪var1 += var2‬به صورت ‪ var1 = var1 + var2‬میباشد‪ .‬این حالت کدنویسی زمانی کارایی خود را نشان میدهد‬

‫که نام متغیرها طوالنی باشد‪ .‬برنامه زیر چگونگی استفاده از عملگرهای تخصیصی و تأثیر آنها را بر متغیرها نشان میدهد‪:‬‬
‫‪24‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫‪1‬‬ ‫;)"‪print("Assigning 10 to number...‬‬


‫‪2‬‬ ‫;‪number = 10‬‬
‫‪3‬‬ ‫;))‪print("Number = {0}" .format(number‬‬
‫‪4‬‬
‫‪5‬‬ ‫;)"‪print("Adding 10 to number...‬‬
‫‪6‬‬ ‫;‪number += 10‬‬
‫‪7‬‬ ‫;))‪print("Number = {0}" .format(number‬‬
‫‪8‬‬
‫‪9‬‬ ‫;)"‪print("Subtracting 10 from number...‬‬
‫‪10‬‬ ‫;‪number -= 10‬‬
‫‪11‬‬ ‫;))‪print("Number = {0}" .format(number‬‬

‫‪Assigning 10 to number...‬‬
‫‪Number = 10‬‬
‫‪Adding 10 to number...‬‬
‫‪Number = 20‬‬
‫‪Subtracting 10 from number...‬‬
‫‪Number = 10‬‬

‫در برنامه از ‪ 3‬عملگر تخصیصی استفاده شده است‪ .‬ابتدا یک متغیر و مقدار ‪10‬با استفاده از عملگر = به آن اختصاص داده شده است‪.‬‬

‫سپس به آن با استفاده از عملگر =‪ +‬مقدار ‪ 11‬اضافه شده است‪ .‬و در آخر به وسیله عملگر =‪ -‬عدد ‪ 11‬از آن کم شده است‪.‬‬

‫عملگرهای مقایسه ای‬


‫از عملگرهای مقایسهای برای مقایسه مقادیر استفاده میشود ‪.‬نتیجه این مقادیر یک مقدار بولی (منطقی) است‪ .‬این عملگرها اگر نتیجه‬

‫مقایسه دو مقدار درست باشد مقدار ‪ 1‬و اگر نتیجه مقایسه اشتباه باشد مقدار ‪ 1‬را نشان میدهند‪ .‬این عملگرها به طور معمول در دستورات‬

‫شرطی به کار میروند به این ترتیب که باعث ادامه یا توقف دستور شرطی میشوند‪ .‬جدول زیر عملگرهای مقایسهای در پایتون را نشان‬

‫میدهد‪:‬‬

‫نتیجه‬ ‫مثال‬ ‫عملگر‬

‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬با مقدار ‪ var3‬برابر باشد در غیر اینصورت‬
‫‪var1 = var2 == var3‬‬ ‫==‬
‫‪ False‬است‬

‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬با مقدار ‪ var3‬برابر نباشد در غیر اینصورت‬
‫‪var1 = var2 != var3‬‬ ‫=!‬
‫‪ False‬است‬

‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬با مقدار ‪ var3‬برابر نباشد در غیر اینصورت‬
‫‪var1 = var2 <> var3‬‬ ‫><‬
‫‪ False‬است‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪15‬‬

‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬کوچکتر از ‪ var3‬مقدار باشد در غیر‬


‫‪var1 = var2 < var3‬‬ ‫<‬
‫اینصورت ‪ False‬است‬

‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬بزرگتر ازمقدار ‪ var3‬باشد در غیر اینصورت‬


‫‪var1 = var2 > var3‬‬ ‫>‬
‫‪ False‬است‬

‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬کوچکتر یا مساوی مقدار ‪ var3‬باشد در‬


‫‪var1 = var2 <= var3‬‬ ‫=<‬
‫غیر اینصورت ‪ False‬است‬

‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬بزرگتر یا مساوی ‪ var3‬مقدار باشد در غیر‬


‫‪var1 = var2 >= var3‬‬ ‫=>‬
‫اینصورت ‪ False‬است‬

‫برنامه زیر نحوه عملکرد این عملگرها را نشان میدهد‪:‬‬

‫;‪num1 = 10‬‬
‫;‪num2 = 5‬‬

‫}‪print("{0‬‬ ‫==‬ ‫}‪{1‬‬ ‫‪:‬‬ ‫"}‪{2‬‬ ‫‪.format(num1,‬‬ ‫‪num2,‬‬ ‫‪num1‬‬ ‫==‬ ‫;))‪num2‬‬
‫}‪print("{0‬‬ ‫=!‬ ‫}‪{1‬‬ ‫‪:‬‬ ‫"}‪{2‬‬ ‫‪.format(num1,‬‬ ‫‪num2,‬‬ ‫‪num1‬‬ ‫=!‬ ‫;))‪num2‬‬
‫}‪print("{0‬‬ ‫><‬ ‫}‪{1‬‬ ‫‪:‬‬ ‫"}‪{2‬‬ ‫‪.format(num1,‬‬ ‫‪num2,‬‬ ‫‪num1‬‬ ‫=!‬ ‫;))‪num2‬‬
‫}‪print("{0‬‬ ‫<‬ ‫}‪{1‬‬ ‫‪:‬‬ ‫"}‪{2‬‬ ‫‪.format(num1,‬‬ ‫‪num2,‬‬ ‫‪num1‬‬ ‫<‬ ‫;))‪num2‬‬
‫}‪print("{0‬‬ ‫>‬ ‫}‪{1‬‬ ‫‪:‬‬ ‫"}‪{2‬‬ ‫‪.format(num1,‬‬ ‫‪num2,‬‬ ‫‪num1‬‬ ‫>‬ ‫;))‪num2‬‬
‫}‪print("{0‬‬ ‫=<‬ ‫}‪{1‬‬ ‫‪:‬‬ ‫"}‪{2‬‬ ‫‪.format(num1,‬‬ ‫‪num2,‬‬ ‫‪num1‬‬ ‫=<‬ ‫;))‪num2‬‬
‫}‪print("{0‬‬ ‫=>‬ ‫}‪{1‬‬ ‫‪:‬‬ ‫"}‪{2‬‬ ‫‪.format(num1,‬‬ ‫‪num2,‬‬ ‫‪num1‬‬ ‫=>‬ ‫;))‪num2‬‬

‫‪10 == 5 : False‬‬
‫‪10 != 5 : True‬‬
‫‪10 <> 5 : True‬‬
‫< ‪10‬‬ ‫‪5 : False‬‬
‫> ‪10‬‬ ‫‪5 : True‬‬
‫‪10 <= 5 : False‬‬
‫‪10 >= 5 : True‬‬

‫در مثال باال ابتدا دو متغیر را که میخواهیم با هم مقایسه کنیم را ایجاد کرده و به آنها مقادیری اختصاص میدهیم‪ .‬سپس با استفاده از‬

‫یک عملگر مقایسهای آنها را با هم مقایسه کرده و نتیجه را چاپ میکنیم‪ .‬به این نکته توجه کنید که هنگام مقایسه دو متغیر از عملگر ==‬

‫به جای عملگر = باید استفاده شود‪ .‬عملگر = عملگر تخصیصی است و در عبارتی مانند ‪ x = y‬مقدار ‪ y‬را در به ‪ x‬اختصاص میدهد‪.‬‬

‫عملگر == عملگر مقایسهای است که دو مقدار را با هم مقایسه میکند مانند ‪ x==y‬و اینطور خوانده میشود ‪ x‬برابر است با ‪.y‬‬
‫‪26‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫عملگرهای منطقی‬
‫عملگر های منطقی بر روی عبارات منطقی عمل می کنند و نتیجه آنها نیز یک مقدار بولی است‪ .‬از این عملگرها اغلب برای شرطهای پیچیده‬

‫استفاده می شود‪ .‬همانطور که قبال یاد گرفتید مقادیر بولی می توانند ‪ False‬یا ‪ True‬باشند‪ .‬فرض کنید که ‪ var2‬و ‪ var3‬دو مقدار‬

‫بولی هستند‪.‬‬

‫مثال‬ ‫عملگر‬

‫;‪var1 = var2 and var3‬‬ ‫‪and‬‬


‫;‪var1 = var2 or var3‬‬ ‫‪or‬‬
‫;)‪var1 = not (var1‬‬ ‫‪not‬‬

‫عملگر منطقی ‪and‬‬

‫اگر مقادیر دو طرف عملگر ‪ True ،and‬باشند عملگر ‪ and‬مقدار ‪ True‬را بر می گرداند‪ .‬در غیر اینصورت اگر یکی از مقادیر یا هر دوی‬

‫آنها ‪ False‬باشند مقدار ‪ False‬را بر می گرداند‪ .‬در زیر جدول درستی عملگر ‪ and‬نشان داده شده است‪:‬‬

‫‪X‬‬ ‫‪Y‬‬ ‫‪X and Y‬‬


‫‪True‬‬ ‫‪True‬‬ ‫‪True‬‬
‫‪True‬‬ ‫‪False‬‬ ‫‪False‬‬
‫‪False‬‬ ‫‪True‬‬ ‫‪False‬‬
‫‪False‬‬ ‫‪False‬‬ ‫‪False‬‬

‫برای درک بهتر تاثیر عملگر ‪ and‬یاد آوری می کنم که این عملگر فقط در صورتی مقدار ‪ True‬را نشان می دهد که هر دو عملوند‬

‫مقدارشان ‪ True‬باشد‪.‬در غیر اینصورت نتیجه تمام ترکیبهای بعدی ‪ False‬خواهد شد‪ .‬استفاده از عملگر ‪ and‬مانند استفاده از عملگرهای‬

‫مقایسه ای است‪ .‬به عنوان مثال نتیجه عبارت زیر درست )‪ (True‬است اگر سن )‪ (age‬بزرگتر از ‪ 11‬و ‪ salary‬کوچکتر از ‪ 1111‬باشد‪.‬‬

‫;)‪result = (age > 18) and (salary < 1000‬‬

‫عملگر ‪ and‬زمانی کارامد است که ما با محدود خاصی از اعداد سرو کار داریم‪ .‬مثال عبارت ‪10 <= x <= 100‬بدین معنی است که ‪x‬‬

‫می تواند مقداری شامل اعداد ‪ 11‬تا ‪ 111‬را بگیرد‪ .‬حال برای انتخاب اعداد خارج از این محدوده می توان از عملگر منطقی ‪ and‬به صورت‬

‫زیر استفاده کرد‪.‬‬

‫‪inRange = (number <= 10) and‬‬ ‫;)‪(number >= 100‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪17‬‬

‫عملگر منطقی ‪or‬‬

‫اگر یکی یا هر دو مقدار دو طرف عملگر ‪ ،or‬درست )‪ (True‬باشد‪ ،‬عملگر ‪ or‬مقدار ‪ True‬را بر می گرداند‪ .‬جدول درستی عملگر ‪or‬‬

‫در زیر نشان داده شده است ‪:‬‬

‫‪X‬‬ ‫‪Y‬‬ ‫‪X or Y‬‬


‫‪True‬‬ ‫‪True‬‬ ‫‪True‬‬
‫‪True‬‬ ‫‪False‬‬ ‫‪True‬‬
‫‪False‬‬ ‫‪True‬‬ ‫‪True‬‬
‫‪False‬‬ ‫‪False‬‬ ‫‪False‬‬

‫در جدول باال مشاهده می کنید که عملگر ‪ or‬در صورتی مقدار ‪ False‬را بر میگرداند که مقادیر دو طرف آن ‪ False‬باشند‪ .‬کد زیر را در‬

‫نظر بگیرید‪.‬نتیجه این کد در صورتی درست )‪ (True‬است که رتبه نهایی دانش آموز )‪ (finalGrade‬بزرگتر از ‪ 75‬یا یا نمره نهایی‬

‫امتحان آن ‪ 111‬باشد‪.‬‬

‫;)‪isPassed = (finalGrade >= 75) or (finalExam == 100‬‬

‫عملگر منطقی ‪not‬‬

‫برخالف دو اپراتور ‪ or‬و ‪ and‬عملگر منطقی ‪ NOT‬یک عملگر یگانی است و فقط به یک عملوند نیاز دارد‪ .‬این عملگر یک مقدار یا اصطالح‬

‫بولی را نفی می کند‪ .‬مثال اگر عبارت یا مقدار ‪ True‬باشد آنرا ‪ False‬و اگر ‪ False‬باشد آنرا ‪ True‬می کند‪ .‬جدول زیر عملکرد اپراتور‬

‫‪ NOT‬را نشان می دهد‪:‬‬

‫‪X‬‬ ‫‪not X‬‬


‫‪True‬‬ ‫‪False‬‬
‫‪False‬‬ ‫‪True‬‬

‫نتیجه کد زیر در صورتی درست است که ‪( age‬سن) بزرگتر یا مساوی ‪ 11‬نباشد‪.‬‬

‫;)‪isMinor = not(age >= 18‬‬

‫عملگرهای بیتی‬

‫عملگرهای بیتی به شما اجازه میدهند که شکل باینری انواع داده ها را دستکاری کنید‪ .‬برای درک بهتر این درس توصیه میشود که شما‬

‫سیستم باینری و نحوه تبدیل اعداد دهدهی به باینری را از لینک زیر یاد بگیرید‪:‬‬

‫‪http://www.w3-farsi.com/?p=5698‬‬
‫‪28‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫در سیستم باینری (دودویی) که کامپیوتر از آن استفاده میکند وضعیت هر چیز یا خاموش است یا روشن‪ .‬برای نشان دادن حالت روشن‬

‫از عدد ‪ 1‬و برای نشان دادن حالت خاموش از عدد ‪ 1‬استفاده میشود‪ .‬بنابراین اعداد باینری فقط میتوانند صفر یا یک باشند‪ .‬اعداد باینری‬

‫را اعداد در مبنای ‪ 1‬و اعداد اعشاری را اعداد در مبنای ‪ 11‬می گویند‪ .‬یک بیت نشان دهنده یک رقم باینری است و هر بایت نشان دهنده‬

‫‪ 1‬بیت است‪ .‬به عنوان مثال برای یک داده از نوع ‪ int‬به ‪ 31‬بیت یا ‪ 4‬بایت فضا برای ذخیره آن نیاز داریم‪ ،‬این بدین معناست که اعداد‬

‫از ‪ 31‬رقم ‪ 1‬و ‪ 1‬برای ذخیره استفاده میکنند‪ .‬برای مثال عدد ‪ 111‬وقتی به عنوان یک متغیر از نوع ‪ int‬ذخیره میشود در کامپیوتر به‬

‫صورت زیر خوانده میشود‪:‬‬

‫‪000000000000000000000000000001100100‬‬

‫عدد ‪ 111‬در مبنای ده معادل عدد ‪ 1111111‬در مبنای ‪ 1‬است‪ .‬در اینجا ‪ 7‬رقم سمت راست نشان دهنده عدد ‪ 111‬در مبنای ‪ 1‬است و مابقی‬

‫صفرهای سمت راست برای پر کردن بیتهایی است که عدد از نوع ‪ int‬نیاز دارد‪ .‬به این نکته توجه کنید که اعداد باینری از سمت راست‬

‫به چپ خوانده میشوند‪ .‬عملگرهای بیتی پایتون در جدول زیر نشان داده شدهاند‪:‬‬

‫مثال‬ ‫عملگر‬

‫;‪x = y & z‬‬ ‫&‬


‫;‪x = y | z‬‬ ‫|‬
‫;‪x = y ^ z‬‬ ‫^‬
‫;‪x = ~y‬‬ ‫~‬
‫;‪x &= y‬‬ ‫=&‬
‫;‪x |= y‬‬ ‫=|‬
‫;‪x ^= y‬‬ ‫=^‬

‫عملگر بیتی )&(‪AND‬‬

‫عملگر بیتی ‪ AND‬کاری شبیه عملگر منطقی ‪ AND‬انجام میدهد با این تفاوت که این عملگر بر روی بیتها کار میکند‪ .‬اگر مقادیر دو طرف‬

‫آن ‪ 1‬باشد مقدار ‪ 1‬را بر میگرداند و اگر یکی یا هر دو طرف آن صفر باشد مقدار صفر را بر میگرداند‪ .‬جدول درستی عمگر بیتی ‪ AND‬در زیر‬

‫آمده است‪:‬‬

‫‪X‬‬ ‫‪Y‬‬ ‫‪X AND Y‬‬


‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫در زیر نحوه استفاده از عملگر بیتی ‪ AND‬آمده است‪:‬‬

‫;‪result = 5 & 3‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪19‬‬

‫;)‪print(result‬‬

‫‪1‬‬

‫همانطور که در مثال باال مشاهده میکنید نتیجه عملکرد عملگر ‪ AND‬بر روی دو مقدار ‪ 5‬و ‪ 3‬عدد یک میشود‪ .‬اجازه بدهید ببینیم که‬

‫چطور این نتیجه را به دست میآید‪:‬‬

‫‪5:‬‬ ‫‪00000000000000000000000000000101‬‬
‫‪3:‬‬ ‫‪00000000000000000000000000000011‬‬
‫‪------------------------------------‬‬
‫‪1:‬‬ ‫‪00000000000000000000000000000001‬‬

‫ابتدا دو عدد ‪ 5‬و ‪ 3‬به معادل باینریشان تبدیل میشوند‪ .‬از آنجاییکه هر عدد صحیح )‪ 31 (int‬بیت است از صفر برای پر کردن بیتهای‬

‫خالی استفاده میکنیم‪ .‬با استفاده از جدول درستی عملگر بیتی ‪ AND‬میتوان فهمید که چرا نتیجه عدد یک میشود‪.‬‬

‫عملگر بیتی )|(‪OR‬‬

‫اگر مقادیر دو طرف عملگر بیتی ‪ OR‬هر دو صفر باشند نتیجه صفر در غیر اینصورت ‪ 1‬خواهد شد‪ .‬جدول درستی این عملگر در زیر آمده‬

‫است‪:‬‬

‫‪X OR Y‬‬ ‫‪Y‬‬ ‫‪X‬‬


‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫نتیجه عملگر بیتی ‪ OR‬در صورتی صفر است که عملوندهای دو طرف آن صفر باشند‪ .‬اگر فقط یکی از دو عملوند یک باشد نتیجه یک‬

‫خواهد شد‪ .‬به مثال زیر توجه کنید‪:‬‬

‫;‪result = 7 | 9‬‬
‫;)‪print(result‬‬

‫‪15‬‬

‫وقتی که از عملگر بیتی ‪ OR‬برای دو مقدار در مثال باال (‪ 7‬و ‪ )9‬استفاده میکنیم نتیجه ‪ 15‬میشود‪ .‬حال بررسی میکنیم که چرا این نتیجه‬

‫به دست آمده است؟‬

‫‪7: 00000000000000000000000000000111‬‬
‫‪9: 00000000000000000000000000001001‬‬
‫‪-----------------------------------‬‬
‫‪15: 00000000000000000000000000001111‬‬
‫‪01‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫با استفاده از جدول درستی عملگر بیتی ‪ OR‬میتوان نتیجه استفاده از این عملگر را تشخیص داد‪ .‬عدد ‪ 1111‬باینری معادل عدد ‪ 15‬صحیح‬

‫است‪.‬‬

‫عملگر بیتی )^(‪XOR‬‬

‫جدول درستی این عملگر در زیر آمده است‪:‬‬

‫‪X XOR Y‬‬ ‫‪Y‬‬ ‫‪X‬‬


‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬

‫در صورتیکه عملوندهای دو طرف این عملگر هر دو صفر یا هر دو یک باشند نتیجه صفر در غیر اینصورت نتیجه یک میشود‪ .‬در مثال زیر‬

‫تأثیر عملگر بیتی ‪ XOR‬را بر روی دو مقدار مشاهده میکنید‪:‬‬

‫;‪result = 5 ^ 7‬‬

‫;)‪print(result‬‬

‫‪2‬‬

‫در زیر معادل باینری اعداد باال (‪ 5‬و ‪ )7‬نشان داده شده است‪.‬‬

‫‪5: 00000000000000000000000000000101‬‬
‫‪7: 00000000000000000000000000000111‬‬
‫‪-----------------------------------‬‬
‫‪2: 00000000000000000000000000000010‬‬

‫با نگاه کردن به جدول درستی عملگر بیتی ‪ ،XOR‬میتوان فهمید که چرا نتیجه عدد ‪ 1‬میشود‪.‬‬

‫عملگر بیتی )~(‪NOT‬‬

‫این عملگر یک عملگر یگانی است و فقط به یک عملوند نیاز دارد‪ .‬در زیر جدول درستی این عملگر آمده است‪:‬‬

‫‪NOT X‬‬ ‫‪X‬‬


‫‪0‬‬ ‫‪1‬‬
‫‪1‬‬ ‫‪0‬‬

‫عملگر بیتی ‪ NOT‬مقادیر بیتها را معکوس میکند‪ .‬در زیر چگونگی استفاده از این عملگر آمده است‪:‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪31‬‬

‫;‪result = 5 ^ 7‬‬

‫;)‪print(result‬‬

‫‪-8‬‬

‫به نمایش باینری مثال باال که در زیر نشان داده شده است توجه نمایید‪.‬‬

‫‪7: 00000000000000000000000000000111‬‬
‫‪------------------------------------‬‬
‫‪-8: 11111111111111111111111111111000‬‬

‫عملگر بیتی تغییر مکان)‪(shift‬‬

‫این نوع عملگرها به شما اجازه می دهند که بیتها را به سمت چپ یا راست جا به جا کنید‪ .‬دو نوع عملگر بیتی تغییر مکان وجود دارد که‬

‫هر کدام دو عملوند قبول می کنند‪ .‬عملوند سمت چپ این عملگرها حالت باینری یک مقدار و عملوند سمت راست تعداد جابه جاییبیت ها‬

‫را نشان میدهد‪.‬‬

‫مثال‬ ‫نام‬ ‫عملگر‬

‫;‪x = y << 2‬‬ ‫تغییر مکان به سمت چپ‬ ‫>>‬

‫;‪x = y >> 2‬‬ ‫تغییر مکان به سمت راست‬ ‫<<‬

‫عملگر تغییر مکان به سمت چپ‬

‫این عملگر بیتهای عملوند سمت چپ را به تعداد ‪ n‬مکان مشخص شده توسط عملوند سمت راست‪ ،‬به سمت چپ منتقل میکند‪ .‬به‬

‫عنوان مثال‪:‬‬

‫;‪result = 10 << 2‬‬

‫;)‪print(result‬‬

‫‪40‬‬

‫در مثال باال ما بیتهای مقدار ‪ 11‬را دو مکان به سمت چپ منتقل کردهایم‪ ،‬حال بیایید تأثیر این انتقال را بررسی کنیم‪:‬‬

‫‪10: 00000000000000000000000000001010‬‬
‫‪------------------------------------‬‬
‫‪40: 00000000000000000000000000101000‬‬
‫‪02‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫مشاهده میکنید که همه بیتها به اندازه دو واحد به سمت چپ منتقل شدهاند‪ .‬در این انتقال دو صفر از صفرهای سمت چپ کم میشود‬

‫و در عوض دو صفر به سمت راست اضافه میشود‪.‬‬

‫عملگر تغییر مکان به سمت راست‬

‫این عملگر شبیه به عمگر تغییر مکان به سمت چپ است با این تفاوت که بیتها را به سمت راست جا به جا میکند‪ .‬به عنوان مثال‪:‬‬

‫;‪result = 100 >> 4‬‬

‫;)‪print(result‬‬

‫‪6‬‬

‫با استفاده از عملگرتغییر مکان به سمت راست بیتهای مقدار ‪ 111‬را به اندازه ‪ 4‬واحد به سمت چپ جا به جا میکنیم‪ .‬اجازه بدهید تأثیر‬

‫این جا به جایی را مورد بررسی قرار دهیم‪:‬‬

‫‪100: 00000000000000000000000001100100‬‬
‫‪------------------------------------‬‬
‫‪6: 00000000000000000000000000000110‬‬

‫هر بیت به اندازه ‪ 4‬واحد به سمت راست منتقل میشود‪ ،‬بنابراین ‪ 4‬بیت اول سمت راست حذف شده و چهار صفر به سمت چپ اضافه‬

‫میشود‪.‬‬

‫عملگرهای خاص‬
‫عالوه بر عملگرهایی که تا کنون ذکر شد‪ ،‬پایتون دارای عملگرهای خاص زیر نیز میباشد‪:‬‬

‫عملگرهای ‪ membership‬که بررسی میکنند آیا متغیر مورد نظر در یک مجموعه )‪ (sequence‬همچون رشته‪list ،‬یا‬ ‫‪‬‬

‫‪tuple‬وجود دارد یا خیر‪.‬‬

‫عملگرهای ‪ Identity‬که مکانهای قرار گیری دو شیء را با هم مقایسه میکند (بررسی میکنند آیا دوشی با هم برابر‬ ‫‪‬‬

‫هستند یا خیر)‪.‬‬

‫در جدول زیر انواع عملگرهای ‪ membership‬و ‪ Identity‬ذکر شدهاند‪:‬‬

‫توضیح‬ ‫عملگر‬

‫در صورت یافتن متغیر مورد نظر در مجموعهی مشخص شده‪ True ،‬و در غیر این‬
‫‪in‬‬ ‫‪Memberships operator‬‬
‫صورت ‪ False‬را برمی گرداند‪.‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪33‬‬

‫در صورت یافت نشدن متغیر مورد نظر در مجموعهی مشخص شده‪ True ،‬و در‬
‫‪not in‬‬
‫غیر این صورت ‪ False‬را برمی گرداند‪.‬‬

‫اگر متغیرهای هر دو طرف عملگر به شی یکسان اشاره داشته باشند‪ True ،‬و در‬
‫‪is‬‬
‫غیر این صورت ‪ False‬را برمی گرداند‪.‬‬
‫‪Identity operator‬‬
‫چنانچه متغیر در دو طرف عملگر به شی یکسان اشاره داشته باشد‪ False ،‬و در‬
‫‪is not‬‬
‫غیر این صورت ‪ True‬را بر می گرداند‪.‬‬

‫به مثالهای زیر توجه کنید‪:‬‬

‫‪print(5 in‬‬ ‫;)]‪[3, 8, 5, 10‬‬


‫;)]‪print(5 not in [3, 8, 5, 10‬‬

‫‪True‬‬

‫‪False‬‬

‫در خط اول کد باال‪ ،‬چک میشود که آیا عدد ‪ 5‬در مجموعه ]‪ [3, 8, 5, 10‬وجود دارد یا نه؟ و چون وجود دارد مقدار ‪ True‬بر گردانده‬

‫میشود‪ .‬در خط دوم هم که کامالً مشخص است که اگر عدد ‪ 5‬در مجموعه وجود نداشته باشد مقدار ‪ True‬بر گردانده میشود ولی چون‬

‫عدد ‪ 5‬وجود دارد مقدار ‪ False‬برگردانده میشود‪.‬‬

‫;‪number1 = 5‬‬
‫;‪number2 = 6‬‬

‫‪print(number1 is‬‬ ‫;)‪number2‬‬


‫;)‪print(number1 is not number2‬‬

‫‪True‬‬

‫‪False‬‬

‫در مثال باال و در اولین مقایسه گفته شده است که آیا ‪ number1‬همان ‪number2‬است و چون چنین نیست مقدار ‪ False‬و در مقایسه‬

‫دوم هم گفته شده است که آیا ‪ number1‬برابر ‪ number2‬نیست؟ و چون برابر نیستند مقدار ‪ True‬برگردانده شده است‪.‬‬

‫گرفتن ورودی از کاربر‬


‫پایتون متد ‪ ()input‬را برای گرفتن ورودی از کاربر‪ ،‬در اختیار شما قرار میدهد‪ .‬همانطور که از نام این متد پیداست‪ ،‬تمام کاراکترهایی‬

‫را که شما در محیط برنامه نویسی تایپ میکنید تا زمانی که دکمه ‪enter‬را میزنید‪ ،‬میخواند‪ .‬به برنامه زیر توجه کنید‪:‬‬

‫‪1‬‬ ‫‪name‬‬ ‫;)" ‪= input("Enter your name:‬‬


‫‪2‬‬ ‫‪age‬‬ ‫;)" ‪= input("Enter your age:‬‬
‫‪04‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫‪3‬‬ ‫;)" ‪height = input("Enter your height:‬‬


‫‪4‬‬
‫‪5‬‬ ‫‪#Print a blank line‬‬
‫‪6‬‬ ‫;)(‪print‬‬
‫‪7‬‬
‫‪8‬‬ ‫‪#Show the details you typed‬‬
‫‪9‬‬ ‫;))‪print("Name is {0}.".format(name‬‬
‫‪10‬‬ ‫;))‪print("Age is {0}.".format(age‬‬
‫‪11‬‬ ‫;))‪print("Height is {0}.".format(height‬‬

‫‪Enter your name: John‬‬


‫‪Enter your age: 18‬‬
‫‪Enter your height: 160.5‬‬

‫‪Name is John.‬‬
‫‪Age is 18.‬‬
‫‪Height is 160.5.‬‬

‫ابتدا ‪ 3‬متغیر را برای ذخیره داده در برنامه تعریف میکنیم (خطوط ‪ 1‬و ‪ 1‬و ‪ .)3‬برنامه از کاربر میخواهد که نام خود را وارد کند (خط ‪.)1‬‬

‫در خط ‪ 1‬شما به عنوان کاربر نام خود را وارد میکنید‪ .‬سپس برنامه از ما سن را سؤال میکند (خط ‪ .)3‬در خط ‪ 6‬هم یک خط فاصله به‬

‫وسیله متد )(‪ print‬ایجاد کرده ایم تا بین ورودی های شما و خروجی فاصله ای جهت تفکیک ایجاد شود‪ .‬حال برنامه را اجرا کرده و با‬

‫وارد کردن مقادیر مورد نظر نتیجه را مشاهده کنید‪.‬‬

‫ساختارهای تصمیم‬
‫تقریبا همه زبانهای برنامه نویسی به شما اجازه اجرای کد را در شرایط مطمئن می دهند‪ .‬حال تصور کنید که یک برنامه دارای ساختار تصمیم‬

‫گیری نباشد و همه کدها را اجرا کند‪ .‬این حالت شاید فقط برای چاپ یک پیغام در صفحه مناسب باشد ولی فرض کنید که شما بخواهید‬

‫اگر مقدار یک متغیر با یک عدد برابر باشد سپس یک پیغام چاپ شود آن وقت با مشکل مواجه خواهید شد‪ .‬پایتون راه های مختلفی‬

‫برای رفع این نوع مشکالت ارائه می دهد‪ .‬در این بخش با مطالب زیر آشنا خواهید شد‪:‬‬

‫دستور‪if‬‬ ‫‪‬‬

‫دستور‪if…else‬‬ ‫‪‬‬

‫عملگر سه تایی‬ ‫‪‬‬

‫دستور ‪ if‬چندگانه‬ ‫‪‬‬

‫دستور ‪ if‬تو در تو‬ ‫‪‬‬

‫عملگرهای منطقی‬ ‫‪‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪35‬‬

‫دستور ‪if‬‬
‫میتوان با استفاده از دستور ‪ if‬و یک شرط خاص که باعث ایجاد یک کد میشود یک منطق به برنامه خود اضافه کنید‪ .‬دستور ‪if‬‬

‫سادهترین دستور شرطی است که برنامه میگوید اگر شرطی برقرار است کد معینی را انجام بده‪ .‬ساختار دستور ‪ if‬به صورت زیر است‪:‬‬

‫‪if (condition):‬‬

‫‪code to execute‬‬

‫قبل از اجرای دستور ‪ if‬ابتدا شرط بررسی میشود‪ .‬اگر شرط برقرار باشد یعنی درست باشد سپس کد اجرا میشود‪ .‬شرط یک عبارت‬

‫مقایسهای است‪ .‬میتوان از عملگرهای مقایسهای برای تست درست یا اشتباه بودن شرط استفاده کرد‪ .‬اجازه بدهید که نگاهی به نحوه‬

‫استفاده از دستور ‪ if‬در داخل برنامه بیندازیم‪ .‬برنامه زیر پیغام ‪ Hello World‬را اگر مقدار ‪ number‬کمتر از ‪ 11‬و ‪ Goodbye World‬را اگر‬

‫مقدار ‪ number‬از ‪ 11‬بزرگتر باشد در صفحه نمایش میدهد‪:‬‬

‫‪1‬‬ ‫‪#Declare a variable and set it a value less than 10‬‬


‫‪2‬‬ ‫;‪number = 5‬‬
‫‪3‬‬
‫‪4‬‬ ‫‪#If the value of number is less than 10‬‬
‫‪5‬‬ ‫‪if (number < 10):‬‬
‫‪6‬‬ ‫;)"‪print("Hello World.‬‬
‫‪7‬‬
‫‪8‬‬ ‫‪#Change the value of a number to a value which is greater than 10‬‬
‫‪9‬‬ ‫;‪number = 15‬‬
‫‪10‬‬
‫‪11‬‬ ‫‪#If the value of number is greater than 10‬‬
‫‪12‬‬ ‫‪if (number > 10):‬‬
‫‪13‬‬ ‫;)"‪print("Goodbye World.‬‬

‫‪Hello World.‬‬
‫‪Goodbye World.‬‬

‫در خط ‪ 1‬یک متغیر با نام ‪ number‬تعریف و مقدار ‪ 5‬به آن اختصاص داده شده است‪ .‬وقتی به اولین دستور ‪ if‬در خط ‪ 1‬میرسیم برنامه‬

‫تشخیص میدهد که مقدار ‪ number‬از ‪ 11‬کمتر است یعنی ‪ 5‬کوچکتر از ‪ 11‬است‪.‬‬

‫منطقی است که نتیجه مقایسه درست میباشد‪ ،‬بنابراین دستور ‪ if‬دستور را اجرا میکند (خط ‪ )6‬و پیغام ‪ Hello World‬چاپ میشود‪.‬‬

‫حال مقدار ‪ number‬را به ‪ 15‬تغییر میدهیم (خط ‪ .)9‬وقتی به دومین دستور ‪ if‬در خط ‪ 11‬میرسیم برنامه مقدار ‪ number‬را با ‪ 11‬مقایسه‬

‫میکند و چون مقدار ‪ number‬یعنی ‪ 15‬از ‪ 11‬بزرگتر است برنامه پیغام ‪ Goodbye World‬را چاپ میکند (خط ‪ .)13‬به این نکته توجه‬

‫کنید که دستور ‪ if‬را میتوان در یک خط نوشت‪:‬‬

‫;)"‪if (number > 10): print("Goodbye World.‬‬

‫شما میتوانید چندین دستور را در داخل دستور ‪ if‬بنویسید‪ .‬کافیست که حواستان به تو رفتگی کدها باشد‪ .‬نحوه تعریف چند دستور در‬

‫داخل بدنه ‪ if‬به صورت زیر است‪:‬‬


‫‪06‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫)‪if (condition‬‬
‫;‪statement1‬‬
‫;‪statement2‬‬
‫‪.‬‬
‫‪.‬‬
‫‪.‬‬
‫;‪statementN‬‬

‫این هم یک مثال ساده‪:‬‬

‫;‪x = 15‬‬

‫‪if (x > 10):‬‬


‫;)"‪print("x is greater than 10.‬‬
‫;)"‪print("This is still part of the if statement.‬‬

‫در مثال باال اگر مقدار ‪ x‬از ‪ 11‬بزرگتر باشد دو پیغام چاپ میشود‪ .‬حال اگر به عنوان مثال‪ ،‬تو رفتگی خط آخر را حذف کنیم و مقدار ‪ x‬از ‪11‬‬

‫بزرگتر نباشد مانند کد زیر‪:‬‬

‫;‪x = 5‬‬

‫‪if (x > 10):‬‬


‫;)"‪print("x is greater than 10.‬‬
‫;)"‪print("This is not part of the if statement.‬‬

‫کد باال در صورتی بهتر خوانده میشود که بین دستورات فاصله بگذاریم‪:‬‬

‫;‪x = 5‬‬

‫‪if (x > 10):‬‬


‫;)"‪print("x is greater than 10.‬‬

‫;)"‪print("This is not part of the if statement.‬‬

‫میبیند که دستور آخر در مثال باال‪ ،‬جز دستور ‪ if‬نیست‪ .‬اینجاست که چون ما فرض را بر این گذاشتهایم که مقدار ‪ x‬از ‪ 11‬کوچکتر است‬

‫پس خط)?‪ This is not part of the if statement. (Really‬چاپ میشود‪ .‬در نتیجه اهمیت وجود تو رفتگی مشخص‬

‫میشود‪ .‬به عنوان تمرین همیشه حتی اگر فقط یک دستور در بدنه ‪ if‬داشتید برای آن یک تو رفتگی ایجاد کنید‪ .‬فراموش نکنید که از قلم‬

‫انداختن یک تو رفتگی باعث به وجود آمدن خطا شده و یافتن آن را سخت میکند‪ .‬مثالی دیگر در مورد دستور ‪:if‬‬

‫;)" ‪firstNumber = input("Enter a number:‬‬


‫;)" ‪secondNumber = input("Enter another number:‬‬

‫‪if (firstNumber == secondNumber):‬‬


‫;))‪print("{0} == {1}".format(firstNumber, secondNumber‬‬

‫‪if (firstNumber != secondNumber):‬‬


‫ مبانی زبان پایتون‬:‫فصل اول‬ 37

print("{0} != {1}".format(firstNumber, secondNumber));

if (firstNumber < secondNumber):


print("{0} < {1}".format(firstNumber, secondNumber));

if (firstNumber > secondNumber):


print("{0} > {1}".format(firstNumber, secondNumber));

if (firstNumber <= secondNumber):


print("{0} <= {1}".format(firstNumber, secondNumber));

if (firstNumber >= secondNumber):


print("{0} >= {1}".format(firstNumber, secondNumber));

Enter a number: 2
Enter another number: 5
2 != 5
2 < 5
2 <= 5
Enter a number: 10
Enter another number: 3
10 != 3
10 > 3
10 >= 3
Enter a number: 5
Enter another number: 5
5 == 5
5 <= 5
5 >= 5

‫ ابتدا دو عدد که قرار است با هم مقایسه شوند را به عنوان ورودی از کاربر‬.‫ استفاده کردهایم‬if ‫ما از عملگرهای مقایسهای در دستور‬

‫ به این نکته توجه داشته باشید که شرطها مقادیر‬.‫ اعداد با هم مقایسه میشوند و اگر شرط درست بود پیغامی چاپ میشود‬.‫میگیریم‬

.‫ می باشند‬Flase ‫ یا‬True ‫ یعنی دارای دو مقدار‬،‫بولی هستند‬

if…else ‫دستور‬
‫ اما زمانی که شما بخواهید‬.‫ فقط برای اجرای یک حالت خاص به کار می رود یعنی اگر حالتی برقرار بود کار خاصی انجام شود‬if ‫دستور‬

if ‫ ساختار دستور‬.‫ استفاده کنید‬if else ‫اگر شرط خاصی برقرار شد یک دستور و اگر برقرار نبود دستور دیگر اجرا شود باید از دستور‬

:‫ در زیر آمده است‬else

if (condition):

code to execute if condition is true

else:

code to execute if condition is false;


‫‪08‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫ً‬
‫حتما باید با ‪if‬به کار برده شود‪ .‬اگر فقط یک کد اجرایی در داخل بدنه ‪if‬‬ ‫از کلمه کلیدی ‪ else‬نمیتوان به تنهایی استفاده کرد بلکه‬

‫و بدنه ‪ else‬دارید استفاده از آکوالد اختیاری است‪ .‬کد داخل بلوک ‪ else‬فقط در صورتی اجرا میشود که شرط داخل دستور ‪if‬‬

‫نادرست باشد‪ .‬در زیر نحوه استفاده از دستور ‪if…else‬آمده است‪:‬‬

‫‪1‬‬ ‫;‪number = 5‬‬


‫‪2‬‬
‫‪3‬‬ ‫‪#Test the condition‬‬
‫‪4‬‬ ‫‪if (number < 10):‬‬
‫‪5‬‬ ‫;)"‪print("The number is less than 10.‬‬
‫‪6‬‬ ‫‪else:‬‬
‫‪7‬‬ ‫;)"‪print("The number is either greater than or equal to 10.‬‬
‫‪8‬‬
‫‪9‬‬ ‫‪#Modify value of number‬‬
‫‪10‬‬ ‫;‪number = 15‬‬
‫‪11‬‬
‫‪12‬‬ ‫‪#Repeat the test to yield a different result‬‬
‫‪13‬‬ ‫‪if (number < 10):‬‬
‫‪14‬‬ ‫;)"‪print("The number is less than 10.‬‬
‫‪15‬‬ ‫‪else:‬‬
‫‪16‬‬ ‫;)"‪print("The number is either greater than or equal to 10.‬‬

‫‪The number is less than 10.‬‬


‫‪The number is either greater than or equal to 10.‬‬

‫در خط ‪ 1‬یک متغیر به نام ‪ number‬تعریف کردهایم و در خط ‪ 4‬تست میکنیم که آیا مقدار متغیر ‪ number‬از ‪ 11‬کمتر است یا نه و چون‬

‫کمتر است در نتیجه کد داخل بلوک ‪ if‬اجرا میشود (خط ‪ )7‬و اگر مقدار ‪ number‬را تغییر دهیم و به مقداری بزرگتر از ‪ 11‬تغییر دهیم‬

‫(خط ‪ ،)11‬شرط نادرست میشود (خط ‪ )13‬و کد داخل بلوک ‪ else‬اجرا میشود (خط ‪.)16‬‬

‫دستور ‪if…elif…else‬‬
‫اگر بخواهید چند شرط را بررسی کنید چکار میکنید؟ میتوانید از چندین دستور ‪ if‬استفاده کنید و بهتر است که این دستورات ‪ if‬را به‬

‫صورت زیر بنویسید‪:‬‬

‫‪if (condition):‬‬
‫;‪code to execute‬‬
‫‪else:‬‬
‫‪if (condition):‬‬
‫;‪code to execute‬‬
‫‪else:‬‬
‫‪if (condition):‬‬
‫;‪code to execute‬‬
‫‪else:‬‬
‫ مبانی زبان پایتون‬:‫فصل اول‬ 39

code to execute;

‫ میتوانید کد باال را سادهتر کنید‬.‫ بنویسید‬else ‫ بهتر است دستورات را به صورت تو رفتگی در داخل بلوک‬.‫خواندن کد باال سخت است‬

if (condition):

code to execute;

elif (condition):

code to execute;

elif (condition):

code to execute;

else:

code to execute;

elif ‫ دستور‬.‫ وابسته است‬if ‫ نیز به دستور‬elif ،else ‫را یاد گرفتید باید بدانید که مانند‬if else ‫حال که نحوه استفاده از دستور‬

‫ و اگر آن نیز اجرا نشود‬.‫ بعدی اجرا میشود‬elif ‫ اشتباه باشد دستور‬elif ‫ اشتباه باشد حال اگر‬if ‫وقتی اجرا میشود که اولین دستور‬

:‫ را نشان میدهد‬elif‫ برنامه زیر نحوه استفاده از دستور‬.‫ اجرا میشود‬else ‫در نهایت دستور‬

1 print("What's your favorite color?");


2 print("[1] Black");
3 print("[2] White");
4 print("[3] Blue");
5 print("[4] Red");
6 print("[5] Yellown");
7
8 choice = int(input("Enter your choice: "));
9
10 if (choice == 1):
11 print("You might like my black t-shirt.");
12 elif (choice == 2):
13 print("You might be a clean and tidy person.");
14 elif (choice == 3):
15 print("You might be sad today.");
16 elif (choice == 4):
17 print("You might be inlove right now.");
18 elif (choice == 5):
19 print("Lemon might be your favorite fruit.");
20 else:
21 print("Sorry, your favorite color is not in the choices above.");

What's your favorite color?


[1] Black
[2] White
[3] Blue
41 ‫ مبانی زبان پایتون‬:‫فصل اول‬

[4] Red
[5] Yellow

Enter your choice: 1


You might like my black t-shirt.
What's your favorite color?
[1] Black
[2] White
[3] Blue
[4] Red
[5] Yellow

Enter your choice: 999


Sorry, your favorite color is not in the choices above.

‫ اگر‬.‫ بسته به اینکه شما چه چیزی انتخاب میکنید پیغامهای مختلفی چاپ میشود‬.‫ وابسته است‬choice ‫خروجی برنامه باال به متغیر‬

.‫ اجرا میشود‬else ‫عددی که شما تایپ میکنید در داخل حالتهای انتخاب نباشد کد مربوط به بلوک‬

‫ تو در تو‬if ‫دستور‬
:‫ دیگر‬if ‫ در داخل دستور‬if ‫ یک دستور ساده‬.‫ تو در تو در پایتون استفاده کرد‬if ‫میتوان از دستور‬

if (condition):
code to execute;
if (condition):
code to execute;
elif (condition):
if (condition):
code to execute;
else:
if (condition):
code to execute;

:‫ تو در تو را نشان دهیم‬if ‫اجازه بدهید که نحوه استفاده از دستور‬

1 age = int(input("Enter your age: "));


2 gender = input("Enter your gender (male/female): ");
3
4 if (age > 12):
5 if (age < 20):
6 if (gender == "male"):
7 print("You are a teenage boy.");
8 else:
9 print("You are a teenage girl.");
10 else:
11 print("You are already an adult.");
12 else:
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪11‬‬

‫‪13‬‬ ‫;)"‪print("You are still too young.‬‬

‫‪Enter your age: 18‬‬


‫‪Enter your gender: male‬‬
‫‪You are a teenage boy.‬‬
‫‪Enter your age: 12‬‬
‫‪Enter your gender: female‬‬
‫‪You are still too young.‬‬

‫ا جازه بدهید که برنامه را کالبد شکافی کنیم‪ .‬ابتدا برنامه از شما درباره سنتان سؤال میکند (خط ‪ .)1‬در خط ‪ 1‬درباره جنستان از شما سؤال‬

‫میکند‪ .‬سپس به اولین دستور ‪ if‬میرسد (خط ‪ .)4‬در این قسمت اگر سن شما بیشتر از ‪ 11‬سال باشد برنامه وارد بدنه دستور ‪if‬‬

‫میشود در غیر اینصورت وارد بلوک ‪( else‬خط ‪ )11‬مربوط به همین دستور ‪ if‬میشود‪.‬‬

‫حال فرض کنیم که سن شما بیشتر از ‪ 11‬سال است و شما وارد بدنه اولین ‪ if‬شدهاید‪ .‬در بدنه اولین ‪ if‬دو دستور ‪ if‬دیگر را مشاهده‬

‫میکنید‪ .‬اگر سن کمتر ‪ 11‬باشد شما وارد بدنه ‪ if‬دوم میشوید و اگر نباشد به قسمت ‪ else‬متناظر با آن میروید (خط ‪ .)11‬دوباره‬

‫فرض میکنیم که سن شما کمتر از ‪ 11‬باشد‪ ،‬در اینصورت وارد بدنه ‪ if‬دوم شده و با یک ‪ if‬دیگر مواجه میشوید (خط ‪ .)6‬در اینجا‬

‫جنسیت شما مورد بررسی قرار میگیرد که اگر برابر ”‪ “male‬باشد‪ ،‬کدهای داخل بدنه سومین ‪ if‬اجرا میشود در غیر اینصورت قسمت‬

‫‪ else‬مربوط به این ‪ if‬اجرا میشود (خط ‪ .)1‬پیشنهاد میشود که از ‪ if‬تو در تو در برنامه کمتر استفاده کنید چون خوانایی برنامه را‬

‫پایین میآورد‪.‬‬

‫استفاده از عملگرهای منطقی‬


‫عملگرهای منطقی به شما اجازه می دهند که چندین شرط را با هم ترکیب کنید‪ .‬این عملگرها حداقل دو شرط را در گیر میکنند و در آخر‬

‫یک مقدار بولی را بر میگردانند‪ .‬در جدول زیر برخی از عملگرهای منطقی آمده است ‪:‬‬

‫تأثیر‬ ‫مثال‬ ‫عملگر‬

‫مقدار ‪ Z‬در صورتی ‪ True‬است که هر دو شرط دو طرف عملگر مقدارشان‬

‫‪ True‬باشد‪ .‬اگر فقط مقدار یکی از شروط ‪ False‬باشد مقدار ‪False‬‬ ‫)‪z = (x > 2) and (y < 10‬‬ ‫‪and‬‬

‫‪z ،‬خواهد شد‪.‬‬

‫مقدار ‪ Z‬در صورتی ‪ True‬است که یکی از دو شرط دو طرف عملگر‬

‫مقدارشان ‪ True‬باشد‪ .‬اگر هر دو شرط مقدارشان ‪ False‬باشد مقدار‬ ‫)‪z = (x > 2) or (y < 10‬‬ ‫‪or‬‬

‫‪z ، False‬خواهد شد ‪.‬‬

‫مقدار ‪ Z‬در صورتی ‪ True‬است که مقدار شرط ‪ False‬باشد و در صورتی‬


‫)‪z = not(x > 2‬‬ ‫‪not‬‬
‫‪ False‬است که مقدار شرط ‪ True‬باشد‬
‫‪42‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫به عنوان مثال جمله )‪z = (x > 2) and (y < 10‬را به این صورت بخوانید‪“ :‬در صورتی مقدار ‪ z‬برابر ‪ True‬است که مقدار ‪x‬‬

‫بزرگتر از ‪2‬و مقدار ‪ y‬کوچکتر از ‪ 11‬باشد در غیر اینصورت ‪ False‬است”‪ .‬این جمله بدین معناست که برای اینکه مقدار کل دستور‬

‫‪ True‬باشد باید مقدار همه شروط ‪ True‬باشد‪ .‬عملگر منطقی ‪ or‬تأثیر متفاوتی نسبت به عملگر منطقی ‪ and‬دارد‪ .‬نتیجه عملگر منطقی‬

‫‪ or‬برابر ‪ True‬است اگر فقط مقدار یکی از شروط ‪ True‬باشد‪ .‬و اگر مقدار هیچ یک از شروط ‪ True‬نباشد نتیجه ‪ False‬خواهد شد‪.‬‬

‫میتوان عملگرهای منطقی ‪ and‬و ‪ or‬را با هم ترکیب کرده و در یک عبارت به کار برد مانند‪:‬‬

‫‪if ( (x == 1) and ( (y > 3) or z < 10) ) ):‬‬

‫‪#do something here‬‬

‫در اینجا استفاده از پرانتز مهم است چون از آن در گروه بندی شرطها استفاده میکنیم‪ .‬در اینجا ابتدا عبارت )‪(y > 3) or (z < 10‬‬

‫مورد بررسی قرار میگیرد (به علت تقدم عملگرها)‪ .‬سپس نتیجه آن بوسیله عملگر ‪ and‬با نتیجه )‪(x == 1‬مقایسه میشود‪ .‬حال بیایید‬

‫نحوه استفاده از عملگرهای منطقی در برنامه را مورد بررسی قرار دهیم‪:‬‬

‫‪1‬‬ ‫;))" ‪age = int(input("Enter your age:‬‬


‫‪2‬‬ ‫;)" ‪gender = input("Enter your gender (male/female):‬‬
‫‪3‬‬
‫‪4‬‬ ‫‪if (age > 12 and age < 20):‬‬
‫‪5‬‬ ‫‪if (gender == "male"):‬‬
‫‪6‬‬ ‫;)"‪print("You are a teenage boy.‬‬
‫‪7‬‬ ‫‪else:‬‬
‫‪8‬‬ ‫;)"‪print("You are a teenage girl.‬‬
‫‪9‬‬ ‫‪else:‬‬
‫‪10‬‬ ‫;)"‪print("You are not a teenager.‬‬

‫‪Enter your age: 18‬‬


‫‪Enter your gender (male/female): female‬‬
‫‪You are a teenage girl.‬‬
‫‪Enter you age: 10‬‬
‫‪Enter your gender (male/female): male‬‬
‫‪You are not a teenager.‬‬

‫برنامه باال نحوه استفاده از عملگر منطقی ‪ and‬را نشان میدهد (خط ‪ .)4‬وقتی به دستور ‪ if‬میرسید (خط ‪ )4‬برنامه سن شما را چک‬

‫میکند‪ .‬اگر سن شما بزرگتر از ‪ 11‬و کوچکتر از ‪ 11‬باشد (سنتان بین ‪ 11‬و ‪ 11‬باشد) یعنی مقدار هر دو ‪ True‬باشد سپس کدهای داخل‬

‫بلوک ‪ if‬اجرا میشوند‪ .‬اگر نتیجه یکی از شروط ‪ False‬باشد کدهای داخل بلوک ‪ else‬اجرا میشود‪ .‬عملگر ‪ and‬عملوند سمت چپ‬

‫را مورد بررسی قرار میدهد‪ .‬اگر مقدار آن ‪ False‬باشد دیگر عملوند سمت راست را بررسی نمیکند و مقدار ‪ False‬را بر میگرداند‪ .‬بر‬

‫عکس عملگر ‪ or‬عملوند سمت چپ را مورد بررسی قرار میدهد و اگر مقدار آن ‪ True‬باشد سپس عملوند سمت راست را نادیده میگیرد‬

‫و مقدار ‪ True‬را بر میگرداند‪.‬‬

‫‪if (x == 2 and y == 3):‬‬


‫‪#Some code here‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪13‬‬

‫)‪if (x == 2 or y == 3‬‬
‫‪#Some code here‬‬

‫نکته مهم اینجاست که شما میتوانید از عملگرهای ‪ and‬و ‪ or‬به عنوان عملگر بیتی استفاده کنید‪ .‬تفاوت جزئی این عملگرها وقتی که‬

‫به عنوان عملگر بیتی به کار میروند این است که دو عملوند را بدون در نظر گرفتن مقدار عملوند سمت چپ مورد بررسی قرار میدهند‪ .‬به‬

‫عنوان مثال حتی اگر مقدار عملوند سمت چپ ‪ False‬باشد عملوند سمت چپ به وسیله عملگر بیتی ‪ and‬ارزیابی میشود‪ .‬اگر شرطها را‬

‫در برنامه ترکیب کنید استفاده از عملگرهای منطقی ‪ and‬و ‪ or‬به جای عملگرهای بیتی ‪ and‬و ‪ or‬بهتر خواهد بود‪ .‬یکی دیگر از عملگرهای‬

‫منطقی عملگر ‪ not‬است که نتیجه یک عبارت را خنثی یا منفی میکند‪ .‬به مثال زیر توجه کنید‪:‬‬

‫))‪if (not(x == 2‬‬


‫;)"‪print("x is not equal to 2.‬‬

‫ا گر نتیجه عبارت ‪ x == 2‬برابر ‪ False‬باشد عملگر ‪ not‬آن را ‪ True‬میکند‪.‬‬

‫عملگر شرطی‬
‫عملگر شرطی در پایتون مانند دستور شرطی ‪ if…else‬عمل میکند‪ .‬در زیر نحوه استفاده از این عملگر آمده است‪:‬‬

‫‪condition_is_true if condition else condition_is_false‬‬

‫عملگر شرطی تنها عملگر سه تایی پایتون است که نیاز به سه عملوند دارد‪ ،‬یک مقدار زمانی که شرط درست باشد‪ ،‬شرط و یک مقدار زمانی‬

‫که شرط نادرست باشد‪ .‬اجازه بدهید که نحوه استفاده این عملگر را در داخل برنامه مورد بررسی قرار دهیم‪:‬‬

‫‪1‬‬ ‫;"‪pet1 = "puppy‬‬


‫‪2‬‬ ‫;"‪pet2 = "kitten‬‬
‫‪3‬‬
‫‪4‬‬ ‫;"‪type1 = "dog" if (pet1 == "puppy" ) else "cat‬‬
‫‪5‬‬ ‫;"‪type2 = "cat" if (pet2 == "kitten") else "dog‬‬
‫‪6‬‬
‫‪7‬‬ ‫;)‪print(type1‬‬
‫‪8‬‬ ‫;)‪print(type2‬‬

‫‪dog‬‬
‫‪cat‬‬

‫برنامه باال نحوه استفاده از این عملگر شرطی را نشان میدهد‪ .‬خط ‪ 4‬به این صورت ترجمه میشود که مقدار ‪ dog‬را در متغیر ‪type1‬‬

‫قرار بده اگر مقدار ‪ pet1‬برابر با ‪ puppy‬بود در غیر این صورت مقدار ‪ cat‬را ‪ type1‬قرار بده‪ .‬خط ‪ 5‬به این صورت ترجمه میشود که مقدار‬

‫‪ cat‬را در ‪ type2‬قرار بده اگر مقدار ‪ pet2‬برابر با ‪ kitten‬بود در غیر این صورت مقدار ‪ .dog‬حال برنامه باال را با استفاده از دستور ‪if‬‬

‫‪else‬مینویسیم‪:‬‬
‫‪44‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫‪if (pet1 == "puppy"):‬‬


‫;"‪type1 = "dog‬‬
‫‪else:‬‬
‫;"‪type1 = "cat‬‬

‫هنگامی که چندین دستور در داخل یک بلوک ‪ if‬یا ‪ else‬دارید از عملگر شرطی استفاده نکنید چون خوانایی برنامه را پایین میآورد‪.‬‬

‫تکرار‬
‫ساختارهای تکرار به شما اجازه می دهند که یک یا چند دستور کد را تا زمانی که یک شرط برقرار است تکرار کنید‪ .‬بدون ساختارهای تکرار‬

‫شما مجبورید همان تعداد کدها را بنویسید که بسیار خسته کننده است‪ .‬مثالً شما مجبورید ‪ 11‬بار جمله ”‪ “.Hello World‬را تایپ کنید‬

‫مانند مثال زیر‪:‬‬

‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬
‫‪print("Hello‬‬ ‫;)"!‪World‬‬

‫البته شما می توانید با کپی کردن این تعداد کد را راحت بنویسید ولی این کار در کل کیفیت کدنویسی را پایین میآورد‪ .‬راه بهتر برای‬

‫نوشتن کدهای باال استفاده از حلقهها است‪ .‬حلقهها در پایتون عبارتند از‪:‬‬

‫‪while‬‬ ‫‪‬‬
‫‪for‬‬ ‫‪‬‬

‫حلقه ‪While‬‬
‫ابتداییترین ساختار تکرار در پایتون حلقه ‪ While‬است‪ .‬ابتدا یک شرط را مورد بررسی قرار میدهد و تا زمانیکه شرط برقرار باشد کدهای‬

‫درون بلوک اجرا میشوند‪ .‬ساختار حلقه ‪ While‬به صورت زیر است‪:‬‬

‫‪while(condition):‬‬

‫;‪code to loop‬‬

‫میبینید که ساختار ‪ While‬مانند ساختار ‪ if‬بسیار ساده است‪ .‬ابتدا یک شرط را که نتیجه آن یک مقدار بولی است مینویسیم اگر نتیجه‬

‫درست یا ‪ true‬باشد سپس کدهای داخل بلوک ‪ While‬اجرا میشوند‪ .‬اگر شرط غلط یا ‪ false‬باشد وقتی که برنامه به حلقه ‪While‬‬

‫برسد هیچکدام از کدها را اجرا نمیکند‪ .‬برای متوقف شدن حلقه باید مقادیر داخل حلقه ‪ While‬اصالح شوند‪.‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪15‬‬

‫ب ه یک متغیر شمارنده در داخل بدنه حلقه نیاز داریم‪ .‬این شمارنده برای آزمایش شرط مورد استفاده قرار میگیرد و ادامه یا توقف حلقه به‬

‫نوعی به آن وابسته است‪ .‬این شمارنده را در داخل بدنه باید کاهش یا افزایش دهیم‪ .‬در برنامه زیر نحوه استفاده از حلقه ‪ While‬آمده‬

‫است‪:‬‬

‫;‪counter = 1‬‬

‫‪while (counter <= 10):‬‬


‫;)"!‪print("Hello World‬‬
‫;‪counter = counter + 1‬‬

‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬
‫‪Hello‬‬ ‫!‪World‬‬

‫برنامه باال ‪ 11‬بار پیغام !‪ Hello World‬را چاپ میکند‪ .‬اگر از حلقه در مثال باال استفاده نمیکردیم مجبور بودیم تمام ‪ 11‬خط را تایپ کنیم‪.‬‬

‫اجازه دهید که نگاهی به کدهای برنامه فوق بیندازیم‪ .‬ابتدا در خط ‪ 1‬یک متغیر تعریف و از آن به عنوان شمارنده حلقه استفاده شده است‪.‬‬

‫سپس به آن مقدار ‪ 1‬را اختصاص میدهیم چون اگر مقدار نداشته باشد نمیتوان در شرط از آن استفاده کرد‪.‬‬

‫در خط ‪ 3‬حلقه ‪ while‬را وارد میکنیم‪ .‬در حلقه ‪ while‬ابتدا مقدار اولیه شمارنده با ‪ 11‬مقایسه میشود که آیا از ‪ 11‬کمتر است یا با آن برابر‬

‫است‪ .‬نتیجه هر بار مقایسه ورود به بدنه حلقه ‪ While‬و چاپ پیغام است‪ .‬همانطور که مشاهده میکنید بعد از هر بار مقایسه مقدار‬

‫شمارنده یک واحد اضافه میشود (خط ‪ .)5‬حلقه تا زمانی تکرار میشود که مقدار شمارنده از ‪ 11‬کمتر باشد‪.‬‬

‫اگر مقدار شمارنده یک بماند و آن را افزایش ندهیم و یا مقدار شرط هرگز ‪ false‬نشود یک حلقه بینهایت به وجود میآید‪ .‬به این نکته‬

‫توجه کنید که در شرط باال به جای عالمت < از =< استفاده شده است‪ .‬اگر از عالمت < استفاده میکردیم کد ما ‪ 9‬بار تکرار میشد چون‬

‫مقدار اولیه ‪ 1‬است و هنگامی که شرط به ‪ 11‬برسد ‪ false‬میشود چون ‪ 11 < 11‬نیست‪ .‬اگر میخواهید یک حلقه بی نهایت ایجاد کنید که‬

‫هیچگاه متوقف نشود باید یک شرط ایجاد کنید که همواره درست )‪ (true‬باشد‪:‬‬

‫‪while(True):‬‬

‫‪#code to loop‬‬

‫ا ین تکنیک در برخی موارد کارایی دارد و آن زمانی است که شما بخواهید با استفاده از دستورات ‪ break‬و ‪ return‬که در آینده توضیح‬

‫خواهیم داد از حلقه خارج شوید‪.‬‬


‫‪46‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫حلقه ‪for‬‬
‫یکی دیگر از ساختارهای تکرار حلقه ‪ for‬است‪ .‬این حلقه عملی شبیه به حلقه ‪ while‬انجام میدهد‪ .‬ساختار حلقه ‪ for‬به صورت زیر‬

‫است‪:‬‬

‫‪for iterator_var in sequence:‬‬

‫;‪code to repeat‬‬

‫‪ iterator_var‬یک متغیر موقتی‪ in ،‬کلمه کلیدی و ‪ sequence‬هم یک سری مانند ‪ list ،tuple‬و … می باشد‪ .‬می توان حلقه‬

‫‪ for‬را اینگونه ترجمه کرد‪ ،‬که به ازای یا به تعداد آیتم های موجود در سری‪ ،‬فالن کارها یا کدها را تکرار کن‪ .‬در زیر یک مثال از حلقه‪for‬‬

‫آمده است‪:‬‬

‫‪for i in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:‬‬


‫;)‪print("Number ", i‬‬

‫‪Number‬‬ ‫‪1‬‬
‫‪Number‬‬ ‫‪2‬‬
‫‪Number‬‬ ‫‪3‬‬
‫‪Number‬‬ ‫‪4‬‬
‫‪Number‬‬ ‫‪5‬‬
‫‪Number‬‬ ‫‪6‬‬
‫‪Number‬‬ ‫‪7‬‬
‫‪Number‬‬ ‫‪8‬‬
‫‪Number‬‬ ‫‪9‬‬
‫‪Number‬‬ ‫‪10‬‬

‫برنامه باال اعداد ‪ 1‬تا ‪ 11‬را با استفاده از حلقه ‪ for‬میشمارد‪ .‬ابتدا یک متغیر موقتی )‪ ،(i‬سپس کلمه کلیدی ‪ in‬و در آخر یک سری از‬

‫اعداد که در اینجا یک ‪ list‬می باشد‪ ،‬تعریف میکنیم‪ .‬کد اجرا میشود‪ .‬هر بار که حلقه اجرا می شود‪ ،‬ابتدا یکی از آیتم های ‪ list‬در‬

‫متغیر ‪ i‬قرار گرفته و در خط بعد چاپ می شود‪ .‬این کار تا چاپ آخرین آیتم ادامه می یابد‪ .‬به جای ‪ list‬در کد باال می توانید از‬

‫‪ tuple‬و ‪ dictionary‬هم استفاده کنید‪:‬‬

‫‪for i in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10):‬‬

‫یا‬

‫‪for i in {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}:‬‬


‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪17‬‬

‫حلقه های تو در تو )‪(Nested Loops‬‬


‫پایتون به شما اجازه میدهد که از حلقه ها به صورت تو در تو استفاده کنید‪ .‬اگر یک حلقه در داخل حلقه دیگر قرار بگیرد‪ ،‬به آن حلقه تو‬

‫در تو گفته میشود‪ .‬در این نوع حلقه ها‪ ،‬به ازای اجرای یک بار حلقه بیرونی‪ ،‬حلقه داخلی به طور کامل اجرا میشود‪ .‬در زیر نحوه ایجاد‬

‫حلقه تو در تو آمده است‪:‬‬

‫‪for iterator_var in sequence:‬‬

‫‪for iterator_var in sequence:‬‬

‫)‪statements(s‬‬

‫)‪statements(s‬‬

‫‪while expression:‬‬

‫‪while expression:‬‬

‫)‪statement(s‬‬

‫)‪statement(s‬‬

‫نکتهای که در مورد حلقههای تو در تو وجود دارد این است که‪ ،‬میتوان از یک نوع حلقه در داخل نوع دیگر استفاده کرد‪ .‬مثالً میتوان از‬

‫حلقه ‪ for‬در داخل حلقه ‪ while‬استفاده نمود‪ .‬در مثال زیر نحوه استفاده از این حلقهها ذکر شده است‪ .‬فرض کنید که میخواهید یک‬

‫مستطیل با ‪ 3‬سطر و ‪ 5‬ستون ایجاد کنید‪:‬‬

‫‪1‬‬ ‫‪for i in (1, 2, 3, 4):‬‬


‫‪2‬‬ ‫‪for j in (1, 2, 3, 4, 5):‬‬
‫‪3‬‬ ‫;)' '=‪print("*", end‬‬
‫‪4‬‬ ‫;)(‪print‬‬

‫*‬ ‫*‬ ‫*‬ ‫*‬ ‫*‬


‫*‬ ‫*‬ ‫*‬ ‫*‬ ‫*‬
‫*‬ ‫*‬ ‫*‬ ‫*‬ ‫*‬
‫*‬ ‫*‬ ‫*‬ ‫*‬ ‫*‬

‫در کد باال به ازای یک بار اجرای حلقه ‪ for‬اول (خط ‪ ،)1‬حلقه ‪ for‬دوم (‪ )1-3‬به طور کامل اجرا میشود‪ .‬یعنی وقتی مقدار ‪ i‬برابر‬

‫عدد ‪ 1‬میشود‪ ،‬عالمت * توسط حلقه دوم ‪ 5‬بار چاپ میشود‪ ،‬وقتی ‪ i‬برابر ‪ 1‬میشود‪ ،‬دوباره عالمت * پنج بار چاپ میشود و … ‪ .‬در کل‬

‫منظور از دو حلقه ‪ for‬این است که در ‪ 4‬سطر عالمت * در ‪ 5‬ستون چاپ شود یا ‪ 4‬سطر ایجاد شود و در هر سطر ‪ 5‬بار عالمت * چاپ‬

‫شود‪ .‬خط ‪ 4‬هم برای ایجاد خط جدید است‪ .‬یعنی وقتی حلقه داخلی به طور کامل اجرا شد‪ ،‬یک خط جدید ایجاد میشود و عالمتهای‬

‫* در خطوط جدید چاپ میشوند‪.‬‬


‫‪48‬‬ ‫فصل اول‪ :‬مبانی زبان پایتون‬

‫خارج شدن از حلقه با استفاده از ‪ continue،break‬و ‪pass‬‬


‫گاهی اوقات با وجود درست بودن شرط می خواهیم حلقه متوقف شود‪ .‬سؤال اینجاست که چطور این کار را انجام دهید؟ با استفاده از‬

‫کلمه کلیدی ‪ break‬حلقه را متوقف کرده و با استفاده از کلمه کلیدی ‪ continue‬میتوان بخشی از حلقه را رد کرد و به مرحله بعد رفت‪.‬‬

‫برنامه زیر نحوه استفاده از ‪break ،continue‬و ‪ pass‬را نشان میدهد‪:‬‬

‫‪1‬‬ ‫;)"‪print("Demonstrating the use of break\n‬‬


‫‪2‬‬
‫‪3‬‬ ‫‪for x in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10):‬‬
‫‪4‬‬ ‫‪if (x == 5):‬‬
‫‪5‬‬ ‫;‪break‬‬
‫‪6‬‬
‫‪7‬‬ ‫;)‪print("Number ", x‬‬
‫‪8‬‬
‫‪9‬‬ ‫;)"‪print("\nDemonstrating the use of continue\n‬‬
‫‪10‬‬
‫‪11‬‬ ‫‪for x in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10):‬‬
‫‪12‬‬ ‫‪if (x == 5):‬‬
‫‪13‬‬ ‫;‪continue‬‬
‫‪14‬‬
‫‪15‬‬ ‫;)‪print("Number ", x‬‬
‫‪16‬‬
‫‪17‬‬ ‫;)"‪print("\nDemonstrating the use of pass\n‬‬
‫‪18‬‬
‫‪19‬‬ ‫‪for x in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10):‬‬
‫‪20‬‬ ‫‪if (x == 5):‬‬
‫‪21‬‬ ‫;‪pass‬‬

‫‪Demonstrating the use of break‬‬

‫‪Number‬‬ ‫‪1‬‬
‫‪Number‬‬ ‫‪2‬‬
‫‪Number‬‬ ‫‪3‬‬
‫‪Number‬‬ ‫‪4‬‬

‫‪Demonstrating the use of continue‬‬

‫‪Number‬‬ ‫‪1‬‬
‫‪Number‬‬ ‫‪2‬‬
‫‪Number‬‬ ‫‪3‬‬
‫‪Number‬‬ ‫‪4‬‬
‫‪Number‬‬ ‫‪6‬‬
‫‪Number‬‬ ‫‪7‬‬
‫‪Number‬‬ ‫‪8‬‬
‫‪Number‬‬ ‫‪9‬‬
‫‪Number‬‬ ‫‪10‬‬
‫‪Demonstrating the use of pass‬‬

‫در این برنامه از حلقه ‪ for‬برای نشان دادن کاربرد دو کلمه کلیدی فوق استفاده شده است اگر به جای ‪ for‬از حلقه ‪ while‬استفاده میشد‬

‫نتیجه یکسانی به دست میآمد‪ .‬همانطور که در شرط برنامه (خط ‪ )4‬آمده است‪ ،‬وقتی که مقدار ‪ x‬به عدد ‪ 5‬برسد‪ ،‬سپس دستور ‪break‬‬

‫اجرا (خط ‪ )5‬و حلقه بالفاصله متوقف میشود‪ ،‬حتی اگر شرط ‪ x < 10‬برقرار باشد‪ .‬از طرف دیگر در خط ‪ 11‬حلقه ‪ for‬فقط برای یک تکرار‬
‫فصل اول‪ :‬مبانی زبان پایتون‬ ‫‪19‬‬

‫خاص متوقف شده و سپس ادامه مییابد‪ .‬وقتی مقدار ‪ x‬برابر ‪ 5‬شود حلقه از ‪ 5‬رد شده و مقدار ‪ 5‬را چاپ نمیکند و بقیه مقادیر چاپ‬

‫میشوند‪.‬‬

‫ممکن است این سوال برایتان پیش آمده باشد که کاربرد کلمه ‪ pass‬چیست؟ از این دستور زمانی استفاده می کنیم که در شرایطی خاص‬

‫نیاز به انجام هیچ کاری نباشد! مثال برای تعریف یک تابع خالی تا بعدا کدهای آن نوشته شود‪ .‬یا زمانی که بخواهیم همانند مثال باال‪،‬‬

‫کدهای بدنه یک دستور شرطی و یا حلقه را بعدا بنویسیم‪ ،‬به کار می رود‪ .‬حال شما برای درک بهتر‪ ،‬کلمه ‪ pass‬را از کد باال حذف کرده و‬

‫کد را اجرا کنید‪ .‬مشاهده می کنید که به شما پیغام خطا نمایش داده می شود و از شما می خواهد که بدنه دستور ‪ if‬و ‪ for‬را مشخص‬

‫کنید ولی اگر کلمه ‪ pass‬را دوباره بنویسید‪ ،‬این خطا نادیده گرفته و کد اجرا می شود‪.‬‬

‫برای مشاهده سایر مطالب کتاب به آدرس زیر مراجعه فرمایید‬

‫‪W3-farsi.com‬‬

You might also like