Uploaded by mona mansoori birjandi

python-learning-basic-www.Downloadha.com

advertisement
‫پایتون‬
‫به زبان ساده‬
‫بی شک این اثر‪ ،‬خالی از اشکال نیست و از شما خوانندگان عزیز میخواهم که با نظرات و پیشنهادات خود بنده را در تکمیل و رفع نواقص آن از طریق پست‬
‫الکترونیکی ‪ 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‬خود گنجانده است‪.‬‬
‫هم اکنون پایتون در شرکت ها و سازمان های بزرگی مثل ناسا و گوگل و یاهو و … به صورت گسترده مورد استفاده قرار می گیرد‪ .‬تا کنون‬
‫نسخه های مختلفی از این زبان ارائه شده است که لیست آنها را در جدول زیر میشاهده می کنید‪:‬‬
‫نسخه‬
‫تاریخ پیدایش‬
‫‪Python 1.0‬‬
‫‪January 1994‬‬
‫‪Python 1.2‬‬
‫‪April 10, 1995‬‬
‫‪Python 1.3‬‬
‫‪October 12, 1995‬‬
‫‪Python 1.4‬‬
‫‪October 25, 1996‬‬
‫‪Python 1.5‬‬
‫‪December 31, 1997‬‬
‫‪Python 1.6‬‬
‫‪September 5, 2000‬‬
‫‪Python 2.0‬‬
‫‪October 16, 2000‬‬
‫‪Python 2.1‬‬
‫‪April 17, 2001‬‬
‫‪Python 2.2‬‬
‫‪December 21, 2001‬‬
‫‪Python 2.3‬‬
‫‪July 29, 2003‬‬
‫‪Python 2.4‬‬
‫‪November 30, 2004‬‬
‫‪Python 2.5‬‬
‫‪September 19, 2006‬‬
‫‪Python 2.6‬‬
‫‪October 1, 2008‬‬
‫‪Python 2.7‬‬
‫‪July 3, 2010‬‬
‫‪Python 3.0‬‬
‫‪December 3, 2008‬‬
‫‪Python 3.1‬‬
‫‪June 27, 2009‬‬
‫‪Python 3.2‬‬
‫‪February 20, 2011‬‬
‫‪Python 3.3‬‬
‫‪September 29, 2012‬‬
‫‪Python 3.4‬‬
‫‪March 16, 2014‬‬
‫‪3‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫‪Python 3.5‬‬
‫‪September 13, 2015‬‬
‫‪Python 3.6‬‬
‫‪December 23, 2016‬‬
‫حال که با پایتون به طور مختصر آشنا شدید‪ ،‬در درس های بعد در مورد این زبان برنامه نویسی بیشتر توضیح می دهیم‪.‬‬
‫دانلود و نصب ‪Python 3.6‬‬
‫برای برنامه نویسی به زبان های مختلف محیط های توسعه ی یکپارچه یا ‪ IDE‬های مختلفی وجود دارند که به برنامه نویسان در نوشتن‬
‫و ویرایش کدها‪ ،‬پیدا کردن خطاها‪ ،‬نمایش خروجی‪ ،‬و برخی موارد دیگر کمک می کنند‪ .‬برای اجرای کدهای ‪ Python‬محیط های مختلفی‬
‫وجود دارد که ساده ترین آنها ‪ IDEL‬می باشد‪ .‬برای دانلود این محیط کدنویسی‪ ،‬بر روی لینک زیر کلیک کنید‪:‬‬
‫‪https://www.python.org/downloads‬‬
‫با کلیک بر روی لینک باال‪ ،‬صفحه ای به صورت زیر باز می شود‪ ،‬که در این صفحه همانطور که در شکل زیر مشاهده می کنید‪ ،‬بر روی دکمه‬
‫ای که با فلش نشان داده شده کلیک کرده‪ ،‬تا آخرین نسخه ‪ IDEL‬دانلود شود‪:‬‬
‫بعد از دانل ود فایل مورد نظر به محل ذخیره آن رفته و بر روی فایل دو بار کلیک کنید‪ .‬سپس در صفحه ای که به صورت زیر نمایش داده‬
‫می شود‪ ،‬تیک مورد نظر را زده و سپس بر روی گزینه ‪ Customize installiation‬کلیک کنید‪:‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫بعد از کلیک بر روی گزینه مذکور صفحه ای به صورت زیر نمایش داده می شود‪ .‬در این صفحه بر روی دکمه ‪ Next‬کلیک کنید‪:‬‬
‫در صفحه بعد بر روی دکمه ‪ Install‬کلیک کرده و منتظر بمانید تا برنامه نصب شود‪:‬‬
‫‪4‬‬
‫‪5‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫در آخر و بعد از نصب کامل برنامه پیغامی مبنی بر موفقیت آمیز بودن‪ ،‬نصب برنامه به شما نمایش داده می شود و شما می توانید دکمه‬
‫‪ Close‬را بزنید‪:‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫‪6‬‬
‫ساخت یک برنامه ساده‬
‫اجازه بدهید یک برنامه بسیار ساده به زبان پایتون بنویسیم ‪.‬این برنامه یک پیغام را نمایش میدهد‪ .‬از منوی ‪ Start‬محیط برنامه‬
‫نویسی ‪ IDEL‬را به صورت زیر اجرا کنید‪:‬‬
‫با کلیک بر روی ‪ IDEL‬صفحه ای به صورت زیر نمایش داده می شود‪:‬‬
‫‪7‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫در صفحه باز شده به صورت زیر بر روی منوی ‪ File‬و سپس گزینه ‪ New File‬کلیک کنید‪:‬‬
‫با کلیک بر روی گزینه ‪ New File‬صفحه ای به صورت زیر نمایش داده می شود که شما می توانید کدهای خود را در داخل آن بنویسید‪:‬‬
‫‪8‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫در پنجره باال کدهای زیر را بنویسید‪:‬‬
‫;)"!‪print("Welcome to Python Tutorials‬‬
‫‪9‬‬
‫مانند شکل زیر از منوی ‪ File‬گزینه ‪ Save‬را بزنید‪:‬‬
‫سپس یک مسیر برای ذخیره فایل انتخاب کنید‪ .‬ما در شکل زیر فایل را در درایو ‪ C‬ذخیره کرده ایم‪:‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫بعد از ذخیره فایل به محیط کدنویسی بر گشته و از منوی ‪ Run‬گزینه ‪ Run Module‬و یا دکمه ‪ F5‬را بزنید‪:‬‬
‫‪01‬‬
‫‪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‬فضای خالی استفاده کنیم‪ .‬میزان این فضای خالی تا زمانی که در تمام کد رعایت شود‪ ،‬اهمیتی‬
‫ندارد‪ .‬در کد زیر به اهمیت تو رفتگی ها پی می برید‪:‬‬
‫‪Block1:‬‬
‫;‪statement‬‬
‫;‪statement‬‬
‫‪Block2:‬‬
‫;‪statement‬‬
‫‪Block3:‬‬
‫;‪statement‬‬
‫;‪statement‬‬
‫‪Block4:‬‬
‫;‪statement‬‬
‫;‪statement‬‬
‫;‪statement‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪11‬‬
‫‪12‬‬
‫در کد باال‪ ،‬بالک اول )‪ (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‬‬
‫چاپ کوتیشن‬
‫’\‬
‫خط جدید‬
‫‪\n‬‬
‫چاپ دابل کوتیشن‬
‫”\‬
‫سر سطر رفتن‬
‫‪\r‬‬
‫چاپ بک اسلش‬
‫\\‬
‫حرکت به صورت افقی‬
‫‪\t‬‬
‫چاپ فضای خالی‬
‫‪\0‬‬
‫حرکت به صورت عمودی‬
‫‪\v‬‬
‫صدای بیپ‬
‫‪\a‬‬
‫چاپ کاراکتر یونیکد‬
‫‪\u‬‬
‫حرکت به عقب‬
‫‪\b‬‬
‫‪Form Feed‬‬
‫ما برای استفاده از کاراکترهای کنترلی‪ ،‬از بک اسلش )\( استفاده میکنیم‪ .‬از آنجاییکه \ معنای خاصی به رشتهها میدهد برای چاپ‬
‫بک اسلش )\( باید از )\\( استفاده کنیم‪:‬‬
‫;)"‪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‬شروع میشود‪ .‬متغیر دارای نوع هست که نوع دادهای را که در خود ذخیره میکند را نشان می دهد‪ .‬در درس بعد در مورد انواع‬
‫داده ها در پایتون توضیح می دهیم‪ .‬لیست کلمات کلیدی پایتون‪ ،‬که نباید از آنها در نامگذاری متغیرها استفاده کرد در زیر آمده است‪:‬‬
‫‪raise‬‬
‫‪return‬‬
‫‪try‬‬
‫‪while‬‬
‫‪with‬‬
‫‪yield‬‬
‫‪if‬‬
‫‪import‬‬
‫‪in‬‬
‫‪is‬‬
‫‪lambda‬‬
‫‪nonlocal‬‬
‫‪not‬‬
‫‪or‬‬
‫‪def‬‬
‫‪del‬‬
‫‪elif‬‬
‫‪else‬‬
‫‪except‬‬
‫‪finally‬‬
‫‪for‬‬
‫‪from‬‬
‫‪False‬‬
‫‪None‬‬
‫‪True‬‬
‫‪and‬‬
‫‪as‬‬
‫‪assert‬‬
‫‪break‬‬
‫‪class‬‬
‫‪pass‬‬
‫‪global‬‬
‫‪continue‬‬
‫انواع داده‬
‫انواع داده هایی که در پایتون وجود دارند عبارتند از‪:‬‬
‫نوع‬
‫توضیح‬
‫عددی)‪(Numeric‬‬
‫‪integer‬‬
‫شامل اعداد مثبت و منفی صحیح می باشد‪.‬‬
‫‪float‬‬
‫شامل اعداد اعشاری می باشد‪.‬‬
‫‪boolean‬‬
‫شامل دو مقدار ‪ true‬یا ‪ false‬می باشد‪.‬‬
‫‪17‬‬
‫رشته ای)‪(String‬‬
‫لیست)‪(List‬‬
‫تاپل)‪(Tuple‬‬
‫دیکشنری)‪(Dictionary‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫به مجموعه ای از کاراکترها که بین دو عالمت کوتیشن یا دابل کوتیشن قرار گرفته باشند‪ ،‬اطالق‬
‫می شود‪.‬‬
‫مجموعه ای از آیتم ها هستند که بین دو عالمت [] قرار گرفته و با عالمت کاما (‪ ),‬از هم جدا شده‬
‫اند‪.‬‬
‫مجموعه ای از آیتم ها هستند که بین دو عالمت () قرار گرفته و با عالمت کاما (‪ ),‬از هم جدا شده‬
‫اند‪.‬‬
‫مجموعه ای از آیتم ها هستند که به صورت کلید و مقدار بوده‪ ،‬بین دو عالمت {} قرار گرفته‪ ،‬و با‬
‫عالمت کاما (‪ ),‬از هم جدا شده اند‪.‬‬
‫در مورد انواع داده های باال و نحوه استفاده از آنها در متغیرها‪ ،‬در درس بعد توضیح می دهیم‪.‬‬
‫استفاده از متغیرها‬
‫بر خالف زبان هایی مثل جاوا و سی شارپ‪ ،‬که هنگام تعریف متغیر باید نوع متغیر را هم مشخص می کردیم‪ ،‬در پایتون کافیست که فقط‬
‫نام متغیر را نوشته و به وسیله عالمت مساوی یک مقدار به آن اختصاص دهیم‪:‬‬
‫;‪variableName = Value‬‬
‫در مثال زیر نحوه تعریف و مقداردهی متغیرها نمایش داده شده است‪:‬‬
‫;‪10‬‬
‫;‪12.5‬‬
‫;‪True‬‬
‫;"!‪"Hello World‬‬
‫;]‪[1,5,8‬‬
‫;)"‪("Python","Programming","begginer‬‬
‫}‪{'Name': 'jack', 'family': 'Scalia', 'Age': 7‬‬
‫;))‪.format(intVar‬‬
‫;))‪.format(floatVar‬‬
‫;))‪.format(boolVar‬‬
‫;))‪.format(StringVar‬‬
‫;))‪.format(listVar‬‬
‫;))‪.format(tupleVar‬‬
‫=‬
‫=‬
‫=‬
‫=‬
‫=‬
‫=‬
‫=‬
‫‪intVar‬‬
‫‪floatVar‬‬
‫‪boolVar‬‬
‫‪StringVar‬‬
‫‪listVar‬‬
‫‪tupleVar‬‬
‫‪dictionaryVar‬‬
‫"}‪print("intVar = {0‬‬
‫"}‪print("floatVar = {0‬‬
‫"}‪print("boolVar = {0‬‬
‫"}‪print("StringVar = {0‬‬
‫"}‪print("listVar = {0‬‬
‫"}‪print("tupleVar = {0‬‬
‫;))‪print("dictionaryVar = {0}" .format(dictionaryVar‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪11‬‬
‫‪12‬‬
‫‪13‬‬
‫‪14‬‬
‫‪15‬‬
‫‪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‬‬
‫مثال در مثال باال یک دیکشنری تعریف کرده ایم که سه آیتم یا کلید‪/‬مقدار دارد که بین آنها عالمت کاما (‪ ),‬قرار داده ایم‪ .‬ولی بین یک کلید‬
‫و مقدار مربوط به آن عالمت ‪ :‬قرار گرفته است‪ .‬برای اختصاص یک مقدار به چند متغیر می توان به صورت زیر عمل کرد‪:‬‬
‫;‪identifier2 = ... indentifierN = Value‬‬
‫= ‪identifier1‬‬
‫به مثال زیر توجه کنید‪:‬‬
‫;‪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‬‬
‫نکته ای که بهتر است در همینجا به آن اشاره کنیم این است که کلید‪/‬مقدارها در دیکشنری می توانند از هر نوعی باشند و شما برای چاپ‬
‫مقدار مربوط به یک کلید باید نام کلید را دقیق بنویسید‪ .‬به مثال زیر توجه کنید‪:‬‬
‫}‪= {1:'Jack', '2':'Scalia', 3:7‬‬
‫‪dictionaryVar‬‬
‫;)]'‪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
**
var1 = var2 // var3;
Unary
//
‫ (نتیجه به صورت‬var3 ‫ تقسیم بر‬var2 ‫ برابر است با‬Var1
.)‫صحیح نمایش داده می شود‬
‫ برای‬+ ‫ اگر از عملگر‬.‫ اما استفاده از عملگرهای ریاضی برای نوع رشتهای نتیجه متفاوتی دارد‬.‫مثال باال در از نوع عددی استفاده شده است‬
‫ حال میتوانیم با ایجاد یک برنامه نحوه عملکرد عملگرهای ریاضی‬.‫رشتهها استفاده کنیم دو رشته را با هم ترکیب کرده و به هم میچسباند‬
:‫در پایتون را یاد بگیریم‬
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#Assign test values
num1 = 5;
num2 = 3;
#Demonstrate use of mathematical operators
print("The sum of {0} and {1} is {2}."
print("The difference of {0} and {1} is {2}."
print("The product of {0} and {1} is {2}."
print("The quotient of {0} and {1} is {2:.2f}."
print("The remainder of {0} divided by {1} is {2}."
print("The result of {0} power {1} is {2}."
print("The quotient of {0} and {1} is {2}."
.format(num1,
.format(num1,
.format(num1,
.format(num1,
.format(num1,
.format(num1,
.format(num1,
#Demonstrate concatenation on strings using the + operator
msg1 = "Hello ";
msg2 = "World!";
print(msg1 + msg2);
The sum of 5 and 3 is 8.
The difference of 5 and 3 is 2.
num2,
num2,
num2,
num2,
num2,
num2,
num2,
(num1
(num1
(num1
(num1
(num1
(num1
(num1
+
*
/
%
**
//
num2)));
num2)));
num2)));
num2)));
num2)));
num2)));
num2)));
‫‪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 += 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 = var1 + var2‬میباشد‪ .‬این حالت کدنویسی زمانی کارایی خود را نشان میدهد‬
‫که نام متغیرها طوالنی باشد‪ .‬برنامه زیر چگونگی استفاده از عملگرهای تخصیصی و تأثیر آنها را بر متغیرها نشان میدهد‪:‬‬
‫‪24‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫;)"‪print("Assigning 10 to number...‬‬
‫;‪number = 10‬‬
‫;))‪print("Number = {0}" .format(number‬‬
‫;)"‪print("Adding 10 to number...‬‬
‫;‪number += 10‬‬
‫;))‪print("Number = {0}" .format(number‬‬
‫;)"‪print("Subtracting 10 from number...‬‬
‫;‪number -= 10‬‬
‫;))‪print("Number = {0}" .format(number‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪11‬‬
‫‪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 = var2 == var3‬‬
‫=!‬
‫‪var1 = var2 != var3‬‬
‫><‬
‫‪var1 = var2 <> var3‬‬
‫نتیجه‬
‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬با مقدار ‪ var3‬برابر باشد در غیر اینصورت‬
‫‪ False‬است‬
‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬با مقدار ‪ var3‬برابر نباشد در غیر اینصورت‬
‫‪ False‬است‬
‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬با مقدار ‪ var3‬برابر نباشد در غیر اینصورت‬
‫‪ False‬است‬
‫‪15‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬کوچکتر از ‪ var3‬مقدار باشد در غیر‬
‫<‬
‫‪var1 = var2 < var3‬‬
‫>‬
‫‪var1 = var2 > var3‬‬
‫=<‬
‫‪var1 = var2 <= var3‬‬
‫=>‬
‫‪var1 = var2 >= var3‬‬
‫اینصورت ‪ False‬است‬
‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬بزرگتر ازمقدار ‪ var3‬باشد در غیر اینصورت‬
‫‪ False‬است‬
‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬کوچکتر یا مساوی مقدار ‪ var3‬باشد در‬
‫غیر اینصورت ‪ False‬است‬
‫‪ var1‬در صورتی ‪ True‬است که مقدار ‪ var2‬بزرگتر یا مساوی ‪ var3‬مقدار باشد در غیر‬
‫اینصورت ‪ False‬است‬
‫برنامه زیر نحوه عملکرد این عملگرها را نشان میدهد‪:‬‬
‫;‪num1 = 10‬‬
‫;‪num2 = 5‬‬
‫;))‪num2‬‬
‫;))‪num2‬‬
‫;))‪num2‬‬
‫;))‪num2‬‬
‫;))‪num2‬‬
‫;))‪num2‬‬
‫;))‪num2‬‬
‫==‬
‫=!‬
‫=!‬
‫<‬
‫>‬
‫=<‬
‫=>‬
‫‪num1‬‬
‫‪num1‬‬
‫‪num1‬‬
‫‪num1‬‬
‫‪num1‬‬
‫‪num1‬‬
‫‪num1‬‬
‫‪num2,‬‬
‫‪num2,‬‬
‫‪num2,‬‬
‫‪num2,‬‬
‫‪num2,‬‬
‫‪num2,‬‬
‫‪num2,‬‬
‫‪.format(num1,‬‬
‫‪.format(num1,‬‬
‫‪.format(num1,‬‬
‫‪.format(num1,‬‬
‫‪.format(num1,‬‬
‫‪.format(num1,‬‬
‫‪.format(num1,‬‬
‫"}‪{2‬‬
‫"}‪{2‬‬
‫"}‪{2‬‬
‫"}‪{2‬‬
‫"}‪{2‬‬
‫"}‪{2‬‬
‫"}‪{2‬‬
‫‪:‬‬
‫‪:‬‬
‫‪:‬‬
‫‪:‬‬
‫‪:‬‬
‫‪:‬‬
‫‪:‬‬
‫}‪{1‬‬
‫}‪{1‬‬
‫}‪{1‬‬
‫}‪{1‬‬
‫}‪{1‬‬
‫}‪{1‬‬
‫}‪{1‬‬
‫==‬
‫=!‬
‫><‬
‫<‬
‫>‬
‫=<‬
‫=>‬
‫}‪print("{0‬‬
‫}‪print("{0‬‬
‫}‪print("{0‬‬
‫}‪print("{0‬‬
‫}‪print("{0‬‬
‫}‪print("{0‬‬
‫}‪print("{0‬‬
‫‪10 == 5 : False‬‬
‫‪10 != 5 : True‬‬
‫‪10 <> 5 : True‬‬
‫‪5 : False‬‬
‫< ‪10‬‬
‫‪5 : True‬‬
‫> ‪10‬‬
‫‪10 <= 5 : False‬‬
‫‪10 >= 5 : True‬‬
‫در مثال باال ابتدا دو متغیر را که میخواهیم با هم مقایسه کنیم را ایجاد کرده و به آنها مقادیری اختصاص میدهیم‪ .‬سپس با استفاده از‬
‫یک عملگر مقایسهای آنها را با هم مقایسه کرده و نتیجه را چاپ میکنیم‪ .‬به این نکته توجه کنید که هنگام مقایسه دو متغیر از عملگر ==‬
‫به جای عملگر = باید استفاده شود‪ .‬عملگر = عملگر تخصیصی است و در عبارتی مانند ‪ x = y‬مقدار ‪ y‬را در به ‪ x‬اختصاص میدهد‪.‬‬
‫عملگر == عملگر مقایسهای است که دو مقدار را با هم مقایسه میکند مانند ‪ x==y‬و اینطور خوانده میشود ‪ x‬برابر است با ‪.y‬‬
‫‪26‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫عملگرهای منطقی‬
‫عملگر های منطقی بر روی عبارات منطقی عمل می کنند و نتیجه آنها نیز یک مقدار بولی است‪ .‬از این عملگرها اغلب برای شرطهای پیچیده‬
‫استفاده می شود‪ .‬همانطور که قبال یاد گرفتید مقادیر بولی می توانند ‪ False‬یا ‪ True‬باشند‪ .‬فرض کنید که ‪ var2‬و ‪ var3‬دو مقدار‬
‫بولی هستند‪.‬‬
‫مثال‬
‫عملگر‬
‫‪and‬‬
‫;‪var1 = var2 and var3‬‬
‫‪or‬‬
‫;‪var1 = var2 or var3‬‬
‫‪not‬‬
‫;)‪var1 = not (var1‬‬
‫عملگر منطقی ‪and‬‬
‫اگر مقادیر دو طرف عملگر ‪ True ،and‬باشند عملگر ‪ and‬مقدار ‪ True‬را بر می گرداند‪ .‬در غیر اینصورت اگر یکی از مقادیر یا هر دوی‬
‫آنها ‪ False‬باشند مقدار ‪ False‬را بر می گرداند‪ .‬در زیر جدول درستی عملگر ‪ and‬نشان داده شده است‪:‬‬
‫‪X and Y‬‬
‫‪Y‬‬
‫‪X‬‬
‫‪True‬‬
‫‪True‬‬
‫‪True‬‬
‫‪False‬‬
‫‪False‬‬
‫‪True‬‬
‫‪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‬به صورت‬
‫زیر استفاده کرد‪.‬‬
‫;)‪(number >= 100‬‬
‫‪inRange = (number <= 10) and‬‬
‫‪17‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫عملگر منطقی ‪or‬‬
‫اگر یکی یا هر دو مقدار دو طرف عملگر ‪ ،or‬درست )‪ (True‬باشد‪ ،‬عملگر ‪ or‬مقدار ‪ True‬را بر می گرداند‪ .‬جدول درستی عملگر ‪or‬‬
‫در زیر نشان داده شده است ‪:‬‬
‫‪X or Y‬‬
‫‪Y‬‬
‫‪X‬‬
‫‪True‬‬
‫‪True‬‬
‫‪True‬‬
‫‪True‬‬
‫‪False‬‬
‫‪True‬‬
‫‪True‬‬
‫‪True‬‬
‫‪False‬‬
‫‪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‬را نشان می دهد‪:‬‬
‫‪not X‬‬
‫‪X‬‬
‫‪False‬‬
‫‪True‬‬
‫‪True‬‬
‫‪False‬‬
‫نتیجه کد زیر در صورتی درست است که ‪( 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 AND Y‬‬
‫‪Y‬‬
‫‪X‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫در زیر نحوه استفاده از عملگر بیتی ‪ AND‬آمده است‪:‬‬
‫;‪result = 5 & 3‬‬
‫‪19‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫;)‪print(result‬‬
‫‪1‬‬
‫همانطور که در مثال باال مشاهده میکنید نتیجه عملکرد عملگر ‪ AND‬بر روی دو مقدار ‪ 5‬و ‪ 3‬عدد یک میشود‪ .‬اجازه بدهید ببینیم که‬
‫چطور این نتیجه را به دست میآید‪:‬‬
‫‪00000000000000000000000000000101‬‬
‫‪5:‬‬
‫‪00000000000000000000000000000011‬‬
‫‪3:‬‬
‫‪-----------------------------------‬‬‫‪00000000000000000000000000000001‬‬
‫‪1:‬‬
‫ابتدا دو عدد ‪ 5‬و ‪ 3‬به معادل باینریشان تبدیل میشوند‪ .‬از آنجاییکه هر عدد صحیح )‪ 31 (int‬بیت است از صفر برای پر کردن بیتهای‬
‫خالی استفاده میکنیم‪ .‬با استفاده از جدول درستی عملگر بیتی ‪ AND‬میتوان فهمید که چرا نتیجه عدد یک میشود‪.‬‬
‫عملگر بیتی )|(‪OR‬‬
‫اگر مقادیر دو طرف عملگر بیتی ‪ OR‬هر دو صفر باشند نتیجه صفر در غیر اینصورت ‪ 1‬خواهد شد‪ .‬جدول درستی این عملگر در زیر آمده‬
‫است‪:‬‬
‫‪X‬‬
‫‪Y‬‬
‫‪X OR Y‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪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‬‬
‫‪Y‬‬
‫‪X XOR Y‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪0‬‬
‫در صورتیکه عملوندهای دو طرف این عملگر هر دو صفر یا هر دو یک باشند نتیجه صفر در غیر اینصورت نتیجه یک میشود‪ .‬در مثال زیر‬
‫تأثیر عملگر بیتی ‪ XOR‬را بر روی دو مقدار مشاهده میکنید‪:‬‬
‫;‪result = 5 ^ 7‬‬
‫;)‪print(result‬‬
‫‪2‬‬
‫در زیر معادل باینری اعداد باال (‪ 5‬و ‪ )7‬نشان داده شده است‪.‬‬
‫‪5: 00000000000000000000000000000101‬‬
‫‪7: 00000000000000000000000000000111‬‬
‫‪----------------------------------‬‬‫‪2: 00000000000000000000000000000010‬‬
‫با نگاه کردن به جدول درستی عملگر بیتی ‪ ،XOR‬میتوان فهمید که چرا نتیجه عدد ‪ 1‬میشود‪.‬‬
‫عملگر بیتی )~(‪NOT‬‬
‫این عملگر یک عملگر یگانی است و فقط به یک عملوند نیاز دارد‪ .‬در زیر جدول درستی این عملگر آمده است‪:‬‬
‫‪X‬‬
‫‪NOT X‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫عملگر بیتی ‪ 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 ،‬و در غیر این‬
‫‪Memberships operator‬‬
‫‪in‬‬
‫صورت ‪ False‬را برمی گرداند‪.‬‬
‫‪33‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫در صورت یافت نشدن متغیر مورد نظر در مجموعهی مشخص شده‪ True ،‬و در‬
‫‪not in‬‬
‫غیر این صورت ‪ False‬را برمی گرداند‪.‬‬
‫اگر متغیرهای هر دو طرف عملگر به شی یکسان اشاره داشته باشند‪ True ،‬و در‬
‫‪is‬‬
‫‪Identity operator‬‬
‫غیر این صورت ‪ False‬را برمی گرداند‪.‬‬
‫چنانچه متغیر در دو طرف عملگر به شی یکسان اشاره داشته باشد‪ 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‬را میزنید‪ ،‬میخواند‪ .‬به برنامه زیر توجه کنید‪:‬‬
‫;)" ‪= input("Enter your name:‬‬
‫;)" ‪= input("Enter your age:‬‬
‫‪name‬‬
‫‪age‬‬
‫‪1‬‬
‫‪2‬‬
‫‪04‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫;)" ‪height = input("Enter your height:‬‬
‫‪#Print a blank line‬‬
‫;)(‪print‬‬
‫‪#Show the details you typed‬‬
‫;))‪print("Name is {0}.".format(name‬‬
‫;))‪print("Age is {0}.".format(age‬‬
‫;))‪print("Height is {0}.".format(height‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪11‬‬
‫‪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‬بزرگتر باشد در صفحه نمایش میدهد‪:‬‬
‫‪#Declare a variable and set it a value less than 10‬‬
‫;‪number = 5‬‬
‫‪#If the value of number is less than 10‬‬
‫‪if (number < 10):‬‬
‫;)"‪print("Hello World.‬‬
‫‪#Change the value of a number to a value which is greater than 10‬‬
‫;‪number = 15‬‬
‫‪#If the value of number is greater than 10‬‬
‫‪if (number > 10):‬‬
‫;)"‪print("Goodbye World.‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪11‬‬
‫‪12‬‬
‫‪13‬‬
‫‪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‬آمده است‪:‬‬
‫;‪number = 5‬‬
‫‪#Test the condition‬‬
‫‪if (number < 10):‬‬
‫;)"‪print("The number is less than 10.‬‬
‫‪else:‬‬
‫;)"‪print("The number is either greater than or equal to 10.‬‬
‫‪#Modify value of number‬‬
‫;‪number = 15‬‬
‫‪#Repeat the test to yield a different result‬‬
‫‪if (number < 10):‬‬
‫;)"‪print("The number is less than 10.‬‬
‫‪else:‬‬
‫;)"‪print("The number is either greater than or equal to 10.‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪11‬‬
‫‪12‬‬
‫‪13‬‬
‫‪14‬‬
‫‪15‬‬
‫‪16‬‬
‫‪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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
print("What's your favorite color?");
print("[1] Black");
print("[2] White");
print("[3] Blue");
print("[4] Red");
print("[5] Yellown");
choice = int(input("Enter your choice: "));
if (choice == 1):
print("You might like my black t-shirt.");
elif (choice == 2):
print("You might be a clean and tidy person.");
elif (choice == 3):
print("You might be sad today.");
elif (choice == 4):
print("You might be inlove right now.");
elif (choice == 5):
print("Lemon might be your favorite fruit.");
else:
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
2
3
4
5
6
7
8
9
10
11
12
age = int(input("Enter your age: "));
gender = input("Enter your gender (male/female): ");
if (age > 12):
if (age < 20):
if (gender == "male"):
print("You are a teenage boy.");
else:
print("You are a teenage girl.");
else:
print("You are already an adult.");
else:
‫‪11‬‬
‫فصل اول‪ :‬مبانی زبان پایتون‬
‫;)"‪print("You are still too young.‬‬
‫‪13‬‬
‫‪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‬است که هر دو شرط دو طرف عملگر مقدارشان‬
‫‪and‬‬
‫)‪z = (x > 2) and (y < 10‬‬
‫‪or‬‬
‫)‪z = (x > 2) or (y < 10‬‬
‫‪not‬‬
‫)‪z = not(x > 2‬‬
‫‪ True‬باشد‪ .‬اگر فقط مقدار یکی از شروط ‪ False‬باشد مقدار ‪False‬‬
‫‪z ،‬خواهد شد‪.‬‬
‫مقدار ‪ Z‬در صورتی ‪ True‬است که یکی از دو شرط دو طرف عملگر‬
‫مقدارشان ‪ True‬باشد‪ .‬اگر هر دو شرط مقدارشان ‪ False‬باشد مقدار‬
‫‪z ، False‬خواهد شد ‪.‬‬
‫مقدار ‪ Z‬در صورتی ‪ True‬است که مقدار شرط ‪ False‬باشد و در صورتی‬
‫‪ 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‬مقایسه میشود‪ .‬حال بیایید‬
‫نحوه استفاده از عملگرهای منطقی در برنامه را مورد بررسی قرار دهیم‪:‬‬
‫;))" ‪age = int(input("Enter your age:‬‬
‫;)" ‪gender = input("Enter your gender (male/female):‬‬
‫‪if (age > 12 and age < 20):‬‬
‫‪if (gender == "male"):‬‬
‫;)"‪print("You are a teenage boy.‬‬
‫‪else:‬‬
‫;)"‪print("You are a teenage girl.‬‬
‫‪else:‬‬
‫;)"‪print("You are not a teenager.‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪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‬‬
‫عملگر شرطی تنها عملگر سه تایی پایتون است که نیاز به سه عملوند دارد‪ ،‬یک مقدار زمانی که شرط درست باشد‪ ،‬شرط و یک مقدار زمانی‬
‫که شرط نادرست باشد‪ .‬اجازه بدهید که نحوه استفاده این عملگر را در داخل برنامه مورد بررسی قرار دهیم‪:‬‬
‫;"‪pet1 = "puppy‬‬
‫;"‪pet2 = "kitten‬‬
‫;"‪type1 = "dog" if (pet1 == "puppy" ) else "cat‬‬
‫;"‪type2 = "cat" if (pet2 == "kitten") else "dog‬‬
‫;)‪print(type1‬‬
‫;)‪print(type2‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪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‬را تایپ کنید‬
‫مانند مثال زیر‪:‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫;)"!‪World‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫‪print("Hello‬‬
‫البته شما می توانید با کپی کردن این تعداد کد را راحت بنویسید ولی این کار در کل کیفیت کدنویسی را پایین میآورد‪ .‬راه بهتر برای‬
‫نوشتن کدهای باال استفاده از حلقهها است‪ .‬حلقهها در پایتون عبارتند از‪:‬‬
‫‪‬‬
‫‪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‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫!‪World‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫‪Hello‬‬
‫برنامه باال ‪ 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‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫برنامه باال اعداد ‪ 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‬ستون ایجاد کنید‪:‬‬
‫‪for i in (1, 2, 3, 4):‬‬
‫‪for j in (1, 2, 3, 4, 5):‬‬
‫;)' '=‪print("*", end‬‬
‫;)(‪print‬‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫*‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫*‬
‫*‬
‫*‬
‫*‬
‫در کد باال به ازای یک بار اجرای حلقه ‪ 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‬را نشان میدهد‪:‬‬
‫;)"‪print("Demonstrating the use of break\n‬‬
‫‪for x in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10):‬‬
‫‪if (x == 5):‬‬
‫;‪break‬‬
‫;)‪print("Number ", x‬‬
‫;)"‪print("\nDemonstrating the use of continue\n‬‬
‫‪for x in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10):‬‬
‫‪if (x == 5):‬‬
‫;‪continue‬‬
‫;)‪print("Number ", x‬‬
‫;)"‪print("\nDemonstrating the use of pass\n‬‬
‫‪for x in (1, 2, 3, 4, 5, 6, 7, 8, 9, 10):‬‬
‫‪if (x == 5):‬‬
‫;‪pass‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪5‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪11‬‬
‫‪12‬‬
‫‪13‬‬
‫‪14‬‬
‫‪15‬‬
‫‪16‬‬
‫‪17‬‬
‫‪18‬‬
‫‪19‬‬
‫‪20‬‬
‫‪21‬‬
‫‪Demonstrating the use of break‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Demonstrating the use of continue‬‬
‫‪1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪6‬‬
‫‪7‬‬
‫‪8‬‬
‫‪9‬‬
‫‪10‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪Number‬‬
‫‪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‬‬
Download