为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUWWW 2022-08-02 18:21:57
如何在python中获取无理数作为用户输入?像 2 的平方根类似的东西:Irrational_Number = float(input("ENTER a Irrational Number : "))    >>> ENTER a Irrational Number : (USER INPUT)然后用户在命令行中放置一个像K的第N个根(我的意思是这种格式的数字不完全是这种字符串)“Pi”,“e”或“Phi”。这样的数字。用户如何直接在命令行 python 中执行此操作 (3.8)我到处搜索了这个问题,但没有任何关于这个问题的信息......
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

首先,您将输入转换为 ,因此要精确(如果我们在无理数之类的术语中徘徊,这很重要),那么我们必须强调在这里谈论无理数近似的假设。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

//img1.sycdn.imooc.com//62e8fae80001ae2000510121.jpg

您有一个混合的数字/字符串输入法。


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


查看完整回答
反对 回复 2022-08-02
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

请找到下面的代码片段:


import re

g = input("Enter your irrational number : ") 

if g=='pi':

    g=math.pi

elif "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)

使用此功能的好处是:

  1. 未插入手动值

  2. 您可以为数学库中存在的每个符号构建它

  3. 也可以扩展到其他操作



查看完整回答
反对 回复 2022-08-02
  • 2 回答
  • 0 关注
  • 335 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号