Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理不支持索引的Python对象?_Python_Python 3.x_Indexing_Fractions - Fatal编程技术网

如何处理不支持索引的Python对象?

如何处理不支持索引的Python对象?,python,python-3.x,indexing,fractions,Python,Python 3.x,Indexing,Fractions,目标:在脚本中包含两个稍后可以调用的元素 说明:在下面的示例中,我只对0.25的值感兴趣,该值由1/4表示)。我想要(1)和(4)的值。我正在使用Python的模块 目前,我返回了以下不可索引的内容: Fraction(1, 4) 但是,我正在寻找以下内容: numerator = express_partFraction(NUMBER)[0] denominator = express_partFraction(NUMBER)[1] 这将生成此错误: TypeError

目标:在脚本中包含两个稍后可以调用的元素

说明:在下面的示例中,我只对0.25的值感兴趣,该值由1/4表示)。我想要(1)和(4)的值。我正在使用Python的模块

目前,我返回了以下不可索引的内容:

Fraction(1, 4)
但是,我正在寻找以下内容:

numerator = express_partFraction(NUMBER)[0]
denominator = express_partFraction(NUMBER)[1]
这将生成此错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-486-39196ec5b50b> in <module>()
     10 express_partFraction(NUMBER)
     11 
---> 12 numerator = express_partFraction(NUMBER)[0]
     13 denominator = express_partFraction(NUMBER)[1]

TypeError: 'Fraction' object does not support indexing
TypeError回溯(最近一次调用)
在()
10表示部分分数(数字)
11
--->12分子=表示部分分数(数字)[0]
13分母=表示分数(数字)[1]
TypeError:“分数”对象不支持索引

Python 2.7文档忽略了一个事实,即
分数
对象具有
分子
分母
属性。你可以在里面找到它们

如果要查看未知对象的属性,只需使用
dir()
函数:

>>> x = Fraction(1, 2)
>>> x.numerator
1
>>> x.denominator
2
>>> [a for a in dir(x) if not a.startswith('_')]
['conjugate', 'denominator', 'from_decimal', 'from_float', 'imag', 'limit_denominator', 'numerator', 'real']

Python 2.7文档忽略了
Fraction
对象具有
分子
分母
属性这一事实。你可以在里面找到它们

如果要查看未知对象的属性,只需使用
dir()
函数:

>>> x = Fraction(1, 2)
>>> x.numerator
1
>>> x.denominator
2
>>> [a for a in dir(x) if not a.startswith('_')]
['conjugate', 'denominator', 'from_decimal', 'from_float', 'imag', 'limit_denominator', 'numerator', 'real']

分数对象具有
分子
分母
属性:

numerator = some_fraction.numerator
denominator = some_fraction.denominator
但是,您输入的浮动会给您带来问题:

>>> fractions.Fraction(0.1)
Fraction(3602879701896397, 36028797018963968)
有一个
limit\u分母
,你可以通过假设分母不是太大来猜测分数“应该”是什么,但是你真的应该完全避免浮点步骤。例如,将输入作为字符串:

>>> fractions.Fraction('1.1')
Fraction(11, 10)
>>> fractions.Fraction('1.1') % 1
Fraction(1, 10)
>>> _.numerator
1

分数对象具有
分子
分母
属性:

numerator = some_fraction.numerator
denominator = some_fraction.denominator
但是,您输入的浮动会给您带来问题:

>>> fractions.Fraction(0.1)
Fraction(3602879701896397, 36028797018963968)
有一个
limit\u分母
,你可以通过假设分母不是太大来猜测分数“应该”是什么,但是你真的应该完全避免浮点步骤。例如,将输入作为字符串:

>>> fractions.Fraction('1.1')
Fraction(11, 10)
>>> fractions.Fraction('1.1') % 1
Fraction(1, 10)
>>> _.numerator
1

它在技术上是有文档记录的,因为文档说“分数类继承自抽象基类numbers.Rational,并实现该类的所有方法和操作。”这不是一种特别好的文档记录方式,但在技术上是存在的。它在技术上是有文档记录的,因为文档说“分数类继承自抽象基类numbers.Rational,并实现该类中的所有方法和操作。”这不是一种记录它的特别好的方法,但在技术上是存在的。