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