یسیونهمانرب 3 نوتیاپ...

20

Transcript of یسیونهمانرب 3 نوتیاپ...

Page 1: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب
Page 2: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

برنامه نویسی

با پایتون 3

Page 3: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

مولف

آموزش کاربردی میکروتیکMTCNA

برنامه نویسی با

نویسندهآلن‌بی‌داونی

مترجمغالمرضا‌صابری‌تبریزی

پایتون3

Page 4: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب
Page 5: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

»سپس، به کاتبان و نویسندگانت بنگر و بهترین آن ها را بر کارهای خود بگمار...

کاتبان و نویسندگانی برگزین که قدر خود را بشناسند، چون کسی که به قدر خود شناخت ندارد، دیگران

»گرفته شده از نامه ی 53 نهج البالغه به مالک اشتر«را هم نمی شناسد.«

اگرچه نوشتن و پرداختن زکات علم از توصیه های اکید بزرگان و گواه بر کرامت اهل دانش است؛ اما امروزه

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

این که چرا و به چه پشتوانه ای می نویسد، درخور تامل است.

بی توجه و نوآوری هرگونه از خالی که »زرد« اصطالح به کتاب های روزافزون چاپ که معتقدیم ما

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

باال و طویل کردن با هدف فروش نو قرار دادن مضمون های پر زرق و برق، دستاویز بی پرده آن که عنوان

سیاهه ی سابقه ی علمی، نمی تواند دلیل محکمی برای چاپ و نشر کتابی باشد که خواننده ی مشتاق با صرف

هزینه های نه چندان کم آن را تهیه می کند؛ به امید آن که چیزی از آن بیاموزد.

باید پذیرفت که انگیزه ی نوشتن کم از محتوای نوشته نیست و بین این دو رابطه ای مستقیم برقرار است.

اگر انگیزه ی نوشتن، تولید دانش باشد، بی شک نویسنده از قلم بی محتوا وکم عمق پرهیز می کند و اگر دغدغه ی

دانش و فرهنگ زخم خورده در میان باشد، ناشر تنها به عنوان پرطمطراق بسنده نمی کند.

و چقدر امروزه، فرهنگ و دانش این مرز و بوم که گرفتار آفت بی انگیزگی و زخم هوس است، نیازمند

ناشران و نویسندگانی است که نیت شان کمک به رشد دانش و ارتقای فرهنگ جامعه است و به راستی که

التیامی بر این درد نیست؛ مگر نویسندگانی که قدر خود و دیگران را می دانند و خوب می فهمند که کتاب، ابزار

سودجویی های مغرضانه نیست و می کوشند تا خود را از هرگونه شهوت نام و رسم و ثروت تهی کنند.

انتشارات دانشگاهی کیان خود را بری از عیب و خطا نمی داند؛ اما همواره بیش از پیش می کوشیم تا در

راستای تولید علم و نشر کتاب های پرمحتوا، دست نویسندگانی که انگیزه ی پاک دارند را بفشاریم و در کنارشان

باشیم و از خداوند متعال می خواهیم که در این مسیر صعب و پرخطر در سایه ی لطف و عنایت خود از آن چه به

عهده ی ما نهاده شده، سربلند و پیروز برآییم.

انتشارات دانشگاهی کیان

سخن ناشر

Page 6: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب
Page 7: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

تحصیلی رشته های بیشتر دانشجویان اصلی نیازهای از یکی که می کنیم زندگی در عصری ما

آشنایی با اصول و مبانی اولیه ی برنامه نویسی است. توانایی پیاده سازی ایده ها در قالب برنامه ها

بیشتر منابعی که در زمینه ی اما متاسفانه اکثر رشته ها در حد ضرورت است. نرم افزارها در و

زبان های برنامه نویسی تالیف یا ترجمه شده اند، فاقد مبانی، مفاهیم و ایده های ضروری هستند و

