Shop Canis
$41.79 with 39 percent savings
Digital List Price: $67.99

These promotions will be applied to this item:

Some promotions may be combined; others are not eligible to be combined with other offers. For details, please see the Terms & Conditions associated with these promotions.

You've subscribed to ! We will preorder your items within 24 hours of when they become available. When new books are released, we'll charge your default payment method for the lowest price available during the pre-order period.
Update your device or payment method, cancel individual pre-orders or your subscription at
Your Memberships & Subscriptions

Buy for others

Give as a gift or purchase for a team or group.
Learn more

How it works

  1. Choose your delivery method
  2. Send now or schedule for later
  3. Add your personal message
  4. Recipients can read on any device

These ebooks can only be redeemed by recipients in the US. Redemption links and eBooks cannot be resold.

Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

  • Fluent Python: Clear, Concise, and Effective Programming

Follow the author

Follow authors for new release and deal updates, plus improved recommendations. See updates from all followed authors in Your Books.
Something went wrong. Please try your request again later.

Fluent Python: Clear, Concise, and Effective Programming


Don't waste time bending Python to fit patterns you've learned in other languages. Python's simplicity lets you become productive quickly, but often this means you aren't using everything the language has to offer. With the updated edition of this hands-on guide, you'll learn how to write effective, modern Python 3 code by leveraging its best ideas.

Discover and apply idiomatic Python 3 features beyond your past experience. Author Luciano Ramalho guides you through Python's core language features and libraries and teaches you how to make your code shorter, faster, and more readable.

Complete with major updates throughout, this new edition features five parts that work as five short books within the book:

  • Data structures: Sequences, dicts, sets, Unicode, and data classes
  • Functions as objects: First-class functions, related design patterns, and type hints in function declarations
  • Object-oriented idioms: Composition, inheritance, mixins, interfaces, operator overloading, protocols, and more static types
  • Control flow: Context managers, generators, coroutines, async/await, and thread/process pools
  • Metaprogramming: Properties, attribute descriptors, class decorators, and new class metaprogramming hooks that replace or simplify metaclasses
Due to its large file size, this book may take longer to download
This title is only available on select devices and the latest version of the Kindle app. Please refer to the supported device list before purchase. Available on these devices

See all supported devices

Kindle E-Readers

  • Kindle Scribe (3rd Generation)
  • Kindle (7th Generation)
  • Kindle (11th Generation, 2022 Release)
  • Kindle Colorsoft (1st Generation)
  • Kindle (11th Generation, 2024 Release)
  • Kindle Paperwhite (7th Generation)
  • Kindle Paperwhite (12th Generation)
  • Kindle Paperwhite (6th Generation)
  • Kindle Paperwhite (11th Generation)
  • Kindle Scribe (2024 Release)
  • Kindle Oasis (8th Generation)
  • Kindle Oasis (10th Generation)
  • Kindle (10th Generation)
  • Kindle (8th Generation)
  • Kindle Oasis (9th Generation)
  • Kindle Scribe (1st Generation, 2022 Release)
  • Kindle Paperwhite (10th Generation)
  • Kindle Voyage (7th Generation)
  • Kindle Scribe Colorsoft (1st Generation)

Fire Tablets

  • Fire Max 11 (13th Generation)
  • Fire 10 HD (13th Gen)
  • Fire HD 10 Plus
  • Fire HD 8 (12th Generation)
  • Fire 7 (9th Generation)
  • Fire HD 8 (12th Generation)
  • Fire HD 10 (9th Generation)
  • Fire HD 10 (11th Generation)
  • Fire HD 8 (12th Generation)
  • Fire HD 8 (8th Generation)
  • Fire HD 8 (10th Generation)
  • Fire 7 (12th Generation)

Free Kindle Reading Apps

  • Kindle for Android Phones
  • Kindle for iPhone
  • Kindle for Android Tablets
  • Kindle for iPad
  • Kindle for PC
  • Kindle for Mac
  • Kindle for Web

Customers also bought or read

Loading...

From the brand


From the Publisher

Fluent Python

From the Preface

“Python is an easy to learn, powerful programming language.” Those are the first words of the official Python 3.10 tutorial. That is true, but there is a catch: because the language is easy to learn and put to use, many practicing Python programmers leverage only a fraction of its powerful features.

