1. Урок 1. 00:04:28
    Welcome and thanks for coming
  2. Урок 2. 00:03:57
    Topics covered
  3. Урок 3. 00:00:19
    Get the source code
  4. Урок 4. 00:00:18
    Do you need to learn Python too?
  5. Урок 5. 00:02:00
    Python 3 or Python 2?
  6. Урок 6. 00:01:05
    Recommended editor
  7. Урок 7. 00:02:05
    Video player: A quick feature tour
  8. Урок 8. 00:01:55
    Who decides what is Pythonic?
  9. Урок 9. 00:04:00
    Import statements
  10. Урок 10. 00:02:47
    Code layout and structure
  11. Урок 11. 00:02:09
    Documentation strings
  12. Урок 12. 00:03:05
    Naming conventions
  13. Урок 13. 00:05:57
    Truthiness and boolean statements
  14. Урок 14. 00:02:24
    Testing for None
  15. Урок 15. 00:06:19
    Multiple tests against a single variable
  16. Урок 16. 00:02:33
    Choosing an item at random
  17. Урок 17. 00:07:07
    String formatting
  18. Урок 18. 00:02:50
    Care enough to send an exit code
  19. Урок 19. 00:04:04
    Flat is better than nested
  20. Урок 20. 00:01:44
    Why dictionaries
  21. Урок 21. 00:09:33
    Stop using lists for everything
  22. Урок 22. 00:06:16
    Merging dictionaries
  23. Урок 23. 00:09:04
    Hacking Python's memory
  24. Урок 24. 00:07:39
    Safer dictionary item access
  25. Урок 25. 00:06:26
    Dictionaries as switch statements
  26. Урок 26. 00:03:23
    To and from JSON
  27. Урок 27. 00:04:13
    Custom iteration and your types
  28. Урок 28. 00:03:22
    Testing for containment
  29. Урок 29. 00:07:22
    Slicing collections all the way to the database
  30. Урок 30. 00:08:09
    On-demand computation with yield and generators
  31. Урок 31. 00:03:41
    Recursive generators with yield from
  32. Урок 32. 00:06:23
    Inline generators via expressions
  33. Урок 33. 00:04:12
    Counting generators
  34. Урок 34. 00:01:19
    Introduction to Pythonic functions
  35. Урок 35. 00:07:05
    Leverage inline methods with lambda expressions
  36. Урок 36. 00:07:29
    I'm going to ignore your return value
  37. Урок 37. 00:02:43
    There is no method overloading in Python
  38. Урок 38. 00:03:39
    Default values for overloads
  39. Урок 39. 00:02:22
    Variable argument counts for overloads
  40. Урок 40. 00:03:42
    Unpacking dictionaries as named arguments
  41. Урок 41. 00:07:29
    Beware: The danger of mutable default arguments
  42. Урок 42. 00:01:48
    Introduction to packaging and module idioms
  43. Урок 43. 00:05:54
    Pythonic import statements
  44. Урок 44. 00:05:21
    What is __main__ and when do you use it?
  45. Урок 45. 00:02:34
    Isolation with virtual environments
  46. Урок 46. 00:03:40
    State your requirements
  47. Урок 47. 00:06:19
    Defining fields on classes
  48. Урок 48. 00:05:28
    Encapsulation and data hiding
  49. Урок 49. 00:04:46
    Do not write get_thing() set_thing()
  50. Урок 50. 00:02:27
    There is no numerical for loop
  51. Урок 51. 00:01:51
    Wait, is there a numerical for loop (v1)?
  52. Урок 52. 00:01:48
    Wait, is there a numerical for loop (v2)?
  53. Урок 53. 00:02:46
    Loops have an else block, don't use it
  54. Урок 54. 00:03:57
    Tuple assignment and unpacking
  55. Урок 55. 00:01:25
    Swapping values
  56. Урок 56. 00:03:28
    Multiple return values from a function
  57. Урок 57. 00:04:44
    Prefer named tuples
  58. Урок 58. 00:03:15
    Human Python as a stand in for packages in general
  59. Урок 59. 00:04:20
    Requests: HTTP for Humans
  60. Урок 60. 00:03:41
    Records: SQL for Humans
  61. Урок 61. 00:00:25
    You've done it!
  62. Урок 62. 00:06:06
    Lightning review
  63. Урок 63. 00:00:33
    Source code
  64. Урок 64. 00:00:54
    Thanks and bye