0% found this document useful (0 votes)
92 views102 pages

Python Book

Python tutorial in Farsi language.

Uploaded by

menosoft
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views102 pages

Python Book

Python tutorial in Farsi language.

Uploaded by

menosoft
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 102

‫ب‬

‫حی‬ ‫ل‬ ‫حم‬ ‫ل‬


‫م اهلل ا ر ن ا ر م‬ ‫بس‬
‫آموزشگاه تحلیل داده‬
‫تخصصی ترین مرکز برنامه نویسی و دیتا بیس در‬
‫‪S‬‬

‫ایران‬
‫کتاب آموزشی برنامه نویسی اندروید در ‪Android‬‬
‫‪Studio‬‬

‫نویسنده ‪ :‬مهندس افشین رفوآ‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫ج‬

‫تقدیم هب انئب امام عصر ‪،‬حضرت آیت اهلل خامنه ای هک عصا زدنش ضرب آهنگ حیدری دارد‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫د‬

‫ک‬ ‫م‬ ‫ا‬ ‫ت‬ ‫ل‬ ‫ع‬


‫تقدیم هب همهء جویندگان م هک و ن و ا کان رت رد‬
‫ش‬

‫کالس اهی ما را ندا رند‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪1‬‬

‫فهرست‬
‫تاريخچه ی پايتون ‪11 .........................................................................................................................................‬‬
‫ويژگی ها و امکانات ‪11 ......................................................................................................................... Python‬‬
‫نصب محيط محلی برنامه نويسی ‪13 .......................................................................................................................‬‬
‫دريافت ‪14 .......................................................................................................................................... Python‬‬
‫نصب ‪14 ............................................................................................................................................ python‬‬
‫تنظيم مسير ‪15 ..................................................................................................................................................‬‬
‫تنظيم مسير در محيط ‪16 .................................................................................................................. Unix/Linux‬‬
‫تنظيم مسيردر سيستم عامل ويندوز ‪16 ....................................................................................................................‬‬
‫متغيرهای محيطی پايتون (‪17 ......................................................................................... )environment variable‬‬
‫راه اندازی پايتون ‪17 ..........................................................................................................................................‬‬
‫اولين برنامه ی پايتون ‪20 ....................................................................................................................................‬‬
‫برنامه نويسی با فراخوانی مفسر ‪20 .......................................................................................................................‬‬
‫فراخوانی مفسر با يک اسکريپت به عنوان پارامتر ‪20 ................................................................................................‬‬
‫شناسه ها در پايتون‪21 ........................................................................................................................................‬‬
‫کلمات رزرو شده ‪22 ..........................................................................................................................................‬‬
‫خطوط فاصله و تورفتگی ‪22 ................................................................................................................................‬‬
‫دستورهای چندخطی‪24 .......................................................................................................................................‬‬
‫عالمت نقل و قول يا کوتيشن در پايتون ‪24 ...............................................................................................................‬‬
‫‪( Comment‬توضيحات) در پايتون ‪24 ..................................................................................................................‬‬
‫استفاده از خطوط تهی ‪25 ....................................................................................................................................‬‬
‫منتظر کاربر بودن ‪25 .........................................................................................................................................‬‬
‫چندين دستور در يک خط ‪26 ................................................................................................................................‬‬
‫‪ suite‬يا مجموعه دستورات در پايتون ‪26 ................................................................................................................‬‬
‫آرگومان های خط فرمان (‪26 ................................................................................... )command-line arguments‬‬
‫تخصيص مقادير به متغيرها ‪27 .............................................................................................................................‬‬
‫چندين تخصيص به صورت يکجا ‪28 ......................................................................................................................‬‬
‫نوع داده های رايج ‪28 ........................................................................................................................................‬‬
‫اعداد يا نوع عددی در پايتون ‪29 ...........................................................................................................................‬‬
‫رشته ها در پايتون ‪30 .........................................................................................................................................‬‬
‫نوع داده ای ‪ List‬در پايتون ‪31 .............................................................................................................................‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪2‬‬

‫نوع داده ای ‪ Tuple‬در پايتون ‪32 ..........................................................................................................................‬‬


‫نوع داده ای ‪33 ............................................................................................................................... Dictionary‬‬
‫تبديل نوع داده ای ‪33 ..........................................................................................................................................‬‬
‫انواع عملگرها ‪35 .............................................................................................................................................‬‬
‫عملگرهای محاسباتی ‪35 .....................................................................................................................................‬‬
‫عملگرهای مقايسه ای پايتون ‪36 ............................................................................................................................‬‬
‫عملگرهای انتساب ‪37 .........................................................................................................................................‬‬
‫عملگرهای بيتی در پايتون ‪38 ...............................................................................................................................‬‬
‫عملگرهای منطقی پايتون ‪39 ................................................................................................................................‬‬
‫‪ Memberships operator‬در پايتون‪40 ..............................................................................................................‬‬
‫‪ Identity operator‬ها در پايتون ‪41 ...................................................................................................................‬‬
‫اولويت عملگرها در پايتون ‪41 ..............................................................................................................................‬‬
‫دستور ‪ if‬در پايتون ‪44 ........................................................................................................................................‬‬
‫‪ IF...ELIF...ELSE‬در پايتون ‪45 ............................................................................................................................‬‬
‫دستور ‪46 ................................................................................................................................................... elif‬‬
‫‪ If‬های تودرتو ‪47 ..............................................................................................................................................‬‬
‫‪48 ...................................................................................................................................... Statement Suite‬‬
‫دستورات کنترلی حلقه ها ‪50 ................................................................................................................................‬‬
‫دستور ‪51 .............................................................................................................................................. break‬‬
‫دستور ‪ continue‬در زبان برنامه نويسی پايتون ‪52 ..................................................................................................‬‬
‫دستور ‪54 ................................................................................................................................................ pass‬‬
‫مثال ها ‪56 .......................................................................................................................................................‬‬
‫تبديل نوع های عددی ‪57 .....................................................................................................................................‬‬
‫توابع رياضی ‪57 ...............................................................................................................................................‬‬
‫توابع تصادفی در پايتون ‪57 ..................................................................................................................................‬‬
‫‪58 .................................................................................................................................................... DFDGD‬‬
‫توابع مثلثاتی ‪59 ................................................................................................................................................‬‬
‫ثوابت رياضی ‪60 ..............................................................................................................................................‬‬
‫دسترسی به مقادير در رشته ها ‪60 .........................................................................................................................‬‬
‫بروز رسانی رشته ها ‪61 .....................................................................................................................................‬‬
‫کاراکترهای ‪61 ..................................................................................................................................... Escape‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪3‬‬

‫عملگرهای رشته ‪63 ...........................................................................................................................................‬‬


‫عملگر فرمت دهی رشته ‪64 .................................................................................................................................‬‬
‫سه عالمت نقل و قول به هم چسبيده (‪66 ......................................................................................... )Triple Quotes‬‬
‫رشته های يونيکد (‪67 ............................................................................................................... )Unicode string‬‬
‫متدهايی درون ‪68 ..............................................................................................................................................‬‬
‫ساخته ای که عملياتی را روی رشته انجام دهند (‪68 ........................................................... )Built-in String Methods‬‬
‫نوع داده ای ‪74 ........................................................................................................................................... list‬‬
‫دسترسی به مقادير يک ليست ‪75 ...........................................................................................................................‬‬
‫بروز رسانی ليست ها ‪75 ....................................................................................................................................‬‬
‫حذف المان های ليست ‪76 ....................................................................................................................................‬‬
‫عمليات ابتدايی که روی ليست اجرا می شود ‪76 ........................................................................................................‬‬
‫انديس گذاری‪ ،‬برش و ماتريس ‪77 .........................................................................................................................‬‬
‫توابع و متدهای توکار ليست در پايتون‪78 ................................................................................................................‬‬
‫دسترسی به مقادير يک ‪81 ..........................................................................................................................tuple‬‬
‫بروز رسانی ‪81 ....................................................................................................................................... tuple‬‬
‫حذف المان های يک ‪81 .............................................................................................................................tuple‬‬
‫عمليات رايج که بر روی ‪ tuple‬قابل اجرا می باشد‪82 ...............................................................................................‬‬
‫توابع توکار ‪83 ........................................................................................................................................ tuple‬‬
‫دسترسی به مقادير در ‪84 ................................................................................................................... dictionary‬‬
‫بروز رسانی ‪85 ............................................................................................................................... dictionary‬‬
‫حذف المان های ‪86 .......................................................................................................................... dictionary‬‬
‫خصيصه ی کليدهای ‪86 ..................................................................................................................... dictionary‬‬
‫توابع و متدهای توکار ‪87 ................................................................................................................... Dictionary‬‬
‫بازيابی زمان جاری ‪91 .......................................................................................................................................‬‬
‫بازيابی تاريخ فرمت شده ‪92 .................................................................................................................................‬‬
‫بازيابی و نمايش تقويم مربوط به ماه ‪92 ..................................................................................................................‬‬
‫ماژول ‪93 ............................................................................................................................................... time‬‬
‫ماژول ‪95 ......................................................................................................................................... calendar‬‬
‫تعريف تابع ‪98 ..................................................................................................................................................‬‬
‫فراخوانی تابع ‪99 ...............................................................................................................................................‬‬
‫ارسال پارامتر با ‪ reference‬در برابر ارسال با مقدار ‪99 ..........................................................................................‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪4‬‬

‫آرگومان های تابع ‪100 .......................................................................................................................................‬‬


‫آرگومان های الزامی ‪101 ....................................................................................................................................‬‬
‫آرگومان های ‪101 .............................................................................................................................. keyword‬‬
‫آرگومان های با طول متغير (‪103 ............................................................................ )Variable-length arguments‬‬
‫توابع بی نام (‪104 ........................................................................................................ )Anonymous functions‬‬
‫ساختار نگارشی ‪104 ..........................................................................................................................................‬‬
‫دستور ‪105 ........................................................................................................................................... return‬‬
‫حوزه ی دسترسی متغير (‪105 .....................................................................................................)variable scope‬‬
‫مقايسه ی متغير سراسری با محلی ‪106 ...................................................................................................................‬‬
‫دستور ‪107 .......................................................................................................................................... import‬‬
‫دستور * ‪108 ............................................................................................................................ from...import‬‬
‫مکان يابی ماژول ‪108 ........................................................................................................................................‬‬
‫متغير ‪109 ................................................................................................................................ PYTHONPATH‬‬
‫فضای نامی و تعيين حوزه ی دسترسی ‪109 .............................................................................................................‬‬
‫تابع )(‪111 .................................................................................................................................................. dir‬‬
‫تابع )(‪112 ............................................................................................................................................ reload‬‬
‫پکيج ها در پايتون ‪112 .......................................................................................................................................‬‬
‫چاپ خروجی در نمايشگر (‪113 ................................................................................................................. )Print‬‬
‫خواندن و دريافت ورودی از صفحه کليد ‪114 ...........................................................................................................‬‬
‫تابع ‪114 ........................................................................................................................................ raw_input‬‬
‫تابع ‪115 ................................................................................................................................................ input‬‬
‫باز کردن و بستن فايل ها (اعمال تغييرات و مديريت فايل ها) ‪115 ................................................................................‬‬
‫تابع ‪115 ................................................................................................................................................ Open‬‬
‫دستور نگارشی يا گرامر استفاده از ‪115 ........................................................................................................... file‬‬
‫‪ attribute‬های آبجکت ‪118 ......................................................................................................................... file‬‬
‫متد )(‪119 ...............................................................................................................................................close‬‬
‫ساختار نگارشی و نحوه ی استفاده از )(‪120 ................................................................................................... Close‬‬
‫خواندن و درج اطالعات در فايل ‪120 .....................................................................................................................‬‬
‫متد )(‪120 .............................................................................................................................................. write‬‬
‫نحوه ی استفاده از متد ‪120 ..................................................................................................................................‬‬
‫متد )(‪121 ............................................................................................................................................... read‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪5‬‬

‫نحوه ی استفاده از متد ‪121 ..................................................................................................................................‬‬


‫ويرايش اسم و حذف فايل ها ‪123 ...........................................................................................................................‬‬
‫متد )(‪123 .......................................................................................................................................... rename‬‬
‫نحوه ی استفاده از متد ‪123 ..................................................................................................................................‬‬
‫متد )(‪123 .......................................................................................................................................... remove‬‬
‫نحوه ی استفاده از متد ‪124 ..................................................................................................................................‬‬
‫متد)(‪124 .............................................................................................................................................. mkdir‬‬
‫نحوه ی استفاده از متد ‪124 ..................................................................................................................................‬‬
‫متد )(‪125 ...............................................................................................................................................chdir‬‬
‫نحوه ی استفاده از متد ‪125 ..................................................................................................................................‬‬
‫متد )(‪125 ........................................................................................................................................... getcwd‬‬
‫دستور استفاده از متد ‪125 ....................................................................................................................................‬‬
‫متد )(‪126 .............................................................................................................................................. rmdir‬‬
‫دستور استفاده از متد ‪126 ....................................................................................................................................‬‬
‫توابع مربوط به مديريت فايل و دايرکتوری ‪126 ........................................................................................................‬‬
‫‪ Assertion‬ها (دستورات ‪ assert‬و بررسی صحت شرط) در پايتون ‪130 .....................................................................‬‬
‫دستور ‪131 ........................................................................................................................................... assert‬‬
‫‪( Exception‬خطای زمان اجرا و پيشبينی نشده) چيست؟ ‪132 ......................................................................................‬‬
‫مديريت ‪( Exception‬خطا) ‪132 ..........................................................................................................................‬‬
‫نحوه ی استفاده از دستور ‪132 ..............................................................................................................................‬‬
‫عبارت ‪ except‬بدون مشخص کردن نوع خطا ‪133 ..................................................................................................‬‬
‫عبارت ‪ except‬با چندين ‪134 ............................................................................................................. Exception‬‬
‫استفاده از ساختمان ‪ try-finally‬جهت مديريت خطا ‪134 .............................................................................................‬‬
‫آرگومان ارسال شده به ‪136 ................................................................................................................ Exception‬‬
‫تعريف و مديريت خطا با استفاده از دستور ‪137 ............................................................................................... raise‬‬
‫ساختارکلی و نحوه ی استفاده از ‪137 ............................................................................................................. raise‬‬
‫خطاهای اختصاصی و ‪138 ............................................................................................................ user-defined‬‬
‫مروری بر واژگان و اصطالحات تخصصی ‪139 .............................................................................................. OOP‬‬
‫تعريف کالس ‪140 .............................................................................................................................................‬‬
‫ايجاد آبجکت های نمونه (ساخت آّبجکت يا نمونه از روی کالس) ‪141 ............................................................................‬‬
‫دسترسی به ‪ attribute‬ها () کالس ‪142 ................................................................................................................‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪6‬‬

‫‪ Attribute‬های درون ساخته ی کالس ‪143 ............................................................................................................‬‬


‫حذف آبجکت های غيرضروری از حافظه (مديريت حافظه يا ‪145 ................................................ )Garbage collection‬‬
‫مبحث وراثت و ‪146 .............................................................................................................. class inheritance‬‬
‫ساختار دستوری و سينتکس ‪147 ...........................................................................................................................‬‬
‫بازنويسی متدها (‪148 ...................................................................................................................... )overriding‬‬
‫معرفی متدهايی جهت بازنويسی ‪149 ......................................................................................................................‬‬
‫از دسترس خارج ساختن ‪ attribute‬های کالس (‪150 ...........................................................................)Data hiding‬‬
‫تابع ‪152 .............................................................................................................................................. match‬‬
‫تابع ‪154 .............................................................................................................................................. search‬‬
‫مقايسه ی دو متد ‪ Match‬و ‪156 ............................................................................................................... Search‬‬
‫يافتن و جايگزينی مقدار در متن (‪156 ......................................................................................... )search&replace‬‬
‫دستور استفاده از متد ‪156 ....................................................................................................................................‬‬
‫تنظيم و ويرايش عبارات باقاعده با استفاده از ‪ flag‬های اختياری (‪157 ............................)Regular expression modifier‬‬
‫الگوها و مجموعه کاراکترهايی که جهت تطبيق در عبارات باقاعده بکار می روند (‪158 ..... )Regular Expression Patterns‬‬
‫کاراکترهای ثابت (‪163 ........................................................................................................................... )literal‬‬
‫‪( Character class‬مجموعه کاراکترها) ‪163 ..........................................................................................................‬‬
‫‪ Character class‬ها (مجموعه کاراکترها) ‪164 ......................................................................................................‬‬
‫‪( Repetition Cases‬مواردی که در آن چندبار انطباق رخ می دهد) ‪165 ......................................................................‬‬
‫انطباق با کمترين تعداد مورد تکراری در رشته (‪166 ............................................................ )nongreedy repetition‬‬
‫مشخص کردن انتها و ابتدای موقعيت استخراج با پرانتز (‪166 .....................................................................)Grouping‬‬
‫‪( Backreferences‬تطبيق مجدد و استفاده از بخش های يافته شده ی قبلی) ‪167 ..............................................................‬‬
‫نمونه های ديگر از عبارات باقاعده‪167 ..................................................................................................................‬‬
‫‪ Anchor‬ها در عبارات باقاعده ‪168 ......................................................................................................................‬‬
‫ساختار نحوی ويژه با پرانتز ‪169 ..........................................................................................................................‬‬
‫‪ CGI‬چيست؟ ‪170 ..............................................................................................................................................‬‬
‫وبگردی ‪170 ....................................................................................................................................................‬‬
‫نمودار معماری ‪171 .................................................................................................................................... CGI‬‬
‫تنظيمات سرويس دهنده و پشتيبانی آن از ‪171 ...................................................... )Web Server Configuration( CGI‬‬
‫اولين برنامه ی ‪172 .................................................................................................................................... CGI‬‬
‫‪( HTTP Header‬اطالعاتی درباره ی بسته ی ارسال شده به مرورگر) ‪173 ....................................................................‬‬
‫متغيرهای ‪174 ........................................................................................................................................... CGI‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪7‬‬

‫متدهای ارسال اطالعات به سرور (‪ GET‬و ‪179 ............................................................................................. )POST‬‬


‫ارسال اطالعات با استفاده از متد ‪179 ............................................................................................................. GET‬‬
‫ارسال اطالعات از طريق ‪ URL‬و ‪179 ..............................................................................................Query String‬‬
‫مثالی کاربردی از ارسال اطالعات ‪ FORM‬با استفاده از متد ‪180 ......................................................................... GET‬‬
‫ارسال اطالعات از طريق متد ‪181 ............................................................................................................... POST‬‬
‫ارسال داده های ‪ Checkbox‬به سرويس دهنده و مديريت آن با برنامه ی ‪182 ........................................................... CGI‬‬
‫ارسال داده های ‪ Radio Button‬به برنامه ی ‪ CGI‬در سرويس دهنده ‪183 ......................................................................‬‬
‫ارسال داده های ‪ Text Area‬از مرورگر به برنامه ی ‪ CGI‬در سرويس دهنده ‪184 ............................................................‬‬
‫ارسال مقادير کادر کشويی يا ‪ Drop down‬به برنامه ی ‪ CGI‬در سرويس دهنده ‪185 ........................................................‬‬
‫کوکی چگونه مورد استفاده قرار می گيرد؟ ‪187 ........................................................................................................‬‬
‫تنظيم و استفاده از کوکی ‪188 ...............................................................................................................................‬‬
‫بازيابی کوکی ها ‪189 .........................................................................................................................................‬‬
‫مثالی از آپلود فايل ‪189 .......................................................................................................................................‬‬
‫نحوه ی نمايش و پياده سازی کادر محاوره ای "‪ "File Download‬جهت بارگيری محتوا از اينترنت‪191 ...............................‬‬
‫‪193 ...............................................................................................................................................MySQLdb‬‬
‫نصب ‪193 ...................................................................................................................................... MySQLdb‬‬
‫پياده سازی اتصال به ديتابيس (‪194 ................................................................................... )Database connection‬‬
‫ماژول ‪194 ......................................................................................................................................................‬‬
‫ايجاد جدول ديتابيس ‪195 .....................................................................................................................................‬‬
‫عمليات ‪195 ....................................................................................................................................... INSERT‬‬
‫عمليات خواندن داده ها (‪197 .....................................................................................................................)READ‬‬
‫عمليات ‪ UPDATE‬و بروز رسانی داده ها ‪198 .........................................................................................................‬‬
‫عمليات ‪ DELETE‬و حذف رکورد از ديتابيس ‪199 .....................................................................................................‬‬
‫اجرای تراکنش بر روی ديتابيس (‪200 ............................................................................................. )Transactions‬‬
‫عمليات ‪ Commit‬و ثبت نهايی ‪201 ......................................................................................................................‬‬
‫عمليات ‪ ROLLBACK‬و بازگشت به وضعيت قبلی ‪201 ...............................................................................................‬‬
‫قطع اتصال به ديتابيس (متد )(‪201 .............................................................................................................. )close‬‬
‫مديريت خطاها ‪201 ...........................................................................................................................................‬‬
‫شرح مفهوم ‪204 .................................................................................................................................... Socket‬‬
‫ماژول ‪205 .......................................................................................................................................... Socket‬‬
‫‪( Server Socket Methods‬متدهای به مربوط به سمت سرويس دهنده ی از ماژول ‪206 .................................... )socket‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪8‬‬

‫متدهای ماژول ‪ socket‬مربوط به سمت سرويس گيرنده ‪207 .......................................................................................‬‬


‫متدهای کلی ماژول ‪207 .......................................................................................................................... socket‬‬
‫نوشتن فايل مربوط به بخش سرويس دهنده ‪ /‬پياده سازی بخش مربوط به سرويس دهنده (‪208 ...................... )writing server‬‬
‫پياده سازی بخش مربوط به سرويس گيرنده ‪ /‬نوشتن فايل سرويس گيرنده (‪208 ..................................................... )Client‬‬
‫ماژول های برنامه نويسی تحت شبکه برای ‪210 ............................................... Python Internet modules / Python‬‬
‫ارسال فايل ايميل به صورت ‪ HTML‬با استفاده از ‪213 ................................................................................... Python‬‬
‫ارسال محتوا همراه با ايميل (پياده سازی قابليت الصاق محتوا و ‪214 ........................................................ )Attachment‬‬
‫راه اندازی و اجرای ‪ thread‬جديد ‪216 ..................................................................................................................‬‬
‫ماژول ‪218 ..................................................................................................................................... Threading‬‬
‫ايجاد آبجکت جديد ‪ Thread‬از ماژول ‪219 ............................................................................................ Threading‬‬
‫همزمان سازی ‪ thread‬ها ‪220 ............................................................................................................................‬‬
‫پياده سازی ‪ queue‬و قرار دادن آيتم ها در صف بر اساس اولويت در پردازش موازی (‪)Multithreaded Priority Queue‬‬
‫‪222 ..............................................................................................................................................................‬‬
‫‪ XML‬چيست؟ ‪224 ............................................................................................................................................‬‬
‫معماری ها و توابع کتابخانه ای تحليل گر نحوی و مفسر ‪224 ................................... )XML Parser & API( XML Parser‬‬
‫پردازش و تفسير ‪ XML‬به وسيله ی توابع ‪226 ................................................................................................... SAX‬‬
‫متد ‪226 .................................................................................................................................... make_parser‬‬
‫متد ‪227 ................................................................................................................................................ parse‬‬
‫متد ‪227 ....................................................................................................................................... parseString‬‬
‫پردازش و تفسير فايل های ‪ XML‬با استفاده از توابع ‪229 ................................................................................... DOM‬‬
‫کتابخانه ی ‪232 .................................................................................................................................... Tkinter‬‬
‫ويدجت ها و ابزارک های رابط کاربری ‪233 ...............................................................................................Tkinter‬‬
‫‪ Attribute‬ها و ويژگی های متعارف کنترل های رابط کاربری ‪235 ............................................................................‬‬
‫مديريت هندسه و چيدمان المان ها ‪236 ....................................................................................................................‬‬
‫ابزار الزم برای نوشتن افزونه ها ‪237 ....................................................................................................................‬‬
‫اولين نمونه از افزونه ی اختصاصی ‪237 .................................................................................................... Python‬‬
‫فايل ‪237 ..........................................................................................................................................Python.h‬‬
‫توابع ‪238 ..................................................................................................................................................... C‬‬
‫جدول نگاشت توابع ‪239 .................................................................... )Method Mapping Table( PyMethodDef‬‬
‫تابع مقداردهی اوليه (‪240 ................................................................................................................ )initModule‬‬
‫کامپايل و نصب افزونه ها (‪242 ................................................................................................................. )build‬‬
‫وارد کردن و استفاده از افزونه ها در پروژه ‪242 ......................................................................................................‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪9‬‬

‫ارسال پارامتر به تابع ‪243 ...................................................................................................................................‬‬


‫تابع ‪244 ........................................................................................................................... PyArg_ParseTuple‬‬
‫بازگردانی مقادير در خروجی ‪246 .........................................................................................................................‬‬
‫تابع ‪247 ................................................................................................................................. Py_BuildValue‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪10‬‬

‫زبان برنامه نویسی ‪Python‬‬

‫پایتون به انگلیسی ‪ Python‬یک زبان برنامهنویسی همه منظوره‪ ،‬سطح بالا (‪ ،)high-level‬شی گرا‬

‫(‪ )object-oriented‬و مفسر (‪ )interpreter‬است که توسط خودو فان روسوم در سال ‪ ۱۹۹۱‬در کشور‬
‫هلند پا به عرصه ی وجود گذاشت‪.‬‬

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

‫کتابخانههایی که در اختیار کاربر است بسیار وسیع هستند‪.‬‬


‫بر خلاف برخی از زبانهای برنامهنویسی متادول دیگر که قطعه های کد در }{ تعریف میشوند‬

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

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

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

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

‫ویژگیها با زبان های تفسیری ‪ Ruby ،Perl‬تشابهاتی دارد و از قابلیت مدیریت خودکار حافظه‬

‫استفاده میکند‪.‬‬
‫پایتون پروژهای آزاد و متنباز (‪ )open-source‬توسعهیافتهاست و توسط بنیاد نرمافزار پایتون اداره و‬

‫رهبری می شود‪.‬‬

‫بررسی اجمالی زبان برنامه نویسی ‪Python‬‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪11‬‬

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

‫‪ .1‬پایتون تفسیر می شود‪ :‬این زبان در زمان اجرا توسط مفسر پردازش می شود‪ .‬بنابراین نیازی‬
‫نیست شما برنامه را پیش از اجرای آن کامپایل یا ترجمه کنید‪ ،‬مشابه دو زبان ‪ PERL‬و ‪.PHP‬‬

‫‪ .2‬پایتون تعاملی می باشد‪ :‬می توانید پای پنجره ی ‪ prompt‬نشسته و مستقیم با مفسر‬

‫(‪ )interpreter‬تعامل برقرار کنید و برنامه های خود را بنویسید‪.‬‬

‫‪ .3‬پایتون شی گراست‪ :‬این زبان از مدل برنامه نویسی شی گرا‪/‬روش برنامه نوسی که در آن کدها‬

‫درون اشایی کپسوله سازی می شوند‪.‬‬

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

‫پردازش و مدیریت متن و مرورگرها و حتی بازی های رایانه ای نیز می شود‪.‬‬

‫تاریخچه ی پایتون‬
‫همان طور که قبلا ذکر شد‪ ،‬این زبان توسط خودو فان روسوم در اواخر دهه ی ‪ 80‬و اوایل ‪ 1990‬در‬
‫موسسه ی ملی تحقیقات علوم ریاضی و کامپیوتر در هلند توسعه یافت‪.‬‬

‫پایتون از زبان هایی همچون ‪ Unix shell ،SmallTalk ،Algol-68 ،C++ ،C ،Modula-3 ،ABC‬و دیگر‬
‫زبان های اسکریپت نویسی مشتق شده است‪.‬‬

‫کد منبع این زبان مانند زبان ‪ Perl‬تحت لیسانس ‪ GNU‬در اختیار عموم قرار می گیرد‪.‬‬

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

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

‫ویژگی ها و امکانات ‪Python‬‬


‫‪ .1‬یادگیری آسان آن‪ :‬محدود بودن تعداد کلیدواژه ها‪ ،‬همچنین ساختار و دستور نگارشی ساده ی‬

‫آن نقش اساسی در یادگیری سریع این زبان بازی می کند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪12‬‬

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

‫‪ .4‬دارای کتابخانه ی بسیار گسترده می باشد‪ :‬کتابخانه ی پایتون ‪( portable‬دارای نصب آسان)‬
‫بوده و قابلیت استفاده (سازگاری) در محیط های مختلف همچون ‪ Windows ،UNIX‬و‬

‫‪ Macintosh‬را دارد‪.‬‬

‫‪ .5‬پشتیبانی از قابلیت تعامل با برنامه نویس (‪ :)interactive mode‬پایتون از ‪interactive‬‬


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

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


‫‪ .6‬قابلیت نصب آسان (‪ :)portable‬پایتون می تواند بر روی طیف وسیعی از محیط های سخت‬
‫افزاری (‪ )hardware platform‬اجرا شود و دارای یک رابط می باشد که برای تمامی محیط‬
‫ها یکسان است‪.‬‬

‫‪ .7‬توسعه پذیری (‪ :)Extendable‬می توان ماژول های سطح پایین به مفسر پایتون اضافه‬
‫نمود‪ .‬ماژول های مزبور به برنامه نویس این امکان را می دهند که به ابزارهای در دست‬

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

‫‪ .8‬پایگاه داده‪ :‬پایتون رابط هایی (‪ )interface‬را برای تمامی پایگاه داده های تجاری پرطرفدار‬
‫ارائه می دهد‪.‬‬

‫‪ .9‬برنامه نویسی ‪( GUI‬رابط گرافیکی کاربری)‪ :‬با زبان پایتون می توان رابط کاربری طراحی کرد‬
‫(برنامه های ‪ GUI‬نوشت) و به ‪ system call‬ها‪ ،‬کتابخانه ها و ‪ windows system‬های‬

‫سامانه نرمافزاری و‬
‫ٔ‬ ‫متعددی نظیر‪ Macintosh ، Windows MFC‬و سیستم پنجره ‪( X‬یک‬
‫پروتکل تحت شبکه است که اساس قابلیتهای رابطهای گرافیکی کاربری (‪ )GUI‬و‬

‫دستگاههای ورودی پیشرفته را برای رایانههای تحت شبکه فراهم میکند) انتقال داد‪.‬‬
‫‪ .10‬مقیاس پذیر (‪ :)scalable‬پایتون پشتیبانی و ساختار بهتری را برای برنامه های با مقیاس بزرگ‬

‫در مقایسه با ‪( shell script‬یک برنامه رایانه ای که برای اجرا با مفسر خط فرمان ‪)Unix shell‬‬
‫ارائه می دهد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪13‬‬

‫علاوه بر ویژگی های نام برده‪ ،‬پایتون قابلیت ها و امکانات بیشتری را ارائه می دهد که در زیر‬
‫تعدادی از آن ها فهرست شده‪:‬‬

‫‪ .1‬جدا از مدل برنامه نویسی شی گرا‪ ،‬از روش های تابع محور و دستوری ( & ‪functional‬‬
‫‪ )structured‬برنامه نویسی نیز پشتیبانی می کند‪.‬‬

‫‪ .2‬می توان آن را به صورت یک زبان اسکریپت نویسی مورد استفاده قرار داد یا آن را برای‬
‫برنامه های حجیم به ‪ byte-code‬ترجمه کرد‪.‬‬

‫‪ .3‬نوع داده های پویا سطح بالا ارائه کرده و از قابلیت بررسی پویا نوع پشتیبانی می کند‪.‬‬
‫‪ .4‬از قابلیت ‪ garbage collection‬خودکار پشتیبانی می کند‪.‬‬

‫‪ .5‬می توان آن را به آسانی با ‪ COBRA ،ActiveX ،COM ،C++ ،C‬و ‪ Java‬ترکیب کرد‪.‬‬

‫نصب و راه اندازی محیط برنامه نویسی ‪Python‬‬

‫پایتون را می توان بر روی طیف وسیعی از محیط ها همچون ‪ Mac OS X ،Linux‬اجرا کرد‪ .‬ابتدا‬

‫بایستی به نحوه ی نصب محیط برنامه نویسی این زبان بپردازیم‪.‬‬

‫نصب محیط محلی برنامه نویسی‬


‫برای اینکه پی ببریم آیا محیط پایتون نصب شده و اگر نصب شده کدام ویرایش آن قابل استفاده‬
‫می باشد‪ terminal window ،‬باز کرده و واژه ی "‪ "python‬را وارد کنید‪:‬‬

‫)‪Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, etc.‬‬


