آموزش برنامه نویسی Python 3.9
حسین یعسوبی
شابک: 4-07-7785-622-978
مقدمه ای بر اصول پایه ای پایتون
1401
510
280,000 تومان
350,000 تومان
-
+
نوبت چاپ | یک |
---|---|
ویرایش | یک |
وزن | 1000 گرم |
جلد | 1 از 1 |
موجود است؟ | بلی |
---|---|
چاپ شده است؟ | بلی |
در حال پیش فروش است؟ | خیر |
کتاب الکترونیکی است؟ | خیر |
این کتاب، جزو پرفروشترین کتابهای آموزش پایتون است که تاکنون به چاپ رسیده است. رومانو، برنامهنویسی قابل، و توسعهدهندهای بهنام در انواع زبانهای برنامهنویسی است. کتاب به شیوهای نوشته شده که برای تازه واردان به دنیای برنامهنویسی هم قابل استفاده باشد. به مرور، وارد مباحث کاربردی و تکنیکی میشود و با ارائه انواع مثالها، خواننده را به چالش میکشد. در فصلهای انتهایی هم وارد دیباگکردن و علم داده و توسعه وب و چند فریمورک مشهور پایتون میشود. ترجمه روان کتاب نیز میتواند آنرا به یک مرجع درسی دانشگاهی مناسب برای انواع رشتهها تبدیل کند.
پیشگفتار 15
کتاب برای چه کسانی مفید است 16
محتویات کتاب 16
بهرهبرداری بیشتر از کتاب 18
دانلود فایلهای کد مثالها 18
فصل 1؛ معرفی کوتاه پایتون 19
معرفی پایتون 20
ورود به پایتون 22
درباره پایتون 23
قابلحمل بودن 23
انسجام 23
بهرهوری توسعهدهنده 23
یک کتابخانه وسیع 24
کیفیت نرمافزار 24
یکپارچگی نرمافزار 24
رضایتمندی و لذت 24
موانع چیست؟ 25
امروزه چه افرادی از پایتون استفاده میکنند؟ 25
تنظیم محیط 26
پایتون 2 در مقابل پایتون 3 26
نصب پایتون 27
تنظیم مفسر پایتون 27
درباره محیطهای مجازی 29
نخستین محیط مجازیتان 30
نصب کتابخانههای شخص ثالثی 33
دوستمان کنسول 34
چگونگی اجرای یک برنامه پایتون 34
اجرای اسکریپتهای پایتون 35
اجرای پوسته تعاملی پایتون 35
اجرای پایتون بهشکل یک سرویس 37
اجرای پایتون بهشکل یک برنامهکاربردی GUI 37
کدهای پایتون چگونه سازماندهی میشود 38
چگونه از ماژولها و پکیجها استفاده کنیم؟ 40
مدل اجرایی پایتون 42
نامها و فضاهای نام 42
قلمروها 44
اشیاء و کلاسها 48
راهنماییهایی درباره نحوه کدنویسی صحیح 50
فرهنگ پایتون 52
نکتهای از IDEها 53
خلاصه 54
فصل 2؛ انواع دادههای توکار 55
هر چیزی یک شئ است 55
تغییرپذیر یا تغییرناپذیر؟ پرسش این است 56
اعداد 58
اعداد صحیح 58
اعداد بولین 61
اعداد حقیقی 62
اعداد مختلط (complex) 63
اعداد کسری و اعشاری 64
ترتیبهای تغییرناپذیر 65
رشتهها و بایتها 65
Encoding و Decoding رشتهها 66
ایندکس کردن و برش دادن رشتهها 67
فرمتبندی رشته 68
تاپلها 70
ترتیبهای تغییرپذیر 71
لیستها 71
آرایههای Byte 75
انواع set 76
انواع Mapping- دیکشنریها 78
Dates and Times 83
کتابخانه استاندارد 83
کتابخانههای شخص ثالثی 87
ماژول collections 89
namedtuple 89
defaultdict 91
ChainMap 92
Enums 93
نکات پایانی 94
اندکی کش کردن 94
چگونگی انتخاب ساختارهای دادهها 95
درباره indexing و slicing 96
درباره نامها 97
خلاصه 98
فصل 3؛ تکرارکردن و تصمیمسازی 99
برنامهنویسی شرطی 99
یک else ویژه: elif 100
عملگر مبنای سه 103
حلقهزنی (Looping) 104
حلقه for 104
تکرار روی یک بازه 105
تکرار روی یک ترتیب 105
تکرارکردنیها و تکرارپذیرها 107
تکرار کردن روی چند ترتیب 108
حلقه while 110
شکست (break) و ادامهی (continue) گزارهها 113
یک بند else ویژه 115
عبارتهای تخصیص (assignment expressions) 117
گزارهها و عبارتها 117
استفاده از عملگر شیر دریایی 118
یک گوشزد 119
درج همه اینها با همدیگر 120
یک تولیدکننده عدد اول 120
اعمال تخفیفها 122
نگاهی گذرا به ماژول itertools 126
تکرارکنندههای infinite 126
پایان یافتن تکرارکنندهها روی کوتاهترین ترتیب ورودی 127
مولدهای ترکیبی 128
خلاصه 128
فصل 4؛ توابع، بلوکهای ساختمانی کد 129
چرا از توابع استفاده میکنیم؟ 130
کاهش کدهای تکراری 130
تفکیک یک وظیفهی پیچیده 131
پنهانسازی جزئیات پیادهسازی 132
بهبود خوانایی 132
بهبود قابلیت ردیابی 133
قلمروها و وضوح نام 134
گزارههای global و nonlocal 136
پارامترهای ورودی 138
پاسدادن آرگومان 138
تخصیص به نام پارامترها 139
تغییر یک شئ تغییرپذیر 140
پاس دادن آرگومانها 141
آرگومانهای جایگاهی 141
آرگومانهای کلیدواژهای 141
آنپک کردن تکرارپذیری (iterable unpacking) 142
آنپککردن دیکشنری (dictionary unpacking) 143
ترکیب انواع آرگومانها 143
تعریف پارامترها 144
پارامترهای اختیاری 145
پارامترهای جایگاه متغیر 145
پارامترهای کلیدواژه متغیر 146
پارامترهای فقط جایگاهی 148
پارامترهای فقط کلیدواژهای 149
ترکیب پارامترهای ورودی 150
مثالهای امضا 151
پرهیز از تلهی پیشفرضهای تغییرپذیر 152
مقادیر بازگشتی 154
بازگرداندن چند مقدار 155
چند نکته مهم 156
توابع بازگشتی 157
توابع بی نام 158
خصوصیات تابع (Function attributes) 159
توابع توکار (پیشساخته) 160
مستندسازی کد 161
درونریزی اشیاء 162
درونریزیهای وابسته (Relative Imports) 164
مثال پایانی 165
خلاصه 166
فصل 5؛ خلاصه لیستها و مولدها (COMPREHENSIONS & GENERATORS) 167
توابع map، zip و filter 169
Map 169
Zip 172
فیلتر 173
Comprehensions (خلاصه لیستها) 174
خلاصههای تودرتو 175
فیلتربندی یک comprehension 176
dict comprehensions (خلاصه دیکشنری) 178
Set comprehensions (خلاصه ست) 179
مولدها (generators) 180
توابع مولد 180
رفتن به آنسوی next 183
عبارت yield from 186
عبارتهای مولد 187
چند نکته اجرایی 190
افراطی نکردن comprehensionها و مولدها 193
نامگذاری موضعی 197
رفتار مولد در توکارها 198
آخرین مثال 199
خلاصه 201
فصل 6؛ شئگرایی، دکوراتورها، و تکرارکنندهها 203
دکوراتورها 203
یک کارخانه دکوراتور 210
برنامهنویسی شئگرا (OOP) 212
سادهترین کلاس پایتون 212
فضاهاینام شئ و کلاس 213
پنهانکردن خصیصه 214
آرگومان self 216
آمادهسازی آغازین یک نمونه 217
OOP درباره استفاده دوباره کد است 218
وراثت و ترکیب 218
دسترسی یک کلاس مبنا 223
چند-وراثتی 225
Method resolution order (MRO) 228
متدهای کلاس و ایستا 230
متدهای ایستا (static methods) 230
متدهای کلاس 232
متدهای اختصاصی و name mangling 234
دکوراتور property 236
دکوراتور cached_property 238
اضافهبار دادن عملگر (Operator overloading) 240
چند ریختی- یک بازبینی مختصر 241
کلاسهای data 242
نوشتن یک تکرارکننده سفارشی 243
خلاصه 245
فصل 7؛ استثناها و مدیران محتوا 247
استثناها 247
بالا آمدن استثناها 249
تعریف استثناهای شخصی 250
Tracebacks 250
رسیدگی به استثناها 251
نه فقط برای خطاها 255
مدیران محتوا (Context Managers) 256
مدیران محتوای کلاس-محور 259
مدیران محتوای مولد-محور 260
خلاصه 262
فصل 8؛ ماندگاری فایلها و دادهها 263
کار با فایلها و دایرکتوریها 263
بازکردن فایلها 264
استفاده از یک مدیر محتوا برای بازکردن یک فایل 265
خواندن و نوشتن در یک فایل 266
خواندن و نوشتن در حالت باینری 267
محافظت دربرابر بازنویسی یک فایل موجود 268
بررسی موجود بودن فایل و دایرکتوری 268
دستکاری فایلها و دایرکتوریها 269
دستکاری نام مسیرها 271
فایلها و دایرکتوریهای موقتی 272
محتویات دایرکتوری 273
فشردهسازی فایل و دایرکتوری 274
تبادل فرمتهای دادهها 275
کار با JSON 276
انکدینگ/دکدینگ سفارشی با JSON 279
IO، جریانها و درخواستها 283
استفاده از یک جریان درون-حافظهای 283
ایجاد درخواستهای HTTP 284
ایستادگی دادهها روی دیسک 287
سریالیکردن دادهها با pickle 287
ذخیره دادهها با shelve 289
ذخیرهسازی دادهها در یک دیتابیس 291
خلاصه 297
فصل 9؛ رمزنگاری و توکنها 299
ضرورت رمزنگاری 299
راهنماییهای مفید 300
Hashlib 300
HMAC 304
Secrets 305
اعداد تصادفی 305
تولید توکن 306
تطبیق digest 308
توکنهای JSON Web 308
ادعاهای رجیسترشده 311
ادعاهای زمان-محور 311
ادعاهای Auth-related 313
استفاده از الگوریتمهای نامتقارن (کلید-عمومی) 314
مراجع مفید 316
خلاصه 316
فصل 10؛ تست کردن 317
آزمایش برنامهکاربردی خود 317
تشریح آناتومی یک آزمایش 320
خط مشئ آزمایش کردن 321
آزمایش یونیت (واحد) 322
نوشتن یک آزمایش واحد 323
اشیاء ساختگی و وصلهبندی 325
بیانیهها 325
آزمایش یک مولد CSV 325
مرزبندیها و دانه دانه بودن 335
آزمایش تابع export 336
نقطه نظرهای پایانی 339
توسعه آزمایش-محور 341
خلاصه 343
فصل 11؛ دیباگ و رفع اشکال 345
تکنیکهای دیباگکردن 346
دیباگکردن با چاپ 346
دیباگ کردن با یک تابع سفارشی 347
استفاده از دیباگر پایتون 350
تفتیش logها 353
تکنیکهای دیگر 356
خواندن tracebackها 356
تأکید (Assertions) 357
محل یافتن اطلاعات 358
راهنماییهای رفع اشکال 358
جایی برای سرکشی 358
استفاده از آزمایشها برای دیباگ 359
مانیتورینگ 359
پروفایل کردن پایتون 359
چه زمانی پروفایل بگیریم؟ 363
اندازهگیری زمان اجرا 364
خلاصه 365
فصل 12؛ GUIها و اسکریپتها 367
نخستین روش؛ اسکریپگرفتن 369
درونریزیها (imports) 370
تجزیه آرگومانها 371
منطق تجاری 373
روش دوم: یک برنامهکاربردی GUI 377
درونریزیها (imports) 379
منطق طرحبندی (layout logic) 380
منطق تجاری 384
قاپیدن صفحه وب 384
ذخیرهسازی تصاویر 386
خبر کردن کاربر 389
شیوه بهبود بخشیدن به برنامهکاربردی 390
از اینجا به کجا برویم؟ 392
ماژول turtle 392
wxPython، Kivy، و PyQt 392
اصل کمترین حیرت 393
ملاحظات نخکشی 394
خلاصه 394
فصل 13؛ مختصری درباره علم داده 395
IPython و Jupyter Notebook 396
استفاده از Anaconda 398
آغاز کار با Notebook 399
سروکله زدن با دادهها 400
تنظیم Notebook 400
آمادهسازی دادهها 400
پاکسازی دادهها 404
ایجاد DataFarme 406
آنپک کردن نام کمپین 409
آنپک کردن دادههای کاربر 410
پاکسازی هر چیزی 414
ذخیرهسازی DataFrame در یک فایل 415
مصورسازی نتایج 415
از اینجا به کجا برویم؟ 422
خلاصه 424
فصل 14؛ مقدمهای بر توسعه API 425
وب چیست؟ 426
وب چگونه کار میکند؟ 426
کدهای وضعیت Respons 428
مختصری درباره Type hiniting 428
چرا تعیینگر نوع؟ 430
مختصری از تعیینگر نوع 430
مقدمهای بر APIها 433
API چیست؟ 433
هدف از یک API چیست؟ 433
پروتکلهای API 434
فرمتهای تبادل-داده API 435
API خط آهن 435
مدلینگ دیتابیس 437
تنظیم اصلی و پیکربندی 443
افزودن تنظیمات 444
Endpointهای ایستگاه 445
خواندن دادهها 445
ایجاد دادهها 452
بهروزرسانی دادهها 455
حذف دادهها 458
تصدیق کاربر 459
مستندسازی API 462
مصرف یک API 463
فراخوانی API از Django 463
از اینجا به کجا برویم؟ 470
خلاصه 471
فصل 15؛ پکیجبندی برنامههای کاربردی پایتون 473
Python Package Index (PyPI) 473
پروژه زمانبندی قطار 475
پکیجبندی با setuptools 480
فایلهای مورد نیاز 480
Pyproject.toml 480
License 482
README 482
Changelog 482
Setup.cfg 483
Setup.py 483
MANIFEST.in 485
متادیتای پکیج 485
دسترسی به متادیتا در کد 489
تعریف محتویات پکیج 491
دسترسی به فایلهای دادهای پکیج 492
تعیین وابستگیها 494
نقاط ورودی (entry points) 496
ساخت و انتشار پکیجها 497
اسکریپت build 498
انتشار 499
توصیهای برای آغاز کردن پروژههای جدید 502
ابزارهای جایگزین 502
خلاصه 504
# | موضوع | عنوان | توضیح | دانلود |
---|---|---|---|---|
1 | نمونه pdf | صفحات آغازین | دانلود | |
2 | کُدهای ضميمه | فایلهای تمرینی کتاب | دانلود |