Голосов: 0
#1
100 дней программирования на Python
Краткое описание курса
Автор Michael Kennedy (язык курса английский)
100DaysOfCode в Python - ваш идеальный компаньон, чтобы заниматься 100 дней программированием на Python и добиться успеха. Вы будете поражены тем, сколько технологий и библиотек Python вы узнаете в этом путешествии. Присоединитесь к курсу и приступайте к работе.
Для кого этот курс?
Этот курс предназначен для тех, кто хочет погрузиться в Python за 100 дней обучения и практических проектов.
Мы не начинаем с абсолютного нуля с точки зрения программирования. К концу курса мы создадим проекты Python среднего уровня сложности.
Что вы узнаете на этом курсе?
В этом курсе (17 часов видео) будет:
- Понимание основных структур данных Python
- Поиск с использование регулярных выражений
- Изучайте службы HTTP, включая API Twitter и GitHub.
- Визуализация данных, используя графики
- Преобразуйте приложение Python CLI (интерфейс командной строки) в приложение GUI
- Excel в Python для автоматизации ваших электронных таблиц
- Постройте текстовую игру и изучите объектно-ориентированное программирование
- Автоматизация многоэтапных веб-процессов с использованием selenium
- Проверьте свой код с помощью тестирования pytest и unit testing
- Создайте базовое веб-приложение с Flask
- Создайте службу онлайн-игр на основе JSON и Flask
- И еще 22 проекта!
Welcome to the course
Welcome to the courseDays 1-3: Playing with Datetimes
The rules of #100DaysOfCode
Topics covered
Why Python for #100DaysOfCode
Course flow
Meet your instructors
Need a Python primer?
Get the source code
Three devs are better than one
09-julian-setup
10-bob-setup
Michael's tool's and setup
PyBites code challenge platform
Video player: A quick feature tour
Lesson introductionDays 4-6: Collections module
Your 3 day overview
Learning datetime and date
Datetime timedelta usage
Concepts: what did we learn
Lesson introductionDays 7-9: Python Data Structures
Namedtuples: more readable code
Defaultdicts: factory for data structures
Counter: don't reinvent the wheel
Deque: when lists become slow
Concepts: what did we learn
Second day: use collections on movie data
Third day: get more practice
Introduction to Data StructuresDays 10-12: Testing your code with pytest
Your 3 day overview
Manipulating Lists
Immutability and Tuples
Creating and Parsing Dictionaries
Concepts: what did we learn
Lesson introductionDays 13-15: Text-based games (and classes)
The importance of testing
Setup and a guessing game to test
Hello test world - unittest vs pytest
Mocking randomness / pytest-cov
Mocking user input and exceptions
Testing a program's stdout with capfd
Testing (simulating) the game end-to-end
A TDD primer writing Fizz buzz
Concepts: what did we learn
Second day: use pytest on your code
Third day: writing pytest fixtures
Introduction to the chapterDays 16-18: List comprehensions and generators
Modeling concepts: Inheritance, classes, and objects
Demo: Initial project structure
Demo: Building our classes
Demo: Implementing the game play
Concept: Classes
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Lesson introductionDays 19-21: Iteration with itertools
Writing a simple list comprehension
Cleaning data with list comprehensions
Generators - the basics
Use generators to build a sequence
List vs generator performance
Concepts: what did we learn
Second day: a practical exercise
Third day: solution and islice
Third day: more code challenges
Introduction to the lessonDays 22-24: Decorators
Your 3 day overview
Iteration Refresher
Itertools - Cycle
Itertools - Product
Combinations and Permutations
Traffic Lights Project
Concepts: what did we learn?
Lesson introductionDays 25-27: Error handling
Quick primer on decorators
Function argument types: args and kwargs
Write a timeit decorator (wraps)
More abstraction: stacking decorators
Examples of real life decorators
Concepts: what did we learn
Second day: a practical exercise
Third day: write your own decorator
Introducing Python's error handlingDays 28-30: Regular Expressions
Demo: The starter app skeleton
Demo: try-except blocks
Demo: Error types
Concepts: Error handling and exceptions
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Lesson introductionDays 31-33: Logging
When not to use regexes
Comparing re.search and re.match
String capturing parenthesis
findall is your friend
Compiling regexes with re.VERBOSE
Using re.sub for string replacing
Concepts: what did we learn
Second day: write your own regexes
Third day: more regex exercises
Introduction to loggingDays 34-36: Refactoring / Pythonic code
Logging with Logbook
Demo: Introducing our app
Demo: Configuring logging
Demo: Writing the log messages
Demo: Logging a the API level
Demo: File logging
Concepts: Logging
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Lesson introductionDays 37-39: Using CSV data
Refactoring 1: if-elif-else horror
Refactoring 2: loop counting == enumerate
Refactoring 3: with statement (context managers)
Refactoring 4: use built-ins / standard library
Refactoring 5: tuple unpacking and namedtuples
Refactoring 6: list comprehensions and generators
Refactoring 7: string formatting and concatenation
Refactoring 8: PEP8 and Zen of Python
Refactoring 9: be explicit in your exceptions
Refactoring 10: quality code best practices
Refactoring / code quality resources
Concepts: what did we learn
Your turn: Day 2 and 3
Introduction to CSV programmingDays 40-42: JSON in Python
Some amazing data sets
Our data
Demo: Getting started with CSV processing
Demo: Reading the CSV file contents
Demo: Parsing the CSV file
Demo: Converting our CSV data to a usable form
Demo: Answer the questions
Concepts: CSV programming
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Introduction to JSONDays 43-45: Consuming HTTP services
Your 3 day overview
Inspecting JSON schema
Request JSON data from an API
Parsing nested dicts in JSON
Concepts: what did we learn
Introduction to HTTP APIsDays 46-48: Web Scraping with BeautifulSoup4
Exploring the service
Introducing the Postman app
The requests package
Demo: Building the program structure
Demo: Downloading search results
Demo: Data version one: dicts
Demo: Data version two: Better results
Concepts
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Introduction to BeautifulSoup4Days 49-51: Measuring performance
Your 3 day overview
Setting up the environment
A quick BS4 overview
Building your first BS4 scraper
Requests best practice
Detailed BS4 scraping and searching
Concepts: what did we learn
Introduction to profilingDays 52-54: Parsing RSS feeds with Feedparser
Intuition fail
Demo: Getting started
Demo: Focus on our code
Demo: Fine-tuning collection with the API
Demo: Even more focused collection
Demo: Faster with less data processed
PyCharm's profiling
Concepts: Profiling
A quantum warning
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Lesson introductionDays 55-57: Structured API clients with uplink
Your 3 day overview
Setting up our Feedparser environment
Pulling the feed with Requests
Parsing XML with Feedparser
Feedparser Sanity Check
Concepts: what did we learn
Introducing uplinkDays 58-60: Twitter data analysis with Python
A glimpse at an API
Use the official API if available
Demo: Getting started
Demo: Exploring the service
Demo: Creating the client
Demo: Getting a individual post
Demo: Only success responses
Demo: Writing a new post
Demo: Better wrappers and helpers
Concepts: uplink
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Lesson introductionDays 61-63: Using the Github API with Python
Create a Twitter app
Virtual environment and env variables
Get all tweets with tweepy.Cursor
Identify the most popular tweets
Most common hashtags and mentions
Build a Twitter wordcloud
Concepts: what did we learn
Second + third day: practice projects
Lesson introductionDays 64-66: Sending emails with smtplib
Setup and creating a Github user object
Quick detour: getting help in Python
Ranking user's repos by popularity
Creating a gist with the Github API
Inspecting Github objects with pdb
Concepts: what did we learn
Second day: examples / get practice
Third day: more practice / requests-cache
Introduction to sending EmailsDays 67-69: Copy and Paste with Pyperclip
Your 3 day overview
Obtaining your Gmail App ID
Email Project Setup
Sending an Email with smtplib
Getting into MIME
Emailing with BCC
Concepts: what did we learn
Lesson introductionDays 70-72: Excel automation with openpyxl
Your 3 day overview
Setup: Install Pyperclip and your env
Pyperclip Usage
Demo: Affiliate script
Demo: Pyperclip text replacer
Concepts: what did we learn
Lesson introductionDays 73-75: Automate tasks with Selenium
Your 3 day overview
Setup: install openpyxl and your env
Understanding workbooks and worksheets in openpyxl
Working with cell values
Using maxrow
Inserting data into a worksheet
Concepts: what did we learn
Lesson introductionDays 76-78: Getting Started with Python Flask
Setup: install Selenium and ChromeDriver
Hello world Selenium: search python.org
Demo 1: access my Packt ebook collection
Demo 2: automating PyBites banner creation
Concepts: what did we learn
Your turn: Day 2
Your turn: Day 3
Flask introductionDays 79-81: Basic Database Access with SQLite3
Your 3 day overview
Setting up the environment
Creating your first Flask app!
Dict data in Flask
Concepts: what did we learn
A brief intro to SQLite3 DatabasesDays 82-84: Data visualization with Plotly
Your 3 day overview
Installing SQLite DB Browser
Creating a simple SQLite3 address book
Analysing the DB with SQLite DB Browser
Demo: Script to Generate a DB
Inserting data into the address book
Demo: Script to populate the address book
Pulling data with SELECT
Concepts: what did we learn
Lesson introductionDays 85-87: Fullstack web apps made easy
Installing feedparser and plotly
Prep 1: parse PyBites RSS feed data
Prep 2: useful data structures for plotting
Prep 3: transpose data and init Plotly
Creating bar and pie charts with Plotly
Other data visualization libraries
Concepts: what did we learn
Second day: build your own graphs
Third day: extra inspiration / keep coding
Fullstack web introductionDays 88-90: Home Inventory App
What is fullstack development?
What app will we build?
Introducing Anvil
Anvil building blocks
Creating a new project in Anvil
Adding navigation
Subforms
Linking the forms
Building the Add new document form
Processing add new document
Data tables
Anvil server code
Creating the document
Add document finale
All docs
A refactoring
Adding filtering
Document details form
Publishing our web app
Anvil concepts
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Lesson IntroductionDays 91-93: Database access with SQLAlchemy
Your 3 day overview
Writing and working the main menu
SQLite3 database usage
Scrub function - SQLite3 workaround
Home Inventory app run through
Bug and functionality fixes
Your Turn! - Fix the app
Introducing SQLAlchemyDays 94-96: Rich GUI apps in Python
Demo: Introducing our app
Demo: The app skeleton
Demo: Defining database classes
Demo: Defining columns (via classes)
Demo: Connecting to the database
Demo: Using the data access layer (DAL)
Demo: The final game
Demo: Seeing the database
Concepts: SQLAlchemy
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Introduction to Python UIsDays 97-99: Building JSON APIs
Demo: Where we are starting
Demo: Refactoring to isolate user input
Demo: Adding Gooey to our app
Demo: Packaging our app for redistribution
Concepts: Gooey
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
Introducing our online game serverDay 100
What API operations are required?
Getting started: Program structures
Adding the Flask basics
Defining JSON methods in Flask
Migrating our SQLAlchemy models
Ensuring starter data
Defining the API methods in Flask
Exercising the API
Implementing the all-rolls method
Implementing the create-game method
Implementing the find-user method
Implementing the create-user method
Implementing the game-status method
Implementing the top-scores method
Implementing the play-round method
Refactoring our web code for single responsibility
Implementing the client
Making the client self-validating
Writing the full client
Implementing the game (client-side)
Your turn: Day 1
Your turn: Day 2
Your turn: Day 3
The final dayCourse conclusion
You've done it!Appendix: Python language concepts
What you've learned
Make sure you have the source
Stay immersed in Python
Continue to challenge yourself with PyBites
Thanks and goodbye
Concept: The shape of a program
Concept: Variables
Concept: Truthiness
Concept: If else
Concept: Complex conditionals
Concept: for-in
Concept: Calling functions
Concept: Creating functions
Concept: File I/O
Concept: Imports and importing modules
Concept: Python package index
Concept: pip
Concept: Virtual environments
Concept: Slicing
Concept: Tuples
Concept: Named tuples
Concept: Classes
Concept: objects vs. classes
Concept: Inheritance
Concept: Polymorphism
Concept: Dictionaries
Concept: Error handling
Concept: lambdas
Concept: list comprehensions
Concept: Want more foundational Python?
На этого автора уже было несколько складчин, кроме того он ведет увлекательный подкаст.
Для просмотра содержимого вам необходимо зарегистрироваться!Для просмотра содержимого вам необходимо зарегистрироваться!
Последнее редактирование модератором:
- Статус
- В этой теме нельзя размещать новые ответы.