مطالب پیشنهادی از سراسر وب

دوره شیرجه عمیق به پایتون 3 - بخش 1 - تابعی

دسته بندی ها: آموزش های ویژه ، آموزش های یودمی (Udemy) ، آموزش پایتون (Python)

متغیرها، توابع و برنامه نویسی تابعی، Closures، دکوراتورها ، ماژول ها و بسته ها

توضیحات دوره

سلام!

این اولین بخش از سری دوره ی یادگیری عمیق تمام ابعاد پایتون 3 است.

این یک دوره مبتدی نیست، اگر شما چندین هفته یا ماه است که به کدنویسی با پایتون مشغول هستید، باید کمی بیشتر وقت بگذارید تا بتوانید این دوره را دنبال کنید.

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

متعجبم که چگونه کار می کند؟

آیا راه دیگه ای برای انجام آن وجود دارد؟

closure چیست؟ آیا همان لامبدا است؟

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

چرا این عبارت boolean یک مقدار boolean را باز نمیگرداند؟

در حقیقت ایمپورت چه کاری را انجام می دهد و چرا من تاثیرات جانبی آن را دریافت کردم؟

و از این قبیل سوالات...

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

لطفاً اطمینان حاصل کنید که پیش نیازهای این دوره را مرور کرده اید - اگرچه در ابتدای دوره خلاصه ای از مفاهیم اساسی را ارائه می دهیم که مفاهیمی هستند که شما باید قبلاً به آنها مسلط بوده باشید.

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

 بنابراین این دوره درمورد توضیح کتابخانه های شخص ثالث مورد علاقه من نیست - درمورد پایتون، به عنوان یک زبان، و کتابخانه استاندارد است.

به طور خاص، این دوره بر اساس استاندارد CPython تهیه شده است. همچنین برای دیدن نوت بوک های پایتون کاملاً حاشیه نویسی شده و قابل دانلود، به Jupyter Notebooks نیز نیاز خواهید داشت.

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

در این دوره نگاهی عمیق تر به مباحث زیر می اندازیم:

  • متغیرها - به این صورت که آنها فقط سمبل هایی برای اشاره کردن آبجکت ها در مموری هستند
  • Namespaces و scope
  • انواع عددی در پایتون
  • انواع بولین پایتون - چیزی بیش از یک مورد ساده یا statement که فکر می کنید وجود دارد
  • زمان اجرا در مقابل زمان کامپایل و نحوه تاثیرگذاری پیش فرض های تابع، دکوراتورها، وارد کردن ماژول ها و غیره
  • توابع به طور کلی (شامل لامبدا)
  • تکنیک های برنامه نویسی تابعی (مانند نقشه، کاهش، فیلتر، زیپ و غیره)
  • Closures
  • دکوراتورها
  • ایمپورت ها، ماژول ها و بسته ها
  • Tuples به عنوان ساختارهای داده
  • Named tuples

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

و بعد از دیدن یک فیلم کد نویسی، دوره را پاز کرده و امتحان کنید - کاوش کنید ، آزمایش کنید، با کد بازی کنید و ببینید که چگونه کار می کند (یا کار نمی کنند! - این یک روش عالی برای یادگیری است!).

این دوره برای چه کسی مناسب است؟

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

آنچه یاد خواهید گرفت...

  • نگاهی عمیق به متغیرها، مموری، namespaces و scopes
  • درک عمیق از بهینه سازی ها و مدیریت مموری پایتون
  • درک عمیق از کاربردهای پیشرفته انواع داده عددی پایتون (اعداد بولین، Integers، Floats، Decimals، Fractions و Complex)
  • اپراتورها و عبارت های پیشرفته بولین
  • کاربرد پیشرفته callables مانند توابع، لامبدا و closures
  • تکنیک های برنامه نویسی تابعی مانند نقشه، کاهش، فیلتر و partials
  • ایجاد دکوراتورهای پیشرفته شامل دکوراتورهای پارامترشده، دکوراتورهای کلاس و کلاس های دکوراتور
  • اپلیکیشن های پیشرفته دکوراتور مانند memoization و ارسال تکی توابع generic
  • استفاده و درک سیستم بسته و ماژول پیچیده پایتون
  • پایتون ایدیوماتیک و بهترین شیوه ها
  • درک زمان اجرا و زمان کامپایل پایتون و نحوه تاثیرگذاری آن ها بر کد
  • جلوگیری از مشکلات متداول 

