Buy used:
$22.43
Get Fast, Free Shipping with Amazon Prime
FREE delivery February 16 - 19 on orders shipped by Amazon over $35
Or fastest delivery Sunday, February 16
Used: Acceptable | Details
Sold by 2nd Life Aloha
Condition: Used: Acceptable
Comment: All pages and the cover are intact, but shrink wrap, dust covers, or boxed set case may be missing. Pages may include limited notes, highlighting, or minor water damage but the text is readable. Item may be missing bundled media.
Access codes and supplements are not guaranteed with used items.
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

Follow the author

Something went wrong. Please try your request again later.

Fluent Python: Clear, Concise, and Effective Programming 1st Edition

4.7 4.7 out of 5 stars 775 ratings

There is a newer edition of this item:

Pythonâ??s simplicity lets you become productive quickly, but this often means you arenâ??t using everything it has to offer. With this hands-on guide, youâ??ll learn how to write effective, idiomatic Python code by leveraging its bestâ??and possibly most neglectedâ??features. Author Luciano Ramalho takes you through Pythonâ??s core language features and libraries, and shows you how to make your code shorter, faster, and more readable at the same time.

Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside of their experience. With this book, those Python programmers will thoroughly learn how to become proficient in Python 3.

This book covers:

  • Python data model: understand how special methods are the key to the consistent behavior of objects
  • Data structures: take full advantage of built-in types, and understand the text vs bytes duality in the Unicode age
  • Functions as objects: view Python functions as first-class objects, and understand how this affects popular design patterns
  • Object-oriented idioms: build classes by learning about references, mutability, interfaces, operator overloading, and multiple inheritance
  • Control flow: leverage context managers, generators, coroutines, and concurrency with the concurrent.futures and asyncio packages
  • Metaprogramming: understand how properties, attribute descriptors, class decorators, and metaclasses work


From the brand


From the Publisher

Fluent Python

From The Preface

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 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. If you know Python 2 but are willing to migrate to Python 3.4 or later, you should be fine. At the time of this writing, the majority of professional Python programmers are using Python 2, so I took special care to highlight Python 3 features that may be new to that audience.

However, Fluent Python is about making the most of Python 3.4, and I do not spell out the fixes needed to make the code work in earlier versions. Most examples should run in Python 2.7 with little or no changes, but in some cases, backporting would require significant rewriting.

Having said that, I believe this book may be useful even if you must stick with Python 2.7, because the core concepts are still the same. Python 3 is not a new language, and most differences can be learned in an afternoon. What’s New in Python 3.0 is a good starting point. Of course, there have been changes since Python 3.0 was released in 2009, but none as important as those in 3.0.

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 in Python 3.

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

From the Author

Who This Book Is For
This book was written for
practicing Python programmers who want to become proficient in Python 3. If you know Python 2 but are willing to migrate to Python 3.4 or later, you should be fine. [...]

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 in Python 3.

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.

(extracted from the Preface, page xvi, emphasis added)

About the Author

Luciano Ramalho was a Web developer before the Netscape IPO in 1995, and switched from Perl to Java to Python in 1998. Since then he worked on some of the largest news portals in Brazil using Python, and taught Python web development in the Brazilian media, banking and government sectors. His speaking credentials include PyCon US (2013), OSCON (2002, 2013), and 15 talks over the years at PythonBrasil (the Brazilian PyCon) and FISL (the largest FLOSS conference in the Southern Hemisphere). Ramalho is a member of the Python Software Foundation and co-founder of Garoa Hacker Clube, the first hackerspace in Brazil. He is co-owner of Python.pro.br, atraining company.

Product details

  • Publisher ‏ : ‎ O'Reilly Media; 1st edition (September 15, 2015)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 790 pages
  • ISBN-10 ‏ : ‎ 1491946008
  • ISBN-13 ‏ : ‎ 978-1491946008
  • Item Weight ‏ : ‎ 1.47 pounds
  • Dimensions ‏ : ‎ 5.91 x 0.59 x 9.84 inches
  • Customer Reviews:
    4.7 4.7 out of 5 stars 775 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
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
775 global ratings

