猿问

如何在python中获取无理数作为用户输入?

如何在python中获取无理数作为用户输入?像 2 的平方根

类似的东西:

Irrational_Number = float(input("ENTER a Irrational Number : "))
   >>> ENTER a Irrational Number : (USER INPUT)

然后用户在命令行中放置一个像K的第N个根(我的意思是这种格式的数字不完全是这种字符串)“Pi”,“e”或“Phi”。这样的数字。

用户如何直接在命令行 python 中执行此操作 (3.8)

我到处搜索了这个问题,但没有任何关于这个问题的信息......


HUWWW
浏览 336回答 2
2回答

噜噜哒

首先,您将输入转换为 ,因此要精确(如果我们在无理数之类的术语中徘徊,这很重要),那么我们必须强调在这里谈论无理数近似的假设。float完成后,您可以通过以下几种方式探索解决方案:第一种方法是定义一个命名空间,您可以在其中将字符串名称映射到数字等效项 - 一个简单的字典就可以做到这一点,例如:numbers_as_words  = { "e",2.718281828459045                       "pi",3.141592653589793                       "phi",1.618033988749895                       "sqr2",1.4142135623730951                       "feet_to_meters",0.3048                       "lbs_to_kg",0.453592                       "miles_to_kilometers",1.60934                       "gallons_to_litres",3.78541 }我也用一些非无理占位符填充了它,以防你想嵌入一些简单的转换类型逻辑。然后,您需要将输入作为字符串,对字符串执行简单的替换函数以解析任何匹配的字符串,以及 viola您有一个混合的数字/字符串输入法。def replace_names_and_return_float(user_input, mapping):    for k,v in mapping.items():        user_input = user_input.replace(k,str(v))    return float(user_input)Irrational_Number = replace_names_and_return_float(input("ENTER a Irrational Number : "), numbers_as_words )然后,由您来维护该字典以包含您要识别的所有替换。这可能会变得乏味,但它应该足以让你开始。numbers_as_words如果你找到一些官方的无理数近似列表,你也许可以下载它,并构建一个映射作为一个自动化过程,但我刚才还没有谷歌搜索。numbers_as_words

白猪掌柜的

请找到下面的代码片段:import reg = input("Enter your irrational number : ") if g=='pi':    g=math.pielif "root" in g:    root=float(re.search('[0-9]+', g).group())    number=float(re.search('(\d+)(?!.*\d)', g).group())    g=number**(1/float(root))print(g)使用此功能的好处是:未插入手动值您可以为数学库中存在的每个符号构建它也可以扩展到其他操作
随时随地看视频慕课网APP

相关分类

Python
我要回答