پیش نیازها:

  • دانش مقدماتی اساسی برنامه نویسی پایتون (متغیرها، دستورهای شرطی، حلقه ها، توابع، لیست ها، tuples، دیکشنری ها ، کلاس ها).
  • شما به پایتون 3.6 یا بالاتر نیاز دارید ، و یک محیط توسعه به انتخاب شما (خط فرمان، PyCharm  Jupyter و غیره)

سایر بخش های دوره:

سرفصل های دوره:

  • مقدمه
    • بررسی دوره
    • پیش نیازها
    • نوت بوک ها و پروژه های کد
  • بررسی سریع - مبانی
    • مقدمه
    • سلسله مراتب تایپ پایتون
    • اسامی متغیر
    • Conditionals
    • توابع
    • While Loop
    • Break، Continue و Try Statement
    • For Loop
    • کلاس ها
  • متغیرها و مموری
    • معرفی
    • متغیرها مراجع مموری هستند
    • شمارش مرجع
    • جمع آوری زباله
    • تایپینگ استاتیک و پویا
    • Variable Re-Assignment
    • تغییرپذیری شی
    • آرگومان های تابع و تغییرپذیری
    • منابع مشترک و تغییرپذیری
    • برابری متغیر
    • همه چیز یک شی است
    • بهینه سازی پایتون: Interning
    • بهینه سازی پایتون: String Interning
    • بهینه سازی پایتون: Peephole
  • انواع عددی
    • مقدمه
    • Integers - انواع داده
    • Integers - عملیات ها
    • Integers - بررسی Constructors و Bases - لکچر
    • Integers - بررسی Constructors و Bases - کدنویسی
    • اعداد منطقی - لکچر
    • اعداد منطقی - کدنویسی
    • Floats: نمایندگی داخلی - لکچر
    • Floats: نمایندگی داخلی - کدنویسی
    • Floats: تشویق به Integers - لکچر
    • Floats: تشویق به Integers -کدنویسی
    • Floats: بررسی Rounding - لکچر
    • Floats: بررسی Rounding - کدنویسی
    • Decimals: لکچر
    • Decimals: کدنویسی
    • Decimals: بررسی Constructors و Contexts - لکچر
    • Decimals: بررسی Constructors و Contexts - کدنویسی
    • Decimals: عملیات ریاضی - لکچر
    • Decimals: عملیات ریاضی - کدنویسی
    • Decimals: ملاحظات عملکرد
    • اعداد پیچیده - لکچر
    • اعداد پیچیده - کدنویسی
    • Booleans
    • Booleans - مقادیر حقیقی - لکچر
    • Booleans - مقادیر حقیقی - کدنویسی
    • Booleans - تقدم و اتصال کوتاه - لکچر
    • Booleans - تقدم و اتصال کوتاه - کدنویسی
    • Booleans - اپراتورهای Boolean - لکچر
    • Booleans - اپراتورهای Boolean - کدنویسی
    • اپراتورهای مقایسه
  • پارامترهای تایع
    • آرگومان ها در مقابل پارامتر
    • آرگومان های کلمه کلیدی و موقعیتی - لکچر
    • آرگومان های کلمه کلیدی و موقعیتی - کدنویسی
    • باز کردن بسته Iterables - لکچر
    • باز کردن بسته Iterables - کدنویسی
    • باز کردن بسته گسترش یافته - لکچر
    • باز کردن بسته گسترش یافته - کدنویسی
    • *args - لکچر
    • *args - کدنویسی
    • آرگومان های کلمه کلیدی - لکچر
    • آرگومان های کلمه کلیدی - کدنویسی
    • **kwargs
    • تمام این نکات با هم - لکچر
    • تمام این نکات با هم - کدنویسی
    • اپلیکیشن - Simple Function Timer
    • پیش فرض های پارامتر - آگاه باش!
    • پیش فرض های پارامتر - دوباره آگاه باش!
  • توابع First-Class
    • مقدمه
    • Docstrings و حاشیه نویسی ها - لکچر
    • Docstrings و حاشیه نویسی ها - کدنویسی
    • عبارت های لامبدا - لکچر
    • عبارت های لامبدا - کدنویسی
    • لامبدا و مرتب سازی
    • چالش - تصادفی کردن Iterable با Sorted
    • درونگرایی تابع - لکچر
    • درونگرایی تابع - کدنویسی
    • Callables
    • Filter، Map، Zip و List Comprehensions - لکچر
    • Filter، Map، Zip و List Comprehensions - کدنویسی
    • کاهش توابع - لکچر
    • کاهش توابع - کدنویسی
    • توابع Partial - لکچر
    • توابع Partial - کدنویسی
    • ماژول اپراتور - لکچر
    • ماژول اپراتور - کدنویسی
  • Closures، Scopes و دکوراتورها
    • مقدمه
    • Scopes محلی و جهانی - لکچر
    • Scopes محلی و جهانی - کدنویسی
    • Scopes غیرمحلی - لکچر
    • Scopes غیرمحلی - کدنویسی
    • Closures - لکچر
    • Closures - کدنویسی
    • اپلیکیشن های Closure - بخش 1
    • اپلیکیشن های Closure - بخش 2
    • دکوراتورها - بخش 1 - لکچر
    • دکوراتورها - بخش 1 - کدنویسی
    • اپلیکیشن دکوراتور - (تایمر)
    • اپلیکیشن دکوراتور - (Logger و دکوراتورهای Stacked)
    • اپلیکیشن دکوراتور - (یادآوری)
    • دکوراتور ها - بخش 2 - لکچر
    • دکوراتور ها - بخش 2 - کدنویسی
    • اپلیکیشن دکوراتور - (Decorator Class)
    • اپلیکیشن دکوراتور - (Decorator Class)
    • اپلیکیشن دکوراتور - (Dispatching) - بخش 1
    • اپلیکیشن دکوراتور - (Dispatching) - بخش 2
    • اپلیکیشن دکوراتور - (Dispatching) - بخش 3
  • Tuples به عنوان ساختارهای داده و Named Tuples
    • مقدمه
    • Tuples به عنوان ساختارهای داده - لکچر
    • Tuples به عنوان ساختارهای داده - کدنویسی
    • Named Tuples - لکچر
    • Named Tuples - کدنویسی
    • Named Tuples - اصلاح و گسترش - لکچر
    • Named Tuples - اصلاح و گسترش - کدنویسی
    • Named Tuples - مقادیر پیش فرض و DocStrings - لکچر
    • Named Tuples - مقادیر پیش فرض و DocStrings - کدنویسی
    • Named Tuples - اپلیکیشن - بازگشت چندین مقادیر
    • Named Tuples - اپلیکیشن - جایگزین شدن با دیکشنری ها
  • ماژول ها، بسته ها و Namespaces
    • مقدمه
    • ماژول چیست؟
    • چگونه ماژول های پایتون را وارد کنیم؟
    • ایمپورت ها و importlib
    • ایمپورت کردن Variants و Misconceptions - لکچر
    • ایمپورت کردن Variants و Misconceptions - کدنویسی
    • دوباره بارگیری ماژول ها
    • استفاده از __main__
    • جمع بندی ماژول ها
    • بسته چیست؟ - لکچر
    • بسته چیست؟ - کدنویسی
    • چرا بسته؟
    • ساختار بسته ها - بخش 1
    • ساختار بسته ها - بخش 2
    •  بسته های Namespace
    • وارد کردن از آرشیوهای زیپ
  • نکات اضافی
    • مقدمه
    • منابع اضافی
    • هایلایت های Python 3.6
    • Python 3.6 - مرتب سازی دیکشنری ها
    • Python 3.6 - مرتب سازی حفظ شده از kwargs و اپلیکیشن Named Tuple
    • Python 3.6 - بررسی f-Strings
    • تصادفی - Seeds
    • انتخاب های تصادفی
    • نمونه های تصادفی 
    • زمان بندی کد با *timeit*
    • از اسامی *args و **kwargs به صورت کورکورانه استفاده نکنید
    • آرگومان های خط فرمان
    • مقادیر Sentinel برای پیش فرض های پارامتری
    • شبیه سازی یک سوئیچ ساده در پایتون