Review this product

Share your thoughts with other customers

Customers say

Customers find the book provides good information for advanced Python programmers. They appreciate the clear, concise writing style that is easy to read and understand. The author's Python style is described as elegant and breaks down complexity into digestible pieces. Readers enjoy the to-the-point examples and thorough explanation of language features and subtleties.

AI-generated from the text of customer reviews

79 customers mention "Knowledge level"65 positive14 negative

Customers find the book provides good information for advanced Python programmers. It covers many aspects of the language that are difficult to understand. They find it effective for learning Python, teaching a very pythonic way of programming. The book offers helpful hints and tips, making it great for both experts and novices.

"...I read this book in chapter chunks, as there is a TON of information to gain from this book. I love the structure that Ramalho uses...." Read more

"...that is useful to me, all of them yielded new information and helpful hints, and even tips and tricks to increase performance or readability of the..." Read more

"...It touches on details of Python internals where they illuminate the behavior and choices a Python programmer might make but you won't get bogged..." Read more

"The book is well written, clear, includes examples, author clearly knows the language very well and the way he talks about it shows how the..." Read more

41 customers mention "Writing quality"36 positive5 negative

Customers find the book's writing clear, concise, and easy to read. They appreciate the logical and understandable way it's written. The book provides detailed explanations of how and why things work in Python. It has a casual writing style that makes it feel like you're not reading a textbook.

"...I love the structure that Ramalho uses. He provides well written descriptions and explanations for each topic..." Read more

"...The prose is easy to read and even entertaining. It may be the first programming book I read for enjoyment, and not just reference...." Read more

"The book is well written, clear, includes examples, author clearly knows the language very well and the way he talks about it shows how the..." Read more

"...Ramalho has a casual writing style which makes it feel like you are not reading a programming book...." Read more

12 customers mention "Python style"12 positive0 negative

Customers appreciate the book's Python style. They find it elegantly breaks down complexity into digestible pieces, providing high-level ideas behind python design and best practices. The examples make learning by doing easy. Readers appreciate the thorough but not painful details, thoughtful structure, and practical approach.

"...I love the structure that Ramalho uses...." Read more

"...Luciano demonstrates that he truly is fluent in Python, and while probably 25% of the chapters were not on any subject that is useful to me, all of..." Read more

"Fluent Python is a great book and Luciano Ramalho is an excellent author...." Read more

"...important details to reduce complexity, instead he elegantly breaks down the complexity into wholly digestible pieces for the reader with ease...." Read more

