2 回答
TA貢獻1784條經(jīng)驗 獲得超7個贊
首先,您將輸入轉(zhuǎn)換為 ,因此要精確(如果我們在無理數(shù)之類的術(shù)語中徘徊,這很重要),那么我們必須強調(diào)在這里談論無理數(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 )
然后,由您來維護該字典以包含您要識別的所有替換。這可能會變得乏味,但它應該足以讓你開始。numbers_as_words
如果你找到一些官方的無理數(shù)近似列表,你也許可以下載它,并構(gòu)建一個映射作為一個自動化過程,但我剛才還沒有谷歌搜索。numbers_as_words
TA貢獻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ù)學庫中存在的每個符號構(gòu)建它
也可以擴展到其他操作
添加回答
舉報
