题目内容:数值运算
''''
获得用户输入的一个字符串,格式如下:M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
'''
多人在研究此题的时候,想当然的是分解字符串中的空格,分离数字和符号,比如常见的解答:
m,op,n=input().strip().split()
if op=='+':
s=float(m)+float(n)
elif op=='-':
s=float(m)-float(n)
elif op=='*':
s=float(m)*float(n)
elif op=='/':
s=float(m)/float(n)
print("%.2f"%s)
上面的解法想复杂了,其实有更简单的。
python内置函数中有一个 eval() 函数用来执行一个字符串表达式,并返回表达式的值。
比如:
>>>x = 7
>>> eval( '3 * x' )
21
>>> eval('pow(2,2)')
4
>>> eval('2 + 2')
4
>>> n=81
>>> eval("n + 4")
85
本上机实验题所描述内容,完全可以用一下解法:
s=eval(input())
print('%.2f'%s)
或者:
s = input()
print("{:.2f}".format(eval(s)))
关于这个解法需要用到format()函数了,该函数在runoob.com网站里有专门介绍str.format(),主要为增强字符串格式化的功能。具体函数功能,自行查看吧,在此不多解释。