Python In Fluency..
5 out of 5 stars
Python In Fluency..
Definitely big book with full of deep Knowledge of Python Advanced topics. Highly recommend for those like me who are looking to improve their Python skills from a Systems Engineer to Software Engineer grade.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • Reviewed in the United States on September 29, 2021
    I am an engineer who decided to learn how to code on my own. I experimented with a bunch of different languages but fell in love with Python. I now use Python for personal projects. I was watching a YouTube video where Gina Häußge (creator of octoprint) recommended it and attributed her work to things learned in the book. So I bought it hoping to better my skills.

    I read this book in chapter chunks, as there is a TON of information to gain from this book. I love the structure that Ramalho uses. He provides well written descriptions and explanations for each topic(something I cannot say for most textbooks). On top of that, he provides relevant code examples for almost everything he covers. Even better, he has step-by-step explanations for the code examples that follow the execution flow. This makes it much easier to understand if you have difficulty grasping the concept at first. Aside from coding the examples yourself, this is top notch for learning skills from text.

    For me, I was reading this book while working on a medium sized Python project. Even though I was not searching for anything specific in this book, the more I read, the more I found ways where I could implement his teachings into my project.

    Ramalho includes a section at the end of each chapter to offer his opinion on said topic. As a younger programmer, I appreciated the opinion from a professional and clearly well respected member of the Python community.

    If you write Python and want to gain a better understanding of the language (and perhaps found the Python docs hard to read like me), this book is for you. If you do give it a read, I hope you like it as much as I did.

    Thanks Luciano, excellent work!
    5 people found this helpful
    Report
  • Reviewed in the United States on March 22, 2016
    As the title and description suggest, this book truly is to achieve 'fluency' in Python. It touches on nearly every point of the language that is pythonic, describing not just the how and the what, but the why. This book is definitely not a good beginner book for Python (however, someone extremely well versed in Java or C++ could probably benefit from it, if they relied on more basic information from alternative sources), but I wouldn't say it's only for expert users. This book touches on a very wide selection of subjects, from some pretty common Python concepts, like Duck Typing, generators, and function and class decorators to more advanced subjects like abstract base classes, multiple inheritance, mixins, and meta programming. The prose is easy to read and even entertaining. It may be the first programming book I read for enjoyment, and not just reference.

    Luciano demonstrates that he truly is fluent in Python, and while probably 25% of the chapters were not on any subject that is useful to me, all of them yielded new information and helpful hints, and even tips and tricks to increase performance or readability of the code. I would think that, given the wide range of topics, at least 30% of the book will be extremely helpful to your specific use case, regardless of what that is.
    95 people found this helpful
    Report
  • Reviewed in the United States on December 21, 2019
    I have been using Python for a few years mostly as a scripting language. As I have gained proficiency I wanted to dive deeper into best practices and a bit more under-the-covers. I found some good resources online for studying Python internals but that was not helping me write better code.

    This book is exactly what I was looking for. It covers the aspects of Python that are not obvious to people coming from different languages. It gives guidance on the best ways to use features and why they work the way they do. It touches on details of Python internals where they illuminate the behavior and choices a Python programmer might make but you won't get bogged down in Python byte code.

    This is not a book for beginners. It assumes a fair bit of knowledge. A beginner will want a wider coverage of topics and not get buried in details. (I really like "Learning Python" by Mark Luft and still go back to that from time to time.) This is for the Python programmer leveling-up. That is where I found myself and I am pretty confident this will help me get there.
    6 people found this helpful
    Report
  • Reviewed in the United States on December 22, 2020
    The book is well written, clear, includes examples, author clearly knows the language very well and the way he talks about it shows how the programmer should be thinking. However, some syntax is slightly outdated, this is mostly harmless except for the chapter on asyncio, in which the module's interface has been integrated into the language with new "async/await" keywords. The author does make a note that at the time of writing the PEP that eventually introduced this chance was close to acceptance. Conceptually it is the same but the examples are not so relevant to how asyncio code is written in newer versions of Python.
    4 people found this helpful
    Report
  • Reviewed in the United States on November 26, 2016
    This book is spectacular for intermediate Python programmers. I've been programming for a year or so with Python and this book helped me improve my coding a lot. I'm not exaggerating when I say that it is the best programming book I've ever read. It's full of clever insights, smart examples that make you get the exact point Luciano is trying to make, and neat suggestions on how to be pythonic. I have read a couple of books on Python and Ruby and I usually end up quickly scanning some pages or even whole chapters that I find either unnecessarily verbose on a simple matter, or just plain boring. I didn't have to do that at all with this book: I enjoyed the reading of every bit.

    The code examples also made me realize how stuff can be done in many subtle ways, besides the "main point" of the example, and in that aspect you can tell Luciano is a great pedagogue. The chapters about asynchronous programming helped me get a grasp of a way of structuring programs that I didn't conceive of before.

    I've read the whole thing in 2 months or so of ~daily 25' reading (i.e. one pomodoro ;). It's a must read of the Python literature.
    5 people found this helpful
    Report

Top reviews from other countries

