آموزش برنامه نویسی Python 3.7
( این کتاب ناموجود است )
حسین یعسوبی
شابک: 7-97-8201-600-978
راهنمای مبتدیها در برنامهنویسی، علم داده، و توسعه وب
490
149,000 تومان
170,000 تومان
-
+
نوبت چاپ | یک |
---|---|
ویرایش | یک |
وزن | 700 گرم |
جلد | 1 از 1 |
موجود است؟ | خیر |
---|---|
چاپ شده است؟ | بلی |
در حال پیش فروش است؟ | خیر |
کتاب الکترونیکی است؟ | خیر |
این کتاب، جزو پرفروشترین کتابهای آموزش پایتون است که تاکنون به چاپ رسیده است. رومانو، برنامهنویسی قابل، و توسعهدهندهای بهنام در انواع زبانهای برنامهنویسی است. کتاب به شیوهای نوشته شده که برای تازه واردان به دنیای برنامهنویسی هم قابل استفاده باشد. به مرور، وارد مباحث کاربردی و تکنیکی میشود و با ارائه انواع مثالها، خواننده را به چالش میکشد. در فصلهای انتهایی هم وارد دیباگکردن و علم داده و توسعه وب و چند فریمورک مشهور پایتون میشود. ترجمه روان کتاب نیز میتواند آنرا به یک مرجع درسی دانشگاهی مناسب برای انواع رشتهها تبدیل کند.
تقدیم به 3
سخن مترجم (ناشر) 4
فهرست 5
پیشگفتار 15
کتاب برای چه کسانی مفید است 16
محتویات کتاب 16
بهرهبرداری بیشتر از کتاب 17
دانلود فایلهای کد مثالها 18
فصل 1؛ معرفی کوتاه پایتون 19
معرفی پایتون 20
ورود به پایتون 22
درباره پایتون 23
قابلحمل بودن 23
انسجام 23
بهرهوری توسعهدهنده 23
یک کتابخانه وسیع 24
کیفیت نرمافزار 24
یکپارچگی نرمافزار 24
رضایتمندی و لذت 24
موانع چیست؟ 25
امروزه چه افرادی از پایتون استفاده میکنند؟ 25
تنظیم محیط 26
پایتون 2 در مقابل پایتون 3 26
نصب پایتون 27
تنظیم مفسر پایتون 28
درباره virtualenv 29
نخستین محیط مجازیتان 31
دوستمان کنسول 33
چگونگی اجرای یک برنامه پایتون 34
اجرای اسکریپتهای پایتون 34
اجرای پوسته تعاملی پایتون 34
اجرای پایتون بهشکل یک سرویس 36
اجرای پایتون بهشکل یک برنامهکاربردی GUI 36
کدهای پایتون چگونه سازماندهی میشود 37
چگونه از ماژولها و پکیجها استفاده کنیم؟ 39
مدل اجرایی پایتون 41
نامها و فضاهای نام 41
قلمروها 43
اشیاء و کلاسها 47
راهنماییهایی درباره نحوه نوشتن صحیح کد 49
فرهنگ پایتون 50
نکتهای از IDEها 52
خلاصه 52
فصل 2؛ انواع دادههای توکار 53
هر چیزی یک شئ است 53
تغییرپذیر یا تغییرناپذیر؟ پرسش این است 54
اعداد 56
اعداد صحیح 56
اعداد بولین 57
اعداد حقیقی 58
اعداد مختلط (complex) 60
اعداد کسری و اعشاری 60
ترتیبهای تغییرناپذیر 61
رشتهها و بایتها 61
Encoding و decoding رشتهها 62
ایندکس کردن و برش دادن رشتهها 63
فرمتبندی رشته 64
تاپلها 65
ترتیبهای تغییرپذیر 66
لیستها 67
آرایههای Byte 70
انواع set 71
انواع Mapping- دیکشنریها 73
ماژول collections 77
namedtuple 77
defaultdict 79
ChainMap 80
Enums 81
نکات پایانی 82
مقادیر کوچک کش کردن 82
چگونگی انتخاب ساختارهای دادهها 83
افزودن indexing و slicing 84
درباره نامها 85
خلاصه 86
فصل 3؛ تکرارکردن و تصمیمسازی 87
برنامهنویسی شرطی 87
else-elif 88
عملگر مبنای سه 91
حلقهزنی (Looping) 92
حلقه for 92
تکرار روی یک بازه 93
تکرار روی یک ترتیب 93
تکرارکردنیها و تکرارپذیرها 95
تکرار کردن روی چند ترتیب 96
حلقه while 98
شکست (break) و ادامهی (continue) گزارهها 101
یک بند else ویژه 103
درج همه اینها با همدیگر 105
یک تولیدکننده عدد اول 105
اعمال تخفیفها 107
نگاهی گذرا به ماژول itertools 111
تکرارکنندههای infinite 111
پایان تکرارکنندهها روی کوتاهترین ترتیب ورودی 112
مولدهای ترکیبی 113
خلاصه 113
فصل 4؛ توابع، بلوکهای ساختمانی کد 115
چرا از توابع استفاده میکنیم؟ 116
کاهش کدهای تکراری 116
تفکیک یک وظیفهی پیچیده 117
پنهانسازی جزئیات پیادهسازی 118
بهبود خوانایی 118
بهبود قابلیت ردیابی 119
وضوح قلمروها و نام 120
گزارههای global و nonlocal 122
پارامترهای ورودی 124
پاسدادن آرگومان 124
تخصیص به نام آرگومانها تأثیری در فراخوان دهنده ندارد 125
تغییر یک تغییرپذیر، روی فراخوان دهنده تأثیر میگذارد 125
نحوه تعیین پارامترهای ورودی 127
آرگومانهای جایگاهی 127
آرگومانهای کلیدواژهای و مقادیر پیشفرض 127
آرگومانهای جایگاه متغیر 128
آرگومانهای کلیدواژه متغیر 130
آرگومانهای فقط کلیدواژهای 131
ترکیب پارامترهای ورودی 132
دیگر عمومیتهای آنپکینگ 134
پرهیز از تلهی پیشفرضهای تغییرپذیر 134
مقادیر بازگشتی 136
بازگرداندن چند مقدار 138
چند نکته مهم 138
توابع بازگشتی 139
توابع بی نام 140
خصوصیات تابع (Function attributes) 142
توابع توکار (پیشساخته) 143
مثال پایانی 143
مستندسازی کد 144
درونریزی اشیاء 145
درونریزیهای وابسته (Relative Imports) 147
خلاصه 148
فصل 5؛ صرفهجویی در زمان و حافظه 149
توابع map، zip و filter 151
Map 151
Zip 154
فیلتر 155
Comprehensions (خلاصهها) 156
Comprehensionهای تودرتو 157
فیلتربندی یک comprehension 158
dict comprehensions 159
Set comprehensions 161
مولدها (generators) 161
توابع مولد 162
رفتن به آنسوی next 165
عبارت yield from 169
عبارتهای مولد 170
چند نکته اجرایی 172
افراطی نکردن comprehensionها و مولدها 175
نامگذاری موضعی 179
رفتار مولد در توکارها 181
آخرین مثال 182
خلاصه 184
فصل 6؛ شئگرایی (OOP)، دکوراتورها، و تکرارکنندهها 185
دکوراتورها 185
یک عامل دکوراتور 192
برنامهنویسی شئگرا (OOP) 194
سادهترین کلاس پایتون 194
فضاهای نام شئ و کلاس 195
پنهانکردن خصیصه 196
من، خودم، و من- استفاده از خود متغیر 198
آمادهسازی آغازین یک نمونه 199
OOP درباره استفاده دوباره کد است 200
وراثت و ترکیب 200
دسترسی یک کلاس مبنا 205
چند وراثتی 207
Method resolution order (MRO) 211
متدهای کلاس و ایستا 213
متدهای ایستا (static methods) 213
متدهای کلاس 215
متدهای اختصاصی و name mangling 217
دکوراتور property 219
اضافهبار دادن عملگر (Operator overloading) 222
چند ریختی- یک بازبینی مختصر 223
کلاسهای data 223
نوشتن یک تکرارکننده سفارشی 224
خلاصه 226
فصل 7؛ ماندگاری فایلها و دادهها 227
کار با فایلها و دایرکتوریها 227
بازکردن فایلها 228
استفاده از یک مدیر محتوا برای بازکردن یک فایل 229
خواندن و نوشتن در یک فایل 230
خواندن و نوشتن در حالت باینری 231
محافظت دربرابر بازنویسی یک فایل موجود 232
بررسی موجود بودن فایل و دایرکتوری 232
دستکاری فایلها و دایرکتوریها 233
دستکاری نام مسیرها 236
فایلها و دایرکتوریهای موقتی 237
محتویات دایرکتوری 237
فشردهسازی فایل و دایرکتوری 239
تبادل فرمتهای دادهها 239
کار با JSON 240
انکدینگ/دکدینگ سفارشی با JSON 243
IO، جریانها و درخواستها 248
استفاده از یک جریان درون-حافظهای 248
ایجاد درخواستهای HTTP 249
نگهداری دادهها روی دیسک 252
سریالیکردن دادهها با pickle 252
ذخیره دادهها با shelve 254
ذخیرهسازی دادهها در یک دیتابیس 256
خلاصه 263
فصل 8؛ تست کردن، پروفایل کردن، و کار با استثناها 265
آزمایش برنامهکاربردی خود 265
تشریح آناتومی یک آزمایش 268
خط مشئ آزمایش کردن 269
آزمایش یونیت (واحد) 271
نوشتن یک آزمایش واحد 271
اشیاء ساختگی و وصلهبندی 272
بیانیهها 273
آزمایش یک مولد CSV 273
مرزبندیها و دانه دانه بودن 283
آزمایش تابع export 284
نقطه نظرهای پایانی 287
توسعه آزمایش-محور 289
استثناها 291
پروفایل کردن پایتون 297
چه زمانی پروفایل بگیریم؟ 300
خلاصه 301
فصل 9؛ رمزنگاری و توکنها 303
ضرورت رمزنگاری 303
راهنماییهای مفید 304
Hashlib 304
Secrets 307
اعداد تصادفی 307
تولید توکن 308
تطبیق digest 311
HMAC 311
توکنهای JSON Web 312
ادعاهای رجیسترشده 314
ادعاهای زمان-محور 314
ادعاهای Auth-related 316
استفاده از الگوریتمهای نامتقارن (کلید-عمومی) 317
مراجع مفید 319
خلاصه 319
فصل 10؛ اجرای همزمان 321
همزمانی درمقابل موازیکاری 322
نخها و پردازشها- یک بازبینی 322
تشریح سریع یک نخ 323
کشتن نخها 324
context-switching 324
قفل مفسر عمومی (Global Interpreter Lock) 325
شرایط مسابقه و بنبستها 326
شرایط مسابقه (race conditions) 326
قفلها برای نجات 327
بنبستها (deadlocks) 328
تشریح سریع یک پردازش 328
مشخصههای یک پردازش 329
چندنخی یا چندپردازشی؟ 330
اجرای همزمان در پایتون 331
آغاز یک نخ 331
آغاز یک پردازش 333
متوقف کردن نخها و پردازشها 334
متوقف کردن یک پردازش 335
تخمریزی چند نخ 336
سروکار با شرایط مسابقه 337
یک داده محلی نخ 339
ارتباط نخ و پردازش 340
ارتباط نخ 340
ارسال رویدادها 342
ارتباط پردازش-درونی با صفها 342
استخرهای نخ و پردازش 344
استفاده از یک پردازش برای افزودن یک مهلت زمانی به یک تابع 347
مثالهای موردی 349
مثال یک: ادغامچین همزمانی 349
ادغامچین تک-نخی 350
ادغامچین چندتکه تک-نخی 351
ادغامچین چندنخی 352
ادغامچین چندپردازشی 353
مثال دوم: دسته حلکننده سودوکو 354
سودوکو چیست؟ 355
پیادهسازی یک حلال-سودوکو در پایتون 356
حل سودوکو با چندپردازشی 361
مثال سوم: دانلود تصاویر تصادفی 364
دانلود تصاویر تصادفی با asyncio 366
خلاصه 370
فصل 11؛ دیباگ و رفع اشکال 371
تکنیکهای دیباگکردن 372
دیباگکردن با چاپ 372
دیباگ کردن با یک تابع سفارشی 373
تفتیش ردیابی 375
استفاده از دیباگر پایتون 378
تفتیش فایلهای ثبتی log 381
تکنیکهای دیگر 384
پروفایل کردن 384
اثباتها 384
محل یافتن اطلاعات 385
راهنماییهای رفع اشکال 385
استفاده از ویرایشگرهای کنسول 385
جایی برای سرکشی 385
استفاده از آزمایشها برای دیباگ 386
مانیتورینگ 386
فصل 12؛ GUIها و اسکریپتها 389
نخستین روش؛ اسکریپگرفتن 391
درونریزیها 392
تجزیه آرگومانها 393
منطق تجاری 395
روش دوم: یک برنامهکاربردی GUI 400
درونریزیها (imports) 402
منطق طرحبندی (layout logic) 403
منطق تجاری 407
قاپیدن صفحه وب 408
ذخیرهسازی تصاویر 409
خبر کردن کاربر 413
شیوه بهبود بخشیدن به برنامهکاربردی 414
از اینجا به کجا برویم؟ 415
ماژول turtle 415
wxPython، PyQt، و PyGTK 416
اصل کمترین حیرت 416
ملاحظات نخکشی 417
فصل 13؛ علم داده 419
IPython و Jupyter Notebook 420
نصب کتابخانههای لازم 422
استفاده از Anaconda 422
آغاز کار با Notebook 423
سروکار داشتن با دادهها 423
تنظیم Notebook 424
آمادهسازی دادهها 424
پاکسازی دادهها 429
ایجاد DataFarme 431
آنپک کردن نام کمپین 434
آنپک کردن دادههای کاربر 435
پاکسازی هر چیزی 440
ذخیرهسازی DataFrame در یک فایل 441
مصورسازی نتایج 442
از اینجا به کجا برویم؟ 449
فصل 14؛ توسعه وب 453
وب چیست؟ 453
وب چگونه کار میکند؟ 454
فریمورک وب Django 455
فلسفه طراحی جانگو 455
لایه مدل 456
لایه نما 457
لایه الگو 457
توزیعکننده URL جانگو 458
عبارات باقاعده (Regular Expressions) 458
یک وبسایت regex 459
تنظیم جانگو 459
آغاز پروژه 460
ایجاد کاربران 462
افزودن مدل Entry 462
سفارشیسازی پنل ادمین 464
ایجاد فرم 467
نوشتن نماها 468
نمای خانه 468
نمای لیست ورودی 470
نمای فرم 471
گره زدن URLها و نماها 474
نوشتن الگوها 475
آینده توسعه وب 482
نوشتن یک نمای Flask 483
ساخت یک سرور نقلقول JSON در Falcon 485
سخن مترجم (ناشر) 4
فهرست 5
پیشگفتار 15
کتاب برای چه کسانی مفید است 16
محتویات کتاب 16
بهرهبرداری بیشتر از کتاب 17
دانلود فایلهای کد مثالها 18
فصل 1؛ معرفی کوتاه پایتون 19
معرفی پایتون 20
ورود به پایتون 22
درباره پایتون 23
قابلحمل بودن 23
انسجام 23
بهرهوری توسعهدهنده 23
یک کتابخانه وسیع 24
کیفیت نرمافزار 24
یکپارچگی نرمافزار 24
رضایتمندی و لذت 24
موانع چیست؟ 25
امروزه چه افرادی از پایتون استفاده میکنند؟ 25
تنظیم محیط 26
پایتون 2 در مقابل پایتون 3 26
نصب پایتون 27
تنظیم مفسر پایتون 28
درباره virtualenv 29
نخستین محیط مجازیتان 31
دوستمان کنسول 33
چگونگی اجرای یک برنامه پایتون 34
اجرای اسکریپتهای پایتون 34
اجرای پوسته تعاملی پایتون 34
اجرای پایتون بهشکل یک سرویس 36
اجرای پایتون بهشکل یک برنامهکاربردی GUI 36
کدهای پایتون چگونه سازماندهی میشود 37
چگونه از ماژولها و پکیجها استفاده کنیم؟ 39
مدل اجرایی پایتون 41
نامها و فضاهای نام 41
قلمروها 43
اشیاء و کلاسها 47
راهنماییهایی درباره نحوه نوشتن صحیح کد 49
فرهنگ پایتون 50
نکتهای از IDEها 52
خلاصه 52
فصل 2؛ انواع دادههای توکار 53
هر چیزی یک شئ است 53
تغییرپذیر یا تغییرناپذیر؟ پرسش این است 54
اعداد 56
اعداد صحیح 56
اعداد بولین 57
اعداد حقیقی 58
اعداد مختلط (complex) 60
اعداد کسری و اعشاری 60
ترتیبهای تغییرناپذیر 61
رشتهها و بایتها 61
Encoding و decoding رشتهها 62
ایندکس کردن و برش دادن رشتهها 63
فرمتبندی رشته 64
تاپلها 65
ترتیبهای تغییرپذیر 66
لیستها 67
آرایههای Byte 70
انواع set 71
انواع Mapping- دیکشنریها 73
ماژول collections 77
namedtuple 77
defaultdict 79
ChainMap 80
Enums 81
نکات پایانی 82
مقادیر کوچک کش کردن 82
چگونگی انتخاب ساختارهای دادهها 83
افزودن indexing و slicing 84
درباره نامها 85
خلاصه 86
فصل 3؛ تکرارکردن و تصمیمسازی 87
برنامهنویسی شرطی 87
else-elif 88
عملگر مبنای سه 91
حلقهزنی (Looping) 92
حلقه for 92
تکرار روی یک بازه 93
تکرار روی یک ترتیب 93
تکرارکردنیها و تکرارپذیرها 95
تکرار کردن روی چند ترتیب 96
حلقه while 98
شکست (break) و ادامهی (continue) گزارهها 101
یک بند else ویژه 103
درج همه اینها با همدیگر 105
یک تولیدکننده عدد اول 105
اعمال تخفیفها 107
نگاهی گذرا به ماژول itertools 111
تکرارکنندههای infinite 111
پایان تکرارکنندهها روی کوتاهترین ترتیب ورودی 112
مولدهای ترکیبی 113
خلاصه 113
فصل 4؛ توابع، بلوکهای ساختمانی کد 115
چرا از توابع استفاده میکنیم؟ 116
کاهش کدهای تکراری 116
تفکیک یک وظیفهی پیچیده 117
پنهانسازی جزئیات پیادهسازی 118
بهبود خوانایی 118
بهبود قابلیت ردیابی 119
وضوح قلمروها و نام 120
گزارههای global و nonlocal 122
پارامترهای ورودی 124
پاسدادن آرگومان 124
تخصیص به نام آرگومانها تأثیری در فراخوان دهنده ندارد 125
تغییر یک تغییرپذیر، روی فراخوان دهنده تأثیر میگذارد 125
نحوه تعیین پارامترهای ورودی 127
آرگومانهای جایگاهی 127
آرگومانهای کلیدواژهای و مقادیر پیشفرض 127
آرگومانهای جایگاه متغیر 128
آرگومانهای کلیدواژه متغیر 130
آرگومانهای فقط کلیدواژهای 131
ترکیب پارامترهای ورودی 132
دیگر عمومیتهای آنپکینگ 134
پرهیز از تلهی پیشفرضهای تغییرپذیر 134
مقادیر بازگشتی 136
بازگرداندن چند مقدار 138
چند نکته مهم 138
توابع بازگشتی 139
توابع بی نام 140
خصوصیات تابع (Function attributes) 142
توابع توکار (پیشساخته) 143
مثال پایانی 143
مستندسازی کد 144
درونریزی اشیاء 145
درونریزیهای وابسته (Relative Imports) 147
خلاصه 148
فصل 5؛ صرفهجویی در زمان و حافظه 149
توابع map، zip و filter 151
Map 151
Zip 154
فیلتر 155
Comprehensions (خلاصهها) 156
Comprehensionهای تودرتو 157
فیلتربندی یک comprehension 158
dict comprehensions 159
Set comprehensions 161
مولدها (generators) 161
توابع مولد 162
رفتن به آنسوی next 165
عبارت yield from 169
عبارتهای مولد 170
چند نکته اجرایی 172
افراطی نکردن comprehensionها و مولدها 175
نامگذاری موضعی 179
رفتار مولد در توکارها 181
آخرین مثال 182
خلاصه 184
فصل 6؛ شئگرایی (OOP)، دکوراتورها، و تکرارکنندهها 185
دکوراتورها 185
یک عامل دکوراتور 192
برنامهنویسی شئگرا (OOP) 194
سادهترین کلاس پایتون 194
فضاهای نام شئ و کلاس 195
پنهانکردن خصیصه 196
من، خودم، و من- استفاده از خود متغیر 198
آمادهسازی آغازین یک نمونه 199
OOP درباره استفاده دوباره کد است 200
وراثت و ترکیب 200
دسترسی یک کلاس مبنا 205
چند وراثتی 207
Method resolution order (MRO) 211
متدهای کلاس و ایستا 213
متدهای ایستا (static methods) 213
متدهای کلاس 215
متدهای اختصاصی و name mangling 217
دکوراتور property 219
اضافهبار دادن عملگر (Operator overloading) 222
چند ریختی- یک بازبینی مختصر 223
کلاسهای data 223
نوشتن یک تکرارکننده سفارشی 224
خلاصه 226
فصل 7؛ ماندگاری فایلها و دادهها 227
کار با فایلها و دایرکتوریها 227
بازکردن فایلها 228
استفاده از یک مدیر محتوا برای بازکردن یک فایل 229
خواندن و نوشتن در یک فایل 230
خواندن و نوشتن در حالت باینری 231
محافظت دربرابر بازنویسی یک فایل موجود 232
بررسی موجود بودن فایل و دایرکتوری 232
دستکاری فایلها و دایرکتوریها 233
دستکاری نام مسیرها 236
فایلها و دایرکتوریهای موقتی 237
محتویات دایرکتوری 237
فشردهسازی فایل و دایرکتوری 239
تبادل فرمتهای دادهها 239
کار با JSON 240
انکدینگ/دکدینگ سفارشی با JSON 243
IO، جریانها و درخواستها 248
استفاده از یک جریان درون-حافظهای 248
ایجاد درخواستهای HTTP 249
نگهداری دادهها روی دیسک 252
سریالیکردن دادهها با pickle 252
ذخیره دادهها با shelve 254
ذخیرهسازی دادهها در یک دیتابیس 256
خلاصه 263
فصل 8؛ تست کردن، پروفایل کردن، و کار با استثناها 265
آزمایش برنامهکاربردی خود 265
تشریح آناتومی یک آزمایش 268
خط مشئ آزمایش کردن 269
آزمایش یونیت (واحد) 271
نوشتن یک آزمایش واحد 271
اشیاء ساختگی و وصلهبندی 272
بیانیهها 273
آزمایش یک مولد CSV 273
مرزبندیها و دانه دانه بودن 283
آزمایش تابع export 284
نقطه نظرهای پایانی 287
توسعه آزمایش-محور 289
استثناها 291
پروفایل کردن پایتون 297
چه زمانی پروفایل بگیریم؟ 300
خلاصه 301
فصل 9؛ رمزنگاری و توکنها 303
ضرورت رمزنگاری 303
راهنماییهای مفید 304
Hashlib 304
Secrets 307
اعداد تصادفی 307
تولید توکن 308
تطبیق digest 311
HMAC 311
توکنهای JSON Web 312
ادعاهای رجیسترشده 314
ادعاهای زمان-محور 314
ادعاهای Auth-related 316
استفاده از الگوریتمهای نامتقارن (کلید-عمومی) 317
مراجع مفید 319
خلاصه 319
فصل 10؛ اجرای همزمان 321
همزمانی درمقابل موازیکاری 322
نخها و پردازشها- یک بازبینی 322
تشریح سریع یک نخ 323
کشتن نخها 324
context-switching 324
قفل مفسر عمومی (Global Interpreter Lock) 325
شرایط مسابقه و بنبستها 326
شرایط مسابقه (race conditions) 326
قفلها برای نجات 327
بنبستها (deadlocks) 328
تشریح سریع یک پردازش 328
مشخصههای یک پردازش 329
چندنخی یا چندپردازشی؟ 330
اجرای همزمان در پایتون 331
آغاز یک نخ 331
آغاز یک پردازش 333
متوقف کردن نخها و پردازشها 334
متوقف کردن یک پردازش 335
تخمریزی چند نخ 336
سروکار با شرایط مسابقه 337
یک داده محلی نخ 339
ارتباط نخ و پردازش 340
ارتباط نخ 340
ارسال رویدادها 342
ارتباط پردازش-درونی با صفها 342
استخرهای نخ و پردازش 344
استفاده از یک پردازش برای افزودن یک مهلت زمانی به یک تابع 347
مثالهای موردی 349
مثال یک: ادغامچین همزمانی 349
ادغامچین تک-نخی 350
ادغامچین چندتکه تک-نخی 351
ادغامچین چندنخی 352
ادغامچین چندپردازشی 353
مثال دوم: دسته حلکننده سودوکو 354
سودوکو چیست؟ 355
پیادهسازی یک حلال-سودوکو در پایتون 356
حل سودوکو با چندپردازشی 361
مثال سوم: دانلود تصاویر تصادفی 364
دانلود تصاویر تصادفی با asyncio 366
خلاصه 370
فصل 11؛ دیباگ و رفع اشکال 371
تکنیکهای دیباگکردن 372
دیباگکردن با چاپ 372
دیباگ کردن با یک تابع سفارشی 373
تفتیش ردیابی 375
استفاده از دیباگر پایتون 378
تفتیش فایلهای ثبتی log 381
تکنیکهای دیگر 384
پروفایل کردن 384
اثباتها 384
محل یافتن اطلاعات 385
راهنماییهای رفع اشکال 385
استفاده از ویرایشگرهای کنسول 385
جایی برای سرکشی 385
استفاده از آزمایشها برای دیباگ 386
مانیتورینگ 386
فصل 12؛ GUIها و اسکریپتها 389
نخستین روش؛ اسکریپگرفتن 391
درونریزیها 392
تجزیه آرگومانها 393
منطق تجاری 395
روش دوم: یک برنامهکاربردی GUI 400
درونریزیها (imports) 402
منطق طرحبندی (layout logic) 403
منطق تجاری 407
قاپیدن صفحه وب 408
ذخیرهسازی تصاویر 409
خبر کردن کاربر 413
شیوه بهبود بخشیدن به برنامهکاربردی 414
از اینجا به کجا برویم؟ 415
ماژول turtle 415
wxPython، PyQt، و PyGTK 416
اصل کمترین حیرت 416
ملاحظات نخکشی 417
فصل 13؛ علم داده 419
IPython و Jupyter Notebook 420
نصب کتابخانههای لازم 422
استفاده از Anaconda 422
آغاز کار با Notebook 423
سروکار داشتن با دادهها 423
تنظیم Notebook 424
آمادهسازی دادهها 424
پاکسازی دادهها 429
ایجاد DataFarme 431
آنپک کردن نام کمپین 434
آنپک کردن دادههای کاربر 435
پاکسازی هر چیزی 440
ذخیرهسازی DataFrame در یک فایل 441
مصورسازی نتایج 442
از اینجا به کجا برویم؟ 449
فصل 14؛ توسعه وب 453
وب چیست؟ 453
وب چگونه کار میکند؟ 454
فریمورک وب Django 455
فلسفه طراحی جانگو 455
لایه مدل 456
لایه نما 457
لایه الگو 457
توزیعکننده URL جانگو 458
عبارات باقاعده (Regular Expressions) 458
یک وبسایت regex 459
تنظیم جانگو 459
آغاز پروژه 460
ایجاد کاربران 462
افزودن مدل Entry 462
سفارشیسازی پنل ادمین 464
ایجاد فرم 467
نوشتن نماها 468
نمای خانه 468
نمای لیست ورودی 470
نمای فرم 471
گره زدن URLها و نماها 474
نوشتن الگوها 475
آینده توسعه وب 482
نوشتن یک نمای Flask 483
ساخت یک سرور نقلقول JSON در Falcon 485
# | موضوع | عنوان | توضیح | دانلود |
---|---|---|---|---|
1 | نمونه pdf | صفحات آغازین کتاب | دانلود | |
2 | فايل فشرده Zip | کدهای مثالهای کتاب | دانلود |