When people first learn Python they immediately feel empowered to write code to accomplish the task at hand. But Python has unique strengths and charms that can be hard to grasp. Programmers from other languages often approach Python from a limited mindset instead of embracing its full expressivity. New programmers go too far in the other direction, using Python's dynamic features to set themselves up for difficulties in the future. Effective Python aims to provide the reader with an understanding of the Pythonic way of writing programs: the best way to use Python. New programmers will learn the best practices of Python's features. Experienced programmers will learn how to embrace the strangeness of a new tool with confidence. Like other Effective books, this book will be organized in a series of short items. Each chapter will cover a broad but related set of subjects. Each item will provide clear and concise guidance to the reader about how they can write Python programs more effectively. Each item will provide advice on what to do, what to avoid, how to strike the right balance, and why this is the best choice. Effective Python will prepare growing programmers to make a big impact using Python.