یک بینش کلی در اختیار مخاطب قرار نمی دهند؛ درنتیجه خواننده با مطالعه ی آنها تنها با َنحو یک

زبان برنامه نویسی و کتابخانه های آن آشنا می شود.

کتاب حاضر برای مرتفع کردن این نیاز ترجمه شده است. این کتاب با روشی بسیار ساخت یافته

به بررسی ایده ها، کلیدواژه ها و مفاهیم اصلی این حوزه می پردازد و برای بررسی عملی آنها از زبان

پایتون، که زبانی بسیار ساده و مناسب برای مبتدیان است، استفاده می کند.

در ترجمه ی کتاب تالش بر آن بوده است که تا حد امکان جانب امانت رها نشود، اما ترجیح

با برخورد نخستین در است ممکن نوآموزان چون شوند؛ حذف تمرین ها برخی که شده داده

تمرین های دشوار، دلسرد و ناامید شوند. هدف مترجم این بوده است که کتاب تا حد امکان برای

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

در است، دیده الزم مترجم که را توضیحاتی است. شده حذف مبتدی، خواننده برای دشواری

پاورقی با نشان –م افزوده و مشخص کرده است.

برای خوانندگانی که به حل تمرین ها و مطالب حذف شده عالقه دارند نیز نسخه ی پی دی اِف1

التین در لوح فشرده ضمیمه ی کتاب قرار داده شده است. لوح فشرده ی همراه کتاب حاوی پاسخ

تمرین ها، ویدیوی آموزشی پایتون، مفسر این زبان، دستورات نصب آن در سیستم عامل ویندوز

و کدهای موجود در کتاب نیز هست. البته خواننده ی تشنه لب آب را از سرچشمه خواهد نوشید و

آموختن زبان انگلیسی در این فرصت مغتنم به همه ی جویندگان توصیه می شود.

و نظرات اگر بود و سپاسگزار خواهیم نیست اشکال از کتاب خالی این ترجمه ی بی تردید،

انتقادات خود را درباره ی این کتاب به نشانی الکترونیکی مترجم ارسال نمایید تا در آثار آتی مورد

استفاده قرار گیرد.

غالمرضا صابری تبریزی[email protected]

http://www.saberynotes.com

1. PDF

سخن مترجم

Page 8: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

تقدیم هب رهکس هک بخواهد

Page 9: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

تاریخچه ی عجیب این کتابدر ژانویه 1999، در حال آماده شدن برای برگزاری یک کالس مقدماتی جاوا بودم. دفعه ی سومی بود که این کالس را برگزار می کردم و این کار برایم خسته کننده شده بود. تعداد دانشجویانی که در این درس مردود می شدند بسیار زیاد بود؛ به عالوه، دانش و مهارت

دانشجویانی هم که درس را با موفقیت می گذراندند بسیار اندک بود.از نظر من یکی از دالیل این مشکالت کتاب های موجود بودند. این کتاب های قطور، روش و راه درباره ی و بودند جاوا مورد در بسیاری غیرضروری جزییات حاوی این دیگر مشکل می دادند. قرار مخاطبان اختیار در کمی بسیار اطالعات برنامه نویسی کتاب ها این بود که فصل های ابتدایی شان ساده بود، اما به مرور، از حدود فصل پنج به بعد، ناگهان حجم اطالعات افزایش می یافت؛ به همین دلیل، دانشجو به یکباره با حجم وسیعی از اطالعات مواجه می شد که باید به سرعت آنها را فرا می گرفت و این امر موجب می شد وی

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

کتاب چند معیار داشتم:کوتاه بودن کتاب. ½دقت در استفاده از کلمات. سعی کردم دایره ی واژگان تخصصی را محدود کنم و هر ½

کلمه را وقتی به کار می برم تعریف کنم.به ½ مجبور مخاطب تا کوچک تر قسمت های به مشکل مطالب و سرفصل ها تقسیم

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

