2 回答

TA貢獻(xiàn)1784條經(jīng)驗 獲得超7個贊
首先,您將輸入轉(zhuǎn)換為 ,因此要精確(如果我們在無理數(shù)之類的術(shù)語中徘徊,這很重要),那么我們必須強調(diào)在這里談?wù)摕o理數(shù)近似的假設(shè)。float
完成后,您可以通過以下幾種方式探索解決方案:
第一種方法是定義一個命名空間,您可以在其中將字符串名稱映射到數(shù)字等效項 - 一個簡單的字典就可以做到這一點,例如:
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 }
我也用一些非無理占位符填充了它,以防你想嵌入一些簡單的轉(zhuǎn)換類型邏輯。
然后,您需要將輸入作為字符串,對字符串執(zhí)行簡單的替換函數(shù)以解析任何匹配的字符串,以及 viola
您有一個混合的數(shù)字/字符串輸入法。
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 )
然后,由您來維護(hù)該字典以包含您要識別的所有替換。這可能會變得乏味,但它應(yīng)該足以讓你開始。numbers_as_words
如果你找到一些官方的無理數(shù)近似列表,你也許可以下載它,并構(gòu)建一個映射作為一個自動化過程,但我剛才還沒有谷歌搜索。numbers_as_words

TA貢獻(xiàn)1893條經(jīng)驗 獲得超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)
使用此功能的好處是:
未插入手動值
您可以為數(shù)學(xué)庫中存在的每個符號構(gòu)建它
也可以擴展到其他操作
添加回答
舉報