‫‪Win 9x/NT/2000‬‬

‫)‪Macintosh (Intel, PPC, 68K‬‬

‫‪OS/2‬‬
‫)‪DOS (multiple versions‬‬

‫‪PalmOS‬‬

‫‪Nokia mobile phones‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪14‬‬

‫‪Windows CE‬‬

‫‪Acorn/RISC OS‬‬
‫‪BeOS‬‬

‫‪Amiga‬‬

‫‪VMS/OpenVMS‬‬
‫‪QNX‬‬

‫‪VxWorks‬‬

‫‪Psion‬‬
‫پایتون همچنین به ماشین های مجازی ‪ Java‬و ‪ .NET‬منتقل شده است‪.‬‬

‫دریافت ‪Python‬‬
‫جهت دسترسی به بروز ترین کد منبع پایتون‪ ،‬کدهای ‪ ، binary‬مستندسازی‪ ،‬اخبار آن می توانید به‬

‫وب سایت رسمی به آدرس ‪ http://www.python.org/‬مراجعه نمایید‪.‬‬

‫می توانید مستندسازی پایتون را از سایت زیر دریافت کنید‪ .‬مستند سازی آن در تمامی فرمت های‬

‫موجود‪ ،‬اعم از ‪ PDF ،HTML‬و ‪ PostScript‬قابل دسترسی می باشد‪.‬‬

‫نصب ‪python‬‬
‫پایتون ویژه ی طیف گسترده ای از محیط ها (‪ )platform‬ارائه و توزیع شده‪ .‬کافی است کد باینری‬
‫سازگار با محیط خود را بارگیری کرده و آن را نصب کنید‪.‬‬

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

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

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

‫در زیر به نحوه ی نصب پایتون بر روی محیط های گوناگون خواهیم پرداخت‪:‬‬

‫جهت نصب پایتون بر روی ماشینی که سیستم عامل آن ‪ Linux/Unix‬است‪ ،‬می بایست گام های‬
‫زیر را دنبال کنید‪:‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪15‬‬

‫‪ .1‬مرورگر دلخواه را راه اندازی کرده و به آدرس ‪http://www.python.org/download/‬‬


‫مراجعه نمایید‪.‬‬

‫‪ .2‬لینکی که کد منبع برای ‪ Linux/Unix‬را به صورت ‪ zip‬شده ارائه می دهد‪ ،‬دنبال کنید‪.‬‬
‫‪ .3‬فایل های مربوطه را بارگیری کرده‪ ،‬سپس از حالت فشرده استخراج نمایید‪.‬‬

‫‪ .4‬برای تنظیم سفارشی برخی از گزینه ها‪ ،‬فایل ‪ Modules/Setup‬را ویرایش کنید‪.‬‬

‫‪ .5‬اسکریپت ‪ ./configure‬را اجرا کنید‪.‬‬


‫‪ .6‬حال نصب را انجام دهید‪.‬‬

‫در پایان‪ ،‬پایتون در مسیر پیش فرض ‪ /usr/local/bin‬نصب شده و کتابخانه های آن نیز در صورتی‬

‫که نسخه ی مورد استفاده ی پایتون ‪ XX‬باشد‪ ،‬در مسیر ‪ /usr/local/lib/pythonXX‬جای می گیرد‪.‬‬

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

‫‪ .1‬مرورگر را باز کرده و به آدرس ‪ http://www.python.org/download/‬پیمایش کنید‪.‬‬

‫‪ .2‬لینکی که فایل نصبی پایتون سازگار با ویندوز پایتون را ارائه می دهد (فایل ‪Windows‬‬
‫‪ )installer python-XYZ.msi‬را دنبال کنید‪ .‬نسخه ای که بایستی نصب کنید ‪ XYZ‬می باشد‪.‬‬

‫‪ .3‬برای اینکه ویندوز بتواند از این فایل استفاده کند‪ ،‬می بایست ‪ Microsoft Installer 2.0‬بر‬
‫روی آن نصب شده و پشتیبانی شود‪ .‬کافی است فایل ‪ installer‬را بر روی ماشین نصب‬

‫کرده و آن را اجرا کنید تا مطمئن شوید رایانه ی شما از ‪ MSI‬پشتیبانی می کند‪.‬‬


‫‪ .4‬فایل دانلود شده را اجرا کنید‪ .‬راهنمای نصب (‪ )install wizard‬پایتون نمایش داده می شود‪.‬‬

‫کافی است تنظیمات پیش فرض را پذیرفته و صبر کنید تا فرایند نصب به پایان برسد‪.‬‬

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

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

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪16‬‬

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

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

‫متغیر ‪ path‬در سیستم عامل ‪ PATH ، Unix‬و در ویندوز ‪ Path‬نام گذاری می شود(‪ Unix‬حساس به کوچک و‬

‫بزرگی حروف است و ویندوز نیست)‪.‬‬

‫در سیستم عامل ‪ Mac‬تمامی جزئیات مربوط به مسیر قرار گیری فایل ها توسط ‪ installer‬مدیریت می شود‪ .‬به‬
‫منظور فراخوانی مفسر (‪ )interpreter‬پایتون از هر پوشه ای‪ ،‬می بایست پوشه ی ‪ Python‬را به مسیر خود اضافه‬

‫کنید‪.‬‬

‫تنظیم مسیر در محیط ‪Unix/Linux‬‬


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

‫‪ .1‬در ‪ :csh shell‬عبارت "‪ setenv PATH "$PATH:/usr/local/bin/python‬را وارد کرده و کلید ‪ Enter‬فشار‬

‫دهید‪.‬‬
‫‪ .2‬در )‪ :bash shell (Linux‬عبارت "‪ export PATH="$PATH:/usr/local/bin/python‬را وارد نموده و ‪Enter‬‬

‫را فشار دهید‪.‬‬


‫‪ .3‬در ‪ sh‬یا ‪ : ksh shell‬عبارت "‪ PATH="$PATH:/usr/local/bin/python‬را وارد کرده‪ ،‬سپس ‪ Enter‬را بزنید‪.‬‬

‫نکته‪ /usr/local/bin/python :‬در واقع مسیر قرار گیری پوشه ی پایتون می باشد‪.‬‬

‫تنظیم مسیردر سیستم عامل ویندوز‬


‫جهت افزودن پوشه ی پایتون به مسیر مورد نظر برای یک ‪ session‬در محیط ویندوز‪ ،‬مراحل زیر را دنبال کنید‪:‬‬

‫‪ .1‬در خط فرمان (‪ :)command prompt‬عبارت ‪ path %path%;C:\Python‬را تایپ کرده و ‪ Enter‬را فشار‬
‫دهید‪.‬‬

‫نکته‪ C:\Python :‬مسیر قرارگیری پوشه ی پایتون می باشد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪17‬‬

‫متغیرهای محیطی پایتون (‪)environment variable‬‬


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

‫متغیر‬ ‫شرح‬

‫‪PYTHONPATH‬‬
‫نقشی مشابه نقش ای که ‪ PATH‬ايفا می کند را بازی می کند‪ .‬اين متغير به مفسر پايتون‬
‫اطالع می دهد کجا می تواند فايل های ماژول وارد شده به يک برنامه را پيدا کرده و به آن‬
‫ها دسترسی داشته باشد‪ .‬متغير ذکر شده بايستی پوشه ی دربردارنده ی کتابخانه ی منبع‬
‫(‪ )source library directory‬پايتون و همچنين پوشه های حاوی کد منبع‪/‬سورس کد پايتون‬
‫را شامل شود‪ PYTHONPATH .‬گاهی توسط ‪ installer‬پايتون از پيش تنظيم شده است‪.‬‬

‫‪PYTHONSTARTUP‬‬
‫دربردارنده ی مسير فايل آغاز سازی (‪ )initialization‬است که آن فايل حاوی کد منبع‬
‫پايتون می باشد‪.‬اين متغير هر بار که مفسر را راه اندازی می کنيد‪ ،‬اجرا می شود‪.‬‬
‫‪ PYTHONSTARTUP‬درسيستم عامل ‪ ،Unix‬بدين نام می باشد‪ .pythonrc.py :‬و‬
‫دربرگيرنده ی دستوراتی است که برنامه های کاربردی (‪ )utilities‬را بارگذاری کرده يا‬
‫متغير ‪ PYTHONPATH‬را ‪ modify‬می کنند‪.‬‬

‫‪PYTHONCASEOK‬‬ ‫با ‪ PYTHONCASEOK‬در محيط ويندوز می توان به پايتون دستور داد که اولين نمونه يا‬
‫مورد منطبق غير حساس به کوچک و بزرگی حروف در يک دستور ‪ import‬را پيدا کند‪ .‬با‬
‫تنظيم اين متغير بر روی هر مقداری می توان آن را فعال ساخت‪.‬‬

‫‪PYTHONHOME‬‬ ‫اين متغير يک جايگزين برای ‪( module search path‬مسير جستجو ماژول) می باشد‪.‬‬
‫متغير مزبور معموال در پوشه های ‪ PYTHONSTARTUP‬يا ‪ PYTHONPATH‬گنجانده می‬
‫شود تا بدين وسيله پروسه ی عوض کردن کتابخانه های ماژول آسان گردد‪.‬‬

‫راه اندازی پایتون‬


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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪18‬‬

‫‪ .1‬مفسر تعاملی (‪ :)Interactive Interpreter‬پایتون را می توان از طریق ‪ Dos ،Unix‬یا هر سیستم دیگری‬
‫که مفسر خط فرمان (‪ )command-line interprator‬یا ‪ shell window‬فراهم می نماید‪ ،‬اجرا و راه اندازی‬

‫کرد‪.‬‬

‫واژه ی پایتون را در خط فرمان وارد کنید‪.‬‬

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

‫‪$python‬‬ ‫‪# Unix/Linux‬‬


‫‪or‬‬
‫‪python%‬‬ ‫‪# Unix/Linux‬‬
‫‪or‬‬
‫‪C:>python‬‬ ‫‪# Windows/DOS‬‬
‫در جدول زیر تمامی دستورات و گزینه های قابل استفاده ی خط فرمان را مشاهده می کنید‪:‬‬

‫دستور‬ ‫شرح‬

‫‪-d‬‬ ‫خروجی را به صورت ‪ debug‬ارائه می دهد‪.‬‬

‫‪-O‬‬ ‫‪ bytecode‬بهينه سازی شده ايجاد می کند (خروجی آن فايل هايی است که دارای پسوند ‪ .pyo‬می باشد)‪.‬‬

‫‪-S‬‬ ‫از دستور ‪ import site‬برای جستجوی مسير پايتون هنگام شروع استفاده نکنيد‪.‬‬

‫‪-v‬‬ ‫خروجی طوالنی (گزارشات ‪ trace‬با جزئيات درباره ی دستورات ‪)import‬‬

‫‪-X‬‬ ‫استثناهای مبتنی بر کالس توکار را غيرفعال می کند(فقط بايستی رشته استفاده کنيد)؛ از ويرايش ‪ 1.6‬به‬
‫بعد منسوخ شد‪.‬‬

‫‪-c cmd‬‬ ‫اسکريپت ارسالی را به صورت رشته ی ‪ cmd‬اجرا می کند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪19‬‬

‫‪file‬‬ ‫اسکريپت پايتون را از يک فايل مشخص اجرامی کند‪.‬‬

‫‪ .2‬اجرای اسکریپت پایتون از خط فرمان (‪ :)command-line‬یک اسکریپت پایتون را می توان در‬


‫خط فرمان با فراخوانی مفسر برای برنامه ی خود اجرا کرد‪:‬‬

‫‪$python script.py‬‬ ‫‪# Unix/Linux‬‬


‫‪or‬‬
‫‪python% script.py‬‬ ‫‪# Unix/Linux‬‬
‫‪or‬‬
‫‪C:>python script.py‬‬ ‫‪# Windows/DOS‬‬
‫نکته‪ :‬مطمئن شوید ‪ permission mode‬فایل به شما اجازه ی اجرای فایل را می دهد‪.‬‬

‫‪ .3‬با بهره گیری از محیط برنامه نویسی یکپارچه (‪ :)IDE‬می توانید پایتون را در یک محیط رابط‬
‫گرافیکی کاربری (‪ )GUI‬نیز اجرا کنید‪ ،‬البته اگر یک برنامه ی ‪ GUI‬بر روی رایانه ی خود نصب‬

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

‫‪ IDLE :Unix‬اولین ‪ IDE‬یا محیط یکپارچه ی برنامه نویسی است که برای پایتون عرض شده است‪.‬‬

‫‪ PythonWin :Windows‬نیز اولین ‪ interface‬یا رابط ای است که ویژه ی پایتون برای محیط ویندوز‬

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

‫‪ :Macintosh‬پایتون ارائه شده ویژه ی محیط ‪ Mac‬را می توانید به همراه محیط برنامه نویسی ‪IDLE‬‬
‫از وب سایت رسمی آن به صورت فایل های ‪ MacBinary‬یا ‪ BinHex‬دریافت کنید‪.‬‬

‫اگر موفق نشدید محیط را به درستی تنظیم و راه اندازی کنید‪ ،‬می توانید از ‪ system admin‬کمک‬

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

‫ساختار نگارشی پایه پایتون (‪)basic syntax‬‬

‫زبان پایتون شباهت های زیادی به زبان های ‪ C ،Perl‬و ‪ Java‬دارد‪ .‬با این حال‪ ،‬تفاوت های اساسی‬
‫هم بین این زبان ها وجود دارد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪20‬‬

‫اولین برنامه ی پایتون‬


‫برنامه نویسی خود را از روش های زیر انجام می دهیم‪.‬‬

‫برنامه نویسی با فراخوانی مفسر‬


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

‫حاوی دستورات) زیر مواجه خواهید شد‪:‬‬