تاکید بر مفاهیم برنامه نویسی و نه زبان برنامه نویسی. بنابراین تنها از زیرمجموعه ی ½کوچکی از زبان جاوا استفاده کردم.

برای عنوان کتاب هم نام »چطور مثل یک کامپیوتردان فکر کنیم« را برگزیدم.اولین نسخه ی کتاب اشکاالت زیادی داشت، اما نتیجه مطلوب بود. دانشجویان با خواندن کتاب به اندازه ی کافی یاد می گرفتند و من می توانستم در کالس روی مباحث مشکل تر تمرکز

کنم و دانشجویان هم می توانستند تمرین کنند.

مقدمه مولف

Page 10: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

کتاب را تحت لیسانس مستندسازی آزاد GNU 1 منتشر کردم که به کاربران امکان می داد کتاب را کپی کنند، تغییر دهند و توزیع کنند.

پس از انتشار کتاب اتفاق جالبی افتاد؛ جف اِلکنِر2، که یک معلم دبیرستان در ویرجینیاست، زبان برنامه نویسی را که من در کتاب استفاده کردم به پایتون تغییر داد. سپس یک کپی از کتاب را برای من فرستاد؛ من با خواندن کتاب خودم پایتون را یاد گرفتم! سپس نسخه ی

اول کتاب پایتون را در انتشارات Green Tea در سال 2001 چاپ کردم.در سال 2003 در کالج اُلین3 شروع به تدریس کردم و برای اولین بار به تدریس پایتون پرداختم. نتیجه ی این کالس در مقابل کالس جاوا باورنکردنی بود. سردرگمی دانشجویان

کمتر شده بود و میزان مطالبی که آموخته بودند بیشتر بود. در سال های اخیر به توسعه ی کتاب ادامه دادم و سعی کردم ایرادات و اشتباهات آن را برطرف کنم، مثال ها را بهبود ببخشم و مطالب جدیدی به کتاب اضافه کنم؛ به خصوص تمرین های جدید. نتیجه ی این تغییرات کتاب حاضر است که عنوان آن را به »تفکر پایتونی4«

تغییر داده ام. ویژگی های جدید ویرایش دوم کتاب تفکر پایتونی در ادامه آمده است:

کتاب و همه کدهای آن برای استفاده از پایتون 3 به روز رسانی شده اند. ½چند بخش جدید به کتاب اضافه کرده ام. این بخش ها به مبتدیان کمک می کند پایتون ½

را در مرورگر وب5 خود اجرا کنند. در این حالت دیگر لزومی به نصب پایتون نیست، مگر اینکه خودتان بخواهید.

در فصل چهارم به جای بسته گرافیکی دنیای الکپشت ها که Swampy نام دارد و خودم ½کرده ام. استفاده turtle نام به پایتون استانداردتر ماژول یک از نوشته ام، را آن

نصب این ماژول ساده تر است و امکانات بیشتری دارد.فصل جدیدی به نام »تنقالت« به کتاب اضافه کرده ام. این فصل به بررسی چند امکان ½

اضافی پایتون که استفاده از آنها ضرورتی ندارد اما گاهی به کار می آیند می پردازد.درنهایت امیدوارم از خواندن کتاب لذت ببرید و دست کم اندکی در یادگیری چگونگی

برنامه نویسی و تفکر مانند یک کامپیوتردان به شما کمک کند.آلن. بی. داونی

1. GNU Free Documentation License2. Jeff Elkner3. Olin College4. Think Python5. Web browser

Page 11: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

فهرست مطالب

فصل اول: راه و روش برنامه نویسی 20 ............................................................................................................................................ برنامه چیست؟اجرای پایتون............................................................................................................................................... 21اولین برنامه................................................................................................................................................. 22عملگرهای حسابی....................................................................................................................................... 23مقادیر و انواع.............................................................................................................................................. 2324 ........................................................................................................................ زبان های صوری و طبیعی27 ................................................................................................................................................. اِشکال زدایی28 ....................................................................................................................................................... واژه نامه29 ........................................................................................................................................................ تمرین ها

