要求用户输入并在数学模块中使用该输入

时间:2019-11-21 12:10:52

标签: python python-3.x

因此,我要求用户输入。然后,将输入分配给变量var,以将其用于数学模块:

var = "pi"
print(math.var)

但是随后出现属性错误。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

您会收到一个属性错误,因为Python会尝试访问var模块的math属性,该属性不存在。它不会尝试将var评估为变量。

假设varmath模块的某个成员(或其他模块或对象)的名称,则可以使用内置的getattr来获取值该属性。

>>> var = "pi"
>>> getattr(math, var)
3.141592653589793

答案 1 :(得分:0)

您可以为此使用getattr()。在这里,我们一直在向用户询问math的属性,直到他提供现有属性为止。

import math

inp = input('Enter math attribute: ')
while not getattr(math, inp, None):
    inp = input('Please enter valid attribute: ')

print(getattr(math, inp))

输出:

python3 get_math.py 
Enter math attribute: adc
Please enter valid attribute: pi
3.141592653589793

答案 2 :(得分:0)

检查工作正常:

import math

var = 'pi'

print(math.__getattribute__(var))

输出:

3.141592653589793