Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 我如何将除法运算符/分配给文本字“;“分割”;或;“划分”;_Python 3.x - Fatal编程技术网

Python 3.x 我如何将除法运算符/分配给文本字“;“分割”;或;“划分”;

Python 3.x 我如何将除法运算符/分配给文本字“;“分割”;或;“划分”;,python-3.x,Python 3.x,我有一个文本,“45除以8时的余数5” 我只想以编程方式将除法运算符'/'分配给文本“divide”,然后计算45/8并得到结果(余数5)。因此,我验证文本是否正确 我试着这样 word= "45 divided by 8" rep=word.replace('divided by','/') print(rep) 但我得到的是45/8,而不是5作为余数因为这是关于翻译的,字典是个好主意: translations = { 'divided by': '//', 'multip

我有一个文本,“45除以8时的余数5”

我只想以编程方式将除法运算符'/'分配给文本“divide”,然后计算45/8并得到结果(余数5)。因此,我验证文本是否正确

我试着这样

word= "45 divided by 8"
rep=word.replace('divided by','/')
print(rep)

但我得到的是45/8,而不是5作为余数

因为这是关于翻译的,字典是个好主意:

translations = {
    'divided by': '//',
    'multiplied by' : '*',
    'times' : '*',
    'seven': '7',
}

def evaluate(sentence):
    for k, v in translations.items():
        sentence = sentence.replace(k, v)
    result = eval(sentence)
    return result

#examples
sentences = [
    "45 divided by 8",
    "45 multiplied by 8",
    "4 times 2 divided by seven",
    "4 times 2 times seven",
]

for s in sentences:
    print(s, 'evaluates to ', evaluate(s))

# displays:
# 45 divided by 8 evaluates to  5
# 45 multiplied by 8 evaluates to  360
# 4 times 2 divided by seven evaluates to  1
# 4 times 2 times seven evaluates to  56

请注意,人们通常建议使用
ast.literal\u eval
而不是
eval
,例如,请参见
eval(rep)
it。在python3中它会给出5.625(也许你想要
/
%
而不是
/
)@Demi Lune是他们在python中的任何一种方式,通过它我们可以替换任何文本“Divide”是由/写的地方,以及任何“Multiply”是由*写的地方。你只是用
str来替换它,不是?