فصل دوم: متغیرها، عبارات و دستورات 31 ..................................................................................................................................... دستورهای انتساب32 .................................................................................................................................................. نام متغیرها33 .................................................................................................................................... عبارات و دستوراتُمد اسکریپت................................................................................................................................................. 34اولویت عملگرها........................................................................................................................................... 3536 ..................................................................................................................................... عملگرهای رشته ایتوضیحات.................................................................................................................................................... 3737 ................................................................................................................................................. اشکال زداییخطاهای نحوی............................................................................................................................................ 3838 ..................................................................................................................................... خطاهای زمان اجراخطاهای معنایی........................................................................................................................................... 3839 ....................................................................................................................................................... واژه نامه40 ........................................................................................................................................................ تمرین ها

فصل سوم: توابع فراخوانی توابع............................................................................................................................................ 41توابع ریاضی............................................................................................................................................... 42ترکیب........................................................................................................................................................... 4344 ...................................................................................................................................... تعریف توابع جدید46 ................................................................................................................................ تعاریف و کاربرد آنها46 .................................................................................................................................................. جریان اجرا47 .............................................................................................................................. پارامتر ها و آرگومان هامتغیر ها و پارامتر ها محلی هستند............................................................................................................. 49نمودار پشته................................................................................................................................................. 49

Page 12: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

انواع توابع ................................................................................................................................................... 5152 ............................................................................................................................. مزایای استفاده از توابع52 ................................................................................................................................................. اشکال زدایی53 ....................................................................................................................................................... واژه نامه54 ........................................................................................................................................................ تمرین ها

فصل چهارم: مطالعه موردی: طراحی رابط 58 ..........................................................................................................................................turtle ماژولتکرار............................................................................................................................................................. 5960 ........................................................................................................................................................ تمرین ها61 .............................................................................................................................................. کپسوله سازی62 ............................................................................................................................................................ تعمیم63 ................................................................................................................................................ طراحی رابطبازآرایی ُکد.................................................................................................................................................. 6466 ................................................................................................................................................. طرح توسعه66 ............................................................................................................................................ رشته توصیفی67 ................................................................................................................................................. اشکال زدایی67 ....................................................................................................................................................... واژه نامه68 ........................................................................................................................................................ تمرین ها

فصل پنجم: دستورات شرطی و توابع بازگشتی 71 ...................................................................................................... عملگرهای تقسیم صحیح و باقی مانده72 ................................................................................................................................................ عبارات بولی73 ........................................................................................................................................ عملگر های منطقیاجرای شرطی.............................................................................................................................................. 74اجرای جایگزین........................................................................................................................................... 74شروط زنجیری........................................................................................................................................... 75شروط تو در تو............................................................................................................................................. 7576 ............................................................................................................................................ توابع بازگشتی78 .................................................................................................................. نمودار پشته ی توابع بازگشتیبازگشت بی نهایت........................................................................................................................................ 7979 ................................................................................................................... دریافت ورودی از صفحه کلید81 ................................................................................................................................................. اشکال زدایی82 ....................................................................................................................................................... واژه نامه83 ........................................................................................................................................................ تمرین ها

فهرست مطالب

Page 13: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

فهرست مطالب

فصل ششم: توابع ثمربخش مقادیر بازگشتی........................................................................................................................................... 85توسعه ی افزایشی........................................................................................................................................ 8790 ........................................................................................................................................................... ترکیب90 .................................................................................................................................................... توابع بولی91 ......................................................................................................................................... توابع بازگشتی 2ایمان.............................................................................................................................................................. 9394 .................................................................................................................................................... مثالی دیگر95 .................................................................................................................................... بررسی انوع داده ایاشکال زدایی.................................................................................................................................................. 96واژه نامه........................................................................................................................................................ 9898 ........................................................................................................................................................ تمرین ها