Translate all reviews to English
  • Ateikon Internet e Multimedia Srl
    5.0 out of 5 stars Entrare nello spirito del linguaggio
    Reviewed in Italy on April 14, 2022
    Per ogni linguaggio di sviluppo che si intende utilizzare è necessario effettuare, ad un certo punto, un salto di qualità. Occorre passare dalla semplice padronanza della sintassi ad un uso efficiente e professionale dello strumento. Questo libro serve proprio a questo. Va letto con la dovuta attenzione, senza fretta. Ne vale la pena.
  • Adão José de Oliveira
    5.0 out of 5 stars Simplesmente excelente.
    Reviewed in Brazil on June 7, 2020
    Ótimo livro. Entra no detalhe das estruturas e recursos do Python, sabendo conduzir o leitor progressivamente enquanto desenvolve os conteúdos abordados. É um livro para ser saboreado aos poucos.
  • ithomson
    5.0 out of 5 stars Thorough explanation of how python works under the hood
    Reviewed in the United Kingdom on March 20, 2019
    I've been trying to learn Python for about 2 years in my spare time and over the last year I started to use Django. I decided that I had to take a step back and learn a bit more about Python before continuing with Django as I felt that I was doing a lot of things by memory. I was also uncomfortable with object orientated programming and I needed more understanding using dunder methods and I hoped that this book would be able to help me with this.

    The first example in the book looks to build a deck of cards using Python. If you've had a lot of experience using Python then it may seem fairly straightforward, or if you're more like me then you'll probably start thinking that this book might be for a more advanced python programmer. The good news is that each aspect of the first example is broken down into it's individual components and discussed in great detail - in fact, most of the early chapters could be used to help build on the first example so everything feels practical.

    One of the great strengths of this book is how the Author is able to communicate concepts in Python to programmers with little experience (which I consider myself to be). I have seen countless answers on stack overflow with 100's of up votes but I've never been able to understand the answer in any shape or form. I was pleased to find that I never really felt this while learning from this book. Of course, there were lots of times where it took me longer to truly understand a new concept but that's to be expected. Personally, I benefited massively from using this book because there is a lot use of OOP and dunder methods which is what I had really hoped for.

    I don't think I can be too critical of the book, there were a few chapters which I haven't read but that was my choice, for now at least. It gets a bit heavy in the last 4 or 5 chapters but it's not something I think I need to know right now and I can always come back to these at a later date.

    If you're starting out with Python then I think this book is a must-have. I was very pleased that I made the decision to buy this book, if you're committed to learning Python then you'll always be thankful to have this book on hand as it may just help clear up something you didn't understand. I would also advise buying the Kindle version of the book as I've had the command prompt open whilst reading the book as I was coding some of the examples myself to see if I got the same outcomes as in the book - I think I'd have been worse off if I bought an actual copy of the book because you can't just learn python, you have to actually do it as well so the kindle version helped me to do this.
  • Denis Vivies
    5.0 out of 5 stars Denis V
    Reviewed in Spain on August 21, 2017
    A big book (I mean, your nightstand better be solid) with advanced technics in Python. Not recommended for the beginner, it's still focused on the standard library but that's enough. Obviously, I haven't finished reading it yet but from the first chapter alone you learn a lot of stuff.
  • S. Stevenson
    5.0 out of 5 stars This should be your second book on Python
    Reviewed in Germany on February 15, 2018
    So you've got the basics down in Python, what do you read now? This book. "Fluent Python" tells you which constructs to use and, almost more importantly, why. The big difference to "Effective Python" by Slatkin is that this book is in-depth and explains what happens behind the code - I have found the insights into how Python works under the hood invaluable. This is a book for people who really want to master the language, not just get somewhat better quickly. It takes quite some time to work through "Fluent Python", but it is time very well spent.

    If there is anything I didn't really like about "Fluent Python", it is the priority given to object-orientated programming. If you are one of those people who think that OOP has basically failed its promise, there are whole chapters that will make you grit your teeth. There is a discussion of why modern Python has better tools for functional programming than the classic map and reduce, but this is definitely a book from the OOP camp.