Issue #5812: Make Fraction('1e6') valid. The Fraction constructor now
accepts all strings accepted by the float and Decimal constructors,
with the exception of strings representing NaNs or infinities.
diff --git a/Doc/library/fractions.rst b/Doc/library/fractions.rst
index 68a8ef6..c135f91 100644
--- a/Doc/library/fractions.rst
+++ b/Doc/library/fractions.rst
@@ -25,21 +25,18 @@
:exc:`ZeroDivisionError`. The second version requires that
*other_fraction* is an instance of :class:`numbers.Rational` and
returns an :class:`Fraction` instance with the same value. The
- last version of the constructor expects a string
- instance in one of two possible forms. The first form is::
+ last version of the constructor expects a string instance. The
+ usual form for this string is::
[sign] numerator ['/' denominator]
where the optional ``sign`` may be either '+' or '-' and
``numerator`` and ``denominator`` (if present) are strings of
- decimal digits. The second permitted form is that of a number
- containing a decimal point::
-
- [sign] integer '.' [fraction] | [sign] '.' fraction
-
- where ``integer`` and ``fraction`` are strings of digits. In
- either form the input string may also have leading and/or trailing
- whitespace. Here are some examples::
+ decimal digits. In addition, any string that represents a finite
+ value and is accepted by the :class:`float` constructor is also
+ accepted by the :class:`Fraction` constructor. In either form the
+ input string may also have leading and/or trailing whitespace.
+ Here are some examples::
>>> from fractions import Fraction
>>> Fraction(16, -10)
@@ -57,6 +54,8 @@
Fraction(1414213, 1000000)
>>> Fraction('-.125')
Fraction(-1, 8)
+ >>> Fraction('7e-6')
+ Fraction(7, 1000000)
The :class:`Fraction` class inherits from the abstract base class