فصل هفتم: تکرار 101 ............................................................................................................................................ انتساب مجدد102 ................................................................................................................................ بروز رسانی متغیرها103 ......................................................................................................................................... while دستور105 ......................................................................................................................................... break دستورریشه دوم.................................................................................................................................................. 105107 ................................................................................................................................................. الگوریتم هااشکال زدایی............................................................................................................................................... 108واژه نامه..................................................................................................................................................... 109109 ..................................................................................................................................................... تمرین ها

فصل هشتم: رشته ها 111 ............................................................................................................................... رشته یک دنباله است112 ....................................................................................................................................................len تابع113 ............................................................................................................ for پیمایش با استفاده از حلقه114 ................................................................................................................................................ زیررشته ها115 .............................................................................................................................. رشته ها تغییر ناپذیرند116 ................................................................................................................................................. جست وجو116 ........................................................................................................................................ حلقه و شمارش117 ....................................................................................................................................... متدهای رشته ای118 ...................................................................................................................................................in عملگر119 ..................................................................................................................................... مقایسه ی رشته هااشکال زدایی............................................................................................................................................... 119واژه نامه..................................................................................................................................................... 122122 ..................................................................................................................................................... تمرین ها

فهرست مطالب

Page 14: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

فهرست مطالب

فصل نهم: مطالعه موردی: بازی کلمات خواندن لیست کلمات................................................................................................................................ 125127 ..................................................................................................................................................... تمرین ها128 ................................................................................................................................................. جست وجو129 ....................................................................................................................... استفاده از اندیس در حلقهاشکال زدایی............................................................................................................................................... 131واژه نامه..................................................................................................................................................... 132

فصل دهم: لیست ها لیست یک دنباله است............................................................................................................................... 133134 ................................................................................................................................. لیست ها تغییر پذیرندپیمایش لیست............................................................................................................................................ 135عملگر های لیست....................................................................................................................................... 136137 ........................................................................................................................................ ُبرش های لیست137 ........................................................................................................................................... متدهای لیست138 ............................................................................................................................. فیلتر، کاهش و نگاشت140 ............................................................................................................................................ حذف المان هالیست ها و رشته ها.................................................................................................................................... 141142 ............................................................................................................................................ اشیا و مقادیر144............................................................................................................................................... اسم مستعار145................................................................................................... استفاده از لیست ها به عنوان آرگوماناشکال زدایی............................................................................................................................................... 147واژه نامه..................................................................................................................................................... 148149 ..................................................................................................................................................... تمرین ها

فصل یازدهم: دیکشنری ها153 ..................................................................................................................... دیکشنری یک نگاشت است155....................................................................................... دیکشنری به عنوان مجموعه ای از شمارنده ها157 ...................................................................................................................................... دیکشنری و حلقهجست وجوی معکوس............................................................................................................................... 158159 ............................................................................................................................ دیکشنری ها و لیست ها161 ......................................................................................................................................................... مِموها163 ..................................................................................................................................... متغیر های عمومیاشکال زدایی................................................................................................................................................165166.................................................................................................. چاپ صورت مرتب و خوانای خروجیواژه نامه......................................................................................................................................................166167 ..................................................................................................................................................... تمرین ها

Page 15: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

فهرست مطالب

فصل دوازدهم: تاپل ها 169 ................................................................................................................................. تاپِل ها تغییرناپذیرند171 ............................................................................................................................................... انتساب تاپِل 172 ............................................................................................................. تاپِل ها به عنوان مقدار بازگشتیتاپِل آرگومان با طول متغیر.................................................................................................................... 173174 ...................................................................................................................................... لیست ها و تاپِل ها175 ............................................................................................................................... دیکشنری ها و تاپِل ها177 ..................................................................................................................................... دنباله های تودرتواشکال زدایی............................................................................................................................................... 178واژه نامه..................................................................................................................................................... 179180 ..................................................................................................................................................... تمرین ها