An experienced programmer may start writing useful Python code in a matter of hours. As the first productive hours become weeks and months, a lot of developers go on writing Python code with a very strong accent carried from languages learned before. Even if Python is your first language, often in academia and in introductory books it is presented while carefully avoiding language-specific features.

As a teacher introducing Python to programmers experienced in other languages, I see another problem that this book tries to address: we only miss stuff we know about. Coming from another language, anyone may guess that Python supports regular expressions, and look that up in the docs. But if you’ve never seen tuple unpacking or descriptors before, you will probably not search for them, and you may end up not using those features just because they are specific to Python.

This book is not an A-to-Z exhaustive reference of Python. Its emphasis is on the language features that are either unique to Python or not found in many other popular languages. This is also mostly a book about the core language and some of its libraries. I will rarely talk about packages that are not in the standard library, even though the Python package index now lists more than 60,000 libraries, and many of them are incredibly useful.

Who This Book Is For

This book was written for practicing Python programmers who want to become proficient in Python 3. I tested the examples in Python 3.10—most of them also in Python 3.9 and 3.8. When an example requires Python 3.10, it should be clearly marked.

If you are not sure whether you know enough Python to follow along, review the topics of the official Python tutorial. Topics covered in the tutorial will not be explained here, except for some features that are new.

Who This Book Is Not For

If you are just learning Python, this book is going to be hard to follow. Not only that, if you read it too early in your Python journey, it may give you the impression that every Python script should leverage special methods and metaprogramming tricks. Premature abstraction is as bad as premature optimization.

Editorial Reviews

About the Author

Luciano Ramalho is a Principal Consultant at ThoughtWorks and a fellow of the Python Software Foundation. He's been using Python professionally since 1998, deploying it in some of the largest Internet properties based in Brazil, as well as financial and government institutions. Ramalho has presented Python talks and tutorials in six countries, including events like PyCon US, OSCON, Python Brasil, PyBay, and PyCaribbean. He is co-owner of Python.pro.br, a training company.

Product details

About the author

Follow authors for new release and deal updates, plus improved recommendations. See updates from all followed authors in Your Books.
Luciano Ramalho
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Luciano Ramalho was a Web developer before the Netscape IPO in 1995, and switched from Perl to Python in 1998. He has presented talks at PyCon US, OSCON, QCon, PythonBrasil, PyCon DE etc. Ramalho is a fellow of the Python Software Foundation and co-founder of Garoa Hacker Clube, the first hackerspace in Brazil. He is a Principal Consultant at Thoughtworks.

Customer reviews

4.7 out of 5 stars
786 global ratings

Customers say

Customers find this Python book to be an excellent resource for beginners, intermediates, and experts, praising its comprehensive content and well-written style. One customer notes it covers Python aspects not found elsewhere, while another highlights its focus on writing production-ready code. However, several customers mention it is not suitable for beginners.
AI Generated from the text of customer reviews

Select to learn more