ویدئوهای دوره:

سلسله مراتب نوع پایتون

 

رشته ها و دستورها

 

اسامی متغیرها

 

بررسی Conditionals

 

توابع

 

بررسی While Loop

 

آیا این نوشته را دوست داشتید؟
Python 3: Deep Dive (Part 1 - Functional) Publisher:Udemy Author:Fred Baptiste Duration:44.5 Level:Advanced

Variables, Functions and Functional Programming, Closures, Decorators, Modules and Packages

Description

Hello!

This is Part 1 of a series of courses intended to dive into the inner mechanics and more complicated aspects of Python 3.

This is not a beginner course - if you've been coding Python for a week or a couple of months, you probably should keep writing Python for a bit more before tackling this series.

On the other hand, if you're now starting to ask yourself questions like:

I wonder how this works?

is there another way of doing this?

what's a closure? is that the same as a lambda?

I know how to use a decorator someone else wrote, but how does it work? Can I write my own?

why isn't this boolean expression returning a boolean value?

what does an import actually do, and why am I getting side effects?

and similar types of question...

then this course is for you.

Please make sure you review the pre-requisites for this course - although I give a brief refresh of basic concepts at the beginning of the course, those are concepts you should already be very comfortable with as you being this course.

In this course series, I will give you a much more fundamental and deeper understanding of the Python language and the standard library.