فصل سیزدهم: مطالعه موردی: انتخاب ساختمان داده 181 ................................................................................................................ تجزیه و تحلیل فراوانی کلمات182 ........................................................................................................................................... اعداد تصادفی184 .................................................................................................................................... هیستوگرام کلماترایج ترین کلمات........................................................................................................................................ 186پارامتر های اختیاری................................................................................................................................. 187تفریق دیکشنری........................................................................................................................................ 187188 ......................................................................................................................................... کلمات تصادفی189 .......................................................................................................................................... آنالیز مارکوف191 .................................................................................................................................... ساختمان های دادهاشکال زدایی............................................................................................................................................... 193واژه نامه..................................................................................................................................................... 195

فصل چهاردهم: فایل ها 197 ......................................................................................................................................................... پایاییخواندن و نوشتن...................................................................................................................................... 198عملگر قالب بندی........................................................................................................................................ 199200 ................................................................................................................................... نام و مسیر فایل ها202 ....................................................................................................................................... مدیریت استثناها203 ............................................................................................................................................ پایگاه داده ها 204 ....................................................................................................................................... pickle ماژول206 ........................................................................................................................................................ پایپ ها206 ........................................................................................................................................... نوشتن ماژولاشکال زدایی............................................................................................................................................... 208واژه نامه..................................................................................................................................................... 209210 ..................................................................................................................................................... تمرین ها

Page 16: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

فصل پانزدهم: کالس ها و اشیا 212 .................................................................................... انواع داده ای تعریف شده به وسیله برنامه نویسمستطیل ها.................................................................................................................................................. 214نمونه ها به عنوان مقدار بازگشتی توابع................................................................................................. 216216 ....................................................................................................................................... اشیا تغییرپذیر ندکپی کردن.................................................................................................................................................. 217اشکال زدایی............................................................................................................................................... 219واژه نامه..................................................................................................................................................... 220220 ..................................................................................................................................................... تمرین ها

فصل شانزدهم: کالس ها و توابع 224 ..............................................................................................................................................Time کالستوابع خنثی................................................................................................................................................. 224226 ............................................................................................................................................. تغییردهنده ها227 ......................................................................................................................... پیش نمونه در مقابل طرحاشکال زدایی............................................................................................................................................... 229واژه نامه..................................................................................................................................................... 230231 ..................................................................................................................................................... تمرین ها

فصل هفدهم: کالس ها و متدها شیء گرایی................................................................................................................................................. 233234 ................................................................................................................................................... چاپ اشیامثالی دیگر................................................................................................................................................. 236مثالی پیچیده تر.......................................................................................................................................... 237237 ..................................................................................................................................................init متد238 .......................................................................................................................................... __str__ متد239 .................................................................................................................................. سربارگذاری عملگر240 .................................................................................................................................. توزیع مبتنی بر نوعچندریختی.................................................................................................................................................. 241242 ................................................................................................................................... رابط و پیاده سازیاشکال زدایی............................................................................................................................................... 243واژه نامه..................................................................................................................................................... 244245 ..................................................................................................................................................... تمرین ها

فصل هجدهم: وراثت 248 .............................................................................................................................................Card اشیایصفات کالس............................................................................................................................................. 249250 ..................................................................................................................................... مقایسه ی کارت ها

فهرست مطالب

Page 17: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

فهرست مطالب

دسته ورق.................................................................................................................................................. 251چاپ دسته ها.............................................................................................................................................. 252اضافه، حذف ، ُبر زدن و مرتب کردن کارت ها....................................................................................... 253254 ......................................................................................................................................................... وراثت256 ............................................................................................................................................. نمودار کالس257 ................................................................................................................................ کپسوله سازی داده ها259 ............................................................................................................................................... اشکال زدایی260 ..................................................................................................................................................... واژه نامه261 ...................................................................................................................................................... تمرین ها