23 customers mention content, 20 positive, 3 negative
Customers praise the book's content, describing it as an excellent resource for all levels of Python programming, from beginners to experts. One customer notes that it covers parts of the language not found elsewhere, while another appreciates its emphasis on programming etiquette and philosophy.
Just buy it. Learned a lot from this book!Read more
...This book is hefty, 980 pages long. It is packed with good information, no fluff....Read more
...In addition to being well-written and extremely informative, the author, Ramalho, provides links to numerous YouTube videos and relevant papers on...Read more
Contains everything you need to know about writing Python. Intermediate to advanced.Read more
10 customers mention comprehensive, 9 positive, 1 negative
Customers find the book comprehensive, with one customer noting its in-depth exploration of Python itself.
...this book is helping me to do just that. There is a lot of information in this book. Also, the index is decent....Read more
This book is dense with great info, but is not boring to read....Read more
...The coverage is comprehensive; the writing is very clear, and the example code is carefully annotated....Read more
...it is a clear and in-depth exploration of python itself, how it is supposed to be used. ramalho did an amasing job. this book is a must-have.Read more
8 customers mention writing quality, 8 positive, 0 negative
Customers praise the writing quality of the book, with one customer noting it is essential for writing good production Python code, while another mentions it contains everything needed to know about Python programming.
This is a very dense, well-written book likely to teach useful new concepts to nearly any intermediate Python developer, and most advanced folks, too.Read more
...It is very well-written, and the programming etiquette and philosophy promoted throughout makes a lot of sense.Read more
...In addition to being well-written and extremely informative, the author, Ramalho, provides links to numerous YouTube videos and relevant papers on...Read more
...The coverage is comprehensive; the writing is very clear, and the example code is carefully annotated....Read more
8 customers mention suitable for beginners, 1 positive, 7 negative
Customers note that the book is not suitable for beginners.
...This book amazed me in how much I didn't know. Not a book for a beginner.Read more
This is definitely not a beginner book....Read more
...Perhaps not the most accessible for a newcomer to python, but for a more experienced user, from what I've read so far this is pretty definitive for...Read more
The book is not for new python learner, but it's a great book to learn python inside knowledgeRead more
Book arrived in excellent condition, however...
4 out of 5 stars
Book arrived in excellent condition, however...
So far so good. One complaint the packaging damaged the cover of the book.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • 5 out of 5 stars
    Intermediate to advanced Python
    Reviewed in the United States on July 23, 2026
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Contains everything you need to know about writing Python. Intermediate to advanced.

    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    In depth with clear explanations.
    Reviewed in the United States on March 2, 2026
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This is definitely not a beginner book. I’m not one for doing things just to by “Pythonic” but this book gives good explanations of the practical reasons for many of the more current syntax and conventions besides just making fewer lines of code.

    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Must have if you're serious about Python
    Reviewed in the United States on August 7, 2026
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This is a serious python programming book which helps move you up the intermediate to advanced scale. Very helpful if you're serious about data science and AI.

    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Great wisdom unlocked
    Reviewed in the United States on March 23, 2024
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    First of all, let me just say that this isn't a book at all, it is some tome some wise ancient scribe wrote. I have been working in Technology for over 20 years now and I have been interested in it for probably another 20 years before that. In that time I have read many programming books, constantly looking for more advanced topics. I would read and be very disappointed, they were mostly always filled with fluff. I recently decided to finally give Python a try. I am at a point where I am doing more advanced projects and wanted a book to do just that. When I go to Stack Overflow or other sites like that for information. I want to be able to really understand the why behind some of the explanations. I don't want just to copy and paste. The book Python Crash Course helped get the basics down, this book has helped with the more advanced structure.

    There are two sections that have helped me the most: Functions as objects and Object-oriented idioms. I was going through many videos, Google searches, and some books to get a deeper understanding of this. this book is helping me to do just that. There is a lot of information in this book. Also, the index is decent. Many technology books lack in having a good one.

    23 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Must have for Python proo
    Reviewed in the United States on July 6, 2026
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Very practical. Very good for learning Python and for reference.

    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 4 out of 5 stars
    Essential for writing good production Python code, not so much for language learners
    Reviewed in the United States on August 28, 2026
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    The primary focus of the book is how to write production ready code, which is necessary for anyone who is working as Python programmer. For beginning or intermediate level learners, some content does not make too much sense since the prerequisite knowledge is not covered in the book, for example the part for concurrency and asynchronous programming.

    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    The last python book you'll ever need.
    Reviewed in the United States on May 24, 2024
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This book is huge in every way. It's literally 2 inches thick, making it not the most comfortable 'lap' read especially for a paperback. The amount of glue in the spine doesn't look like this book is going to last years without breaking, but time will tell.

    Perhaps not the most accessible for a newcomer to python, but for a more experienced user, from what I've read so far this is pretty definitive for up to Python 3.10.

    Without hesitation, if there's ever a third edition, I'd buy it. If it gets much bigger though, it's going to need to split into multiple volumes. (Arguably the 2nd ed. should have been)

    2 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Clear, concise and effective writing!
    Reviewed in the United States on December 19, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    This is an excellent book for learning how to use the Python language proficiently. It is written for experienced developers, especially those who are experts in another language, but want to use Python effectively and elegantly.

    Chapter 1 explains the Python object model. It is very eye-opening, and is foundational to the goal of the book--teaching you how to write fluent Python code. The author advises that everyone should read chapter 1, then pick and choose topics of interest from the rest of the book. The topics covered in the next 23 chapters are too numerous to list here, but you are sure to find what you are looking for, unless you are looking for GUI programming, which isn't very elegant, no matter what. But I digress.

    This book is hefty, 980 pages long. It is packed with good information, no fluff. Example scripts are stripped down to illustrate precisely the concept being taught. You can run the examples if you want to, but you don't have to in order to learn what is being taught. The text is very well written. I highly recommend this book.

    23 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