Python is called a "batteries-included" language for good reason - there is a ton of functionality in base Python that remains to be explored and studied.

So this course is not about explaining my favorite 3rd party libraries - it's about Python, as a language, and the standard library.

In particular this course is based on the canonical CPython. You will also need Jupyter Notebooks to view the downloadable fully-annotated Python notebooks.

It's about helping you explore Python and answer questions you are asking yourself as you develop more and more with the language.

In Python 3: Deep Dive (Part 1) we will take a much closer look at:

  • Variables - in particular that they are just symbols pointing to objects in memory
  • Namespaces and scope
  • Python's numeric types
  • Python boolean type - there's more to a simple or statement than you might think!
  • Run-time vs compile-time and how that affects function defaults, decorators, importing modules, etc
  • Functions in general (including lambdas)
  • Functional programming techniques (such as map, reduce, filter, zip, etc)
  • Closures
  • Decorators
  • Imports, modules and packages
  • Tuples as data structures
  • Named tuples

To get the most out of this course, you should be prepared to pause the coding videos, and attempt to write code before I do! Sit back during the concept videos, but lean in for the code videos!

And after you have seen a code video, pause the course, and try things out yourself - explore, experiment, play with code, and see how things work (or don't work! - that's also a great way to learn!)

Who this course is for:

Anyone with a basic understanding of Python that wants to take it to the next level and get a really deep understanding of the Python language and its data structures.
Anyone preparing for an in-depth Python technical interview.

What you'll learn...

  • An in-depth look at variables, memory, namespaces and scopes
  • A deep dive into Python's memory management and optimizations
  • In-depth understanding and advanced usage of Python's numerical data types (Booleans, Integers, Floats, Decimals, Fractions, Complex Numbers)
  • Advanced Boolean expressions and operators
  • Advanced usage of callables including functions, lambdas and closures
  • Functional programming techniques such as map, reduce, filter, and partials
  • Create advanced decorators, including parametrized decorators, class decorators, and decorator classes
  • Advanced decorator applications such as memoization and single dispatch generic functions
  • Use and understand Python's complex Module and Package system
  • Idiomatic Python and best practices
  • Understand Python's compile-time and run-time and how this affects your code
  • Avoid common pitfalls