فصل نوزدهم: تنقالت عبارات شرطی........................................................................................................................................... 263لیست ساز................................................................................................................................................... 265عبارات مولد............................................................................................................................................... 266267 ............................................................................................................................................... all و any267 .................................................................................................................................................. مجموعه ها269 ..............................................................................................................................Counter نوع داده ای270 ................................................................................................................................defaultdict نوع272 ...................................................................................................................................namedtuple نوعگردآوری آرگومان های کلیدی................................................................................................................ 273275 ..................................................................................................................................................... واژه نامه

فصل بیستم: اشکال زدایی خطاهای نحوی.......................................................................................................................................... 278همواره برنامه را تغییر می دهم، اما مشکل رفع نمی شود..................................................................... 279280 ................................................................................................................................... خطاهای زمان اجرا281 ............................................................................................................................................ حلقه بی نهایتبازگشت بی نهایت...................................................................................................................................... 281282 ................................................................................................................................................ جریان اجراخطاهای معنایی......................................................................................................................................... 284

فهرست مطالب

Page 18: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب
Page 19: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

راه و روش برنامه نویسی

فصل 1

هدف این کتاب هدایت شما به منظور تفکر مانند یک کامپیوتردان است. این روش تفکر، برخی از بهترین ویژگی های ریاضیات، مهندسی و علوم طبیعی را با هم ترکیب می کند. کامپیوتردان ها مانند ایده هایشان استفاده می کنند؛ مانند مهندسان ارایه از زبان های صوری1 به منظور ریاضی دانان، موجودیت هایی را طراحی کرده، با کنارهم قراردادن اجزا سیستم ها را شکل می دهند و به بررسی روش های گوناگون حل مسایل می پردازند و مانند دانشمندان با مشاهده رفتار سیستم های پیچیده

فرضیاتی2 را در نظر گرفته و به بررسی آنها می پردازند.توانایی معنای به مساله حل است. مساله3 حل توانایی کامپیوتردان، یک ویژگی مهم ترین آنهاست. واضح و دقیق و شرح راه حل ها مورد در تفکر خالقانه مساله، کردن صورت فرموله درواقع فرایند یادگیری برنامه نویسی، فرصتی عالی برای بهبود توانایی های حل مساله است. به

همین علت فصل جاری، راه و روش برنامه نویسی نام گذاری شده است.

1. Formal Languages2. Hypothesis3. Problem Solving

Page 20: یسیونهمانرب 3 نوتیاپ ابkianpub.com/sites/default/files/pdf/kianpub_python3.pdf · ...رامگب دوخ یاهراک رب ار اهنآ نیرتهب و رگنب

20

ن 3تو

پایبا

ی س

ویه ن

نامبر

در این کتاب از یک سو برنامه نویسی را می آموزید، که به خودی خود مهارتی کاربردی است، و از سوی دیگر از برنامه نویسی به عنوان وسیله-هدف1 استفاده می کنید. با مطالعه کتاب، هدف

برایتان روشن تر خواهد شد.

برنامه چیست؟برنامه2 دنباله ای از دستورات است که چگونگی انجام رایانش3 را مشخص می کند. رایانش ممکن است مانند حل مجموعه ای از معادالت خاص یا پیداکردن ریشه های یک چندجمله ای4 به ریاضیات مربوط باشد؛ یا مثل جست وجو و جایگزینی متن در یک سند یا انجام یک عملیات گرافیکی مانند

پخش ویدیو، نمادین5 باشد.جزییات زبان های برنامه نویسی مختلف متفاوت است؛ اما تمامی آنها در مواردی با یکدیگر مشترک اند:

ورودی6: دریافت داده از صفحه کلید، فایل، شبکه یا هر دستگاه دیگر. ½خروجی7: نمایش داده ها روی صفحه، ذخیره آنها در فایل، ارسال آنها به شبکه یا منابع دیگر. ½عملگرهای ریاضی: انجام اعمال پایه ریاضی مانند جمع و ضرب. ½اجرای شرطی8 : اجرای برخی از کدها بر اساس برقرار بودن یک شرط خاص. ½حلقه9: تکرار مجموعه ای از دستورات. ½