Top reviews from other countries

    Translated by Amazon
    See original
  • 5 out of 5 stars
    Muito bom.... vale muito a pena!!!
    Reviewed in Brazil on August 17, 2026
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Muito bom.... vale muito a pena!!!

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

    Translated from Portuguese by Amazon
    See original
  • 5 out of 5 stars
    Best book on Python
    Reviewed in Japan on April 8, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Great content

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 1 out of 5 stars
    Bad experience
    Reviewed in Sweden on January 3, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    The book was ruined, I don't know if it's the shipping service, or something else, plus I thought it's colored not a 700sek for a BW version, trash

    Bad experience
    Bad experience
    1 out of 5 stars
    Bad experience
    Reviewed in Sweden on January 3, 2025

    The book was ruined, I don't know if it's the shipping service, or something else, plus I thought it's colored not a 700sek for a BW version, trash

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    The Pythonic bible
    Reviewed in the United Kingdom on October 23, 2022
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Of course, we programmers know that everything we could want to know is out there, in fragmentary form, on the web. But I have a tediously fastidious mind that likes to keep the distinction clear between what I know and what I have yet to find out. As such, books are my preferred approach to a systematic learning process. I would have been very grateful then if someone had told me at the start of my Python journey that what and all I needed to read was the Tutorial at python.org, David Beasley's epically concise Python Distilled, and this, the 'lizard book'. This book demands a close, paragraph by paragraph reading and maybe some re-reading of some sections till full or at least deeper understanding dawns. After this book there isn't really anywhere to go except the source code and the dry and voluminous language docs. Whatever isn't actually in the book is there on the accompanying fpy.li website.

    A first point is that this is not a book for the beginner. One needs to have a reasonable grasp of the language having worked a while with it, being able to muddle along, but also knowing one is just muddling along and wishing to get things onto a more solid foundation.

    As such, I'm anxious not to let prospective readers be put off by the review that asserts that the author does not get to the point. There is no flab in this book. It is a big book, but a serious programmer could only wish that the book was even bigger and even more detailed. Python is as much an ideology about how to do things properly as a programming language. It is deceptively easy to muddle along in Python on the basis of what one has already come to know in more 'primitive' programming languages. But for the programmer determined to get the best from a language that has a near endless toolbox of subtle features and constructs the learning curve goes far deeper and longer than a superficial comprehension can suspect. Perhaps that reviewer is thinking about the soapbox sections at the end of each chapter in which the author considers the merits or not of particular decisions made in the complex, democratic language design process? If so, it should be pointed out that even here the author is inviting the reader to think more deeply and clearly about why such features were implemented as they were and what the alternatives might be.

    I have two complaints, notwithstanding which I still regard the book as indispensable and insubstitutable. Firstly, I wish very much there was a hardcover edition because the kind of reading this book demands means that the paperback cover is not going to survive even as much as a first reading. I would also like to see, perhaps in a future edition, a more comprehensive and systematic index. Again and again, one encounters situations where we know we have read something about this in 'the lizard book' but finding the requisite nugget or gem is not always that easy. The book does not work particularly well as a reference.

    A final point is that the book is a great pleasure to read without any loss of clarity. Although the author's knowledge is clearly formidable, he invites the reader to accompany him on a journey as a fellow traveller, pointing out the many small discoveries he has made in his own passage. One quickly comes to feel assured that even where one's own understanding might falter, everything you need to achieve understanding is written down there if one just reads it carefully enough. Few technical authors pass this test. The man is a natural teacher who always places himself in the point of view of the student and proceeds from there.

    A huge, rigorous, fractally detailed but profoundly enjoyable journey of a book. As simple as possible but no simpler. The mighty and beautiful 'lizard book'

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

  • 5 out of 5 stars
    Not for Novice but for Deep divers
    Reviewed in Canada on May 7, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Excellent book for understanding and must be used as a reference. It is not for the beginner and as such should not be expected as a tutorial. Once the basics are mastered, then this book comes in to explain why the way things work. For example, if you want to know what a higher order function is and how a map function works, this book is there for you. The indexing is excellent with alphabetical ordering. Deep dive with this book by your side is all I would say. Have not read even a quarter of the book but already impressed. Definitely a desktop reference.

    Sending feedback...
    Thanks, we'll investigate in the next few days.

    We'll check if this review meets our community guidelinesOpens in a new tab. If it doesn't, we'll remove it.

Report an issue


Does this item contain inappropriate content?
Do you believe that this item violates a copyright?
Does this item contain quality or formatting issues?