Requirements

Basic introductory knowledge of Python programming (variables, conditional statements, loops, functions, lists, tuples, dictionaries, classes).
You will need Python 3.6 or above, and a development environment of your choice (command line, PyCharm, Jupyter, etc.)

Course content

  • Introduction
    • Course Overview
    • Pre-Requisites
    • Code Projects and Notebooks
  • A Quick Refresher - Basics Review
    • Introduction
    • The Python Type Hierarchy
    • Multi-Line Statements and Strings
    • Variable Names
    • Conditionals
    • Functions
    • The While Loop
    • Break, Continue and the Try Statement
    • The For Loop
    • Classes
  • Variables and Memory
    • Introduction
    • Variables are Memory References
    • Reference Counting
    • Garbage Collection
    • Dynamic vs Static Typing
    • Variable Re-Assignment
    • Object Mutability
    • Function Arguments and Mutability
    • Shared References and Mutability
    • Variable Equality
    • Everything is an Object
    • Python Optimizations: Interning
    • Python Optimizations: String Interning
    • Python Optimizations: Peephole
  • Numeric Types
    • Introduction
    • Integers: Data Types
    • Integers: Operations
    • Integers: Constructors and Bases - Lecture
    • Integers: Constructors and Bases - Coding
    • Rational Numbers - Lecture
    • Rationals Numbers - Coding
    • Floats: Internal Representations - Lecture
    • Floats: Internal Representations - Coding
    • Floats: Equality Testing - Lecture
    • Floats: Equality Testing - Coding
    • Floats: Coercing to Integers - Lecture
    • Floats: Coercing to Integers - Coding
    • Floats: Rounding - Lecture
    • Floats: Rounding - Coding
    • Decimals - Lecture
    • Decimals - Coding
    • Decimals: Constructors and Contexts - Lecture
    • Decimals: Constructors and Contexts - Coding
    • Decimals: Math Operations - Lecture
    • Decimals: Math Operations - Coding
    • Decimals: Performance Considerations
    • Complex Numbers - Lecture
    • Complex Numbers - Coding
    • Booleans
    • Booleans: Truth Values - Lecture
    • Booleans: Truth Values - Coding
    • Booleans: Precedence and Short-Circuiting - Lecture
    • Booleans: Precedence and Short-Circuiting - Coding
    • Booleans: Boolean Operators - Lecture
    • Booleans: Boolean Operators - Coding
    • Comparison Operators
  • Function Parameters
    • Argument vs Parameter
    • Positional and Keyword Arguments - Lecture
    • Positional and Keyword Arguments - Coding
    • Unpacking Iterables - Lecture
    • Unpacking Iterables - Coding
    • Extended Unpacking - Lecture
    • Extended Unpacking - Coding
    • *args - Lecture
    • *args - Coding
    • Keyword Arguments - Lecture
    • Keyword Arguments - Coding
    • **kwargs
    • Putting it all Together - Lecture
    • Putting it all Together - Coding
    • Application: A Simple Function Timer
    • Parameter Defaults - Beware!!
    • Parameter Defaults - Beware Again!!
  • First-Class Functions
    • Introduction
    • Docstrings and Annotations - Lecture
    • Docstrings and Annotations - Coding
    • Lambda Expressions - Lecture
    • Lambda Expressions - Coding
    • Lambdas and Sorting
    • Challenge - Randomize an Iterable using Sorted!!
    • Function Introspection - Lecture
    • Function Introspection - Coding
    • Callables
    • Map, Filter, Zip and List Comprehensions - Lecture
    • Map, Filter, Zip and List Comprehensions - Coding
    • Reducing Functions - Lecture
    • Reducing Functions - Coding
    • Partial Functions - Lecture
    • Partial Functions - Coding
    • The operator Module - Lecture
    • The operator Module - Coding
  • Scopes, Closures and Decorators
    • Introduction
    • Global and Local Scopes - Lecture
    • Global and Local Scopes - Coding
    • Nonlocal Scopes - Lecture
    • Nonlocal Scopes - Coding
    • Closures - Lecture
    • Closures - Coding
    • Closure Applications - Part 1
    • Closure Applications - Part 2
    • Decorators (Part 1) - Lecture
    • Decorators (Part 1) - Coding
    • Decorator Application (Timer)
    • Decorator Application (Logger, Stacked Decorators)
    • Decorator Application (Memoization)
    • Decorators (Part 2) - Lecture
    • Decorators (Part 2) - Coding
    • Decorator Application (Decorator Class)
    • Decorator Application (Decorating Classes)
    • Decorator Application (Dispatching) - Part 1
    • Decorator Application (Dispatching) - Part 2
    • Decorator Application (Dispatching) - Part 3
  • Tuples as Data Structures and Named Tuples
    • Introduction
    • Tuples as Data Structures - Lecture
    • Tuples as Data Structures - Coding
    • Named Tuples - Lecture
    • Named Tuples - Coding
    • Named Tuples - Modifying and Extending - Lecture
    • Named Tuples - Modifying and Extending - Coding
    • Named Tuples - DocStrings and Default Values - Lecture
    • Named Tuples - DocStrings and Default Values - Coding
    • Named Tuples - Application - Returning Multiple Values
    • Named Tuples - Application - Alternative to Dictionaries
  • Modules, Packages and Namespaces
    • Introduction
    • What is a Module?
    • How does Python Import Modules?
    • Imports and importlib
    • Import Variants and Misconceptions - Lecture
    • Import Variants and Misconceptions - Coding
    • Reloading Modules
    • Using __main__
    • Modules Recap
    • What are Packages? - Lecture
    • What are Packages ? - Coding
    • Why Packages?
    • Structuring Packages - Part 1
    • Structuring Packages - Part 2
    • Namespace Packages
    • Importing from Zip Archives
  • Extras
    • Introduction
    • Additional Resources
    • Python 3.6 Highlights
    • Python 3.6 - Dictionary Ordering
    • Python 3.6 - Preserved Order of kwargs and Named Tuple Application
    • Python 3.6 - Underscores in Numeric Literals
    • Python 3.6 - f-Strings
    • Random: Seeds
    • Random Choices
    • Random Samples
    • Timing code using *timeit*
    • Don't Use *args and **kwargs Names Blindly
    • Command Line Arguments
    • Sentinel Values for Parameter Defaults
    • Simulating a simple switch in Python