‫‪$ python‬‬
‫)‪Python 2.4.3 (#1, Nov 11 2010, 13:34:43‬‬
‫‪[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2‬‬
‫‪Type "help", "copyright", "credits" or "license" for more information.‬‬
‫>>>‬

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

‫"!‪print "Hello, Python‬‬

‫در صورت استفاده از نسخه ی جدید پایتون‪ ،‬می بایست همراه با دستور ‪ Print‬از () استفاده کنید‪،‬‬
‫بدین صورت‪ .print ("Hello, Python!"); :‬در ویرایش ‪ 2.4.3‬این زبان‪ ،‬نتیجه ی زیر حاصل می شود‪:‬‬

‫"!‪"Hello, Python‬‬

‫فراخوانی مفسر با یک اسکریپت به عنوان پارامتر‬


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

‫غیرفعال می شود‪.‬‬

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

‫کد زیر را در یک فایل به نام ‪ test.py‬تایپ کنید‪:‬‬

‫"!‪print "Hello, Python‬‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪21‬‬

‫‪$ python test.py‬‬

‫نتیجه ی زیر بدست می آید‪:‬‬


‫!‪Hello, Python‬‬

‫حال اسکریپت پایتون را از روش دیگری اجرا می کنیم‪.‬‬


‫‪#!/usr/bin/python‬‬
‫"!‪print "Hello, Python‬‬

‫پیش از کامپایل‪ ،‬می بایست مفسر پایتون را در پوشه ی ‪ /usr/bin‬آماده داشته باشید‪ .‬اکنون برنامه‬

‫را بدین صورت اجرا می کنیم‪:‬‬

‫‪$ chmod +x test.py‬‬ ‫‪# This is to make file executable‬‬


‫‪$./test.py‬‬

‫نتیجه ی زیر حاصل می گردد‪:‬‬


‫!‪Hello, Python‬‬

‫شناسه ها در پایتون‬
‫شناسه یا ‪ identifier‬یک اسم است که به منظور شناسایی متغیر‪ ،‬تابع‪ ،‬کلاس‪ ،‬ماژول یا دیگر اشیا‬

‫به آن ها تخصیص داده می شود‪ .‬شناسه با یک حرف از ‪ A‬تا ‪( Z‬یا ‪ a‬تا ‪ )z‬یا زیرخط (_) آغاز شده و‬
‫به دنبال آن یک یا چند صفر‪ ،‬حرف‪ ،‬زیرخط و عدد قرار می گیرد‪.‬‬

‫استفاده از علائم نگارشی همچون @‪ $ ،‬و ‪ %‬در شناسه مجاز نمی باشد‪ .‬پایتون یک زبان حساس به‬
‫کوچک و بزرگی حروف است‪ .‬از این رو‪ ،‬دو واژه ی ‪ Manpower‬و ‪ manpower‬دو شناسه ی کاملا‬

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

‫قوانین نام گذاری توابع‪ ،‬متغیرها و اشیا در زیر فهرست شده‪:‬‬

‫‪ .1‬اسم کلاس ها با حرف بزرگ آغاز می شود‪ .‬دیگر شناسه ها با حرف کوچک شروع می شود‪.‬‬
‫‪ .2‬آغاز کردن یک شناسه با زیرخط (_)‪ ،‬بیانگر این است که آن شناسه ‪ private‬می باشد‪.‬‬

‫‪ .3‬آغاز کردن یک شناسه با دو زیرخط نشانگر ‪ strongly private‬بودن آن شناسه است‪.‬‬


‫‪ .4‬اگر شناسه ای با دو زیرخط پشت سرهم پایان یابد‪ ،‬در آن صورت شناسه ی مورد نظر اسم‬

‫خاص ‪ language defined‬می باشد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪22‬‬

‫کلمات رزرو شده‬


‫لیست زیر کلمات رزرو شده ی زبان پایتون را نمایش می دهد‪ .‬این کلمات را نمی توان به عنوان‬
‫اسم متغیر‪ ،‬ثابت (‪ )constant‬یا هر چیز دیگر استفاده کرد‪ .‬لازم به ذکر است که تمامی کلیدواژه‬

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

‫‪And‬‬ ‫‪exec‬‬ ‫‪Not‬‬

‫‪Assert‬‬ ‫‪finally‬‬ ‫‪or‬‬

‫‪Break‬‬ ‫‪for‬‬ ‫‪pass‬‬

‫‪Class‬‬ ‫‪from‬‬ ‫‪print‬‬

‫‪Continue‬‬ ‫‪global‬‬ ‫‪raise‬‬

‫‪def‬‬ ‫‪if‬‬ ‫‪return‬‬

‫‪del‬‬ ‫‪import‬‬ ‫‪try‬‬

‫‪elif‬‬ ‫‪in‬‬ ‫‪while‬‬

‫‪else‬‬ ‫‪is‬‬ ‫‪with‬‬

‫‪except‬‬ ‫‪lambda‬‬ ‫‪yield‬‬

‫خطوط فاصله و تورفتگی‬

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

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

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

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

‫اندازه توگذاشته شوند‪ .‬مثال‪:‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


23

if True:
print "True"
else:

print "False"

:‫اما قطعه کد زیر خطا می دهد‬

if True:
print "Answer"
print "True"
else:
print "Answer"

print "False"

‫ در کل یک‬،‫ در زبان پایتون تمامی خطاهای متوالی که به یک اندازه توگذاشته شده اند‬،‫بنابراین‬
‫ می بینید که چندین قطعه کد در‬،‫ اگر با دقت به مثال زیر دقت کنید‬.‫قطعه کد را تشکیل می دهند‬

:‫آن وجود دارد‬

#!/usr/bin/python
import sys
try:
# open file stream
file = open(file_name, "w")
except IOError:
print "There was an error writing to", file_name
sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
file_text = raw_input("Enter text: ")
if file_text == file_finish:
# close the file
file.close
break
file.write(file_text)
file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
print "Next time please enter something"
sys.exit()
try:
file = open(file_name, "r")
except IOError:
print "There was an error reading file"

7‫ واحد‬- ‫ طبقه دوم‬651 ‫ پالک‬- ‫ جنب بانک صادرات‬- ‫ باال تر از خيابان ملک‬- ‫ خيابان شريعتی‬- ‫ تهران‬: ‫آدرس آموزشگاه‬

88146323 - 88446780 - 88146330


‫‪24‬‬

‫)(‪sys.exit‬‬
‫)(‪file_text = file.read‬‬
‫)(‪file.close‬‬
‫‪print file_text‬‬

‫دستورهای چندخطی‬
‫دستورات پایتون معمولا به خط جدید ختم می شوند (یک خط تمام شده و خط دیگری شروع می‬
‫شود)‪ .‬کاراکتر (\) در انتهای خط نشانگر ادامه ی دستور مورد نظر در خط دیگر است‪ .‬مثال‪:‬‬

‫\ ‪total = item_one +‬‬


‫\ ‪item_two +‬‬
‫‪item_three‬‬
‫دستوراتی که داخل {}‪ [] ،‬یا () قرار می گیرند نیازی به کاراکتر (\) برای نشان دادن اینکه ادامه دستور‬

‫در خط بعدی قرار گرفته‪ ،‬ندارد‪.‬‬

‫‪days = ['Monday', 'Tuesday', 'Wednesday',‬‬


‫]'‪'Thursday', 'Friday‬‬

‫علامت نقل و قول یا کوتیشن در پایتون‬


‫می توان در پایتون از تک کوتیشن (')‪ ،‬دابل کوتیشن (") و سه کوتیشن با هم (''' یا " " ") استفاده‬

‫کرد‪ .‬مقداری که درون این علامت ها قرار می گیرد‪ ،‬یک رشته ی نوشتاری (‪ )string literal‬را تشکیل‬
‫می دهد‪ .‬بایستی دقت داشت که یک رشته با یک نوع کوتیشن آغاز شده و با همان نوع نیز پایان‬

‫می یابد‪.‬‬

‫از ''' یا " " " برای محصور کردن یک رشته که در چندین خط ادامه دارد استفاده می شود‪ .‬تمامی‬

‫نمونه های زیر مجاز و صحیح هستند‪:‬‬

‫'‪word = 'word‬‬
‫"‪sentence = "This is a sentence.‬‬
‫‪paragraph = """This is a paragraph. It is‬‬
‫"""‪made up of multiple lines and sentences.‬‬

‫‪( Comment‬توضیحات) در پایتون‬


‫علامت ‪ #‬اگر داخل کوتیشن محصور نباشد‪ ،‬نشانگر شروع ‪ comment‬خواهد بود‪ .‬تمام کاراکترهایی‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪25‬‬

‫‪#!/usr/bin/python‬‬
‫‪# First comment‬‬
‫‪print "Hello, Python!" # second comment‬‬
‫خروجی کد بالا‪:‬‬

‫!‪Hello, Python‬‬

‫می توانید یک ‪ comment‬را درست بعد از یک دستور یا عبارت شروع کرد‪ ،‬بدین نحو‪:‬‬

‫‪name = "Madisetti" # This is again comment‬‬


‫می توانید چند خط را به صورت ‪ comment‬دربیاورید‪ ،‬بدین شکل‪:‬‬

‫‪# This is a comment.‬‬


‫‪# This is a comment, too.‬‬
‫‪# This is a comment, too.‬‬
‫‪# I said that already.‬‬

‫استفاده از خطوط تهی‬


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

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

‫در یک ‪ session‬که برنامه نویس مستقیما با مفسر تعامل دارد‪ ،‬می بایست بین این دستور و دستور‬

‫بعدی یک خط خالی فاصله بیاندازید‪.‬‬

‫منتظر کاربر بودن‬


‫خط زیر یک پنجره ی ‪ prompt‬حاوی دستور ”‪ “Press the enter key to exit‬نمایش می دهد و‬
‫منتظر کاربر می ماند تا اقدامات لازم را انجام دهد‪:‬‬

‫‪#!/usr/bin/python‬‬
‫)"‪raw_input("\n\nPress the enter key to exit.‬‬
‫در اینجا‪ ،‬دستور "‪ "\n\n‬دو خط جدید ایجاد کرده‪ ،‬سپس خود خط را نمایش می دهد‪.‬‬

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

‫‪ console‬را تا زمانی که کاربر کارش با برنامه تمام نشده‪ ،‬باز نگه داشت‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪26‬‬

‫چندین دستور در یک خط‬


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

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

‫)'‪import sys; x = 'foo'; sys.stdout.write(x + '\n‬‬

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


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

‫اصطلاح ‪ suite‬اطلاق می گردند‪ .‬دستورات مرکب نظیر ‪ def ،while ،if‬و ‪ class‬نیازمند یک خط‬

‫سرآیند (‪ )header line‬و یک ‪ suite‬هستند‪.‬‬

‫خطوط سرآیند (‪ )header‬با یک دستور (یک کلیدواژه) آغاز می شود و با یک دونقطه (‪ ):‬به پایان می‬
‫رسد‪ ،‬همچنین به دنبال آن یک یا چندین خط قرار می گیرد که ‪( suite‬مجموعه دستور) را تشکیل می‬

‫دهد‪ .‬نمونه‪:‬‬

‫‪if expression :‬‬


‫‪suite‬‬
‫‪elif expression :‬‬
‫‪suite‬‬
‫‪else :‬‬
‫‪suite‬‬

‫آرگومان های خط فرمان (‪)command-line arguments‬‬


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

‫اختیار شما قرار دهد‪ .‬پایتون با فراهم نمودن دستور ‪ ،–h‬این امکان را به شما می دهد‪:‬‬

‫‪$ python -h‬‬

‫‪usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...‬‬

‫‪Options and arguments (and corresponding environment variables):‬‬

‫)‪-c cmd : program passed in as string (terminates option list‬‬

‫‪-d‬‬ ‫)‪: debug output from parser (also PYTHONDEBUG=x‬‬

‫‪-E‬‬ ‫)‪: ignore environment variables (such as PYTHONPATH‬‬

‫‪-h‬‬ ‫‪: print this help message and exit‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪27‬‬

‫] ‪[ etc.‬‬

‫انواع متغیر (‪ )variable type‬در پایتون‬

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

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

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

‫می توانید اعداد صحیح (‪ ،)integer‬اعداد اعشاری (‪ )decimal‬یا ‪ character‬در این متغیرها ذخیره‬
‫کنید‪.‬‬

‫تخصیص مقادیر به متغیرها‬


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

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

‫عملوندی (‪ )operand‬که در سمت چپ عملگر (‪ " = " )operator‬قرار می گیرد‪ ،‬اسم متغیر و‬

‫عملوندی که در سمت راست عملگر " = " قرار می گیرد‪ ،‬مقداری است که در متغیر ذخیره می‬
‫شود‪ .‬مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫‪counter = 100‬‬ ‫‪# An integer assignment‬‬
‫‪miles = 1000.0‬‬ ‫‪# A floating point‬‬
‫"‪name = "John‬‬ ‫‪# A string‬‬
‫‪print counter‬‬
‫‪print miles‬‬
‫‪print name‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪28‬‬

‫در اینجا‪1000.0 ،100 ،‬و "‪ "John‬همگی مقادیر تخصیص داده شده به ترتیب به متغیرهای ‪،counter‬‬
‫‪ miles‬و ‪ name‬هستند‪ .‬کد بالا نتیجه ی زیر را بدست می دهد‪:‬‬

‫‪100‬‬
‫‪1000.0‬‬
‫‪John‬‬

‫چندین تخصیص به صورت یکجا‬


‫پایتو ن به شما امکان می دهد یک مقدار را همزمان به چندین متغیر تخصیص دهید‪ .‬مثال‪:‬‬

‫‪a=b=c=1‬‬
‫در اینجا‪ ،‬یک شی ‪ integer‬ایجاد شده سپس مقدار ‪ 1‬در آن ذخیره گردیده‪ .‬همان طور که مشاهده‬

‫می کنید هر سه متغیر به یک مکان واحد در حافظه تخصیص داده شده اند‪ .‬همچنین می توان‬
‫چندین شی همزمان به چندین متغیر انتساب داد‪ .‬مثال‪:‬‬

‫"‪a, b, c = 1, 2, "john‬‬

‫در این مثال‪ ،‬سه مقادیر دو عدد صحیح و یک رشته به ترتیب به متغیرهای ‪ b ،a‬و ‪ c‬تخصیص داده‬
‫شده اند‪.‬‬

‫نوع داده های رایج‬


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

‫صورت یک مقدار عددی ذخیره شده و آدرس وی در قالب حروف الفبا (‪ )alpha-numeric‬داخل‬
‫حافظه ذخیره می شود‪ .‬پایتون دارای نوع داده های متعددی است که عملیات ممکن بر روی آن ها‬

‫و روش های ذخیره ویژه ی هر یک را تعریف می کند‪.‬‬

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

‫‪ .1‬نوع عددی‬

‫‪ .2‬نوع رشته ای‬

‫‪ .3‬لیست‬

‫‪(tuple .4‬نوع داده ی چندتایی)‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪29‬‬

‫‪Dictionary .5‬‬

‫اعداد یا نوع عددی در پایتون‬


‫نوع داده های عددی قادرند مقادیر عددی در خود نگه دارند‪ .‬اشیا ‪ number‬زمانی ایجاد می شوند‬

‫که مقداری را به آن تخصیص دهید‪ .‬برای مثال‪:‬‬

‫‪var1 = 1‬‬
‫‪var2 = 10‬‬
‫می توانید ارجاع (‪ )reference‬به یک شی عددی را با استفاده از دستور ‪ del‬پاک کنید‪ .‬نحوه ی‬

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

‫]]]]‪del var1[,var2[,var3[....,varN‬‬
‫می توانید با استفاده از دستور ‪ del‬یک یا چند شی را حذف کنید‪ .‬مثال‪:‬‬
‫‪del var‬‬
‫‪del var_a, var_b‬‬
‫پایتون نوع های عددی زیر را پشتیبانی می کند‪:‬‬

‫‪( int‬اعداد صحیح علامت دار)‬ ‫‪.1‬‬


‫‪( long‬اعداد صحیح بسیار بزرگ یا ‪ ،long integers‬آن ها را می توان به صورت شانزده‬ ‫‪.2‬‬

‫شانزدهی و هشت هشتی نمایش داد)‬


‫‪( float‬مقادیر حقیقی میمز شناور)‬ ‫‪.3‬‬

‫‪( complex‬اعداد مختلط)‬ ‫‪.4‬‬

‫مثال‪:‬‬

‫‪int‬‬ ‫‪long‬‬ ‫‪float‬‬ ‫‪complex‬‬

‫‪10‬‬ ‫‪51924361L‬‬ ‫‪0.0‬‬ ‫‪3.14j‬‬

‫‪100‬‬ ‫‪-0x19323L‬‬ ‫‪15.20‬‬ ‫‪45.j‬‬

‫‪-786‬‬ ‫‪0122L‬‬ ‫‪-21.9‬‬ ‫‪9.322e-36j‬‬

‫‪080‬‬ ‫‪0xDEFABCECBDAECBFBAEl‬‬ ‫‪32.3+e18‬‬ ‫‪.876j‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪30‬‬

‫‪-0490‬‬ ‫‪535633629843L‬‬ ‫‪-90.‬‬ ‫‪-.6545+0J‬‬

‫‪-0x260‬‬ ‫‪-052318172735L‬‬ ‫‪-32.54e100‬‬ ‫‪3e+26J‬‬

‫‪0x69‬‬ ‫‪-4721885298529L‬‬ ‫‪70.2-E12‬‬ ‫‪4.53e-7j‬‬

‫‪ .1‬پایتون به شما اجازه می دهد برای مشخص کردن نوع عددی ‪ Long‬از ‪ l‬کوچک استفاده کنید‪،‬‬
‫اما برای اینکه آن ‪ l‬با عدد ‪ 1‬اشتباه گرفته نشود‪ ،‬توصیه می کنیم از ‪ L‬بزرگ استفاده کنید‪.‬‬

‫بنابراین پایتون اعداد صحیح بسیار بزرگ را با ‪ L‬بزرگ نمایش می دهد‪.‬‬


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

‫نام دارد‪ .‬برای مثال در ‪ x ،x + yj‬و ‪ y‬اعداد حقیقی هستند و ‪ j‬نشانگر واحد یا یکه ی‬
‫موهومی (‪ )imaginary‬می باشد‪.‬‬

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

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

‫بهره گیری از عملگر برش یا ‪ ([ ] [:] ) slice operator‬که اندیس آن در آغاز رشته با اندیس ‪ 0‬شروع‬
‫شده و تا ‪ -1‬در انتها ادامه می یابد‪ ،‬بخش هایی از یک رشته را استخراج کرد‪.‬‬

‫علامت (‪ )+‬یک عملگر اتصال است که دو رشته را به هم پیوند می دهد‪ .‬علامت * درواقع یک‬
‫‪ repetition operator‬است که دستوری را تکرار می کند (برای مثال یک رشته را دوبار چاپ می‬

‫نمایند)‪.‬‬
‫‪#!/usr/bin/python‬‬
‫'!‪str = 'Hello World‬‬
‫‪print str‬‬ ‫‪# Prints complete string‬‬
‫]‪print str[0‬‬ ‫‪# Prints first character of the string‬‬
‫‪print str[2:5] # Prints characters starting from 3rd to 5th‬‬
‫]‪print str[2:‬‬ ‫‪# Prints string starting from 3rd character‬‬
‫‪print str * 2‬‬ ‫‪# Prints string two times‬‬
‫‪print str + "TEST" # Prints concatenated string‬‬
‫نتیجه ی زیر حاصل می گردد‪:‬‬
‫!‪Hello World‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪31‬‬

‫‪H‬‬
‫‪llo‬‬
‫!‪llo World‬‬
‫!‪Hello World!Hello World‬‬
‫‪Hello World!TEST‬‬

‫نوع داده ای ‪ List‬در پایتون‬


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

‫توسط ویرگول از هم جدا شده و داخل ][ محصور می شوند‪ .‬تا حدی می توان گفت که ‪ List‬شبیه‬
‫به نوع داده ای آرایه در زبان ‪ C‬است‪ .‬یک تفاوت اساسی بین آرایه و لیست این است که آیتم های‬

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

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

‫از در ابتدای لیست ار صفر آغاز شده و تا ‪ -1‬در انتهای لیست ادامه می یابد‪ ،‬مورد دسترسی قرار‬
‫داد‪ .‬علامت ‪ +‬به عنوان یک عملگر اتصال نقش ایفا کرده و عملگر * نیز صرفا یک دستور را تکرار‬

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

‫‪#!/usr/bin/python‬‬
‫] ‪list = [ 'abcd', 786 , 2.23, 'john', 70.2‬‬
‫]'‪tinylist = [123, 'john‬‬
‫‪print list‬‬ ‫‪# Prints complete list‬‬
‫]‪print list[0‬‬ ‫‪# Prints first element of the list‬‬
‫‪print list[1:3] # Prints elements starting from 2nd till 3rd‬‬
‫]‪print list[2:‬‬ ‫‪# Prints elements starting from 3rd element‬‬
‫‪print tinylist * 2 # Prints list two times‬‬
‫‪print list + tinylist # Prints concatenated lists‬‬
‫کد فوق‪ ،‬نتیجه ی زیر را بدست می دهد‪:‬‬

‫]‪['abcd', 786, 2.23, 'john', 70.200000000000003‬‬


‫‪abcd‬‬
‫]‪[786, 2.23‬‬
‫]‪[2.23, 'john', 70.200000000000003‬‬
‫]'‪[123, 'john', 123, 'john‬‬
‫]'‪['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪32‬‬

‫نوع داده ای ‪ Tuple‬در پایتون‬


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

‫می شوند‪ .‬اما برخلاف ‪ ،List‬نوع داده ای ‪ Tuple‬داخل پرانتز محصور می شود‪.‬‬

‫بین نوع داده ای مذکور تفاوت هایی وجود دارد‪ :‬در ‪ List‬مقادیر درون ][ جای می گیرند‪ ،‬در حالی که‬

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

‫چشم ‪ list‬های فقط خواندنی (‪ )read-only‬نیز نگریست‪ .‬مثال ‪:‬‬

‫‪#!/usr/bin/python‬‬
‫) ‪tuple = ( 'abcd', 786 , 2.23, 'john', 70.2‬‬
‫)'‪tinytuple = (123, 'john‬‬
‫‪print tuple‬‬ ‫‪# Prints complete list‬‬
‫]‪print tuple[0‬‬ ‫‪# Prints first element of the list‬‬
‫]‪print tuple[1:3‬‬ ‫‪# Prints elements starting from 2nd till 3rd‬‬
‫]‪print tuple[2:‬‬ ‫‪# Prints elements starting from 3rd element‬‬
‫‪print tinytuple * 2 # Prints list two times‬‬
‫‪print tuple + tinytuple # Prints concatenated lists‬‬

‫نتیجه ی زیر حاصل می گردد‪:‬‬

‫)‪('abcd', 786, 2.23, 'john', 70.200000000000003‬‬


‫‪abcd‬‬
‫)‪(786, 2.23‬‬
‫)‪(2.23, 'john', 70.200000000000003‬‬
‫)'‪(123, 'john', 123, 'john‬‬
‫)'‪('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john‬‬

‫کد زیر از آنجایی که سعی می کند المان های ‪ tuple‬را بروز رسانی کند‪ ،‬مجاز و معتبر نیست‪ .‬اما‬
‫همین عملیات را می توان بر روی ‪ List‬پیاده کرد‪:‬‬

‫‪#!/usr/bin/python‬‬
‫) ‪tuple = ( 'abcd', 786 , 2.23, 'john', 70.2‬‬
‫] ‪list = [ 'abcd', 786 , 2.23, 'john', 70.2‬‬
‫‪tuple[2] = 1000 # Invalid syntax with tuple‬‬
‫‪list[2] = 1000 # Valid syntax with list‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪33‬‬

‫نوع داده ای ‪Dictionary‬‬


‫‪ Dictionary‬در پایتون تا حدی شبیه به جداول ‪ )hash table type( hash‬هستند‪ .‬این نوع داده ای‬
‫علمکردی مشابه آرایه های شرکت پذیر ‪ - associative array-‬یا ‪ hash‬ها در ‪ Perl‬دارند و از جفت‬

‫های کلید مقدار (‪ )key-value pairs‬تشکیل می شوند‪ .‬کلید می تواند از هر نوعی باشد‪ ،‬با این‬
‫وجود اغلب از نوع اعداد و رشته ها هستند‪ .‬اما مقادیر‪ ،‬می توانند از هر شی دلبخواه و اختیاری در‬

‫پایتون باشند‪.‬‬

‫آیتم های ‪ Dictionary‬داخل {} محصور می شوند‪ .‬جهت دسترسی و استخراج مقادیری از ‪dictionary‬‬

‫می بایست از [] استفاده کرد‪ .‬مثال ‪:‬‬

‫‪#!/usr/bin/python‬‬
‫}{ = ‪dict‬‬
‫"‪dict['one'] = "This is one‬‬
‫"‪dict[2] = "This is two‬‬
‫}'‪tinydict = {'name': 'john','code':6734, 'dept': 'sales‬‬
‫]'‪print dict['one‬‬ ‫‪# Prints value for 'one' key‬‬
‫]‪print dict[2‬‬ ‫‪# Prints value for 2 key‬‬
‫‪print tinydict‬‬ ‫‪# Prints complete dictionary‬‬
‫‪print tinydict.keys() # Prints all the keys‬‬
‫‪print tinydict.values() # Prints all the values‬‬
‫نتیجه ی زیر را ارائه می دهد‪:‬‬
‫‪This is one‬‬
‫‪This is two‬‬
‫}'‪{'dept': 'sales', 'code': 6734, 'name': 'john‬‬
‫]'‪['dept', 'code', 'name‬‬
‫]'‪['sales', 6734, 'john‬‬
‫در ‪ ،Dictionary‬المان ها دارای ترتیب یا ‪ order‬مشخصی نیستند‪.‬‬

‫تبدیل نوع داده ای‬


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

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

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

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪34‬‬

‫تابع‬ ‫شرح‬

‫)]‪int(x [,base‬‬ ‫‪ X‬را به عدد صحيح ‪ integer‬تبديل می کند‪.‬‬

‫) ]‪long(x [,base‬‬ ‫‪ X‬را به يک عدد صحيح بزرگ ‪ long integer‬تبديل می کند‪.‬‬

‫)‪float(x‬‬ ‫‪ X‬را به يک عدد مميز شناور تبديل می کند‪.‬‬

‫‪complex(real‬‬ ‫يک عدد مختلط ايجاد می کند‪.‬‬


‫)]‪[,imag‬‬

‫)‪str(x‬‬ ‫شی ‪ x‬را به صورت يک رشته نمايش می دهد‪.‬‬

‫)‪repr(x‬‬ ‫شی ‪ x‬را به يک ‪ expression string‬تبديل می نمايد‪.‬‬

‫)‪eval(str‬‬ ‫يک رشته را ارزيابی کرده و يک شی به عنوان خروجی برمی گرداند‪.‬‬

‫)‪tuple(s‬‬ ‫به نوع ‪ tuple‬تبديل می کند‪.‬‬

‫)‪list(s‬‬ ‫به نوع داده ای ‪ list‬تبديل می کند‪.‬‬

‫)‪set(s‬‬ ‫به يک ‪( set‬مجموعه) تبديل می کند‪.‬‬

‫)‪dict(d‬‬ ‫يک ‪ dictionary‬ايجاد می کند‪ d .‬بايستی يک مجموعه ی پست سرهم يا دنباله ای از‬
‫‪ tuple‬ها (به صورت جفت کليد‪ ،‬مقدار) باشد‪.‬‬

‫)‪frozenset(s‬‬ ‫‪ S‬را به يک مجموعه ی ثابت يا ايستا (‪ )frozen set‬تبديل می کند‪.‬‬

‫)‪chr(x‬‬ ‫يک ‪ integer‬را به کاراکتر تبديل می کند‪.‬‬

‫)‪unichr(x‬‬ ‫يک ‪ integer‬را به کاراکتر يونيکد تبديل می کند‪.‬‬

‫)‪ord(x‬‬ ‫يک تک کاراکتر را به معادل يا مقدار عدد صحيح (‪ )integer‬آن تبديل می کند‪.‬‬

‫)‪hex(x‬‬ ‫يک عدد صحيح را به رشته ی شانزده شانزدهی تبديل می کند‪.‬‬

‫)‪oct(x‬‬ ‫يک عدد صحيح را به رشته ی هشت هشتی تبديل می کند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪35‬‬

‫عملگرهای اصلی پایتون (‪)Python operator‬‬

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

‫به این عبارت دقت کنید‪ .4 + 5 = 9 :‬در این عبارت‪ ،‬اعداد ‪ 4‬و ‪ 5‬عملوند (‪ )operand‬خوانده شده و‬

‫علامت جمع‪ ،‬عملگر (‪ )operator‬نامیده می شود‪.‬‬

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

‫‪ .1‬عملگرهای محاسباتی (‪)arithmetic operators‬‬


‫‪ .2‬عملگرهای مقایسه ای (‪)comparison operators‬‬

‫‪ .3‬عملگرهای انتساب (‪)assignment operator‬‬


‫‪ .4‬عملگرهای منطقی (‪)logical operator‬‬

‫‪ .5‬عملگرهای بیتی (‪)bitwise operators‬‬


‫‪Membership operators .6‬‬

‫‪Identity operators .7‬‬

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

‫عملگرهای محاسباتی‬
‫فرض کنید متغیر به نام ‪ a‬مقدار ‪ 10‬و متغیر به نام ‪ b‬مقدار ‪ 20‬را نگه می دارد‪:‬‬

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

‫جمع ‪+‬‬ ‫مقدار ‪ a‬را با مقدار ‪ b‬جمع می بندد‪.‬‬ ‫‪a + b = 30‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪36‬‬

‫‪-‬تفریق‬ ‫عملوند سمت راست را از عملوند سمت چپ کسر‬ ‫‪a – b = -10‬‬


‫می کند‪.‬‬

‫*ضرب‬ ‫مقادير متغيرهای ‪ a‬و ‪ b‬را درهم ضرب می کند‪.‬‬ ‫‪a * b = 200‬‬

‫‪/‬تقسیم‬ ‫عملوند سمت چپ را بر عملوند سمت راست تقسيم‬ ‫‪b/a=2‬‬


‫می کند‪.‬‬

‫‪%‬باقی‬ ‫عملوند سمت چپ را بر عملوند سمت راست تقسيم‬ ‫‪b%a=0‬‬


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

‫**توان‬ ‫عملوندی را به توان عملوند ديگری می برد‪.‬‬ ‫‪a**b = 20‬به توان‪10‬‬

‫‪//‬‬ ‫دو عدد را بر هم تقسيم کرده و نتيجه ی آن را به‬ ‫‪9//2 = 4‬و‪9.0//2.0 = 4.0‬‬
‫پايين گرد می کند‪.‬‬
‫تقسیم به‬
‫کف‬

‫عملگرهای مقایسه ای پایتون‬


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

‫متغیر ‪ a‬مقدار ‪ 10‬و متغیر ‪ b‬مقدار ‪ 20‬را در خود ذخیره دارد‪:‬‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪37‬‬

‫==‬ ‫در صورت برابر بودن مقدار دو عملوند‪ ،‬شرط صحيح‬ ‫صحيح نمی باشد‪(a == b).‬‬
‫می باشد‪.‬‬

‫=!‬ ‫در صورت برابر نبودن مقدار عملوندها‪ ،‬شرط صحيح‬


‫می شود‪.‬‬

‫><‬ ‫اگر مقادير دو عملوند برابر نباشد‪ ،‬در آن صورت شرط‬ ‫شرط )‪(a <> b‬صحيح می باشد‪ .‬درست شبيه عملگر‬
‫صحيح می شود‪.‬‬ ‫=! عمل می کند‪.‬‬

‫>‬ ‫چنانچه مقدار عملوند سمت چپ بزرگتر از مقدار عملوند‬ ‫)‪(a > b‬صحيح نمی باشد‪.‬‬
‫سمت راست باشد‪ ،‬شرط صحيح می باشد‪.‬‬

‫<‬ ‫اگر مقدار عملوند سمت چپ کمتر از مقدار عملوند سمت‬ ‫صحيح می باشد‪(a < b) .‬‬
‫راست باشد‪ ،‬شرط صحيح می باشد‪.‬‬

‫=>‬ ‫اگر مقدار عملوند سمت چپ بزرگتر از يا برابر مقدار‬ ‫صحيح نمی باشد‪(a >= b) .‬‬
‫عملوند سمت راست باشد‪ ،‬در آن صورت شرط صحيح‬
‫می شود‪.‬‬

‫=<‬ ‫اگر مقدار عملوند سمت چپ کوچکتر از يا مساوی مقدار‬ ‫صحيح می باشد‪(a <= b) .‬‬
‫عملوند سمت چپ باشد‪ ،‬شرط صحيح می شود‪.‬‬

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

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

‫=‬ ‫يک مقداری را به متغير تخصيص می دهد‪.‬‬ ‫جمع دو مقدار ‪ a‬و ‪ b‬را داخل متغير ‪ c‬می ريزد‪.‬‬

‫‪+= Add‬‬ ‫عملوند سمت راست را به عملوند سمت چپ‬ ‫‪ c += a‬درواقع همان ‪ c = c + a‬می باشد‪.‬‬
‫‪AND‬‬ ‫اضافه کرده و نتيجه را در داخل عملوند سمت چپ‬
‫می ريزد‪.‬‬

‫‪ c‬و ‪ a‬را جمع زده و نتيجه را داخل ‪ c‬می ريزد‪.‬‬

‫=‪-‬‬
‫‪Subtract‬‬
‫‪AND‬‬ ‫عملوند ‪ a‬را از ‪ c‬کسر می کند و نتيجه را به ‪c‬‬ ‫‪ c -= a‬درحقيقت همان ‪ c = c – a‬می باشد‪.‬‬
‫تخصيص می دهد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪38‬‬

‫=*‬ ‫عملوند سمت راست را در عملوند سمت چپ‬ ‫‪ c *= a‬برابر است با ‪.c = c * a‬‬
‫‪Multiply‬‬ ‫ضرب کرده و نتيجه را در عملوند سمت چپ می‬
‫‪AND‬‬ ‫ريزد‪.‬‬

‫‪/= Divide‬‬ ‫متغيرهای ‪ c‬و ‪ a‬را بر هم تقسيم کرده و نتيجه را‬ ‫‪ c /= a‬در واقع همان ‪ c = c / a‬می باشد‪.‬‬
‫‪AND‬‬ ‫در عملوند سمت چپ می ريزد‪.‬‬

‫=‪%‬‬ ‫باقی مانده تقسيم مقدار دو متغير را محسابه کرده و‬ ‫‪ c %= a‬درواقع همان ‪ c = c % a‬می باشد‪.‬‬
‫‪Modulus‬‬ ‫آن را به عملگر سمت چپ تخصيص می دهد‪.‬‬
‫‪AND‬‬

‫=**‬ ‫عمليات توان بر روی دو متغير انجام داده و نتيجه‬ ‫‪ c **= a‬درواقع همان ‪ c = c ** a‬می باشد‪.‬‬
‫‪Exponent‬‬ ‫را در متغير سمت چپ عملگر می ريزد‪.‬‬
‫‪AND‬‬

‫=‪//‬تقسیم‬ ‫‪ c‬و ‪ a‬را بر هم تقسيم کرده‪ ،‬نتيجه ی آن را به‬


‫به کف‬ ‫پايين گرد می کند‪ ،‬سپس آن را داخل ‪ c‬می ريزد‪.‬‬
‫‪ c //= a‬در واقع همان ‪ c = c // a‬می باشد‪.‬‬

‫عملگرهای بیتی در پایتون‬

‫عملگرهای ‪ bitwise‬با بیت ها سروکار داشته و مقادیر بیت ها را تغییر می دهد‪ .‬اگر ‪ a = 60‬باشد و‬
‫‪ ،b = 13‬هر یک در فرمت دودیی بدین صورت خواهند بود –‬
‫‪a = 0011 1100‬‬
‫‪b = 0000 1101‬‬
‫‪-----------------‬‬
‫‪a&b = 0000 1100‬‬
‫‪a|b = 0011 1101‬‬
‫‪a^b = 0011 0001‬‬
‫‪~a = 1100 0011‬‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪39‬‬

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

‫‪& Binary‬‬ ‫در صورتی که در هر دو ‪ 1‬باشد‪ 1 ،‬را در‬ ‫‪0000 1100‬معادل ))‪a & b‬‬
‫‪AND‬‬ ‫نتيجه جای گذاری می کند‪ ،‬در غير اين صورت‬
‫صفر را در نتيجه کپی می کند‪.‬‬

‫‪| Binary OR‬‬ ‫اگر در يکی از دو عملوند‪ 1 ،‬وجود داشته باشد‪،‬‬ ‫‪ 0011 1101‬معادل‪(a | b) = 61‬‬
‫‪ 1‬در نتيجه کپی می شود‪.‬‬

‫‪^ Binary‬‬ ‫اگر هر دو عملوند يکی باشند صفر و در غير‬ ‫‪ 0011 0001‬معادل‪(a ^ b) = 49‬‬
‫‪XOR‬‬ ‫اين صورت ‪ 1‬را در نتيجه کپی می کند‪.‬‬

‫‪~ Binary‬‬ ‫يک عملگر يگانی نقيض است که جای بيت ها‬ ‫چون که در فرمت دودويی عدد عالمت دار‬
‫‪Ones‬‬ ‫را با هم عوض می کند‪ .‬هرجا ‪ 1‬است ‪ 0‬و هر‬ ‫نداريم‪ ،‬مکمل ‪ 2‬عدد ‪ 1100 0011‬را نمايش‬
‫‪ 1‬است صفر می گذارد‪Complement .‬‬ ‫داديم‪ (~a ) = -61 .‬معادل ‪ 1100 0011‬است‪.‬‬

‫‪<< Binary‬‬ ‫مقدار عملوند سمت چپ به تعداد بيت های‬ ‫‪ a << = 240‬معادل ‪ 1111 0000‬می باشد‪.‬‬
‫‪Left Shift‬‬ ‫مشخص شده توسط عملوند سمت راست به چپ‬
‫رانده می شوند‪.‬‬

‫‪>> Binary‬‬ ‫معادل ‪ a >> = 15‬مقدار عملوندهای سمت چپ به تعداد بيت های‬
‫‪Right Shift‬‬ ‫مشخص شده توسط عملوند سمت راست‪ ،‬به‬
‫می باشد‪ 0000 1111.‬راست ‪ shift‬می شوند‪.‬‬

‫عملگرهای منطقی پایتون‬

‫زبان پایتون از عملگرهای منطقی زیر پشتیبانی می کند‪ .‬فرض بگیرید متغیر ‪ a‬دارای مقدار ‪ 10‬و‬

‫متغیر ‪ b‬دارای مقدار ‪ 20‬می باشد‪:‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪40‬‬

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

‫‪and‬‬ ‫)‪ (a and b‬صحيح می باشد‪.‬‬


‫‪Logical‬‬
‫اگر هر دو علوند صحيح باشند‪ ،‬شرط برقرار و‬
‫‪AND‬‬
‫صحيح می باشد‪.‬‬

‫‪or‬‬ ‫)‪(a or b‬صحيح می باشد‪.‬‬


‫‪Logical‬‬
‫چنانچه يکی از دو عملوند صفر نباشد‪ ،‬شرط برقرار‬
‫‪OR‬‬
‫می شود (مقدار ‪ true‬برگردانده می شود)‪.‬‬

‫‪not‬‬ ‫به منظور معکوس کردن وضعيت منطقی عملوند‬ ‫)‪ Not(a and b‬می شود‪.‬‬
‫بکار می رود‪Logical .‬‬
‫‪NOT‬‬

‫‪ Memberships operator‬در پایتون‬

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

‫رشته‪ list ،‬یا ‪ tuple‬وجود دارد یا خیر‪ .‬در کل دو عملگر بررسی عضویت وجود دارد که در زیر شرح‬
‫داده شده‪:‬‬

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

‫‪in‬‬ ‫در صورت يافتن متغير مورد نظر در مجموعه ی‬ ‫‪ ،x in y‬اگر ‪ x‬يک عضو از مجموعه ی ‪ y‬باشد‪1 ،‬‬
‫مشخص شده‪ true ،‬برمی گرداند و در غير اين‬ ‫برمی گرداند‪.‬‬
‫صورت ‪.false‬‬

‫‪not in‬‬ ‫‪ ،x not in y‬اگر ‪ x‬عضوی از مجموعه ی ‪ y‬نباشد‪ ،‬در صورت يافت نشدن متغير مورد نظر در‬
‫مجموعه ی مشخص شده‪ true ،‬برمی گرداند و در‬ ‫‪ 1‬برمی گرداند‪.‬‬
‫غير اين صورت ‪ false‬می دهد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪41‬‬

‫‪ Identity operator‬ها در پایتون‬


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

‫عملگر‬ ‫شرح‬ ‫نمونه‬

‫‪is‬‬ ‫اگر متغيرهای هر دو طرف عملگر به شی يکسان اشاره‬ ‫‪ ،x is y‬اگر )‪ id(x‬برابر با )‪ id(y‬باشد‪ 1 ،‬برمی‬
‫داشته باشند‪ true ،‬برمی گرداند و در غير اين صورت‬ ‫گرداند‪.‬‬
‫‪.false‬‬

‫‪is not‬‬ ‫چنانچه متغير در دو طرف عملگر به شی يکسان اشاره‬ ‫‪ ، x is not y‬اگر )‪ id(x‬با )‪ id(y‬برابر نباشد‪1 ،‬‬
‫داشته باشد‪ false ،‬برمی گرداند و در غير اين صورت‬ ‫برمی گرداند‪.‬‬
‫‪ true‬بازمی گرداند‪.‬‬

‫اولویت عملگرها در پایتون‬


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

‫عملگر‬ ‫شرح‬

‫**‬ ‫توان‬

‫‪~+-‬‬ ‫‪Ccomplement, unary plus and minus (method names for the last two‬‬
‫)@‪are +@ and -‬‬

‫‪* / % //‬‬ ‫ضرب‪ ،‬تقسيم‪ ،‬باقی مانده ی تقسيم و تقسيم به کف‬

‫‪+-‬‬ ‫جمع و تفريق‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪42‬‬

‫<< >>‬ ‫‪Right and left bitwise shift‬‬

‫&‬ ‫'‪Bitwise 'AND‬‬

‫|^‬ ‫'‪Bitwise exclusive `OR' and regular `OR‬‬

‫=> > < =<‬ ‫عملگرهای مقايسه ای‬

‫=! == ><‬ ‫عملگرهای برابری‬

‫عملگرهای تخصيص يا انتساب =* =‪= %= /= //= -= +‬‬


‫=**‬

‫‪is is not‬‬ ‫‪Identity operators‬‬

‫عملگرهای بررسی برابری اشيا‬

‫‪in not in‬‬ ‫‪Membership operators‬‬

‫عملگرهای بررسی عوضيت متغير در مجموعه‬

‫‪not or and‬‬ ‫عملگرهای منطقی‬

‫ساختارهای کنترلی در پایتون (‪)python Decision making‬‬

‫‪ Decision making‬در واقع بررسی شرط ها حین اجرای برنامه و انجام عملیات صحیح بر اساس آن‬

‫شرط است‪.‬‬

‫ساختارهای تصمیم گیری چندین عبارت را ارزیابی می کنند و به عنوان خروجی مقدار ‪ TRUE‬یا‬

‫‪ FALSE‬را برمی گردانند‪ .‬برنامه نویس می بایست تصمیم بگیرد کدام دستور را در صورت صحیح یا‬
‫غلط بودن شرط اجرا کند‪.‬‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪43‬‬

‫زبان پایتون هر مقداری که صفر و ‪ NULL‬نباشد را به عنوان ‪ TRUE‬درنظر می گیرد و اگر مقداری‬
‫صفر یا ‪ NULL‬بود‪ ،‬آن را ‪ FALSE‬تلقی می کند‪.‬‬

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

‫دستور‬ ‫شرح‬

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

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

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

‫‪nested if statements‬‬ ‫دستورات تودرتوی ‪ – if‬می توان يک ‪ if‬يا ‪ else if‬را درون يک دستور ‪if‬‬
‫يا ‪ else if‬ديگر گنجاند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪44‬‬

‫در صورتيكه نياز باشد تا چندين حالت منطقي مورد بررسي قرار گيرد و‬
‫دستورات مربوط به يكي از آنها اجرا شود‪ ،‬از فرم تصميمگيري چندگانه‬
‫استفاده مينماييم‪.‬‬

‫دستور ‪ if‬در پایتون‬


‫نحوه ی نگارش‪:‬‬
‫‪if expression:‬‬
‫)‪statement(s‬‬

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

‫مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫‪var1 = 100‬‬
‫‪if var1:‬‬
‫"‪print "1 - Got a true expression value‬‬
‫‪print var1‬‬
‫‪var2 = 0‬‬
‫‪if var2:‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


45

print "2 - Got a true expression value"


print var2
print "Good bye!"
:‫ نتیجه ی زیر حاصل می گردد‬،‫پس از اجرای دستورات فوق‬

1 - Got a true expression value


100
Good bye!

‫ در پایتون‬IF...ELIF...ELSE
:‫ بدین صورت می باشد‬if...else ‫نحوه ی نگارش دستور‬
if expression:
statement(s)
else:
statement(s)

:‫مثال‬
#!/usr/bin/python
var1 = 100
if var1:
print "1 - Got a true expression value"
print var1
else:
print "1 - Got a false expression value"
print var1
var2 = 0
if var2:
print "2 - Got a true expression value"

7‫ واحد‬- ‫ طبقه دوم‬651 ‫ پالک‬- ‫ جنب بانک صادرات‬- ‫ باال تر از خيابان ملک‬- ‫ خيابان شريعتی‬- ‫ تهران‬: ‫آدرس آموزشگاه‬

88146323 - 88446780 - 88146330


‫‪46‬‬

‫‪print var2‬‬
‫‪else:‬‬
‫"‪print "2 - Got a false expression value‬‬
‫‪print var2‬‬

‫"!‪print "Good bye‬‬

‫پس از اجرا نتیجه ی زیر حاصل می گردد‪:‬‬


‫‪1 - Got a true expression value‬‬
‫‪100‬‬
‫‪2 - Got a false expression value‬‬
‫‪0‬‬
‫!‪Good bye‬‬

‫دستور ‪elif‬‬
‫دستور ‪ elif‬به شما این امکان را می دهد که چندین عبارت را بررسی کنید و در صورت صحیح بودن (برقرار بودن)‬
‫یکی از شرط ها (برگردانده شدن مقدار ‪ ،)TRUE‬یک قطعه کد معین را اجرا کند‪.‬‬

‫مانند ‪ ،else‬دستور ‪ elif‬کاملا اختیاری می باشد‪ .‬اما بر خلاف ‪ ،else‬می توان پس از دستور ‪ if‬چندین دستور ‪elif‬‬
‫داشت‪.‬‬

‫نحوه ی نگارش‪:‬‬

‫‪if expression1:‬‬
‫)‪statement(s‬‬
‫‪elif expression2:‬‬
‫)‪statement(s‬‬
‫‪elif expression3:‬‬
‫)‪statement(s‬‬
‫‪else:‬‬
‫)‪statement(s‬‬

‫در زبان پایتون‪ ،‬بر خلاف دیگر زبان های برنامه نویسی‪ ،‬ساختار کنترلی ‪ switch‬و دستورات ‪case‬‬
‫وجود ندارد‪ .‬در عوض این زبان به منظور شبیه سازی عملکرد ‪ switch‬از همان دستورات ‪if..elif...‬‬

‫کمک می گیرد‪:‬‬

‫مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫‪var = 100‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


47

if var == 200:
print "1 - Got a true expression value"
print var
elif var == 150:
print "2 - Got a true expression value"
print var
elif var == 100:
print "3 - Got a true expression value"
print var
else:
print "4 - Got a false expression value"
print var
print "Good bye!"

:‫خروجی کد بالا‬
3 - Got a true expression value
100
Good bye!

‫ های تودرتو‬If
‫در صورتی كه لازم باشد چندين حالت منطقی مورد بررسی قرار گرفته و دستورات مربوط به يكی از‬

‫ در‬if ‫ اين نوع استفاده از دستور‬.‫ از ساختار تصميمگيری چندگانه بهره می گیریم‬،‫آنها اجرا شود‬
‫ مرتبط به يكديگر‬if ‫) معروف است زیرا در آن از چندين دستور‬Nested If( ‫ تودرتو‬if ‫اصطلاح به‬

.‫استفاده شده است‬

.‫ داشت‬if...elif...else ‫ در دل‬if...elif...else ‫ می توان یک‬،‫در ساختار تودرتو‬

:‫نحوه ی نگارشی‬

if expression1:
statement(s)
if expression2:
statement(s)
elif expression3:
statement(s)
else
statement(s)
elif expression4:
statement(s)
else:
statement(s)

7‫ واحد‬- ‫ طبقه دوم‬651 ‫ پالک‬- ‫ جنب بانک صادرات‬- ‫ باال تر از خيابان ملک‬- ‫ خيابان شريعتی‬- ‫ تهران‬: ‫آدرس آموزشگاه‬

88146323 - 88446780 - 88146330


48

:‫مثال‬
#!/usr/bin/python

var = 100
if var < 200:
print "Expression value is less than 200"
if var == 150:
print "Which is 150"
elif var == 100:
print "Which is 100"
elif var == 50:
print "Which is 50"
elif var < 50:
print "Expression value is less than 50"
else:
print "Could not find true expression"

print "Good bye!"


:‫نتیجه‬
Expression value is less than 200
Which is 100
Good bye!

Statement Suite
‫ را در همان خط‬if ‫ در آن صورت می توان دستور‬،‫ تنها از یک دستور تشکیل شود‬if ‫چنانچه ساختمان‬

:‫) قرار داد‬header statement( ‫دستور سرآیند‬

:‫مثال‬

#!/usr/bin/python
var = 100
if ( var == 100 ) : print "Value of expression is 100"
print "Good bye!"
:‫نتیجه‬
Value of expression is 100
Good bye!

)python loops( ‫ساختارهای تکرار‬

7‫ واحد‬- ‫ طبقه دوم‬651 ‫ پالک‬- ‫ جنب بانک صادرات‬- ‫ باال تر از خيابان ملک‬- ‫ خيابان شريعتی‬- ‫ تهران‬: ‫آدرس آموزشگاه‬

88146323 - 88446780 - 88146330


‫‪49‬‬

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

‫شود‪.‬‬

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

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

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

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪50‬‬

‫حلقه‬ ‫شرح‬

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

‫‪for loop‬‬ ‫در اين نوع حلقه ‪ ،‬مجموعه دستورالعمل ها به تعداد معلوم و مورد نياز تکرار‬
‫خواهد شد ‪.‬‬

‫‪nested loops‬‬ ‫می توان درون يک حلقه ی ‪ do ..while ،while‬و ‪ for‬يک يا چند حلقه ی ديگر‬
‫گنجاند‪.‬‬
‫(حلقه های تودرتو)‬

‫دستورات کنترلی حلقه ها‬


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

‫بودند‪ ،‬از بین خواهد رفت‪.‬‬

‫دستور کنترلی‬ ‫شرح‬

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

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

‫‪pass statement‬‬ ‫دستور ‪ pass‬در زبان پايتون زمانی مورد استفاده قرار می گيرد که يک دستور از‬
‫لحاظ ساختار برنامه نويسی مورد نياز باشد ‪ ،‬اما شما هيچ فرمان يا کدی را برای‬
‫اجرا الزم نداشته باشيد ‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪51‬‬

‫دستور ‪break‬‬
‫دستور ‪ break‬در زبان پایتون ‪ ،‬حلقه جاری را به پایان رسانده و درست همانند ‪ break‬سنتی موجود‬
‫در ‪ ،C‬اجرا را از دستور بعدی از سر می گیرد ‪.‬‬

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

‫دستور ‪ break‬را می توان در هر دو حلقه ‪ while‬و ‪ for‬استفاده نمود ‪.‬‬

‫در صورت استفاده از حلقه های تودرتو‪ ،‬دستور ‪ break‬اجرای درونی ترین حلقه را متوقف کرده و به‬

‫اجرای دستور بعدی پس از قطعه کد می پردازد‪.‬‬

‫نحوه ی نگارش‪:‬‬

‫‪Break‬‬

‫مثال‪:‬‬

‫‪for letter in 'Python':‬‬ ‫‪# First Example‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


52

if letter == 'h':
break
print 'Current Letter :', letter

var = 10 # Second Example


while var > 0:
print 'Current variable value :', var
var = var -1
if var == 5:
break

print "Good bye!"

:‫نتیجه ی زیر را بدست می دهد‬

Current Letter : P
Current Letter : y
Current Letter : t
Current variable value : 10
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Good bye!

‫ در زبان برنامه نویسی پایتون‬continue ‫دستور‬


‫ از روی تمامی دستورهای باقی مانده در تکرار جاری حلقه پریده و کنترل را به‬continue ‫دستور‬

. )‫بالای حلقه بازمی گرداند (انتقال می دهد‬

. ‫ بکار برد‬for ‫ و‬while ‫ را می توان در هر دو حلقه‬continue ‫دستور‬

:‫نحوه ی نگارش‬

continue

:‫نتیجه‬

7‫ واحد‬- ‫ طبقه دوم‬651 ‫ پالک‬- ‫ جنب بانک صادرات‬- ‫ باال تر از خيابان ملک‬- ‫ خيابان شريعتی‬- ‫ تهران‬: ‫آدرس آموزشگاه‬

88146323 - 88446780 - 88146330


53

for letter in 'Python': # First Example


if letter == 'h':
continue
print 'Current Letter :', letter

var = 10 # Second Example


while var > 0:
print 'Current variable value :', var
var = var -1
if var == 5:
continue

print "Good bye!"

:‫نتیجه‬

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6

7‫ واحد‬- ‫ طبقه دوم‬651 ‫ پالک‬- ‫ جنب بانک صادرات‬- ‫ باال تر از خيابان ملک‬- ‫ خيابان شريعتی‬- ‫ تهران‬: ‫آدرس آموزشگاه‬

88146323 - 88446780 - 88146330


‫‪54‬‬

‫‪Current variable value : 4‬‬


‫‪Current variable value : 3‬‬
‫‪Current variable value : 2‬‬
‫‪Current variable value : 1‬‬
‫‪Current variable value : 0‬‬
‫!‪Good bye‬‬

‫دستور ‪pass‬‬

‫دستور ‪ pass‬در زبان پایتون زمانی بکار می رود که یک دستور از لحاظ ساختار برنامه نویسی مورد نیاز‬
‫است‪ ،‬اما شما هیچ فرمان یا کدی را برای اجرا لازم نداشته باشید ‪.‬‬

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

‫دستور ‪ pass‬همچنین در جاهایی که کد شما بعدا نوشته خواهد شد ‪ ،‬اما هنوز نوشته نشده است‪،‬‬
‫بسیار مفید می باشد ‪ ( :‬به عنوان مثال ‪ ،‬در ‪ stub‬ها)‪.‬‬

‫نحوه ی نگارش‪:‬‬

‫‪pass‬‬

‫‪#!/usr/bin/python‬‬

‫‪for letter in 'Python':‬‬


‫‪if letter == 'h':‬‬
‫‪pass‬‬
‫'‪print 'This is pass block‬‬
‫‪print 'Current Letter :', letter‬‬

‫"!‪print "Good bye‬‬

‫نتیجه‪:‬‬

‫‪Current Letter : P‬‬


‫‪Current Letter : y‬‬
‫‪Current Letter : t‬‬
‫‪This is pass block‬‬
‫‪Current Letter : h‬‬
‫‪Current Letter : o‬‬
‫‪Current Letter : n‬‬
‫!‪Good bye‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪55‬‬

‫اعداد در پایتون‬

‫‪ Number type‬مقادیر عددی را در خود ذخیره می کند‪ .‬این نوع داده ای ‪ immutable‬هست‪ ،‬بدین‬

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

‫شی ‪ number‬زمانی که مقداری را به آن ها تخصیص می دهید‪ ،‬ایجاد می گردند‪.‬‬

‫مثال‪:‬‬

‫‪var1 = 1‬‬
‫‪var2 = 10‬‬

‫با استفاده از دستور ‪ del‬می توان ارجاع (‪ )reference‬به یک شی را پاک کرد‪ .‬نحوه ی نگارش این‬
‫دستور بدین ترتیب است‪:‬‬
‫]]]]‪del var1[,var2[,var3[....,varN‬‬

‫با استفاده از این دستور می توان یک یا چندین شی را حذف نمود‪ .‬مثال‪:‬‬


‫‪del var‬‬
‫‪del var_a, var_b‬‬
‫پایتون از چهار نوع عددی پشتیبانی می کند‪:‬‬

‫‪( Int‬اعداد صحیح علامت دار)‪ :‬اعداد صحیح منفی یا مثبت که بخش اعشاری‪ ،‬نقطه و ممیز‬ ‫‪.1‬‬

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

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪56‬‬

‫‪( float‬اعداد حقیقی ممیز شناور)‪ :‬اعدادی که به صورت اعشاری نمایش داده می شوند که‬ ‫‪.3‬‬
‫بخش عدد صحیح از بخش اعشاری یا کسر توسط نقطه ی ممیز جدا می شود‪ .‬اعداد ‪Float‬‬

‫با نماد علمی نیز نمایش داده می شوند‪ ،‬برای مثال ‪ e‬یا ‪ E‬که نشانگر توان ‪ 10‬می باشد‬
‫(‪.)2.5e2 = 2.5 x 102 = 250‬‬

‫‪( Complex‬اعداد مختلط)‪ :‬هر عدد مختلط از دو بخش تشکیل شده است‪ :‬بخش ‪ Real‬یا‬ ‫‪.4‬‬

‫حقیقی و بخش ‪ Imaginary‬یا انتزاعی‪ .‬برای مثال عبارت ‪ ،a + bJ‬دو عدد ‪ a‬و ‪ b‬ممیز شناور‬
‫می باشند و ‪ J‬بیانگر ریشه ی ‪ -1‬می باشد که ی ک عدد موهومی یا انتزاعی است‪ .‬این نوع‬

‫اعداد در پایتون کاربرد چندانی ندارند‪.‬‬

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

‫‪int‬‬ ‫‪long‬‬ ‫‪float‬‬ ‫‪complex‬‬

‫‪10‬‬ ‫‪51924361L‬‬ ‫‪0.0‬‬ ‫‪3.14j‬‬

‫‪100‬‬ ‫‪-0x19323L‬‬ ‫‪15.20‬‬ ‫‪45.j‬‬

‫‪-786‬‬ ‫‪0122L‬‬ ‫‪-21.9‬‬ ‫‪9.322e-36j‬‬

‫‪080‬‬ ‫‪0xDEFABCECBDAECBFBAEL‬‬ ‫‪32.3+e18‬‬ ‫‪.876j‬‬

‫‪-0490‬‬ ‫‪535633629843L‬‬ ‫‪-90.‬‬ ‫‪-.6545+0J‬‬

‫‪-0x260‬‬ ‫‪-052318172735L‬‬ ‫‪-32.54e100‬‬ ‫‪3e+26J‬‬

‫‪0x69‬‬ ‫‪-4721885298529L‬‬ ‫‪70.2-E12‬‬ ‫‪4.53e-7j‬‬

‫‪ .1‬پایتون به شما اجازه می دهد برای مشخص کردن نوع عددی ‪ Long‬از ‪ l‬کوچک استفاده کنید‪ ،‬اما‬

‫برای اینکه آن ‪ l‬با عدد ‪ 1‬اشتباه گرفته نشود‪ ،‬توصیه می کنیم از ‪ L‬بزرگ استفاده کنید‪ .‬بنابراین پایتون‬
‫اعداد صحیح بسیار بزرگ را با ‪ L‬بزرگ نمایش می دهد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪57‬‬

‫‪ .2‬یک عدد مختلط متشکل است از دو عدد ممیز شناور حقیقی و یک بخش که یکه ی موهومی نام‬
‫دارد‪ .‬برای مثال در ‪ x ،x + yj‬و ‪ y‬اعداد حقیقی هستند و ‪ j‬نشانگر واحد یا یکه ی موهومی‬

‫(‪ )imaginary‬می باشد‪.‬‬

‫تبدیل نوع های عددی‬

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

‫تبدیل می کند‪ .‬اما گاهی لازم است یک عدد را به صورت صریح به یک نوع دیگر تبدیل کنید تا شرایط‬
‫مورد نیاز یک پارامتر (‪ )function parameter‬یا عملگر برآورده شود‪.‬‬

‫‪ .1‬به منظور تبدیل ‪ x‬به یک عدد صحیح ساده بکار می رود‪.‬‬

‫‪ long(x) .2‬جهت تبدیل ‪ x‬به یک عدد صحیح بسیار بزرگ (‪ )long integer‬بکار می رود‪.‬‬

‫‪float(x) .3‬جهت تبدیل ‪ x‬به یک عدد ممیز شناور بکار می رود‪.‬‬


‫‪ .4‬برای تبدیل ‪ x‬به یک عدد مختلط که دارای بخش حقیقی و بخش موهومی ‪ 0‬باشد‪complex(x) ،‬‬

‫را تایپ کنید‪.‬‬


‫‪ complex(x, y) .5‬را جهت تبدیل ‪ x‬و ‪ y‬به یک عدد مختلط دارای بخش حقیقی ‪ x‬و بخش موهومی‬

‫‪ y‬بکار ببرید‪ X .‬و ‪ y‬عبارت های عددی هستند‪.‬‬

‫توابع ریاضی‬
‫پایتون با استفاده از توابع زیر محاسبات ریاضی انجام می دهد‪:‬‬

‫توابع تصادفی در پایتون‬

‫تابع‬ ‫خروجی‬

‫)‪abs(x‬‬ ‫قدر مطلق ‪ x‬را برمی گرداند‪ :‬فاصله ی مثبت بين ‪ x‬و ‪.0‬‬

‫)‪ceil(x‬‬ ‫سقف يک عدد را برمی گرداند‪ :‬کوچکترين يا نزديک ترين عدد صحيح بزرگتر از ‪ x‬را‬
‫برمی گرداند‪ .‬به عبارتی ديگر اين تابع كوچكترين عدد صحيح بزرگتر يا مساوی با يك‬
‫عدد را كه بعنوان آرگومان آن میباشد محاسبه میكند‪.‬‬

‫)‪cmp(x, y‬‬ ‫چنانچه ‪ x‬از ‪ y‬کوچکتر باشد‪ -1 ،‬و چنانچه بزرگتر مساوی باشد ‪ 0‬برمی گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪58‬‬

‫)‪exp(x‬‬ ‫اين تابع برای محاسبه توانی از ‪( e‬پايه لگاريتم طبيعی) مورد استفاده قرار می گيرد‪.‬‬

‫)‪fabs(x‬‬ ‫قدر مطلق يک عدد را برمی گرداند‪.‬‬

‫)‪floor(x‬‬ ‫اين تابع بزرگترين مقدار صحيح كوچكتر يا مساوی يک عدد را برمی گرداند؛ کف عدد‬
‫را برمی گرداند‪.‬‬

‫)‪log(x‬‬ ‫این تابع لگاریتم طبیعی یک عدد مثبت را محاسبه می كند‪.‬‬

‫)‪log10(x‬‬ ‫این تابع لگاریتم مبنای ‪ 10‬اعداد مثبت را محاسبه میكند‪.‬‬

‫)‪max(x1, x2,...‬‬ ‫اين تابع تعدادی عدد رو به عنوان آرگومان دريافت می کند و ماکزيمم آن رو براتون‬
‫محاسبه می کند؛ نزديک ترين مقدار به مثبت بی نهايت‪.‬‬

‫)‪min(x1, x2,...‬‬ ‫اين تابع نيز تعدادی عدد به عنوان ورودی گرفته و کوچکترين عدد از ميان آن ها را‬
‫گزينش کرده و نمايش می دهد؛ نزديکترين مقدار به منفی بی نهايت‪.‬‬

‫)‪modf(x‬‬ ‫اين تابع يک عدد اعشاری را گرفته و بخش اعشاری و خود عدد را از هم جدا می کند‪.‬‬
‫در واقع بخش عدد صحيح و اعشاری عدد ‪ x‬را در يک تاپل دو بخشه نمايش می دهد‪.‬‬
‫هر دو بخش دارای عالمتی يکسان با ‪ x‬هستند‪ .‬بخش عدد صحيح به صورت مميز شناور‬
‫(‪ )float‬برگردانده می شود‪.‬‬

‫)‪pow(x, y‬‬ ‫اين تابع دو عدد را از کاربر گرفته و عدد اول را به توان عدد دوم می برد‪.‬‬

‫)]‪round(x [,n‬‬ ‫دو عدد از کاربر به عنوان آرگومان گرفته و عدد اول را به مقدار عدد دوم گرد می کند‪.‬‬
‫برای مثال )‪ round(0.5‬می شود ‪ 1.0‬و نيز )‪ round(-0.5‬می شود ‪.1.0‬‬

‫)‪sqrt(x‬‬ ‫جذر يا ريشه ی دوم ‪ x‬را برای ‪ x > 0‬را برمی گرداند‪.‬‬

‫اين تابع جذر يك عدد مثبت را حساب میكند‪.‬‬

‫‪DFDGD‬‬
‫تابع‬ ‫شرح‬

‫)‪choice(seq‬‬ ‫اين تابع يک عدد را به صورت تصادفی از يک ‪ tuple ،list‬يا ‪ string‬بر می گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪59‬‬

‫]‪randrange ([start,‬‬ ‫سه مقدار از کاربر دريافت کرده که مقدار اول و دوم عدد و مقدار سوم گام شمارش‬
‫)]‪stop [,step‬‬ ‫هست‪ .‬به اين شکل که اين تابع بين عدد اول و دوم با گام شمارش ای که برای اون تعيين‬
‫کرديم يک عدد تصادفی را انتخاب می کند‪.‬‬

‫)(‪random‬‬ ‫اين تابع به خودی خود يک عدد تصادفی بين ‪ 0‬و ‪ 1‬را برگزيده و بازيابی می نمايد‪.‬‬

‫)]‪seed([x‬‬ ‫اين تابع يک مقدار اوليه برای ‪ random‬تعيين می کند و در ادامه برنامه بر اساس همان‬
‫مقدار اعداد تصادفی را برمی گرداند‪ .‬خروجی ندارد‪ .‬اين تابع را پيش از فراخوانی هر‬
‫‪ module function‬ديگری صدا بزنيد‪.‬‬

‫)‪shuffle(lst‬‬ ‫اين تابع تعدادی عدد از ليست خوانده و ترتيب آن ها را به هم می ريزد‪ .‬خروجی ندارد‪.‬‬

‫)‪uniform(x, y‬‬ ‫اين متد عدد حقيقی بين دو عدد را به شما نشان می دهد‪.‬‬

‫توابع مثلثاتی‬

‫پایتون با استفاده از توابع زیر محاسبات مثلثاتی انجام می دهد‪:‬‬

‫تابع‬ ‫شرح‬

‫)‪acos(x‬‬ ‫آرک کوسينوس عدد را بر حسب راديان برمی گرداند‪.‬‬

‫)‪asin(x‬‬ ‫آرک سينوس عدد ‪ x‬را بر حسب راديان برمی گرداند‪.‬‬

‫)‪atan(x‬‬ ‫آرک تانژانت عدد ‪ x‬را بر حسب راديان برمی گرداند‪.‬‬

‫)‪atan2(y, x‬‬ ‫اين تابع آرک تانژانت ‪ y‬بر روی ‪ x‬را محاسبه می کند‪.‬‬

‫)‪cos(x‬‬ ‫کوسينوس ‪ x‬را بر حسب راديان محاسبه کرده و برمی گرداند‪.‬‬

‫)‪hypot(x, y‬‬ ‫اين تابع به نورم تقليدسی جذر )‪ (x*x + y*y‬می باشد و اين مقدار را بر می گرداند‪.‬‬

‫)‪sin(x‬‬ ‫اين تابع مقدار سينوس فايل را محاسبه و نمايش می دهد‪.‬‬

‫)‪tan(x‬‬ ‫اين تابع مقدار تانژانت عدد را بر حسب راديان برمی گرداند‪.‬‬

‫)‪degrees(x‬‬
‫اين تابع مقدار زاويه بر حسب راديان را گرفته و به درجه برمی گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪60‬‬

‫)‪radians(x‬‬ ‫مقدار عدد ‪ x‬بر حسب درجه را گرفته و به راديان برمی گرداند‪.‬‬

‫ثوابت ریاضی‬
‫ثوابت‬ ‫شرح‬

‫‪pi‬‬ ‫عدد ثابت ‪ pi‬در رياضی‪.‬‬

‫‪e‬‬ ‫عدد ثابت ‪ e‬در رياضيات‪.‬‬

‫رشته ها در پایتون (نوع داده ای ‪)string‬‬

‫‪ string‬از پرکاربرد ترین انواع داده ای در پایتون می باشد‪ .‬به منظور ایجاد آن‪ ،‬کافی است تعدادی‬

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

‫می باشد‪ .‬مثال‪:‬‬

‫'!‪var1 = 'Hello World‬‬


‫"‪var2 = "Python Programming‬‬

‫دسترسی به مقادیر در رشته ها‬

‫در پایتون چیزی به نام نوع داده ای ‪ character‬وجود ندارد؛ زبان پایتون با این نوع داده ای به صورت‬

‫رشته هایی با طول ‪ 1‬برخورد می کند (رشته هایی که خاصیت ‪ length‬آن برابر ‪ 1‬می باشد)‪ .‬از این‬
‫رو آن ها را می توان یک ‪ substring‬نیز قلمداد کرد‪.‬‬

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

‫بایستی استفاده کرد‪ .‬مثال‪:‬‬


‫‪#!/usr/bin/python‬‬
‫'!‪var1 = 'Hello World‬‬
‫"‪var2 = "Python Programming‬‬
‫]‪print "var1[0]: ", var1[0‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪61‬‬

‫]‪print "var2[1:5]: ", var2[1:5‬‬

‫نتیجه‪:‬‬
‫‪var1[0]: H‬‬
‫‪var2[1:5]: ytho‬‬

‫بروز رسانی رشته ها‬

‫می توان با الحاق (مجدد) یک متغیر به رشته ی دیگر‪ ،‬رشته ی جاری را بروز رسانی کرد‪ .‬مثال‪:‬‬
‫‪#!/usr/bin/python‬‬
‫'!‪var1 = 'Hello World‬‬
‫'‪print "Updated String :- ", var1[:6] + 'Python‬‬
‫نتیجه‪:‬‬

‫‪Updated String :- Hello Python‬‬

‫کاراکترهای ‪Escape‬‬

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

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

‫‪Backslash‬‬ ‫کاراکتر شانزده شانزدهی‬


‫شرح‬
‫‪notation‬‬ ‫(‪)hexadecimal‬‬

‫‪Bell‬یا‪alert‬‬
‫‪\a‬‬ ‫‪0x07‬‬
‫ایجاد صدای هشدار‪.‬‬

‫‪Backspace‬‬
‫‪\b‬‬ ‫‪0x08‬‬
‫بازگشت به عقب‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪62‬‬

‫‪\cx‬‬ ‫‪Control-x‬‬

‫‪\C-x‬‬ ‫‪Control-x‬‬

‫‪\e‬‬ ‫‪0x1b‬‬ ‫‪Escape‬‬

‫‪Formfeed‬‬

‫‪\f‬‬ ‫‪0x0c‬‬ ‫ایجاد صفحه ی جدید‪.‬‬

‫‪\M-\C-x‬‬ ‫‪Meta-Control-x‬‬

‫‪Newline‬‬
‫‪\n‬‬ ‫‪0x0a‬‬
‫خط جدید‬

‫نشان گذاری هشت هشتی که در آن ‪ n‬در‬


‫‪\nnn‬‬
‫رینج ‪ 0.7‬قرار دارد‪.‬‬

‫‪Carriage return‬‬
‫‪\r‬‬ ‫‪0x0d‬‬
‫بازگشت به سر خط‪.‬‬

‫‪Space‬‬
‫‪\s‬‬ ‫‪0x20‬‬
‫خط فاصله‪.‬‬

‫‪Tab‬‬
‫‪\t‬‬ ‫‪0x09‬‬
‫چندین خط فاصله‪.‬‬

‫‪Vertical tab‬‬

‫‪\v‬‬ ‫‪0x0b‬‬
‫ایجاد چندین خط فاصله به صورت‬
‫عمودی‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪63‬‬

‫‪\x‬‬ ‫‪Character x‬‬

‫نشان گذاری شانزده شانزدهی که در آن‬


‫‪\xnn‬‬
‫‪ n‬در برد ‪ a.f ،0.9‬یا ‪ A.F‬قرار دارد‪.‬‬

‫عملگرهای رشته‬
‫با فرض اینکه متغیر رشته ای ‪ a‬مقدار '‪ 'Hello‬و متغیر ‪ b‬مقدار '‪ 'Python‬را نگه می دارد‪:‬‬

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

‫اتصال – یک رشته را به رشته ی دیگر‬ ‫‪ a + b‬رشته ی ‪ HelloPython‬را تولید می‬


‫‪+‬‬
‫متصل می کند‪.‬‬ ‫کند‪.‬‬

‫تکرار – با پیوند زدن چندین کپی از یک‬


‫*‬ ‫‪a*2‬رشته ی ‪ HelloHello‬را تولید می کند‪.‬‬
‫رشته‪ ،‬رشته ی جدیدی ایجاد می نماید‪.‬‬

‫برش – کاراکتر مورد نظر را از اندیس‬


‫][‬ ‫مشخص شده انتخاب کرده و استخراج می‬ ‫]‪ a[1‬کاراکتر ‪ e‬را ارائه می دهد‪.‬‬
‫کند‪.‬‬

‫برش در رینج مشخص شده (‪)range slice‬‬


‫–دو اندیس می پذیرد که یکی شروع و‬
‫]‪[:‬‬ ‫مشخص کننده ی اولین کاراکتر و دیگری‬ ‫]‪ a[1:4‬کاراکترهای ‪ ell‬را استخراج می کند‪.‬‬
‫اندیس پایان و نشانگر آخرین کاراکتر‬
‫استخراج شده می باشد‪.‬‬

‫عضویت – در صورت موجود بودن کاراکتر‬ ‫‪ H in a‬بخاطر اینکه کاراکتر در رشته ی‬


‫‪in‬‬ ‫مشخص شده در رشته ی مورد نظر‪true ،‬‬ ‫مورد نظر موجود می باشد‪ 1 ،‬برمی‬
‫برمی گرداند‪.‬‬ ‫گرداند‪.‬‬

‫عضویت – در صورت موجود نبودن‬


‫‪not in‬‬ ‫کاراکتر مورد نظر در رشته‪ true ،‬برمی‬ ‫مقدار ‪ 1‬را برمی گرداند‪M not in a.‬‬
‫گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪64‬‬

‫‪( Raw string‬رشته ی خام) – کارکرد و‬


‫معنی اصلی کاراکتر گریز را لغو می کند‪.‬‬
‫دستور '‪ \n ،print r'\n‬را چاپ می کند و‬
‫به استثنای عملگر ‪ r/R‬که پیش از علامت‬
‫دستور '‪ \n ،print R'\n‬را‪.‬‬
‫‪r/R‬‬ ‫نقل و قول قرار می گیرد‪ ،‬سینتکس رشته‬
‫های خام درست مانند رشته های معمولی‬
‫می باشد‪ "r" .‬می تواند حرف کوچک یا‬
‫حرف بزرگ (‪ )R‬باشد‪ ،‬تنها مسئله ای که‬
‫باید به آن دقت داشت‪ ،‬قرار دادن ‪R‬‬
‫درست پیش از علامت نقل و قول است‪.‬‬

‫فرمت دهی – یک رشته را قالب بندی می‬


‫‪%‬‬
‫کند‪.‬‬

‫عملگر فرمت دهی رشته‬


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

‫زبان ‪ C‬می باشد‪ .‬مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫)‪print "My name is %s and weight is %d kg!" % ('Zara', 21‬‬

‫نتیجه‪:‬‬

‫!‪My name is Zara and weight is 21 kg‬‬

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

‫علامت فرمت دهی‬ ‫تبدیل‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪65‬‬

‫‪%c‬‬ ‫کاراکتر‪.‬‬

‫‪%s‬‬ ‫تبدیل به رشته با استفاده از تابع )(‪ ،str‬قبل از فرمت دهی‪.‬‬

‫‪%i‬‬ ‫عدد صحیح در مبنای ده علامت دار‪.‬‬

‫‪%d‬‬ ‫عدد صحیح ده دهی علامت دار‪.‬‬

‫‪%u‬‬ ‫عدد صحیح درمبنای ده بدون علامت‪.‬‬

‫‪%o‬‬ ‫عدد صحیح هشت هشتی‪.‬‬

‫‪%x‬‬ ‫عدد صحیح در مبنای شانزده (حروف کوچک)‪.‬‬

‫‪%X‬‬ ‫عدد صحیح در مبنای شانزده (حروف بزرگ)‪.‬‬

‫‪%e‬‬ ‫نماد توانی یا نمایی (با '‪ 'e‬کوچک)‪.‬‬

‫‪%E‬‬ ‫نماد توانی یا نمایی (با '‪ 'E‬بزرگ)‪.‬‬

‫‪%f‬‬ ‫عدد حقیقی ممیز شناور‪.‬‬

‫‪%g‬‬ ‫مخفف یا فرم کوتاه تر ‪ %f‬و ‪ %e‬می باشد‪.‬‬

‫‪%G‬‬ ‫شکل کوتاه تر ‪ %f‬و ‪.%E‬‬

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

‫علامت‬ ‫کارکرد‪/‬قابلیت‬

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

‫‪-‬‬ ‫تنظیم به سمت چپ‪.‬‬

‫‪+‬‬ ‫علامت را نمایش می دهد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪66‬‬

‫>‪<sp‬‬ ‫یک خط فاصله قبل از عدد مثبت ایجاد می کند‪.‬‬

‫صفر آغازین هشت هشتی ('‪ )'0‬یا صفر آغازین شانزده شانزدهی‬
‫‪#‬‬
‫'‪ '0x‬و یا '‪ ،'0X‬بسته به اینکه '‪ 'x‬یا '‪ 'X‬بکار رفته‪ ،‬اضافه می کند‪.‬‬

‫بجای خط فاصله یا فضای خالی‪ ،‬سمت چپ عدد را با صفر پر می‬


‫‪0‬‬
‫کند‪.‬‬

‫استفاده ی همزمان از دو عملگر‪ ،' %%' ،‬به یک عملگر '‪ '%‬منتج‬


‫‪%‬‬
‫می شود‪.‬‬

‫)‪(var‬‬ ‫نگاشت متغیر (آرگومان های ‪)dictionary‬‬

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


‫‪m.n.‬‬
‫پس از نقطه ی اعشار نمایش داده شود‪.‬‬

‫سه علامت نقل و قول به هم چسبیده (‪)Triple Quotes‬‬


‫علامت (""" """) این امکان را فراهم می کند که رشته ها را در چندین خط پخش کنید‪ ،‬در این میان‬

‫می توانید از کاراکترهای ویژه نظیر ‪ TABs ،NEWLINEs‬و غیره ‪ ...‬استفاده کنید‪.‬‬

‫نحوه ی نگارش آن را می توانید در ز یر مشاهده کنید‪:‬‬

‫‪#!/usr/bin/python‬‬
‫‪para_str = """this is a long string that is made up of‬‬
‫‪several lines and non-printable characters such as‬‬
‫‪TAB ( \t ) and they will show up that way when displayed.‬‬
‫‪NEWLINEs within the string, whether explicitly given like‬‬
‫‪this within the brackets [ \n ], or just a NEWLINE within‬‬
‫‪the variable assignment will also show up.‬‬
‫"""‬
‫‪print para_str‬‬

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

‫کاراکترها ویژه اثر خود را در نتیجه به نمایش گذاشته (برای مثال ‪ /tab‬دو فاصله ایجادکرد یا ‪ /n‬رشته‬
‫را در خط بعدی ادامه داده) است‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪67‬‬

‫‪this is a long string that is made up of‬‬


‫‪several lines and non-printable characters such as‬‬
‫‪TAB ( ) and they will show up that way when displayed.‬‬
‫‪NEWLINEs within the string, whether explicitly given like‬‬
‫[ ‪this within the brackets‬‬
‫‪], or just a NEWLINE within‬‬
‫‪the variable assignment will also show up.‬‬

‫کاراکتر " \ " در رشته های خام‪ ،‬به عنوان کاراکتر ویژه تفسیر نمی شود‪ .‬کلیه ی کاراکترهایی که در‬

‫یک رشته ی خام تایپ می کنید به همان گونه که نوشته اید چاپ می شوند‪:‬‬

‫‪#!/usr/bin/python‬‬
‫'‪print 'C:\\nowhere‬‬

‫نتیجه‪:‬‬

‫‪C:\nowhere‬‬

‫حال به مثال زیر توجه کنید‪ .‬عبارت را بدین صورت ' عبارت مربوطه ' ‪ r‬بکار می بریم‪:‬‬

‫‪#!/usr/bin/python‬‬
‫'‪print r'C:\\nowhere‬‬

‫نتیجه‪:‬‬

‫‪C:\\nowhere‬‬

‫رشته های یونیکد (‪)Unicode string‬‬

‫رشته های معمولی در پایتون به صورت ‪ 8‬بیتی اسکی (‪ )ASCII‬ذخیره می شوند‪ ،‬در حالی که رشته‬

‫های یونیکد به صورت ‪ 16‬بیتی ‪ Unicode‬ذخیره می گردند‪ .‬کاراکترهای یونیکد این اجازه را می دهد‬
‫که از مجموعه ی کاراکتری متشکل از انواع زبان های زنده ی دنیا بهره بگیرید‪ .‬مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫'!‪print u'Hello, world‬‬

‫نتیجه‪:‬‬

‫!‪Hello, world‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪68‬‬

‫همان طور که در این مثال مشاهده می کنید‪ ،‬رشته های یونیکد پیشوند ‪ u‬را بکار می برند‪ ،‬مشابه‬
‫رشته های خام که از پیشوند ‪ r‬استفاده می کنند‪.‬‬

‫متدهایی درون‬
‫ساخته ای که عملیاتی را روی رشته انجام دهند ( ‪Built-in String‬‬
‫‪)Methods‬‬

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

‫شماره ی رشته‬
‫متد مربوطه به همراه شرح کارکرد آن‬
‫ی مورد نظر‬

‫)(‪capitalize‬‬
‫‪1‬‬
‫حرف اول یک رشته را به حرف بزرگ تبدیل می کند‪.‬‬

‫)‪center(width, fillchar‬‬

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

‫))‪count(str, beg= 0,end=len(string‬‬

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


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

‫)'‪decode(encoding='UTF-8',errors='strict‬‬

‫‪4‬‬ ‫رشته ی مورد نظر را با استفاده ی الگورتیم رمزگذاری یا کدک مشخص‪/‬ثبت‬


‫شده‪ decode ،‬و رمز گشایی می کند‪ .‬پارامتر ‪ encoding‬به صورت پیش فرض‬
‫بر روی رمزگذاری ‪ default‬تنظیم می شود‪ .‬به عبارتی دیگر این تابع رشته ی‬
‫مورد نظر را بر اساس کدک مشخص شده رمزگشایی کرده و رشته ی ‪decode‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪69‬‬

‫شده را به عنوان خروجی برمی گرداند‪ .‬پارامتر دومی نحوه ی مدیریت خطا را‬
‫مشخص می شود که پیش فرض آن ‪ strict‬می باشد‪.‬‬

‫)'‪encode(encoding='UTF-8',errors='strict‬‬

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

‫))‪endswith(suffix, beg=0, end=len(string‬‬

‫مشخص می کند آیا یک رشته یا زیرشته ای از آن به پارامتر ‪ suffix‬ختم می‬


‫‪6‬‬ ‫شود یا خیر‪ ،‬در صورتی که به مقدار مشخص شده ختم شد ‪ true‬و در غیر این‬
‫صورت ‪ false‬برمی گرداند‪ .‬پارامتر ‪ beg‬اندیس شروع و پارمتر ‪ end‬اندیس‬
‫پایان را مشخص می کند‪.‬‬

‫)‪expandtabs(tabsize=8‬‬

‫این متد تعداد فاصله ی تب (مربوط به کاراکتر ویژه ی تب ‪ )/t‬یک رشته را به‬
‫‪7‬‬ ‫مقدار مشخص شده در پارامتر ورودی (تعیین کننده ی تعداد تب) بسط می‬
‫دهد‪ ،‬در صورت مشخص نکردن پارامتر ورودی‪ ،‬به صورت پیش فرض بر روی‬
‫‪ 8‬تنظیم می شود‪.‬‬

‫))‪find(str, beg=0 end=len(string‬‬

‫کاراکترهای مورد نظر را در رشته می یابد (مشخص می کند آیا پارامتر ورودی‬
‫‪8‬‬ ‫اول متد در رشته وجود دارد یا خیر)‪ ،‬پارامتر دوم مشخص کننده ی اندیس‬
‫شروع و پارامتر سوم تعیین کننده ی اندیس پایان می باشد‪ .‬در صورت یافتن‬
‫رشته اندیس آغازی آن و در صورت نیافتن ‪ -1‬را برمی گرداند‪.‬‬

‫))‪index(str, beg=0, end=len(string‬‬

‫‪9‬‬ ‫عملکردی مشابه متد )(‪ find‬دارد‪ ،‬با این تفاوت که در صورت نیافتن رشته ی‬
‫مورد نظر باعث رخداد یک خطا یا ‪ exception‬می شود‪.‬‬

‫‪10‬‬ ‫)(‪isalnum‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪70‬‬

‫چنانچه حداقل ‪ 1‬کاراکتر یا تمامی کاراکترهای رشته الفبایی عددی (حرف عدد)‬
‫باشد‪ ،‬مقدار ‪ true‬و در غیر این صورت ‪ false‬برمی گرداند‪.‬‬

‫)(‪isalpha‬‬
‫‪11‬‬
‫اگر حداقل یکی یا تمامی کاراکترهای رشته از نوع الفبا باشد‪ true ،‬و در غیر این‬
‫صورت ‪ false‬را برمی گرداند‪.‬‬

‫)(‪isdigit‬‬
‫‪12‬‬
‫در صورتی که رشته مورد نظر حاوی فقط عدد باشد‪ ،‬مقدار ‪ true‬و در غیر این‬
‫صورت ‪ false‬برمی گرداند‪.‬‬

‫)(‪islower‬‬
‫‪13‬‬
‫اگر حداقل یکی یا همه ی کاراکترهای داخل رشته ‪ lowercase‬باشد‪ true ،‬و در‬
‫غیر این صورت ‪ false‬را بازگردانی می نماید‪.‬‬

‫)(‪isnumeric‬‬
‫‪14‬‬
‫چنانچه رشته ی یونیکد دربردارنده ی کاراکترهای عددی باشد‪ ،‬مقدار ‪ true‬و در‬
‫غیر این صورت ‪ false‬را بازیابی می نماید‪.‬‬

‫)(‪isspace‬‬

‫‪15‬‬ ‫چنانچه رشته ی مورد نظر تهی باشد (در آن هیچ کاراکتری به جز خط فاصله‬
‫وجود نداشته باشد)‪ true ،‬و در غیر این صورت ‪ false‬را بازیابی می کند‪.‬‬

‫)(‪istitle‬‬
‫‪16‬‬
‫اگر حروف اول تمامی واژگان رشته ‪ uppercase‬باشد‪ true ،‬بازمی گرداند‪.‬‬

‫)(‪isupper‬‬

‫‪17‬‬ ‫چنانچه تمامی کاراکترهای رشته ی مورد نظر با حروف بزرگ نوشته شده باشد‪،‬‬
‫‪ true‬و در غیر این صورت ‪ false‬را برمی گرداند‪.‬‬

‫‪18‬‬ ‫)‪join(seq‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪71‬‬

‫المان های رشته ی ‪ seq‬را توسط تفکیک گر مشخص شده (برای مثال "‪ )"-‬به‬
‫هم متصل کرده و آن را به عنوان خروجی برمی گرداند‪.‬‬

‫)‪len(string‬‬
‫‪19‬‬
‫طول رشته (تعداد کاراکترهای) رشته را برمی گرداند‪.‬‬

‫)]‪ljust(width[, fillchar‬‬
‫‪20‬‬
‫یک رشته را با کاراکتر تعریف شده در پارامتر دوم از سمت راست پر می کند تا‬
‫به تعداد کاراکتر تعریف شده در پارامتر اول برسد‪.‬‬

‫)(‪lower‬‬
‫‪21‬‬ ‫کلیه ی حروفی که در رشته ی مورد نظر ‪ uppercase‬هستند را به حروف‬
‫کوچک تبدیل می کند‪.‬‬

‫)(‪lstrip‬‬
‫‪22‬‬ ‫تمامی کاراکترهای مشخص شده (به صورت پیش فرض کاراکتر ‪ )space‬در‬
‫پارامتر ورودی را از اول یک رشته حذف می کند‪.‬‬

‫)(‪maketrans‬‬
‫برای استفاده از این تابع ابتدا باید آن را تعریف کرد که در ابتدای اسکریپت این‬
‫کار انجام شده است‪ .‬این متد دو آرگومان می پذیرد که کار ترجمه را انجام می‬
‫‪23‬‬ ‫دهند‪ ،‬بدین معنی که به ازای مقادیری که در ‪ intab‬قرار داده می شود معادل‬
‫آن ها در ‪ outtab‬قرار می گیرند‪ .‬مثلا اگر مقدار ‪ intab‬برابر ‪ a‬بود و مقدار‬
‫‪ outtab‬برابر ‪ 1‬بود آنگاه در رشته هرگاه کاراکتر ‪ a‬دیده شد برنامه مقدار آن را‬
‫با ‪ 1‬جایگزین می کند‪.‬‬

‫)‪max(str‬‬
‫‪24‬‬
‫این متد بزرگترین کاراکتر را به ترتیب حروف الفبا بر میگرداند‪.‬‬

‫)‪min(str‬‬
‫‪25‬‬
‫کوچکترین کاراکتر را به ترتیب حروف الفبا بر میگرداند‪.‬‬

‫‪26‬‬ ‫)]‪replace(old, new [, max‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪72‬‬

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

‫))‪rfind(str, beg=0,end=len(string‬‬
‫‪27‬‬
‫عملکردی مشابه متد )(‪ find‬دارد با این تفاوت که جستجو را از سمت راست‬
‫شروع می کند‪.‬‬

‫))‪rindex( str, beg=0, end=len(string‬‬

‫‪28‬‬ ‫کارکرد مشابه متد )(‪ index‬دارد با این تفاوت که جستجو را بجای چپ از سمت‬
‫راست شروع می کند‪.‬‬

‫)]‪rjust(width,[, fillchar‬‬

‫در این متد آرگومان ‪ width‬نمایشگر تعداد کاراکتری که مایلید ‪( justify‬هم تراز)‬
‫کنید و ‪ fillchar‬نیز نشانگر مقداری می باشد که می خواهید از آن برای ‪justify‬‬
‫‪29‬‬ ‫کردن استفاده نمایید‪.‬‬

‫این تابع یک نسخه ی از رشته بازمی گرداند که در آن سمت چپ رشته با کاراکتر‬


‫مشخص شده در پارامتر ورودی دوم پر شده تا طول کلی رشته با مقدار‬
‫مشخص شده در پارامتر اول برابر شود‪.‬‬

‫)(‪rstrip‬‬
‫‪30‬‬ ‫تمامی کاراکترهای مشخص شده (در صورت مشخص نکردن‪ ،‬پیش فرض‬
‫کاراکتر ‪ space‬می باشد) در پارامتر ورودی را از پایان یک رشته حذف می کند‪.‬‬

‫))‪split(str="", num=string.count(str‬‬

‫‪31‬‬ ‫این متد رشته ی مورد نظر را در قالب لیستی برمی گرداند و کلمات موجود در‬
‫آن را توسط تفکیک گر (پیش فرض "") و به تعداد (زیر رشته های مشخص‬
‫شده در ورودی ‪ )num‬مشخص شده تقسیم می کند‪.‬‬

‫‪33‬‬ ‫))‪startswith(str, beg=0,end=len(string‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪73‬‬

‫این متد بررسی می کند که رشته ی مورد نظر با زیررشته ی مشخص شده در‬
‫پارامتر ورودی ‪ str‬آغاز شده یا خیر‪ ،‬اگر چنین بود مقدار ‪ true‬و در غیر این‬
‫صورت مقدار ‪ false‬را برمی گرداند‪ Beg .‬بیانگر اندیس شروع و ‪ end‬نشانگر‬
‫اندیس پایان می باشد‪.‬‬

‫)]‪strip([chars‬‬

‫‪34‬‬ ‫عملیات هر دو متد )(‪ lstrip‬و )(‪ rstrip‬را بر روی رشته ی مورد نظر اجرا می‬
‫کند‪.‬‬

‫)(‪swapcase‬‬
‫‪35‬‬
‫حروف کوچک را بزرگ و حروف بزرگ را کوچک می کند‪.‬‬

‫)(‪title‬‬
‫‪36‬‬
‫یک کپی از رشته بازمی گرداند که اولین حرف تمامی کلمات آن با حرف بزرگ و‬
‫باقی آن ها با حروف کوچک چاپ شده است‪.‬‬

‫)""=‪translate(table, deletechars‬‬

‫متد ‪ translate‬یک کپی از رشته برمی گرداند که درآن تمامی کاراکترها با‬
‫‪37‬‬ ‫استفاده از ‪( table‬ساخته شده از تابع )(‪ maketrans‬در ‪،)string module‬‬
‫ترجمه شده است و در صورت نیاز تمامی کاراکترهای موجود در رشته ی‬
‫‪ deletechars‬را حذف می کند‪.‬‬

‫)(‪upper‬‬
‫‪38‬‬
‫حروف کوچک یک رشته را به حروف بزرگ تبدیل می کند‪.‬‬

‫)‪zfill (width‬‬

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

‫)(‪isdecimal‬‬
‫‪40‬‬
‫این متد در صورتی که رشته ی یونیکد دربردارنده ی فقط کاراکترهای ده دهی‬
‫باشد‪ true ،‬و در غیر این صورت ‪ false‬برمی گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪74‬‬

‫نوع داده ای لیست در پایتون (‪)tuple/lists‬‬

‫اساسی ترین ساختار داده ای در پایتون ‪( sequence‬زنجیره ای از بایت ها) می باشد‪ .‬به هر یک از‬

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

‫پایتون در کل ‪ 6‬نوع داده ای که ساختار آن ‪ sequence‬می باشد‪ ،‬ارائه می دهد که پرکاربردترین آن‬

‫ها عبارتند از ‪ list‬ها و ‪ tuple‬ها‪.‬‬

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

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

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

‫نوع داده ای ‪list‬‬


‫‪ list‬تطبیق پذیرترین نوع داده ای در پایتون می باشد که به صورت یک لیست نوشته می شود و‬
‫آیتم های آن توسط ویرگول محصور در ][ از یکدیگر جدا می شوند‪ .‬مهم ترین نکته ای که بایستی‬

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

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

‫دادهها به عنوان متغیرهای جداگانه ما میتوانیم آنها در یک لیست ذخیره کنیم‪.‬‬

‫ایجاد و اعلان یک لیست به سادگی قرار دادن مقادیری بین ][ و تفکیک آن ها به وسیله ی ویرگول‬

‫می باشد‪ .‬مثال‪:‬‬

‫;]‪list1 = ['physics', 'chemistry', 1997, 2000‬‬


‫;] ‪list2 = [1, 2, 3, 4, 5‬‬
‫;]"‪list3 = ["a", "b", "c", "d‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪75‬‬

‫درست مشابه اندیس رشته‪ ،‬اندیس لیست ها از صفر آغاز می شود‪ .‬بر روی لیست عملیاتی همچون‬
‫برش (‪ )slice‬و اتصال (‪ )concatenation‬را می توان اجرا کرد‪.‬‬

‫دسترسی به مقادیر یک لیست‬


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

‫‪#!/usr/bin/python‬‬
‫;]‪list1 = ['physics', 'chemistry', 1997, 2000‬‬
‫;] ‪list2 = [1, 2, 3, 4, 5, 6, 7‬‬
‫]‪print "list1[0]: ", list1[0‬‬
‫]‪print "list2[1:5]: ", list2[1:5‬‬

‫پس از اجرا کد‪ ،‬نتیجه ی زیر بدست می آید‪:‬‬

‫‪list1[0]: physics‬‬
‫]‪list2[1:5]: [2, 3, 4, 5‬‬

‫بروز رسانی لیست ها‬


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

‫لیست را بروز رسانی کرد‪ .‬برای این منظور در سمت راست عملگر تخصیص علامت ][ و اندیس‬
‫مقدار مربوطه را تایپ کنید‪ .‬همچنین با استفاده از متد )(‪ append‬می توان عناصری را به لیست‬

‫جاری الحاق کرد‪.‬‬

‫‪#!/usr/bin/python‬‬
‫;]‪list = ['physics', 'chemistry', 1997, 2000‬‬
‫" ‪print "Value available at index 2 :‬‬
‫]‪print list[2‬‬
‫;‪list[2] = 2001‬‬
‫" ‪print "New value available at index 2 :‬‬
‫]‪print list[2‬‬
‫پس از اجرای کد‪ ،‬نتیجه ی زیر حاصل می گردد‪:‬‬

‫‪Value available at index 2 :‬‬


‫‪1997‬‬
‫‪New value available at index 2 :‬‬
‫‪2001‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪76‬‬

‫حذف المان های لیست‬


‫برای حذف المان مورد نظر از لیست‪ ،‬اگر المان خاصی مورد نظرتان است دستور ‪ del‬و اگر آیتم‬
‫مشخصی برای حذف مد نظر ندارید‪ ،‬متد )(‪ remove‬را بکار ببرید‪.‬‬

‫‪#!/usr/bin/python‬‬
‫;]‪list1 = ['physics', 'chemistry', 1997, 2000‬‬
‫‪print list1‬‬
‫;]‪del list1[2‬‬
‫" ‪print "After deleting value at index 2 :‬‬
‫‪print list1‬‬
‫نتیجه ی بدست می آید‪:‬‬

‫]‪'physics', 'chemistry', 1997, 2000‬‬


‫‪After deleting value at index 2 :‬‬
‫]‪['physics', 'chemistry', 2000‬‬

‫عملیات ابتدایی که روی لیست اجرا می شود‬


‫عملگرهای * و ‪ +‬در لیست همان عملیاتی را انجام می دهند که در رشته اجرا می کنند‪ .‬همان طور‬

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

‫بر روی لیست می توان همان عملیات رایجی که بر روی ساختارهای دنباله ای (‪ )sequence‬همچون‬
‫رشته قابل اجرا می باشد‪ ،‬انجام داد‪.‬‬

‫عبارت پایتون‬ ‫نتیجه‬ ‫شرح‬

‫)]‪len([1, 2, 3‬‬ ‫‪3‬‬ ‫‪Length‬‬

‫(طول)‬

‫]‪[1, 2, 3] + [4, 5, 6‬‬ ‫]‪[1, 2, 3, 4, 5, 6‬‬ ‫‪Concatenation‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪77‬‬

‫(اتصال)‬

‫‪['Hi!'] * 4‬‬ ‫]'!‪['Hi!', 'Hi!', 'Hi!', 'Hi‬‬ ‫‪Repetition‬‬

‫(تکرار)‬

‫]‪3 in [1, 2, 3‬‬ ‫‪True‬‬ ‫‪Membership‬‬

‫(عضويت)‬

‫‪for x in [1, 2, 3]: print x,‬‬ ‫‪123‬‬ ‫‪Iteration‬‬

‫(حلقه تکرار)‬

‫اندیس گذاری‪ ،‬برش و ماتریس‬


‫از آن جایی که ‪ list‬ها زیرمجموعه ی ساختار داده ای ‪ sequence‬هستند‪ ،‬اندیس گذاری و اتصال در‬

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

‫ورودی زیر را درنظر داشته باشید‪:‬‬

‫]'!‪L = ['spam', 'Spam', 'SPAM‬‬

‫عبارت‬ ‫نتیجه‬ ‫شرح‬

‫]‪L[2‬‬ ‫'!‪'SPAM‬‬ ‫انديس از صفر آغاز می شود‪ ،‬می‬


‫شمارد و نتيجه را برمی گرداند‪.‬‬

‫]‪L[-2‬‬ ‫'‪'Spam‬‬ ‫اگر منفی بود از سمت راست می‬


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

‫]‪L[1:‬‬ ‫]'!‪['Spam', 'SPAM‬‬ ‫از يک انديسی به بعد را بازمی‬


‫گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪78‬‬

‫توابع و متدهای توکار لیست در پایتون‬

‫شماره ی متد‬ ‫تابع مورد نظر با شرح عملکرد آن‬

‫‪1‬‬ ‫)‪cmp(list1, list2‬‬

‫المان های موجود در دو ليست را با هم مقايسه می کند‪.‬‬

‫‪2‬‬ ‫)‪len(list‬‬

‫طول کلی ليست را بازمی گرداند‪.‬‬

‫‪3‬‬ ‫)‪max(list‬‬

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

‫‪4‬‬ ‫)‪min(list‬‬

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

‫‪5‬‬ ‫)‪list(seq‬‬

‫نوع داده ای ‪ tuple‬را به ‪ list‬تبديل می کند‪.‬‬

‫متدهای مربوط به لیست‪:‬‬

‫شماره ی متد‬ ‫متد مورد نظر با شرح آن‬

‫‪1‬‬ ‫)‪list.append(obj‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪79‬‬

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

‫‪2‬‬ ‫)‪list.count(obj‬‬

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

‫‪3‬‬ ‫)‪list.extend(seq‬‬

‫محتويات پارامتر ورودی (‪ )seq‬را به ليست الحاق می کند‪.‬‬

‫‪4‬‬ ‫)‪list.index(obj‬‬

‫انديس يا شماره ی مکان قرار گيری شی را در ليست برمی گرداند‪.‬‬

‫‪5‬‬ ‫)‪list.insert(index, obj‬‬

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

‫‪6‬‬ ‫)]‪list.pop(obj=list[-1‬‬

‫آخرين شی موجود در ليست را برش داده و برمی گرداند‪ .‬پارامتر دومی اختياری است که نشانگر‬
‫انديس شی ای که بايد برش داده شود می باشد‪.‬‬

‫‪7‬‬ ‫)‪list.remove(obj‬‬

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

‫‪8‬‬ ‫)(‪list.reverse‬‬

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

‫‪9‬‬ ‫)]‪list.sort([func‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪80‬‬

‫اشيا يک ليست را مرتب می سازد‪.‬‬

‫نوع داده ای ‪ tuple‬یا چندتایی در پایتون‬

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

‫کنید‪ .‬مقادیر اولیه که برای تاپل ها تعیین میکنید ‪ ،‬تا آخر برنامه ثابت باقی میمانند و قابل تغییر‬
‫نیستند‪.‬‬

‫‪ tuple‬ها در پایتون چیزی شبیه به نوع داده ای ‪ list‬می باشند‪ .‬تاپل ها تعدادی از مقادیر هستند که‬

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

‫تفاوت بنیادین میان ‪ list‬ها و ‪ tuple‬ها این است که لیست ها داخل آکولاد [] مشخص می شوند و‬
‫المان ها و نیز اندازه آن ها تغییر پذیر است در حالی که ‪ tuple‬ها درون پرانتز تعریف می شوند و‬

‫قابلیت بروز رسانی را ندارند‪ tuple .‬را می توان لیست های فقط خواندنی نیز نام گذاشت‪.‬‬

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

‫صورت تمایل می توان این مقادیر را داخل پرانتز محصور کرد‪ .‬مثال‪:‬‬

‫;)‪tup1 = ('physics', 'chemistry', 1997, 2000‬‬


‫;) ‪tup2 = (1, 2, 3, 4, 5‬‬
‫;"‪tup3 = "a", "b", "c", "d‬‬
‫مثالی از یک ‪ tuple‬تهی را در زیر مشاهده می کنید‪:‬‬

‫;)( = ‪tup1‬‬

‫در صورت وجود حتی یک مقدار در ‪ tuple‬مورد نظر‪ ،‬بایستی از ویرگول استفاده شود‪:‬‬

‫;)‪tup1 = (50,‬‬

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

‫اتصال و غیره ‪ ...‬را می توان بر روی ‪ tuple‬اجرا نمود‪:‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪81‬‬

‫دسترسی به مقادیر یک ‪tuple‬‬


‫جهت دسترسی به مقادیر موجود در یک ‪ ،tuple‬می بایست از ][ و اندیس مقدار مورد نظر استفاده‬
‫کرد‪.‬‬

‫‪#!/usr/bin/python‬‬
‫;)‪tup1 = ('physics', 'chemistry', 1997, 2000‬‬
‫;) ‪tup2 = (1, 2, 3, 4, 5, 6, 7‬‬
‫]‪print "tup1[0]: ", tup1[0‬‬
‫]‪print "tup2[1:5]: ", tup2[1:5‬‬

‫نتیجه‪:‬‬

‫‪tup1[0]: physics‬‬
‫]‪tup2[1:5]: [2, 3, 4, 5‬‬

‫بروز رسانی ‪tuple‬‬


‫همان طور که در بالا تشریح شد‪ tuple ،‬غیر قابل تغییر هستند؛ بدین معنا که امکان ویرایش و بروز‬

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

‫‪#!/usr/bin/python‬‬
‫;)‪tup1 = (12, 34.56‬‬
‫;)'‪tup2 = ('abc', 'xyz‬‬
‫‪# Following action is not valid for tuples‬‬
‫;‪# tup1[0] = 100‬‬
‫‪# So let's create a new tuple as follows‬‬
‫;‪tup3 = tup1 + tup2‬‬
‫‪print tup3‬‬
‫نتیجه‪:‬‬

‫)'‪(12, 34.56, 'abc', 'xyz‬‬

‫حذف المان های یک ‪tuple‬‬


‫حذف المان های یک ‪ tuple‬به صورت تکی امکان پذیر نیست‪ .‬با این وجود‪ ،‬می توان دو ‪ tuple‬مورد‬

‫نظر را که المان های ناخواسته در آن لحاظ نشده‪ ،‬به هم متصل کرد و یک ‪ tuple‬جدید ایجاد نمود‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪82‬‬

‫به منظور حذف کلی یک ‪ tuple‬کافی است دستور ‪ del‬را بکار ببرید‪:‬‬

‫‪#!/usr/bin/python‬‬
‫;)‪tup = ('physics', 'chemistry', 1997, 2000‬‬
‫‪print tup‬‬
‫;‪del tup‬‬
‫" ‪print "After deleting tup :‬‬
‫‪print tup‬‬
‫نتیجه ی زیر حاصل می گردد‪ .‬همان طور که مشاهده می کنید‪ ،‬یک استثنا رخ داده است‪ ،‬زیرا با‬

‫اجرا شدن دستور ‪ ،del‬دیگر ‪ tuple‬وجود ندارد‪:‬‬

‫)‪('physics', 'chemistry', 1997, 2000‬‬


‫‪After deleting tup :‬‬
‫‪Traceback (most recent call last):‬‬
‫>‪File "test.py", line 9, in <module‬‬
‫;‪print tup‬‬
‫‪NameError: name 'tup' is not defined‬‬

‫عملیات رایج که بر روی ‪ tuple‬قابل اجرا می باشد‬


‫از آنجایی که ‪ tuple‬ها از نوع ساختمان داده ای ‪( sequence‬زنجیره ای از بایت ها) هستند‪ ،‬می توان‬

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

‫)'!‪L = ('spam', 'Spam', 'SPAM‬‬

‫عبارت‬ ‫خروجی‬ ‫شرح‬

‫]‪L[2‬‬ ‫'!‪'SPAM‬‬ ‫انديس از صفر آغاز می شود‪.‬‬

‫]‪L[-2‬‬ ‫'‪'Spam‬‬ ‫در صورت منفی بودن از راست شمرده‬


‫و المان مد نظر را استخراج می کند‪.‬‬

‫]‪L[1:‬‬ ‫]'!‪['Spam', 'SPAM‬‬ ‫از يک انديس به بعد المان ها را برمی‬


‫گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪83‬‬

‫نکته ی قابل توجه ‪ :‬هر مجموعه ای که از اشیای تشکیل و سپس توسط تفکیک گری مانند ویرگول از‬
‫هم جدا شده باشد‪ ،‬اما داخل ‪ delimiter‬هایی همچون پرانتز برای ‪ tuple‬و ][ برای ‪ list‬محصور نشده‬

‫باشد‪ ،‬در آن صورت پایتون با این مجموعه به مثابه ی ‪ tuple‬برخورد می کند‪.‬‬

‫‪#!/usr/bin/python‬‬
‫'‪print 'abc', -4.24e93, 18+6.6j, 'xyz‬‬
‫;‪x, y = 1, 2‬‬
‫‪print "Value of x , y : ", x,y‬‬

‫نتیجه‪:‬‬

‫‪abc -4.24e+93 (18+6.6j) xyz‬‬


‫‪Value of x , y : 1 2‬‬

‫توابع توکار ‪tuple‬‬


‫شماره ی تابع‬ ‫تابع و شرح کارکرد آن‬

‫‪1‬‬ ‫)‪cmp(tuple1, tuple2‬‬

‫المان های دو ‪ tuple‬را با هم مقايسه می کند‪.‬‬

‫‪2‬‬ ‫)‪len(tuple‬‬

‫طول (تعداد کل المان های موجود در) ‪ tuple‬را برمی گرداند‪.‬‬

‫‪3‬‬ ‫)‪max(tuple‬‬

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

‫‪4‬‬ ‫)‪min(tuple‬‬

‫آيتمی که دارای کم ترين مقدار می باشد را برمی گرداند‪.‬‬

‫‪5‬‬ ‫)‪tuple(seq‬‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪84‬‬

‫نوع داده ای ‪ Dictionary‬در پایتون‬

‫نوع داده ای ‪ dictionary‬در زبان همه منظوره ی پایتون شبیه به نوع جدول ‪ hash‬شده می باشد‪.‬‬
‫آنها مانند ‪( associative arrays‬آرایه های انجمنی) یا ‪ hash‬ها در ‪ perl‬هستند‪ .‬دیکشنری ها می‬

‫توانند هر نوعی از داده باشند‪ ،‬اما غالبا از نوع داده ی عددی یا رشته ای هستند‪ .‬دیشکنری ها با‬
‫کروشه یا کاراکتر {} تعریف می شوند و جهت دسترسی به مقادیر آن بایستی از آکولاد یا عملگر ][‬

‫کمک گرفت‪.‬‬

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

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

‫در پایتون‪ ،‬یک ‪ dictionary‬می تواند کاملا تهی باشد و هیچ مقداری داخل کروشه ی آن قرار نگیرد‪،‬‬
‫بدین صورت‪. {}:‬‬

‫در نوع داده ای ‪ ،dictionary‬کلید ها اسم های منحصر بفرد هستند (در حالی که مقادیر منحصر‬

‫بفرد نیستند)‪ .‬مقادیر ‪ dictionary‬می تواند از هر نوعی باشد‪ ،‬اما کلیدها بایستی از نوع داده های‬
‫غیرقابل تغییر مانند ‪ list ،tuple‬و عدد باشد‪.‬‬

‫دسترسی به مقادیر در ‪dictionary‬‬


‫به منظور دسترسی به المان های یک ‪ ،dictionary‬لازم است از عملگر ][ و اسم (کلید) المان مورد‬
‫نظر استفاده کرد‪:‬‬

‫‪#!/usr/bin/python‬‬
‫;}'‪dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First‬‬
‫]'‪print "dict['Name']: ", dict['Name‬‬
‫]'‪print "dict['Age']: ", dict['Age‬‬
‫خروجی‪:‬‬

‫‪dict['Name']: Zara‬‬
‫‪dict['Age']: 7‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪85‬‬

‫اگر سعی کنید به یک آیتم داده ای دیکشنری با کلیدی که عضو ‪ dictionary‬نیست دسترسی پیدا‬
‫کنید‪ ،‬با خطا مواجه خواهید شد‪:‬‬

‫‪#!/usr/bin/python‬‬
‫;}'‪dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First‬‬
‫]'‪print "dict['Alice']: ", dict['Alice‬‬

‫نتیجه ی زیر را بدست می دهد‪:‬‬


‫‪dict['Zara']:‬‬
‫‪Traceback (most recent call last):‬‬
‫>‪File "test.py", line 4, in <module‬‬
‫;]'‪print "dict['Alice']: ", dict['Alice‬‬
‫'‪KeyError: 'Alice‬‬

‫بروز رسانی ‪dictionary‬‬


‫برای بروز رسانی دیکشنری بایستی اسم المان را داخل آکولاد‪ ،‬در سمت چپ عملگر تخصیص تایپ‬

‫کنید‪ ،‬سپس مقدار جدید را در سمت راست عملگر مزبور درج نمایید و یا جهت افزودن المان جدید‬
‫کلید المان را در سمت چپ عملگر و مقدار را در سمت راست تایپ کنید‪:‬‬

‫‪#!/usr/bin/python‬‬

‫;}'‪dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First‬‬


‫‪dict['Age'] = 8; # update existing entry‬‬
‫‪dict['School'] = "DPS School"; # Add new entry‬‬
‫]'‪print "dict['Age']: ", dict['Age‬‬
‫]'‪print "dict['School']: ", dict['School‬‬

‫خروجی‪:‬‬
‫‪dict['Age']: 8‬‬
‫‪dict['School']: DPS School‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪86‬‬

‫حذف المان های ‪dictionary‬‬


‫می توانید المان های یک ‪ dictionary‬را به صورت تکی پاک کنید یا تمامی محتویات آن را به‬
‫صورت یکجا حذف نمایید‪ .‬همچنین می توانید خود متغیر ‪ dictionary‬را به طور کلی و صریح حذف‬

‫نمایید‪.‬‬

‫جهت حذف یک متغیر ‪ dictionary‬به صورت صریح‪ ،‬از دستور ‪ del‬استفاده می کنیم‪.‬‬

‫‪#!/usr/bin/python‬‬
‫;}'‪dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First‬‬
‫'‪del dict['Name']; # remove entry with key 'Name‬‬
‫‪dict.clear(); # remove all entries in dict‬‬
‫; ‪del dict‬‬ ‫‪# delete entire dictionary‬‬
‫]'‪print "dict['Age']: ", dict['Age‬‬
‫]'‪print "dict['School']: ", dict['School‬‬

‫نتیجه ی زیر را بدست می دهد‪ .‬مشاهده می کنید که یک خطا رخ داده و آن مربوط به عدم وجود‬
‫‪ dictionary‬پس از اجرای دستور ‪ del dict‬می باشد‪.‬‬

‫‪dict['Age']:‬‬
‫‪Traceback (most recent call last):‬‬
‫>‪File "test.py", line 8, in <module‬‬
‫;]'‪print "dict['Age']: ", dict['Age‬‬
‫‪TypeError: 'type' object is unsubscriptable‬‬

‫خصیصه ی کلیدهای ‪dictionary‬‬


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

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

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

‫تواند به هیچ وجه تکراری باشد‪ .‬در صورت تخصیص دو کلید به یک مقدار‪ ،‬معمولا دومی به‬
‫عنوان کلید انتخاب می شود‪ .‬مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫;}'‪dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪87‬‬

‫]'‪print "dict['Name']: ", dict['Name‬‬


‫نتیجه‪:‬‬

‫‪dict['Name']: Manni‬‬

‫‪ .2‬کلیدها بایستی تغییر ناپدیر باشند (پس از ایجاد تغییر نکنند)‪ ،‬بدین معنا که می توانید از‬
‫رشته ها‪ ،‬اعداد یا ‪ tuple‬به عنوان کلید استفاده کنید‪ ،‬اما چیزی مانند ]' ‪ [' key‬مجاز نیست‪.‬‬

‫مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫;}‪dict = {['Name']: 'Zara', 'Age': 7‬‬
‫]'‪print "dict['Name']: ", dict['Name‬‬

‫نتیجه ی زیر بدست می آید‪:‬‬


‫‪Traceback (most recent call last):‬‬
‫>‪File "test.py", line 3, in <module‬‬
‫;}‪dict = {['Name']: 'Zara', 'Age': 7‬‬
‫‪TypeError: list objects are unhashable‬‬

‫توابع و متدهای توکار ‪Dictionary‬‬


‫شماره ی متد‬ ‫تابع مورد نظر به همراه شرح عملکرد آن‬

‫‪1‬‬ ‫)‪cmp(dict1, dict2‬‬

‫المان های دو متغير ‪ dictionary‬را با هم مقايسه می کند‪.‬‬

‫‪2‬‬ ‫)‪len(dict‬‬

‫طول يا تعداد کل آيتم های موجود در متغير ‪ dictionary‬را برمی گرداند‪.‬‬

‫‪3‬‬ ‫)‪str(dict‬‬

‫معادل رشته ای يک متغير ‪ dictionary‬را برمی گرداند‪ .‬در واقع يک ديکشنری را به رشته تبديل‬
‫می کند‪.‬‬

‫‪4‬‬ ‫)‪type(variable‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪88‬‬

‫نوع متغير ارسالی را بازمی گرداند‪ .‬اگر متغير پاس داده شده‪ dictionary ،‬بود در آن صورت‪ ،‬نوع‬
‫را ‪ dictionary‬مشخص می کند‪.‬‬

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

‫شماره ی متد‬ ‫شرح عملکرد متد‬

‫‪1‬‬ ‫)(‪dict.clear‬‬

‫کليه ی المان های متغير ‪ dictionary‬را حذف می کند‪.‬‬

‫‪2‬‬ ‫)(‪dict.copy‬‬

‫نسخه عينی (‪ )shallow copy‬از متغير ‪ dictionary‬بازمی گرداند‪.‬‬

‫در فرايند ‪ B ،shallow copying‬تمامی مقادير فيلد (‪ A )field value‬را کپی می کند‪ .‬اگر‬
‫مقدار فيلد يک آدرس حافظه باشد‪ ،‬تنها آدرس حافظه را دانلود می کند و اگر مقدار فيلد يک نوع‬
‫اوليه (‪ )primitive type‬باشد در آن صورت مقدار نوع اوليه را کپی می کند‪.‬‬

‫‪3‬‬ ‫)(‪dict.fromkeys‬‬

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

‫‪4‬‬ ‫)‪dict.get(key, default=None‬‬

‫اين متد کليد مورد نظر که توسط پارامتر اول مشخص می شود را در ‪ dictionary‬می يابد‪ ،‬در‬
‫صوت يافت نشدن مقدار مورد نظر‪ ،‬يک مقدار پيش فرض (که در پارامتر دوم تعريف می‬
‫شود) تعيين می کنيم که آن را برمی گرداند‪.‬‬

‫‪5‬‬ ‫)‪dict.has_key(key‬‬

‫در صورت يافتن کليد مورد نظر در ‪،dictionary‬که توسط پارامتر ‪ key‬مشخص می شود‪،‬‬
‫مقدار ‪ true‬برمی گرداند و در غير اين صورت ‪ false‬را بازيابی می نمايد‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪89‬‬

‫‪6‬‬ ‫)(‪dict.items‬‬

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

‫‪7‬‬ ‫)(‪dict.keys‬‬

‫ليستی از کليدهای متغير ‪ dictionary‬را برمی گرداند‪.‬‬

‫‪8‬‬ ‫)‪dict.setdefault(key, default=None‬‬

‫عملکردی مشابه متد )(‪ get‬دارد‪ ،‬با اين تفاوت که در صورت نيافتن مقدار مورد نظر‪ ،‬مقدار‬
‫پيش فرض که در پارامتر دوم تعريف می شود را برمی گرداند‪.‬‬

‫‪9‬‬ ‫)‪dict.update(dict2‬‬

‫جفت های کليد و مقدار ديکشنری ‪ dict2‬را به متغير ‪ dict‬اضافه می کند‪.‬‬

‫‪10‬‬ ‫)(‪dict.values‬‬

‫ليستی از مجموعه ی مقادير موجود در ‪ dictionary‬را بازيابی می کند‪.‬‬

‫تاریخ و زمان در پایتون‬

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

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

‫تاریخ در پایتون اعداد ممیز شناور هستند که در واحد ثانیه محاسبه می شوند‪ .‬برخی تاریخ ها در‬
‫واحد ثانیه و از ‪ 1970(epoch)، January 1،12:00am‬محاسبه می شوند (تعداد ثانیه های سپری شده‬

‫از تاریخ مزبور تاکنون)‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪90‬‬

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

‫مذکور زمان جاری سیستم را برحسب ثانیه های سپری شده از تاریخ ‪، January 1،12:00am‬‬
‫)‪ 1970(epoch‬تا زمان کنونی محاسبه کرده و برمی گرداند‪.‬مثال‪:‬‬

‫‪#!/usr/bin/python‬‬
‫‪import time; # This is required to include time module.‬‬

‫)(‪ticks = time.time‬‬
‫‪print "Number of ticks since 12:00am, January 1, 1970:", ticks‬‬
‫نتیجه ی زیر را بدست می دهد‪:‬‬

‫‪Number of ticks since 12:00am, January 1, 1970: 7186862.73399‬‬

‫بسیاری از توابع مربوط به ‪ time‬در پایتون‪ ،‬زمان را به صورت ‪ tuple‬نه تایی نمایش می دهند‪:‬‬

‫اندیس‬ ‫فیلد‬ ‫مقدار‬

‫‪4-digit year‬‬
‫‪0‬‬ ‫‪2008‬‬
‫(سال به صورت چهار رقمی)‬

‫‪1‬‬ ‫‪Month‬‬ ‫‪1 to 12‬‬

‫‪2‬‬ ‫‪Day‬‬ ‫‪1 to 31‬‬

‫‪3‬‬ ‫‪Hour‬‬ ‫‪0 to 23‬‬

‫‪4‬‬ ‫‪Minute‬‬ ‫‪0 to 59‬‬

‫‪5‬‬ ‫‪Second‬‬ ‫)‪0 to 61 (60 or 61 are leap-seconds‬‬

‫‪6‬‬ ‫‪Day of Week‬‬ ‫)‪0 to 6 (0 is Monday‬‬

‫‪7‬‬ ‫‪Day of year‬‬ ‫)‪1 to 366 (Julian day‬‬

‫‪8‬‬ ‫‪Daylight savings‬‬ ‫‪-1, 0, 1, -1 means library determines DST‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪91‬‬

‫(ساعات تابستانی)‬

‫‪ Tuple‬فوق معادل ساختار ‪ struct_time‬می باشد‪ .‬ساختار نام برده دارای ‪ attribute‬های زیر می‬
‫باشد‪:‬‬

‫اندیس‬ ‫‪Attribute‬‬ ‫مقدار‬

‫‪0‬‬ ‫‪tm_year‬‬ ‫‪2008‬‬

‫‪1‬‬ ‫‪tm_mon‬‬ ‫‪1 to 12‬‬

‫‪2‬‬ ‫‪tm_mday‬‬ ‫‪1 to 31‬‬

‫‪3‬‬ ‫‪tm_hour‬‬ ‫‪0 to 23‬‬

‫‪4‬‬ ‫‪tm_min‬‬ ‫‪0 to 59‬‬

‫‪5‬‬ ‫‪tm_sec‬‬ ‫‪0 to 61 (60 or 61 are leap-seconds‬ثانیه ی‬


‫کبیسه‪)/‬‬

‫‪6‬‬ ‫‪tm_wday‬‬ ‫)‪0 to 6 (0 is Monday‬‬

‫‪7‬‬ ‫‪tm_yday‬‬ ‫)‪1 to 366 (Julian day‬‬

‫‪8‬‬ ‫‪tm_isdst‬‬ ‫‪-1, 0, 1, -1 means library determines DST‬‬

‫بازیابی زمان جاری‬


‫برای تبدیل زمان از مقدار عددی ممیز شناور که در قالب تعداد ثانیه های سپری شده از تاریخ‬

‫‪ 1970 ، January 1،12:00am‬نمایش داده می شود‪ ،‬به فرمت ‪ tuple‬نه تایی‪ ،‬بایستی آن مقدار ممیز‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪92‬‬

‫شناور را به یک تابع (برای مثال ‪ )localtime‬پاس دهید‪ .‬این تابع در خروجی تاریخ را به صورت یک‬
‫‪ tuple‬نه تایی نمایش می دهد‪.‬‬

‫‪#!/usr/bin/python‬‬
‫;‪import time‬‬

‫))(‪localtime = time.localtime(time.time‬‬
‫‪print "Local current time :", localtime‬‬
‫نتیجه ی زیر حاصل می گردد‪:‬‬

‫‪Local current time : time.struct_time(tm_year=2013, tm_mon=7,‬‬


‫)‪tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0‬‬

‫بازیابی تاریخ فرمت شده‬


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

‫خوانا‪ ،‬متد )(‪ asctime‬می باشد‪:‬‬

‫‪#!/usr/bin/python‬‬
‫;‪import time‬‬

‫) ))(‪localtime = time.asctime( time.localtime(time.time‬‬


‫‪print "Local current time :", localtime‬‬

‫نتیجه‪:‬‬

‫‪Local current time : Tue Jan 13 10:17:09 2009‬‬

‫بازیابی و نمایش تقویم مربوط به ماه‬

‫ماژول ‪ calendar‬طیف وسیعی از متدها را برای کار با تقویم سالانه و ماهانه ارائه می دهد‪ .‬در‬

‫مثال زیر تقویم مربوط به ژانویه ی سال ‪ 2008‬نمایش داده شده است‪:‬‬

‫‪#!/usr/bin/python‬‬
‫‪import calendar‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪93‬‬

‫)‪cal = calendar.month(2008, 1‬‬


‫"‪print "Here is the calendar:‬‬
‫‪print cal‬‬

‫خروجی‪:‬‬

‫‪Here is the calendar:‬‬


‫‪January 2008‬‬
‫‪Mo Tu We Th Fr Sa Su‬‬
‫‪1 2 3 4 5 6‬‬
‫‪7 8 9 10 11 12 13‬‬
‫‪14 15 16 17 18 19 20‬‬
‫‪21 22 23 24 25 26 27‬‬
‫‪28 29 30 31‬‬

‫ماژول ‪time‬‬

‫در پایتون ماژولی به نام ‪ time‬وجود دارد که چندین تابع برای کار با زمان و تبدیل فرمت نمایش‬

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

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

‫‪time.altzone‬‬

‫‪The offset of the local DST timezone, in seconds west of UTC, if one is‬‬
‫‪1‬‬ ‫‪defined. This is negative if the local DST timezone is east of UTC (as in‬‬
‫‪Western Europe, including the UK). Only use this if daylight is nonzero.‬‬

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

‫)]‪time.asctime([tupletime‬‬

‫‪2‬‬ ‫این متد توابع ‪ gmtime‬یا ‪ localtime‬را به عنوان ورودی پذیرفته‪ ،‬سپس خروجی آن را به‬
‫صورت رشته ی ‪ 24‬کاراکتری برمی گرداند (برای مثال '‪.)'Tue Dec 11 18:07:14 2008‬‬

‫) (‪time.clock‬‬
‫‪3‬‬
‫زمان فعلی پردازنده را در قالب یک عدد ممیز شناور بر حسب ثانیه برمی گرداند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪94‬‬

‫)]‪time.ctime([secs‬‬

‫‪4‬‬ ‫در صورت داشتن پارامتر مانند تابع ))‪ asctime(localtime(secs‬عمل می کند و در‬
‫صورت دم تعریف پاس دادن پارامتر به آن مانند متد ) (‪ asctime‬عمل می کند‪.‬‬

‫)]‪time.gmtime([secs‬‬

‫‪5‬‬ ‫یک تاریخ را بر حسب ثانیه های سپری شده از تاریخ ‪ 1970‬به عنوان ورودی دریافت می‬
‫کند و در خروجی به صورت ‪ tuple‬نه تایی بر اساس زمان جهانی یا ‪ UTC‬برمی گرداند‪.‬‬

‫)]‪time.localtime([secs‬‬

‫‪6‬‬ ‫یک تاریخ را برحسب ثانیه های سپری شده از ‪1970‬به عنوان ورودی پذیرفته و در خروجی‬
‫به صورت ‪ tuple‬های نه تایی بر اساس زمان محلی برمی گرداند‪.‬‬

‫)‪time.mktime(tupletime‬‬

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

‫)‪time.sleep(secs‬‬

‫‪8‬‬ ‫تعداد ثانیه هایی که اجرا به صورت موقت متوقف می شود را به عنوان ورودی می‬
‫پذیرد‪ .‬اجرا را به مدت مشخص شده در پارامتر ورودی‪ ،‬متوقف می سازد‪.‬‬

‫)]‪time.strftime(fmt[,tupletime‬‬

‫‪9‬‬ ‫یک تاریخ را (بر اساس زمان محلی) در قالب ‪ tuple‬های نه تایی به عنوان ورودی‬
‫پذیرفته و آن را به صورت رشته (که فرمت آن توسط پارامتر ورودی اول مشخص می‬
‫شود) برمی گرداند‪.‬‬

‫)'‪time.strptime(str,fmt='%a %b %d %H:%M:%S %Y‬‬

‫‪10‬‬ ‫تاریخ را در قالب رشته به عنوان ورودی پذیرفته سپس آن را بر اساس فرمتی که پارامتر‬
‫‪ fmt‬مشخص می کند‪ parse ،‬می کند و به صورت ‪ tuple‬نه تایی برمی گراند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪95‬‬

‫) (‪time.time‬‬

‫‪11‬‬ ‫زمان جاری را به صورت عدد ممیز شناور برحسب ثانیه های سپری شده از تاریخ ‪1970‬‬
‫برمی گرداند‪.‬‬

‫‪ Attribute‬هایی که با ماژول ‪ time‬بکار می روند‪ ،‬به شرح زیر می باشند‪:‬‬

‫‪SN‬‬ ‫‪ Attribute‬و شرح آن‬

‫‪time.timezone‬‬

‫‪Attribute time.timezone is the offset in seconds of the local time zone‬‬


‫‪1‬‬ ‫‪(without DST) from UTC (>0 in the Americas; in most of Europe, Asia, Africa).‬‬

‫اختلاف زمانی ‪ UTC‬از زمان منطقه ای را (بدون درنظر گرفتن ساعت تابستانی یا ‪ )DTS‬محاسبه‬
‫کرده و بر حسب ثانیه برمی گرداند (در آمریکا ‪ >0‬و ‪ <=0‬در اروپا‪ ،‬آسیا و آفریقا)‪.‬‬

‫‪time.tzname‬‬

‫‪2‬‬ ‫‪Attribute time.tzname is a pair of locale-dependent strings, which are the‬‬


‫‪names of the local time zone without and with DST, respectively.‬‬

‫ماژول ‪calendar‬‬
‫ماژول ‪ calendar‬توابعی برای کار با تقویم ارائه می دهد که به وسیله ی آن می توان‪ ،‬به عنوان‬

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

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

‫روز آن درنظر می گیرد‪ .‬برای تغییر این روال پیش فرض‪ ،‬بایستی تابع )(‪calendar.setfirstweekday‬‬
‫را صدا بزنید‪.‬‬

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

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪96‬‬

‫شماره‬
‫تابع و شرح آن‬
‫ی متد‬

‫)‪calendar.calendar(year,w=2,l=1,c=6‬‬

‫تقویم سال را به صورت یک رشته ی چند خطی برمی گرداند که در آن سال با سه ستون‬
‫‪1‬‬
‫مشخص شده است و ستون ها با ‪( c‬تعداد فاصله ها) از هم جدا شده اند‪( w ،‬تعداد‬
‫کاراکترهای هر تاریخ) طول هر خط ‪ 21*w+18+2*c‬و ‪ L‬تعداد خطوط درنظر گرفته شده‬
‫برای هر هفته است‪.‬‬

‫) (‪calendar.firstweekday‬‬

‫‪2‬‬ ‫تنظیمات جاری برای روز اول هفته را برمی گرداند‪ .‬به صورت پیش فرض‪ ،‬هنگامی که‬
‫ماژول تقویم را ‪ import‬می کنید‪ ،‬اولین روز هفته بر روی ‪( 0‬دوشنبه) تنظیم می شود‪.‬‬

‫)‪calendar.isleap(year‬‬

‫‪3‬‬ ‫در صورتی که سال جاری‪ ،‬سال کبیسه باشد‪ ،‬مقدار ‪ true‬و در غیر این صورت مقدار‬
‫‪ false‬را برمی گرداند‪.‬‬

‫)‪calendar.leapdays(y1,y2‬‬

‫‪4‬‬ ‫تعداد کل روزهای کبیسه را بین دو سال مشخص شده در پارامتر ورودی‪ ،‬برمی گرداند‬
‫(‪.)y1,y2‬‬

‫)‪calendar.month(year,month,w=2,l=1‬‬

‫این تابع یک رشته چند خطی را برمی گرداند که در آن ‪ ،month‬شماره ی ماه سال و ‪،‬‬
‫‪5‬‬ ‫شماره ی ماه سال و ‪ year‬سال است‪ .‬سپس برای هر هفته یک خط به اضافه ی دو خط‬
‫برای ستون درنظرمی گیرد‪ W .‬تعداد کاراکترهای هر تاریخ و ‪ I‬تعداد خطوط هر هفته‪.‬‬
‫طول هر سطر برابر است با ‪.7*w+6‬‬

‫)‪calendar.monthcalendar(year,month‬‬

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

‫‪7‬‬ ‫)‪calendar.monthrange(year,month‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪249‬‬

‫پارامتر آدرس متغیر ‪( C‬از هر نوعی) که به * ‪ void‬تبدیل می‬


‫شود‪.‬‬

‫‪s‬‬ ‫*‪char‬‬
‫*‪ char‬که در انتهای خود ‪ 0‬داشته را به رشته ی ‪Python‬‬
‫تبدیل می نماید یا ‪ NULL‬را به ‪.None‬‬

‫یک رشته ی ‪ C‬و طول (‪ )length‬آن را به یک آبجکت ‪Python‬‬


‫تبدیل می کند‪ .‬اگر اشاره گر از نوع ‪)string pointer( string‬‬
‫‪s#‬‬ ‫‪char*+int‬‬
‫برابر ‪ NULL‬باشد‪ ،‬طول یا ‪ length‬نادیده گرفته شده و‬
‫‪ None‬در خروجی بازگردانی می کند‪.‬‬

‫یک رشته که در سطح زبان ‪ C‬تعریف شده و انتهای آن مقدار‬


‫‪ NULL‬وجود دارد را به یونیکد پایتون تبدیل کرده و اگر ‪NULL‬‬
‫بود آن را به ‪ None‬تبدیل می کند‪.‬‬
‫‪u‬‬ ‫*‪Py_UNICODE‬‬
‫‪ Buffer‬ای از داده های ‪ Unicode‬که انتهای آن ‪ null‬وجود‬
‫دارد را به آبجکت پایتون تبدیل می کند‪ .‬اگر ‪Unicode buffer‬‬
‫برابر ‪ NULL‬بود‪ ،‬در خروجی ‪ None‬بازیابی می شود‪.‬‬

‫یک رشته ی تعریف شده در سطح ‪ C‬و طول آن را به آبجکت‬


‫‪ Unicode‬پایتون تبدیل می کند یا ‪ NULL‬را به ‪ None‬تبدیل‬
‫می کند‪.‬‬

‫‪u#‬‬ ‫‪Py_UNICODE*+int‬‬ ‫به عبارت دیگر‪ ،‬یک ‪( Unicode‬که استانداردهای ‪ USC-2‬یا‬


‫‪ )UCS-4‬مستقر در ‪ buffer‬یا حافظه میانی و طول (‪)length‬‬
‫آن را به آبجکت ‪ Unicode‬پایتون تبدیل می کند‪ .‬اگر اشاره گر‬
‫به ‪ Unicode‬موجود در ‪ buffer‬برابر ‪ NULL‬بود‪ ،‬طول آن‬
‫نادیده گرفته شده و ‪ None‬را در خروجی برمی گرداند‪.‬‬

‫‪w#‬‬ ‫‪char*+int‬‬ ‫مشابه ‪ ،s#‬با این تفاوت که هر آبجکتی که اینترفیس ‪read-‬‬


‫‪ write‬را پیاده سازی می کند‪ ،‬می پذیرد‪ .‬متغیر * ‪ char‬طوری‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬


‫‪250‬‬

‫تنظیم شده که به اولین بایت از ‪ buffer‬اشاره کند و‬


‫‪ Py_ssize_t‬را بر روی طول ‪ buffer‬تنظیم می کند‪.‬‬

‫مشابه ‪ ،s‬با این تفاوت که ‪ None‬نیز می پذیرد (*‪ char‬در ‪C‬‬


‫‪z‬‬ ‫*‪char‬‬
‫را روی ‪ NULL‬تنظیم می کند)‪.‬‬

‫کاربردی مشابه ‪ s#‬دارد (*‪ char‬در ‪ C‬را بر روی ‪ NULL‬تنظیم‬


‫‪z#‬‬ ‫‪char*+int‬‬
‫می کند)‪.‬‬

‫از دنباله ی از مقادیر ‪ ،C‬یک متغیر ‪ tuple‬در پایتون می‬


‫)‪(...‬‬ ‫‪as per ...‬‬
‫سازد‪.‬‬

‫]‪[...‬‬ ‫‪as per ...‬‬ ‫از مقادیر ‪ ،C‬یک لیست (‪ )list‬در پایتون تولید می کند‪.‬‬

‫از دنباله ای از مقادیر ‪ ،C‬یک ‪ dictionary‬که المان های آن به‬


‫}‪{...‬‬ ‫‪as per ...‬‬ ‫صورت متناوب‪ ،‬کلید و مقدار‪ ،‬سازمان دهی شده‪ ،‬ایجاد می‬
‫کند‪.‬‬

‫به طور مثال تابع )‪ Py_BuildValue("{issi}",23,"zig","zag",42‬یک ‪ dictionary‬پایتون به صورت‬


‫}‪ {23:'zig','zag':42‬در خروجی تولید می کند‪.‬‬

‫آدرس آموزشگاه ‪ :‬تهران ‪ -‬خيابان شريعتی ‪ -‬باال تر از خيابان ملک ‪ -‬جنب بانک صادرات ‪ -‬پالک ‪ 651‬طبقه دوم ‪ -‬واحد‪7‬‬

‫‪88146323 - 88446780 - 88146330‬‬

You might also like