فهرست عناوین کتاب خودآموز زبان پایتون بصورت خلاصه نشده
فهرست عناوین....................................................................................... 3
مقدمه مترجم........................................................................................ 18
درباره پایتون.......................................................................................................... 18
جایگاه پایتون در ایران............................................................................................ 19
منشا لغت پایتون و رویکرد واژهگزینی در ترجمه این کتاب........................................ 20
در مورد این کتاب.................................................................................................... 21
درباره نویسنده....................................................................................................... 22
مقدمه مؤلف.......................................................................................... 23
مخاطبین این کتاب................................................................................................. 23
رئوس موضوعات..................................................................................................... 24
هشدارها و نکتهها................................................................................................... 24
نسخههای مختلف پایتون......................................................................................... 24
مثالها و تمرینهای مطرح شده در کتاب.................................................................. 24
فصل 1................................................................................................. 25
مروری بر پایتون....................................................................................................... 25
مقایسه پایتون با زبانهای دیگر............................................................................... 26
چرا پایتون؟............................................................................................................. 29
چه موقع از پایتون استفاده نکنیم؟........................................................................... 30
پایتون 2 در مقابل پایتون 3...................................................................................... 31
نصب پایتون............................................................................................................ 32
اجراء پایتون............................................................................................................ 32
استفاده از مفسر محاورهای..................................................................................... 33
استفاده از فایلهای پایتون.................................................................................... 34
م بعدی چیست؟............................................................................................... 34
اندرزهایی از مکتب پایتون....................................................................................... 35
فعالیتها................................................................................................................. 36
فصل 2................................................................................................. 37
اجزاء پایتون: اعداد، رشتهها، و متغیرها.................................................................. 37
متغیرها، نامها، و اشیاء............................................................................................. 38
اعداد...................................................................................................................... 41
اعداد صحیح........................................................................................................ 42
تقدم عملگرها....................................................................................................... 46
مبناها.................................................................................................................. 46
تبدیل گونهها........................................................................................................ 48
یک عدد int چقدر میتواند بزرگ باشد؟.................................................................. 50
اعداد ممیز-شناور................................................................................................. 51
توابع ریاضی........................................................................................................ 51
رشتهها................................................................................................................... 51
ایجاد رشتهها با کوتِیشن....................................................................................... 52
تبدیل گونههای دیگر به رشته با استفاده از تابع str()............................................... 55
گریز حروف با استفاده از \..................................................................................... 55
ترکیب رشتهها با +............................................................................................... 56
تکثیر رشتهها با *................................................................................................. 57
استخراج حروف با استفاده از [ ]............................................................................. 57
بُرش رشتهها بوسیله ]گام :پایان :شروع[................................................................ 58
فعالیتها............................................................................................................. 67
فصل 3................................................................................................. 68
لیستها، چندگانهها، دیکشنریها، و مجموعهها.................................................... 68
لیستها و چندگانهها............................................................................................... 68
لیستها.................................................................................................................. 69
ایجاد لیست با[ ] ، و list().................................................................................... 69
تبدیل گونههای دیگر به لیست با استفاده از تابع list()............................................. 70
گرفتن یک عضو توسط ]آفسِت[............................................................................. 71
لیستی از لیستها.................................................................................................. 71
تغییر اعضاء توسط ] آفسِت[.................................................................................. 72
استفاده از بُرش برای استخراج اعضایی که در یک بُرد معین قرار دارند...................... 73
اضافه کردن اقلام به انتهای یک لیست توسط تابع append().................................. 73
ترکیب لیستها با یکدیگر توسط تابع extend() و یا +=.......................................... 73
اضافه کردن یک عضو جدید با دادن آفسِت آن به تابع insert()................................ 74
حذف یک عضو توسط del با مشخص کردن آفسِت آن............................................. 75
حذف یک عضو توسط مقدار آن با استفاده از تابع remove()..................................... 75
گرفتن یک عضو توسط آفسِت ، و حذف آن با تابع pop()........................................ 76
یافتن آفسِت یک آیتم با دادن مقدار آن به تابع index()........................................... 76
بررسی اینکه آیا مقدار مشخصی در یک لیست وجود دارد توسط in............................ 77
شمارش تعداد مقادیری که در یک لیست ظاهر میشوند توسط تابع count()............. 77
بهمچسباندن اعضای لیست بصورت یک رشته با تابع join().................................... 77
مرتب کردن آیتمها توسط تابع sort().................................................................... 78
گرفتن طول لیست توسط تابع len()...................................................................... 79
نسبتدهی لیستها با =، و کپی آنها توسط تابع copy()............................................ 79
چندگانهها............................................................................................................... 81
ایجاد یک چندگانه توسط ()................................................................................... 81
مقایسه چندگانهها و لیستها................................................................................. 82
دیکشنریها............................................................................................................ 83
ایجاد یک دیکشنری با {}...................................................................................... 83
تبدیل به یک دیکشنری با استفاده از تابع تبدیل dict()............................................ 84
اضافه کردن یا تغییر یک آیتم توسط ]کلید[............................................................. 85
ترکیب دیکشنریها با هم توسط تابع update()...................................................... 87
حذف یک آیتم بوسیله کلید آن توسط del................................................................ 88
حذف کلیه آیتمها با استفاده از تابع clear()............................................................. 88
بررسی اینکه آیا کلیدی در یک دیکشنری وجود دارد توسط in................................... 88
گرفتن یک آیتم توسط ]کلید[................................................................................. 89
گرفتن کلیه کلیدهای یک دیکشنری توسط تابع keys()............................................ 90
گرفتن کلیه جفتهای کلید-مقدار توسط تابع items().............................................. 91
نسبت دهی دیکشنریها با =، کپی آنها با copy()..................................................... 91
مجموعهها............................................................................................................... 91
ایجاد یک مجموعه توسط set()............................................................................ 92
تبدیل گونههای دیگر به یک مجموعه توسط تابع set()............................................ 93
بررسی اینکه آیا مقدار خاصی در یک مجموعه قرار دارد توسط in.............................. 94
ترکیب مجموعهها و عملگرهای آن.......................................................................... 95
مقایسه ساختارهای مختلف داده............................................................................... 98
ساختن ساختارهای بزرگتر...................................................................................... 99
فعالیتها.............................................................................................................. 100
تمرینها............................................................................................................ 100
فصل 4.............................................................................................. 103
ساختار برنامههای پایتون..................................................................................... 103
توضیح گذاری با #................................................................................................ 103
ادامه خطوط با \.................................................................................................... 104
مقایسه عبارات با if، elif، و else......................................................................... 105
چه چیزی True است؟........................................................................................ 109
تکرار با while..................................................................................................... 110
خارج شدن از حلقه با break............................................................................... 111
پرش از روی مرحله فعلی با continue................................................................. 111
بررسی اینکه آیا از break استفاده شده توسط else............................................... 112
تکرار با for.......................................................................................................... 112
خروج از حلقه for با break................................................................................. 114
عبور از یک مرحله با continue........................................................................... 114
بررسی استفاده از break با else......................................................................... 115
تکرار چند دنباله باهم توسط تابع zip()................................................................ 115
تولید دنبالههای عددی توسط تابع range().......................................................... 116
تکرارکنندههای دیگر........................................................................................... 117
سازندهها.............................................................................................................. 118
لیست سازها...................................................................................................... 118
دیکشنریسازها................................................................................................. 121
مجموعهسازها.................................................................................................... 121
مولد سازها......................................................................................................... 122
توابع.................................................................................................................... 123
آرگومانهای مکانی............................................................................................. 128
آرگومانهای اسمی.............................................................................................. 128
تعیین مقدار پیشفرش برای یک پارامتر............................................................... 129
گرد آوری آرگومانهای مکانی توسط *.................................................................. 130
گرد آوری آرگومانهای اسمی توسط **................................................................. 131
رشتههای توصیف کننده یک تابع......................................................................... 132
توابع شهروندان درجه یک هستند........................................................................ 133
توابع درونی....................................................................................................... 135
بَستارها............................................................................................................. 136
توابع بینام، یا توابع لاندا.................................................................................... 137
مولدها.................................................................................................................. 139
آذیندهندهها........................................................................................................ 140
مفهوم فضاهای اسمی و حوزه............................................................................... 142
استفاده از _ و __ در نامها................................................................................. 145
رسیدگی به خطاها توسط try و except.......................................................... 146
ایجاد اعتراضات خودتان....................................................................................... 148
فعالیتها.............................................................................................................. 149
فصل 5.............................................................................................. 151
ماجولها، پکیجها و برنامهها................................................................................. 151
برنامههای خودکفا................................................................................................. 151
آرگومانهای خط فرمان......................................................................................... 152
ماجولها و دستور import................................................................................... 152
چگونه یک ماجول را در برنامه خود وارد کنیم......................................................... 152
وارد کردن یک ماجول با نام دیگری..................................................................... 155
وارد کردن آنچه مورد نیاز است از یک ماجول......................................................... 155
مسیر جستجوی ماجول....................................................................................... 155
پکیجها................................................................................................................. 156
کتابخانه استاندارد پایتون..................................................................................... 157
رسیدگی به کلیدهای ناموجود یک دیکشنری باsetdefault() و defaultdict()....... 158
شمردن آیتمها با تابع Counter()....................................................................... 160
مرتب کردن کلیدها توسط OrderedDict().......................................................... 162
پشته + صَف == صَف دو سر................................................................................ 163
تکرارکنندههای ماجول itertools......................................................................... 164
چاپ دقیق با استفاده از pprint()......................................................................... 165
کسب تواناییهای بیشتر با گرفتن برنامههای دیگری............................................. 166
فعالیتها.............................................................................................................. 166
فصل 6.............................................................................................. 168
اشیاء و کلاسها..................................................................................................... 168
اشیاء چیستند؟...................................................................................................... 168
تعریف یک کلاس تو سط class........................................................................... 169
وراثت.................................................................................................................. 171
بازنویسی یک متد................................................................................................. 173
اضافه کردن یک متد به یک زیر کلاس................................................................... 175
کمک گرفتن از والد بوسیله super....................................................................... 175
چرا باید از self استفاده کرد؟............................................................................... 177
خواندن و نوشتن مقدارِ خاصهها توسط ویژگیها................................................... 178
دستکاری نامها برای پنهان نگاه داشتن آنها......................................................... 181
انواع مِتُدها........................................................................................................... 182
چند ریختی........................................................................................................... 184
متدهای خاص....................................................................................................... 186
ترکیب.................................................................................................................. 189
چه موقع از کلاسها و اشیاء استفاده کنیم و چه موقع از ماجولها........................... 190
چندگانههای نامدار............................................................................................. 191
فعالیتها.............................................................................................................. 193
فصل 7.............................................................................................. 195
کار کردن با دادهها بصورت حرفهای.................................................................... 195
رشتههای متنی..................................................................................................... 195
یونیکُد.............................................................................................................. 195
کُدگذاری............................................................................................................ 201
فرمتبندی........................................................................................................ 205
جستجو با استفاده از عبارات باقاعده.................................................................... 210
دادههای باینری.................................................................................................... 219
بایتها و آرایههای بایتی...................................................................................... 220
تبدیل دادههای باینری توسط struct................................................................... 221
ابزارهای دیگر مربوط به دادههای باینری............................................................... 225
تبدیل بایتها/رشتهها با binascii()..................................................................... 226
عملیات بیتی...................................................................................................... 226
فعالیتها.............................................................................................................. 227
فصل 8.............................................................................................. 230
ذخیره سازی دادهها............................................................................................... 230
عملیات ورودی/خروجی بر روی فایلها.................................................................. 230
نوشتن در یک فایل متنی با write()..................................................................... 232
خواندن یک فایل متنی با توابع read()، readline()، و readlines()........................ 233
نوشتن در یک فایل باینری با write().................................................................. 236
نوشتن در یک فایل باینری با read ().................................................................. 236
بستن فایلها بصورت خودکار با استفاده از with..................................................... 237
تغییر موقعیت کنونی فایل با seek()..................................................................... 237
فایلهای متنی ساختیافته...................................................................................... 240
فایلهای CSV................................................................................................... 240
فایلهای XML................................................................................................... 243
HTML............................................................................................................. 245
JSON (جیسان)............................................................................................... 246
YAM............................................................................................................. 249
یک نکته امنیتی.................................................................................................. 250
فایلهای پیکرهبندی........................................................................................... 251
دیگر فرمتهای تبادل دادهها............................................................................... 252
سریالی کردن دادهها بوسیله pickle..................................................................... 253
فایلهای ساختیافته باینری................................................................................. 254
صفحات گسترده................................................................................................ 254
فایلهای HDF5................................................................................................. 254
پایگاههای دادهای رابطهای................................................................................... 255
SQL................................................................................................................ 257
APIهای مربوط به پایگاه داده.............................................................................. 259
SQLite............................................................................................................ 260
MySQL........................................................................................................... 262
PostgreSQL................................................................................................... 262
SQLAlchemy................................................................................................. 263
روشهای ذخیرهسازی غیرSQL............................................................................. 270
خانواده dbm..................................................................................................... 271
memcached................................................................................................... 272
Redis.............................................................................................................. 273
دیگر ذخیره کنندههای غیر SQL.......................................................................... 283
پایگاههای داده تمام- متن.................................................................................... 284
فعالیتها.............................................................................................................. 285
فصل 9.............................................................................................. 287
برنامه نویسی وِب در پایتون................................................................................. 287
سرویسگیرندههای وِب........................................................................................ 288
بررسی اتصال با telnet...................................................................................... 290
کتابخانههای استاندارد وِب در پایتون.................................................................... 291
فراتر از کتابخانه استاندارد: استفاده از ماجول requests........................................ 294
سرویسدهندههای وِب......................................................................................... 295
سادهترین شکل یک سرویسدهنده وب در پایتون................................................. 295
میانجیِ دروازهِ سرویسدهنده وِب......................................................................... 297
چهارچوبها....................................................................................................... 298
چهارچوب Bottle.............................................................................................. 299
Flask............................................................................................................... 302
سرویسدهندههای غیر- پایتونی.......................................................................... 307
دیگر چهارچوبهای وب در پایتون....................................................................... 309
سرویسهای وِب و اوتوماسیون.......................................................................... 311
ماجول webbrowser....................................................................................... 311
APIهای وِب، و انتقال حالت نمایشی..................................................................... 312
JSON.............................................................................................................. 313
Crawl و Scrape.............................................................................................. 313
استخراج دادههای HTML با BeautifulSoup.................................................... 314
فعالیتها.............................................................................................................. 315
فصل 10............................................................................................ 317
سیستم.................................................................................................................... 317
فایلها.................................................................................................................. 317
ایجاد یک فایل با open().................................................................................. 317
بررسی موجود بودن با استفاده از exists()............................................................ 318
بررسی گونه با استفاده از isfile()،isdir()............................................................. 318
کپی فایلها با استفاده از copy().......................................................................... 319
تغییر نام با استفاده از rename()........................................................................ 319
ایجاد پیوند با استفاده ازlink() و symlink()........................................................ 319
تغییر مجوز با chmod()..................................................................................... 320
تغییر مالکیت با chown()................................................................................... 320
گرفتن نام مسیر با abspath()............................................................................ 321
گرفتن مسیر یک لینک سمبولیک با realpath().................................................... 321
حذف یک فایل با remove()............................................................................... 321
دایرکتوریها......................................................................................................... 321
ایجاد یک دایرکتوری با mkdir().......................................................................... 321
حذف یک دایرکتوری با rmdir()........................................................................... 322
فهرست کردن محتوای یک دایرکتوری با listdir()................................................. 322
تغییر دایرکتوری جاری با chdir()........................................................................ 322
فهرست کردن فایلهایی که با یک الگو مطابقت دارند توسط glob()........................ 323
برنامهها و پروسهها............................................................................................... 323
ایجاد یک پروسه با استفاده از subprocess........................................................ 324
ایجاد یک پروسه با استفاده از چندپردازی............................................................. 326
به پایان رساندن یک پروسه با terminate()........................................................ 327
تقویمها و ساعتها............................................................................................... 328
ماجول datetime............................................................................................... 329
استفاده از ماجول time....................................................................................... 332
خواندن و نوشتن تاریخها و زمانها....................................................................... 334
ماجولهای دیگر برای تاریخ و زبان...................................................................... 337
فعالیتها.............................................................................................................. 337
فصل 11............................................................................................ 339
همزمانی و شبکه.................................................................................................... 339
همزمانی............................................................................................................... 340
صفها............................................................................................................... 341
پروسهها............................................................................................................ 343
ریسهها................................................................................................................ 344
ریسههای سبز و رویدادها.................................................................................... 347
تابیدهها............................................................................................................. 350
asyncio........................................................................................................... 352
Redis.............................................................................................................. 353
فراتر از صفها................................................................................................... 357
شبکهها................................................................................................................ 358
الگوها................................................................................................................ 358
مدل انتشار-دریافت............................................................................................ 359
TCP/IP............................................................................................................ 363
سوکتها............................................................................................................ 365
ZeroMQ.......................................................................................................... 370
Scapy............................................................................................................. 375
سرویسهای اینترنتی......................................................................................... 376
سرویسهای وِب و APIها................................................................................... 378
پردازش از راه دور............................................................................................... 379
دادههای بزرگ و MapReduce........................................................................... 386
کار در میان ابرها................................................................................................ 387
فعالیتها.............................................................................................................. 392
فصل 12............................................................................................ 393
چگونه یک برنامهنویس پایتونِ واقعی شوید....................................................... 393
نکاتی درباره برنامهنویسی..................................................................................... 393
یافتن برنامههای پایتون........................................................................................ 394
چگونگی نصب پکیجها.......................................................................................... 395
استفاده از pip.................................................................................................... 395
استفاده از مدیریت پکیج..................................................................................... 397
نصب پکیج با استفاده از منبع پکیج...................................................................... 397
محیطهای توسعه یکپارچه.................................................................................... 397
IDLE................................................................................................................ 398
PyCharm........................................................................................................ 398
iPython........................................................................................................... 398
نامگذارهای مناسب و مستند سازی....................................................................... 398
آزمایش برنامهها................................................................................................... 400
بررسی برنامهها با pylint، pyflakes، و pep8...................................................... 401
بررسی برنامهها با unittest................................................................................ 403
بررسی برنامهها با doctest................................................................................ 408
بررسی برنامهها با nose..................................................................................... 409
چهارچوبهای آزمایشی دیگر............................................................................... 410
یکپارچهسازی پیوسته (Continuous Integration)................................................ 410
اشکالزدایی برنامههای پایتون.............................................................................. 411
اشکالزدایی با استفاده از pdb............................................................................... 412
ثبت پیامهای خطا................................................................................................. 419
بهینهسازی برنامهها.............................................................................................. 422
اندازهگیری زمان................................................................................................. 422
الگوریتمها و ساختارهای داده............................................................................... 425
Cython، NumPy، و گسترش پایتون توسط زبان C............................................ 426
PyPy............................................................................................................... 426
کنترل منبع........................................................................................................... 427
Mercurial........................................................................................................ 427
Git................................................................................................................... 428
برنامههای این کتاب............................................................................................. 431
منابع بیشتر برای یادگیری پایتون.......................................................................... 431
کتابها.............................................................................................................. 431
وبسایتها........................................................................................................ 431
ضمیمههای این کتاب.......................................................................................... 432
ضمیمه A........................................................................................... 433
کاربرد پایتون در هنر............................................................................................. 433
گرافیک 2-بُعدی.................................................................................................. 433
کتابخانه استاندارد.............................................................................................. 433
PIL و Pillow.................................................................................................... 434
ImageMagick................................................................................................. 437
رابطهای گرافیکی کاربر (GUI)............................................................................. 438
Qt.................................................................................................................... 439
GTK+.............................................................................................................. 439
WxPython...................................................................................................... 439
Kivy................................................................................................................ 439
Web................................................................................................................ 439
گرافیک 3-بعدی و انیمیشن.................................................................................. 440
Blender.......................................................................................................... 442
Maya............................................................................................................... 442
Houdini.......................................................................................................... 443
ترسیمات، نمودارها، و تجسم دادهها...................................................................... 443
matplotlib....................................................................................................... 443
Bokeh............................................................................................................. 444
بازیها................................................................................................................. 445
صوت و موسیقی................................................................................................... 445
ضمیمه B........................................................................................... 446
کاربرد پایتون در تجارت و کسب و کار............................................................... 446
مجموعه نرمافزارهای اداری مایکروسافت............................................................. 446
انجام کارهای تجاری........................................................................................... 448
پردازش دادههای تجاری...................................................................................... 448
استخراج، ارسال، و بارگذاری دادهها..................................................................... 449
پایتون در امور مالی............................................................................................... 451
امنیت دادههای تجاری.......................................................................................... 451
نقشهها................................................................................................................. 452
فرمتها............................................................................................................. 452
ترسیم یک نقشه................................................................................................ 454
ضمیمه C........................................................................................... 457
کاربرد پایتون در علوم.......................................................................................... 457
ریاضیات و آمار در کتابخانه استاندارد.................................................................... 457
توابع ریاضی...................................................................................................... 457
کار با اعداد مختلط.............................................................................................. 459
محاسبه دقیق اعداد اعشاری با decimal.............................................................. 460
انجام محاسبات گویا با کسرها............................................................................ 461
استفاده از دنبالههای بستهبندی شده با آرایهها....................................................... 461
انجام عملیات آماری ساده توسط statistics......................................................... 462
ضرب ماتریسها................................................................................................ 462
نسخههای علمی پایتون........................................................................................ 462
NumPy.............................................................................................................. 463
ایجاد یک آرایه با array()................................................................................... 464
ایجاد یک آرایه با arrange().............................................................................. 465
ایجاد یک آرایه با zeros()، ones()، یا random()............................................... 466
تغییر شکل یک آرایه با reshape()...................................................................... 467
گرفتن یک عضو از آرایه توسط []........................................................................ 468
ریاضیات آرایهها................................................................................................. 469
جبر خطی.......................................................................................................... 470
کتابخانه SciPy................................................................................................... 471
کتابخانه SciKit.................................................................................................. 471
کتابخانه IPython............................................................................................... 472
یک مفسر بهتر................................................................................................... 472
کتابچه IPython................................................................................................ 474
Pandas............................................................................................................. 476
کابرد پایتون در حوزههای علمیِ خاص................................................................... 477
ضمیمه D........................................................................................... 479
نصب پایتون 3....................................................................................................... 479
نصب پایتون استاندارد.......................................................................................... 479
Mac OS X....................................................................................................... 483
Windows........................................................................................................ 483
Linux و Unix................................................................................................... 484
نصب Anaconda............................................................................................... 484
نصب و کاربرد pip و virtualenv..................................................................... 488
نصب و کاربرد conda.......................................................................................... 488
ضمیمه E........................................................................................... 489
پاسخ تمرینها...................................................................................................... 489