学习 Python 编程大师班
上次更新时间:2024-12-16
课程售价: 2.9 元
联系右侧微信客服充值或购买课程
课程内容
- 001 Introduction To The Course (免费)
- 002 Remaster in Progress (免费)
- 003 Video Quality
- 004 Subtitles
- 005 How to Get Help
- 006 Important Tip Source Code
- 008 Python for Windows
- 009 Installing IntelliJ IDEA for Windows
- 010 Python for Mac
- 011 Install IntelliJ IDEA for Mac
- 012 Python for Linux
- 013 Install IntelliJ IDEA for Linux
- 014 Configuring IntelliJ IDEA WINDOWS MAC and LINUX
- 015 Further configuration of IntelliJ
- 016 Introduction
- 017 Our First Python Program
- 018 Printing in Python
- 021 Strings in Python
- 022 The Escape Character
- 024 More on Escape Characters in Strings
- 025 Variables and Types
- 026 Python is a Strongly Typed Language
- 027 Numeric Data Types in Python
- 028 Numeric Operators
- 029 Expressions
- 031 Operator Precedence
- 032 The str String Data Type
- 033 Negative Indexing in Strings
- 034 Slicing
- 035 Slicing with Negative Numbers
- 036 Using a Step in a Slice
- 037 Slicing Backwards
- 038 Challenge Solution and Slicing Idioms
- 039 String Operators
- 040 String Replacement Fields
- 041 String Formatting
- 042 f strings
- 043 Python 2 String Interpolation
- 044 Section Summary
- 046 Introduction to Blocks and Statements
- 047 if Statements
- 048 elif
- 049 Using a Debugger in IntelliJ or Pycharm
- 050 More on if elif and else
- 051 if elif and else in the Debugger
- 054 Adding a Second Guess
- 055 Conditional Operators
- 056 Challenge Solution
- 057 Using and or in Conditions
- 058 Simplify Chained Comparison
- 059 Boolean Expression True and False
- 060 Truthy Values
- 061 in and not in
- 062 if Challenge
- 063 Solution to if Challenge
- 064 for loops
- 065 Stepping through a for loop
- 066 for loops Extracting Values from User Input
- 068 Iterating Over a Range
- 070 More About Ranges
- 072 Nested for loops
- 073 continue
- 074 break
- 075 Initialising Variables and None
- 076 while loops
- 077 More on while loops
- 078 Break in a while loop
- 081 The Random Module and Import
- 082 Challenge Solution
- 083 Binary Search
- 084 Hi Lo Game
- 085 Pass Statement and Complete the Hi Lo Game
- 086 Testing the Hi Lo Game
- 087 Augmented Assignment
- 089 PEP8 The Python Style Guide
- 090 Refactoring Code
- 091 else in a loop
- 092 else in the Hi Lo Game
- 093 Conditional Debugging
- 094 Another else Example
- 095 Section Summary and Challenge
- 096 Section Challenge Solution
- 097 Optional Extra Challenge Solution
- 098 Changing the Condition
- 100 Introduction to Sequence Types
- 101 Lists
- 102 Immutable Objects
- 103 Mutable Objects
- 104 Binding Multiple Names to a List
- 105 Common Sequence Operations
- 106 Operations on Mutable Sequences
- 107 Appending to a List
- 108 Mini Challenge Solution
- 109 Iterating Over a List
- 110 The enumerate Function
- 111 Improving our Code
- 113 Removing Items from a List
- 114 Sorting Lists
- 115 Built in Functions
- 116 Sorting Things
- 117 Case Insensitive Sorting
- 118 Creating Lists
- 119 Replacing a slice
- 120 Deleting Items from a List
- 121 Safely removing values from a list
- 122 Removing the High Values
- 123 Test Test and Test Then Test Again
- 124 Testing the Program
- 125 Removing Items from a List Backwards
- 126 The Reversed Function
- 127 Algorithms Performance
- 128 Summary so far
- 129 Nested Lists Code Style
- 130 Processing Nested Lists
- 131 Solution to nospam Challenge
- 132 Function Signatures
- 133 print revisited
- 134 The join Method
- 135 The split Method
- 136 Solution to Mini Challenge
- 138 Tuples
- 139 Tuples are Immutable
- 140 Unpacking a Tuple
- 141 Practical uses for Unpacking Tuples
- 142 More Unpacking
- 143 Nested Tuples and Lists
- 144 Solution to Unpacking Challenge
- 145 Nesting Further
- 146 Nested Data Structures
- 147 Nested Indexing
- 149 Simple Jukebox Demonstration
- 150 Simple Jukebox Importing Data
- 151 Simple Jukebox The Code
- 152 Constants in Python
- 153 Finishing the Code
- 154 Challenge
- 155 Challenge Solution
- 156 Summary
- 157 Introduction
- 158 Defining a function
- 159 Program flow when calling a function
- 160 Parameters and arguments
- 161 Debugging with parameters
- 162 Palindromes
- 163 Palindrome challenge solution
- 164 Sentence challenge solution
- 165 Functions calling functions
- 166 Returning values
- 167 get integer Challenge solution
- 169 Returning None
- 170 Functions that perform actions
- 171 Handling invalid arguments
- 172 width challenge solution
- 173 Default parameter values
- 174 Keyword arguments
- 175 Docstrings
- 176 Writing a Docstring
- 177 How professional is that
- 179 Fibonacci Numbers
- 180 Writing a fibonacci function
- 181 Function annotations and type hints
- 182 Function annotations with default values
- 184 A history lesson
- 185 Printing in colour
- 186 Running your program like a user
- 187 Windows Only Installing pre release version of colorama
- 188 colorama module and virtual environments
- 189 Activating a virtual environment
- 190 A function to test our HiLo game
- 191 Counting correct guesses
- 193 Playing Fizz Buzz
- 194 Playing Fizz Buzz Solution
- 196 args
- 197 colour print with multiple arguments
- 198 Rules for variable number of arguments
- 199 Defining different parameter types
- 201 Section Summary
- 202 Introduction
- 203 What is a dictionary
- 204 Iterating over a dictionary
- 205 Adding items to a dictionary
- 206 Changing values in a dictionary
- 207 Removing items from a dictionary
- 208 Using in with a dictionary
- 209 Dictionary menu challenge solution
- 211 Adding items to a dictionary
- 212 Smart fridge
- 213 What s for tea
- 214 Using several dictionaries together
- 215 Checking the pantry
- 216 Checking quantities choosing a data structure
- 217 Checking quantities the code
- 218 Solution Create a shopping list challenge
- 219 Wrong decisions don t have to be fatal
- 220 The setdefault method
- 222 APIs and a mobile phone demo
- 223 The dict documentation
- 224 The remaining dict methods
- 225 The dict update method
- 226 The dict values method
- 227 References to mutable objects
- 228 Shallow copy
- 229 Shallow copy step by step
- 230 Deep copy
- 231 Simple deep copy solution
- 232 Hash functions
- 233 A really bad hashing function
- 234 Hash tables
- 235 Completing our simple dictionary implementation
- 236 Hash functions and security
- 237 hashlib the secure hash module
- 238 Introduction to sets
- 239 Python sets
- 240 Implications of sets being unordered
- 241 set membership
- 242 Testing set membership is fast
- 243 Adding items to a set
- 244 Using a set to remove duplicate values
- 245 Deleting items from a set
- 246 The discard method
- 247 The remove method
- 248 The pop method
- 249 set union
- 250 Set union in practice
- 251 Union update
- 252 Advantage of the set operation methods over the operators
- 253 Set intersection
- 254 Set intersection in practice
- 256 Set difference
- 257 Set difference in practice
- 259 Set symmetric difference
- 260 subsets and supersets
- 261 subsets and supersets in Python
- 262 Practical application of subsets and supersets
- 264 Introduction
- 265 Files and directories
- 266 Introduction to the command prompt or terminal
- 267 Paths
- 268 Text files
- 269 Reading from a text file
- 270 Opening a file using with
- 271 read readline and readlines
- 272 strip lstrip and rstrip
- 273 removeprefix and removesuffix in Python 3 9
- 274 Parsing data in a text file
- 275 Working with text data
- 276 Solution to capital city challenge
- 277 Dictionary values with multiple keys
- 278 Printing data to a text file
- 279 Writing data to a text file
- 280 File modes
- 281 Unicode a brief history
- 282 Unicode in Python
- 283 File encodings
- 284 Serializing data using JSON
- 285 Limitations of JSON
- 286 Practical application parsing JSON data
- 287 Practical application parsing JSON data from the internet
- 288 The CSV format
- 289 Reading a CSV file
- 290 quoting in a CSV file
- 291 Sniffer and Dialect
- 292 CSV Dialect
- 293 Writing a CSV file
- 294 The csv DictReader
- 295 Solution to DictReader challenge
- 296 Field names with DictReader and DictWriter
- 297 Reading and writing multiple files
- 298 The csv DictWriter
- 299 The zip function
- 300 Reading and writing to the same text file
- 301 Solution to parsing functions challenge
- 302 The record invoice function
- 303 Using the record invoice function
- 304 seek and tell
- 305 Improving the record invoice function
- 307 Working with binary files bytes and bytearray
- 308 Reading a bitmap file
- 309 Little endian and big endian
- 310 Making sense of binary data
- 311 Reading tags in an mp3 file
- 312 The ID3v2 specification
- 313 The code
- 314 Filling in the blanks
- 315 Extracting images
- 316 Testing our read id3 program
- 317 Checking the hash of a file
- 319 End of Remaster
- 320 Introduction to the section
- 321 The turtle module
- 322 Importing specific objects
- 323 Namespaces and global scope
- 324 Local scope
- 325 Builtins
- 326 Nested functions
- 327 Enclosing scope
- 328 A little white lie or an oversimplification
- 329 Changing the value of a free variable
- 330 Investigating changes to a free variable
- 331 The nonlocal keyword
- 332 The global keyword
- 333 Importing and the global namespace
- 334 I nearly forgot
- 335 import
- 336 if name main
- 337 An optimisation you may see in code
- 338 The webbrowser module
- 339 Dates and times in Python
- 340 The datetime module s date class
- 341 timedelta objects
- 342 The datetime module s time class
- 343 datetime date and another note about importing
- 344 Aware and naive times
- 345 zoneinfo backport
- 346 timezone objects
- 347 Timezone challenge solution
- 348 Some behaviour you might not expect
- 349 Perform arithmetic in UTC most of the time
- 351 Introduction to Tkinter
- 352 TkInter Pack Geometry Manager
- 353 TkInter Grid Geometry Manager
- 354 Advanced GUI Example Part 1
- 355 Advanced GUI Example Part 2
- 356 Advanced GUI Example Part 3
- 357 Tkinter Challenge
- 358 Functions in Python
- 359 Functions Part 2
- 360 Functions Part 3
- 361 Parabola More on Functions
- 362 Scope in Functions
- 363 Fix Function and Draw Circles
- 364 Enhanced Circles and Challenge
- 365 Blackjack Setup
- 366 Load Cards
- 367 Deal Cards
- 368 Global Variables
- 369 Global Keyword
- 370 Test Blackjack Game
- 371 Blackjack Challenge
- 372 Importing Techniques
- 373 Underscores in Python code
- 374 Namespaces more on Scope and Recursion
- 375 Recursion with OS Module and Filesystem and Nonlocal keyword
- 376 Nonlocal keyword Free and LEGB
- 377 Object Orientated Programming and Classes
- 378 Instances Constructors Self and more
- 379 Class Attributes
- 380 Methods Part 1
- 381 Methods Part 2
- 382 Non Public and Mangling
- 383 DocStrings and Raw Literals
- 384 Album class and More on DocStrings
- 385 Artist class and import Albums
- 386 Load data and Write Checkfile
- 387 Compare Files and Algorithm Flowcharts
- 388 Implement Revised Load Data Algorithm
- 389 Write OOP Version
- 390 Getters and Properties
- 391 Remove Circular References Challenge
- 392 Getters and Setters
- 393 Data Attributes and Properties
- 394 Alternate Syntax for Properties
- 395 Inheritance
- 396 Subclasses and Overloading
- 397 Calling Super Methods
- 398 Changing Behavior of Methods
- 399 Overriding Methods
- 400 Inheritance Challenge
- 401 Polymorphism
- 402 Duck Test
- 403 Composition
- 404 Composition Continued
- 405 Test Code and Challenge
- 406 Aggregation
- 407 Introduction to Databases
- 408 Database Terminology
- 409 Sqlite3 Install on Windows
- 410 Sqlite3 Install on a Mac
- 411 SQLite3 Install on Ubuntu Linux
- 412 Introduction to SQLite
- 413 More with SQL using SQLite
- 414 Querying data with Sqlite
- 415 Order by and Joins
- 416 More complex Joins
- 417 Wildcards and Views
- 418 Housekeeping and the Challenge
- 419 SQL in Python
- 420 Connections Cursors and Transactions
- 421 SQL Injection Attacks
- 422 Placeholders and Parameter Substitution
- 423 Exceptions
- 424 Exceptions Challenge
- 425 Exceptions Continued
- 426 Raising Exceptions
- 427 More on Exceptions
- 428 Exceptions and TODO
- 429 Rolling back Transactions
- 430 Adding Database code to the Account Class
- 431 GUI Database Editing Overview
- 432 Ultimate Edition Database View
- 434 Update Deposit and Withdrawal Methods
- 435 Displaying Time in Different Timezones
- 436 SQLite3 strftime Function
- 437 Challenge
- 438 Problems Storing Timezones
- 439 Rolling Back Transactions
- 440 Simple Database Browser
- 441 Scrollbars
- 442 Star Args
- 443 Kwargs
- 444 More on KWArgs
- 445 Scrollable Listbox
- 446 Populating a Listbox from a Database
- 447 Show Songs from Album
- 448 The DataListbox Class Code
- 449 Linking our DataListBoxes
- 450 Linking our DataListBoxes Continued
- 451 DataListbox Challenge
- 452 Introduction
- 453 Generators and Yield
- 454 Next and Ranges
- 455 Generator Examples Fibonacci numbers and Calculating Pi
- 456 The os walk Generator
- 457 Searching the Filesystem
- 458 Reading Mp3 Tags
- 459 List Comprehensions
- 460 List Comprehensions and Side Effects
- 461 Challenge Solutions
- 462 Conditional Comprehensions
- 463 Conditional Expressions
- 464 Challenges
- 465 Challenge 1 Solution
- 466 Challenge 2 Solution
- 467 Nested Comprehensions
- 468 Nested Comprehensions Challenge
- 469 The timeit Module
- 470 More on timeit
- 471 timeit Continued and Challenge
- 472 timeit Challenge
- 473 Map Intro
- 474 Map Challenge Completion
- 475 The Filter Function
- 476 The Reduce Function
- 477 any and all
- 478 Named Tuples
- 479 any and all with Comprehensions
- 480 Lambda expressions
- 481 Using lambdas
- 482 More lambdas
- 483 Conditional expressions
- 484 Conditional expression challenge
- 485 A lambda with a conditional expression
- 486 A toy calculator
- 487 A lambda in a loop
- 488 Methods of some state carrying object
- 489 Frame makes a good base class
- 490 eval is dangerous
- 491 Control all input to eval
- 492 Mitigating the danger of eval
- 493 Functions are objects
- 494 Big O notation
- 495 Big O tables and graphs
- 496 Bubble sort
- 497 Big O of Bubble sort and an optimisation
- 498 Big O of our improved Bubble sort
- 499 Bubble sort optimisation
- 500 Best worst and average cases
- 501 Big O summary
- 503 Bonus Downloads including slides
课程内容
469个讲座
- 001 Introduction To The Course (免费)
- 002 Remaster in Progress (免费)
- 003 Video Quality
- 004 Subtitles
- 005 How to Get Help
- 006 Important Tip Source Code
- 008 Python for Windows
- 009 Installing IntelliJ IDEA for Windows
- 010 Python for Mac
- 011 Install IntelliJ IDEA for Mac
- 012 Python for Linux
- 013 Install IntelliJ IDEA for Linux
- 014 Configuring IntelliJ IDEA WINDOWS MAC and LINUX
- 015 Further configuration of IntelliJ
- 016 Introduction
- 017 Our First Python Program
- 018 Printing in Python
- 021 Strings in Python
- 022 The Escape Character
- 024 More on Escape Characters in Strings
- 025 Variables and Types
- 026 Python is a Strongly Typed Language
- 027 Numeric Data Types in Python
- 028 Numeric Operators
- 029 Expressions
- 031 Operator Precedence
- 032 The str String Data Type
- 033 Negative Indexing in Strings
- 034 Slicing
- 035 Slicing with Negative Numbers
- 036 Using a Step in a Slice
- 037 Slicing Backwards
- 038 Challenge Solution and Slicing Idioms
- 039 String Operators
- 040 String Replacement Fields
- 041 String Formatting
- 042 f strings
- 043 Python 2 String Interpolation
- 044 Section Summary
- 046 Introduction to Blocks and Statements
- 047 if Statements
- 048 elif
- 049 Using a Debugger in IntelliJ or Pycharm
- 050 More on if elif and else
- 051 if elif and else in the Debugger
- 054 Adding a Second Guess
- 055 Conditional Operators
- 056 Challenge Solution
- 057 Using and or in Conditions
- 058 Simplify Chained Comparison
- 059 Boolean Expression True and False
- 060 Truthy Values
- 061 in and not in
- 062 if Challenge
- 063 Solution to if Challenge
- 064 for loops
- 065 Stepping through a for loop
- 066 for loops Extracting Values from User Input
- 068 Iterating Over a Range
- 070 More About Ranges
- 072 Nested for loops
- 073 continue
- 074 break
- 075 Initialising Variables and None
- 076 while loops
- 077 More on while loops
- 078 Break in a while loop
- 081 The Random Module and Import
- 082 Challenge Solution
- 083 Binary Search
- 084 Hi Lo Game
- 085 Pass Statement and Complete the Hi Lo Game
- 086 Testing the Hi Lo Game
- 087 Augmented Assignment
- 089 PEP8 The Python Style Guide
- 090 Refactoring Code
- 091 else in a loop
- 092 else in the Hi Lo Game
- 093 Conditional Debugging
- 094 Another else Example
- 095 Section Summary and Challenge
- 096 Section Challenge Solution
- 097 Optional Extra Challenge Solution
- 098 Changing the Condition
- 100 Introduction to Sequence Types
- 101 Lists
- 102 Immutable Objects
- 103 Mutable Objects
- 104 Binding Multiple Names to a List
- 105 Common Sequence Operations
- 106 Operations on Mutable Sequences
- 107 Appending to a List
- 108 Mini Challenge Solution
- 109 Iterating Over a List
- 110 The enumerate Function
- 111 Improving our Code
- 113 Removing Items from a List
- 114 Sorting Lists
- 115 Built in Functions
- 116 Sorting Things
- 117 Case Insensitive Sorting
- 118 Creating Lists
- 119 Replacing a slice
- 120 Deleting Items from a List
- 121 Safely removing values from a list
- 122 Removing the High Values
- 123 Test Test and Test Then Test Again
- 124 Testing the Program
- 125 Removing Items from a List Backwards
- 126 The Reversed Function
- 127 Algorithms Performance
- 128 Summary so far
- 129 Nested Lists Code Style
- 130 Processing Nested Lists
- 131 Solution to nospam Challenge
- 132 Function Signatures
- 133 print revisited
- 134 The join Method
- 135 The split Method
- 136 Solution to Mini Challenge
- 138 Tuples
- 139 Tuples are Immutable
- 140 Unpacking a Tuple
- 141 Practical uses for Unpacking Tuples
- 142 More Unpacking
- 143 Nested Tuples and Lists
- 144 Solution to Unpacking Challenge
- 145 Nesting Further
- 146 Nested Data Structures
- 147 Nested Indexing
- 149 Simple Jukebox Demonstration
- 150 Simple Jukebox Importing Data
- 151 Simple Jukebox The Code
- 152 Constants in Python
- 153 Finishing the Code
- 154 Challenge
- 155 Challenge Solution
- 156 Summary
- 157 Introduction
- 158 Defining a function
- 159 Program flow when calling a function
- 160 Parameters and arguments
- 161 Debugging with parameters
- 162 Palindromes
- 163 Palindrome challenge solution
- 164 Sentence challenge solution
- 165 Functions calling functions
- 166 Returning values
- 167 get integer Challenge solution
- 169 Returning None
- 170 Functions that perform actions
- 171 Handling invalid arguments
- 172 width challenge solution
- 173 Default parameter values
- 174 Keyword arguments
- 175 Docstrings
- 176 Writing a Docstring
- 177 How professional is that
- 179 Fibonacci Numbers
- 180 Writing a fibonacci function
- 181 Function annotations and type hints
- 182 Function annotations with default values
- 184 A history lesson
- 185 Printing in colour
- 186 Running your program like a user
- 187 Windows Only Installing pre release version of colorama
- 188 colorama module and virtual environments
- 189 Activating a virtual environment
- 190 A function to test our HiLo game
- 191 Counting correct guesses
- 193 Playing Fizz Buzz
- 194 Playing Fizz Buzz Solution
- 196 args
- 197 colour print with multiple arguments
- 198 Rules for variable number of arguments
- 199 Defining different parameter types
- 201 Section Summary
- 202 Introduction
- 203 What is a dictionary
- 204 Iterating over a dictionary
- 205 Adding items to a dictionary
- 206 Changing values in a dictionary
- 207 Removing items from a dictionary
- 208 Using in with a dictionary
- 209 Dictionary menu challenge solution
- 211 Adding items to a dictionary
- 212 Smart fridge
- 213 What s for tea
- 214 Using several dictionaries together
- 215 Checking the pantry
- 216 Checking quantities choosing a data structure
- 217 Checking quantities the code
- 218 Solution Create a shopping list challenge
- 219 Wrong decisions don t have to be fatal
- 220 The setdefault method
- 222 APIs and a mobile phone demo
- 223 The dict documentation
- 224 The remaining dict methods
- 225 The dict update method
- 226 The dict values method
- 227 References to mutable objects
- 228 Shallow copy
- 229 Shallow copy step by step
- 230 Deep copy
- 231 Simple deep copy solution
- 232 Hash functions
- 233 A really bad hashing function
- 234 Hash tables
- 235 Completing our simple dictionary implementation
- 236 Hash functions and security
- 237 hashlib the secure hash module
- 238 Introduction to sets
- 239 Python sets
- 240 Implications of sets being unordered
- 241 set membership
- 242 Testing set membership is fast
- 243 Adding items to a set
- 244 Using a set to remove duplicate values
- 245 Deleting items from a set
- 246 The discard method
- 247 The remove method
- 248 The pop method
- 249 set union
- 250 Set union in practice
- 251 Union update
- 252 Advantage of the set operation methods over the operators
- 253 Set intersection
- 254 Set intersection in practice
- 256 Set difference
- 257 Set difference in practice
- 259 Set symmetric difference
- 260 subsets and supersets
- 261 subsets and supersets in Python
- 262 Practical application of subsets and supersets
- 264 Introduction
- 265 Files and directories
- 266 Introduction to the command prompt or terminal
- 267 Paths
- 268 Text files
- 269 Reading from a text file
- 270 Opening a file using with
- 271 read readline and readlines
- 272 strip lstrip and rstrip
- 273 removeprefix and removesuffix in Python 3 9
- 274 Parsing data in a text file
- 275 Working with text data
- 276 Solution to capital city challenge
- 277 Dictionary values with multiple keys
- 278 Printing data to a text file
- 279 Writing data to a text file
- 280 File modes
- 281 Unicode a brief history
- 282 Unicode in Python
- 283 File encodings
- 284 Serializing data using JSON
- 285 Limitations of JSON
- 286 Practical application parsing JSON data
- 287 Practical application parsing JSON data from the internet
- 288 The CSV format
- 289 Reading a CSV file
- 290 quoting in a CSV file
- 291 Sniffer and Dialect
- 292 CSV Dialect
- 293 Writing a CSV file
- 294 The csv DictReader
- 295 Solution to DictReader challenge
- 296 Field names with DictReader and DictWriter
- 297 Reading and writing multiple files
- 298 The csv DictWriter
- 299 The zip function
- 300 Reading and writing to the same text file
- 301 Solution to parsing functions challenge
- 302 The record invoice function
- 303 Using the record invoice function
- 304 seek and tell
- 305 Improving the record invoice function
- 307 Working with binary files bytes and bytearray
- 308 Reading a bitmap file
- 309 Little endian and big endian
- 310 Making sense of binary data
- 311 Reading tags in an mp3 file
- 312 The ID3v2 specification
- 313 The code
- 314 Filling in the blanks
- 315 Extracting images
- 316 Testing our read id3 program
- 317 Checking the hash of a file
- 319 End of Remaster
- 320 Introduction to the section
- 321 The turtle module
- 322 Importing specific objects
- 323 Namespaces and global scope
- 324 Local scope
- 325 Builtins
- 326 Nested functions
- 327 Enclosing scope
- 328 A little white lie or an oversimplification
- 329 Changing the value of a free variable
- 330 Investigating changes to a free variable
- 331 The nonlocal keyword
- 332 The global keyword
- 333 Importing and the global namespace
- 334 I nearly forgot
- 335 import
- 336 if name main
- 337 An optimisation you may see in code
- 338 The webbrowser module
- 339 Dates and times in Python
- 340 The datetime module s date class
- 341 timedelta objects
- 342 The datetime module s time class
- 343 datetime date and another note about importing
- 344 Aware and naive times
- 345 zoneinfo backport
- 346 timezone objects
- 347 Timezone challenge solution
- 348 Some behaviour you might not expect
- 349 Perform arithmetic in UTC most of the time
- 351 Introduction to Tkinter
- 352 TkInter Pack Geometry Manager
- 353 TkInter Grid Geometry Manager
- 354 Advanced GUI Example Part 1
- 355 Advanced GUI Example Part 2
- 356 Advanced GUI Example Part 3
- 357 Tkinter Challenge
- 358 Functions in Python
- 359 Functions Part 2
- 360 Functions Part 3
- 361 Parabola More on Functions
- 362 Scope in Functions
- 363 Fix Function and Draw Circles
- 364 Enhanced Circles and Challenge
- 365 Blackjack Setup
- 366 Load Cards
- 367 Deal Cards
- 368 Global Variables
- 369 Global Keyword
- 370 Test Blackjack Game
- 371 Blackjack Challenge
- 372 Importing Techniques
- 373 Underscores in Python code
- 374 Namespaces more on Scope and Recursion
- 375 Recursion with OS Module and Filesystem and Nonlocal keyword
- 376 Nonlocal keyword Free and LEGB
- 377 Object Orientated Programming and Classes
- 378 Instances Constructors Self and more
- 379 Class Attributes
- 380 Methods Part 1
- 381 Methods Part 2
- 382 Non Public and Mangling
- 383 DocStrings and Raw Literals
- 384 Album class and More on DocStrings
- 385 Artist class and import Albums
- 386 Load data and Write Checkfile
- 387 Compare Files and Algorithm Flowcharts
- 388 Implement Revised Load Data Algorithm
- 389 Write OOP Version
- 390 Getters and Properties
- 391 Remove Circular References Challenge
- 392 Getters and Setters
- 393 Data Attributes and Properties
- 394 Alternate Syntax for Properties
- 395 Inheritance
- 396 Subclasses and Overloading
- 397 Calling Super Methods
- 398 Changing Behavior of Methods
- 399 Overriding Methods
- 400 Inheritance Challenge
- 401 Polymorphism
- 402 Duck Test
- 403 Composition
- 404 Composition Continued
- 405 Test Code and Challenge
- 406 Aggregation
- 407 Introduction to Databases
- 408 Database Terminology
- 409 Sqlite3 Install on Windows
- 410 Sqlite3 Install on a Mac
- 411 SQLite3 Install on Ubuntu Linux
- 412 Introduction to SQLite
- 413 More with SQL using SQLite
- 414 Querying data with Sqlite
- 415 Order by and Joins
- 416 More complex Joins
- 417 Wildcards and Views
- 418 Housekeeping and the Challenge
- 419 SQL in Python
- 420 Connections Cursors and Transactions
- 421 SQL Injection Attacks
- 422 Placeholders and Parameter Substitution
- 423 Exceptions
- 424 Exceptions Challenge
- 425 Exceptions Continued
- 426 Raising Exceptions
- 427 More on Exceptions
- 428 Exceptions and TODO
- 429 Rolling back Transactions
- 430 Adding Database code to the Account Class
- 431 GUI Database Editing Overview
- 432 Ultimate Edition Database View
- 434 Update Deposit and Withdrawal Methods
- 435 Displaying Time in Different Timezones
- 436 SQLite3 strftime Function
- 437 Challenge
- 438 Problems Storing Timezones
- 439 Rolling Back Transactions
- 440 Simple Database Browser
- 441 Scrollbars
- 442 Star Args
- 443 Kwargs
- 444 More on KWArgs
- 445 Scrollable Listbox
- 446 Populating a Listbox from a Database
- 447 Show Songs from Album
- 448 The DataListbox Class Code
- 449 Linking our DataListBoxes
- 450 Linking our DataListBoxes Continued
- 451 DataListbox Challenge
- 452 Introduction
- 453 Generators and Yield
- 454 Next and Ranges
- 455 Generator Examples Fibonacci numbers and Calculating Pi
- 456 The os walk Generator
- 457 Searching the Filesystem
- 458 Reading Mp3 Tags
- 459 List Comprehensions
- 460 List Comprehensions and Side Effects
- 461 Challenge Solutions
- 462 Conditional Comprehensions
- 463 Conditional Expressions
- 464 Challenges
- 465 Challenge 1 Solution
- 466 Challenge 2 Solution
- 467 Nested Comprehensions
- 468 Nested Comprehensions Challenge
- 469 The timeit Module
- 470 More on timeit
- 471 timeit Continued and Challenge
- 472 timeit Challenge
- 473 Map Intro
- 474 Map Challenge Completion
- 475 The Filter Function
- 476 The Reduce Function
- 477 any and all
- 478 Named Tuples
- 479 any and all with Comprehensions
- 480 Lambda expressions
- 481 Using lambdas
- 482 More lambdas
- 483 Conditional expressions
- 484 Conditional expression challenge
- 485 A lambda with a conditional expression
- 486 A toy calculator
- 487 A lambda in a loop
- 488 Methods of some state carrying object
- 489 Frame makes a good base class
- 490 eval is dangerous
- 491 Control all input to eval
- 492 Mitigating the danger of eval
- 493 Functions are objects
- 494 Big O notation
- 495 Big O tables and graphs
- 496 Bubble sort
- 497 Big O of Bubble sort and an optimisation
- 498 Big O of our improved Bubble sort
- 499 Bubble sort optimisation
- 500 Best worst and average cases
- 501 Big O summary
- 503 Bonus Downloads including slides