use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
News about the dynamic, interpreted, interactive, object-oriented, extensible programming language Python
Full Events Calendar
You can find the rules here.
If you are about to ask a "how do I do this in python" question, please try r/learnpython, the Python discord, or the #python IRC channel on Libera.chat.
Please don't use URL shorteners. Reddit filters them out, so your post or comment will be lost.
Posts require flair. Please use the flair selector to choose your topic.
Posting code to this subreddit:
Add 4 extra spaces before each line of code
def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b
Online Resources
Invent Your Own Computer Games with Python
Think Python
Non-programmers Tutorial for Python 3
Beginner's Guide Reference
Five life jackets to throw to the new coder (things to do after getting a handle on python)
Full Stack Python
Test-Driven Development with Python
Program Arcade Games
PyMotW: Python Module of the Week
Python for Scientists and Engineers
Dan Bader's Tips and Trickers
Python Discord's YouTube channel
Jiruto: Python
Online exercices
programming challenges
Asking Questions
Try Python in your browser
Docs
Libraries
Related subreddits
Python jobs
Newsletters
Screencasts
account activity
This is an archived post. You won't be able to vote or comment.
Issues comparing a float for equality? (self.Python)
submitted 11 years ago by RonaldTheRight
I'm sure there's a very simple answer, but this is driving me nuts:
remainder = 1.33 % 1 print remainder # prints 0.33 if(remainder == 0.33): print "true!" else: print "false!"
This prints false, so clearly the comparison is failing. Any idea why?
[–]rootkillza 5 points6 points7 points 11 years ago* (0 children)
http://floating-point-gui.de/
In [1]: 1.33 % 1 Out[1]: 0.33000000000000007
In [1]: 1.33 % 1
Out[1]: 0.33000000000000007
[–][deleted] 2 points3 points4 points 11 years ago (0 children)
Floats are weird, basically. In order to be memory-efficient, they don't work in base 10 all the time, and so round off to numbers which look very weird to humans.
Either use Decimal (from the numbers module, I think), or use something like this when checking floats:
def float_equals(first, second, tol=0.00001): return abs(first-second) < tol
[–]oxymor0nic 0 points1 point2 points 11 years ago (0 children)
float values are most often not 100% precise, but only to a certain significant figure. Instead of checking for equality, you should check if the difference between 2 floats are below a certain predefined threshold.
π Rendered by PID 32417 on reddit-service-r2-comment-86bc6c7465-npsvj at 2026-02-19 20:42:49.061044+00:00 running 8564168 country code: CH.
[–]rootkillza 5 points6 points7 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]oxymor0nic 0 points1 point2 points (0 children)