پیشنهاد آموزش مرتبط در فرادرس

خرید لینک های دانلود
  • حجم فایل: 9.71GB
  • زبان: انگلیسی
  • زیرنویس انگلیسی: ندارد
  • قیمت: 10000 تومان
  • دوره شیرجه عمیق به پایتون 3 - بخش 1 - تابعی یک محصول ویژه است و دریافت لینک های دانلود آن با پرداخت هزینه امکان پذیر است. اطلاعات بیشتر

بهروز 5 ماه و 4 هفته قبل

سلام ممنون
بله درسته ۶ پارت داره ولی بعد دانلود و اکسترکت حجم فایل ها ۹.۷۱ گیگ است (۱۰ فولدر، ۳۳۰ فایل). چک کنین متوجه میشین خودتون، به هیچ عنوان حجم فایل ها ۲۵.۱۵ گیگ نیست.
ممنون

مونا شوشتری 5 ماه و 3 هفته قبل

دوست عزیز اگه 6 پارت را در اختیار دارین درست است.

بهروز 5 ماه و 4 هفته قبل

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

مونا شوشتری 5 ماه و 4 هفته قبل

سلام دوست عزیز، این دوره 6 پارت داره که بعد از دانلود و اکسترکت 25.15 گیگ است که حدود 44.5 ساعته. اگر مجددا به مشکل برخوردید به ما اطلاع دهید. ممنون از همراهی شما.