انجام دهید برنامه نویسی با یک زبان اما همه کارهایی که می توانید نکنید باور ممکن است همین ها هستند. در واقع هر برنامه ساده یا پیچیده ای که تا به حال استفاده کرده اید از این اجزا تشکیل شده است. بنابراین می توان برنامه نویسی را فرایند تقسیم عملی بزرگ و پیچیده، به اعمالی کوچک در نظر گرفت. این فرایند تاجایی ادامه می یابد که اعمال کوچک تر آنقدر ساده شوند که با استفاده

از دستورات اولیه قابل انجام باشند.

1. معادل اصطالح Means to an end به معنای وسیله یا ابزاری که برای دست یافتن به هدفی خاص از آن استفاده می شود –م.2. Program3. Computation4. Polynomial5. Symbolic6. Input7. Output8. Conditional Execution 9. Repetition

سینوی

مه رنا

ش برو

و راه

ل: او

ل ص

ف

اجرای پایتون1کامپیوتر به آن روی نرم افزارهای مربوط پایتون، نصب آن و با کار از چالش های شروع یکی است. اگر با سیستم عامل2 کامپیوترتان آشنایی دارید و به خصوص اگر با رابط خط فرمان3 راحت هستید، مشکلی برای نصب پایتون نخواهید داشت. اما برای تازه کاران، یادگیری مدیریت سیستم و

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

وقتی با پایتون آشنا شدید، چگونگی نصب آن را به شما خواهم گفت.وب سایت های مختلفی وجود دارند که امکان اجرای کدهای پایتون در مرورگر وب را در اختیارتان قرار می دهند. اگر پیشتر با این وب سایت ها آشنا شده اید و گزینه خاصی را مد نظر دارید می توانید از آن استفاده کنید. در غیر این صورت پیشنهاد من PythonAnywhere است. دستورالعمل های مربوط

به چگونگی استفاده از این سرویس در سی دی همراه کتاب موجود است.زبان پایتون دو نسخه متفاوت دارد، که یکی پایتون 2 و دیگری پایتون 3 نامیده می شود. این دو نسخه شباهت بسیاری به هم دارند، در نتیجه اگر یکی را یاد بگیرید، یادگیری و استفاده از نسخه دیگر ساده است و در واقع، به عنوان یک تازه کار با تفاوت های اندکی روبه رو خواهید شد.

در این کتاب از پایتون 3 استفاده می کنیم، اما نکاتی درباره پایتون 2 هم خواهیم گفت.ُمَفسر4 پایتون، برنامه ای است که کدهای پایتون را خوانده و اجرا می کند. بسته به محیطی5 که استفاده می کنید، ممکن است مفسر را با کلیک روی یک آیکون، یا با تایپ python در رابط خط

فرمان اجرا کنید. وقتی مفسر اجرا می شود، خروجی شبیه به عبارات زیر را خواهید دید:Python 3.4.0 (default, Jun 19 2015, 14:20:21)

[GCC 4.8.2] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

سه خط اول حاوی اطالعات مربوط به مفسر و سیستم عاملی هستند که مفسر روی آن اجرا می شود، بنابراین ممکن است در کامپیوتر شما متفاوت باشند. اما باید شماره نسخه را بررسی

1. Python2. Operating System

3. معادل Command-Line Interface است. این عبارت در سیستم های عامل خانواده ویندوز به پنجره cmd و در سیستم های عامل خانواده یونیکس به پوسته )Shell( ارجاع دارد –م.

4. Interpreter

5. منظور نویسنده سیستم عامل یا ابزار مورد استفاده برای اجرای مفسر پایتون است. برای مثال ممکن است از ویندوز یا لینوکس استفاده کنید، یا کدها را در مرورگر وب تایپ کنید-م.