任务描述
相关知识
input 函数的使用
Python 的条件语句
编程要求
测试说明
任务描述
本关任务:编写一个能计算两个数字加减乘除的小程序。
相关知识
为了完成本关任务,你需要掌握:
input 函数的使用;
Python 的条件语句。
input 函数的使用
Python 2 中的输入函数有input和raw_input,而 Python 3 中的输入函数只有input,这里只讲后者。每次使用input函数,默认从缓冲区读取一行内容,并以字符串形式返回内容,而且给函数传的参数可作为输出内容,输出在缓冲区。
示例程序:
#读取一行内容
s1 = input("请输入:")
示例输入:
hello python
缓冲区的显示内容为请输入:hello python。
而我们要对输入内容进行表达式运算,往往的操作就是将操作数和运算符分别提取出来,然后用栈的思想进行运算。这里只考虑最简单的情况——只有两个操作数和一个运算符,那么我们只需要将数字字符,通过int将其强制类型转换成数字,然后通过进制特点还原成原来的数字,再判断运算符类型,进而完成对应的运算。
上述过程可能会是其他高级编程语言的通常做法,但在 Python 中有一个eval函数,能够直接根据参数内容求出一些简单表达式字符串的值。
示例程序:
print(eval(“9+5-2*10”))
示例输出:
-6
Python 的条件语句
Python 的条件语句由关键字if、elif或else引出,其中if和elif后面可以接着写条件内容,else后面不能写条件内容。使用elif关键字,必须保证之前已经使用了if关键字,表示不满足该语句之前所有所写的条件,且满足本次所写的条件。如果使用else关键字,那么必须保证之前已经使用了if或elif关键字,且后面没有其他的条件语句,表示不满足该语句之前所有所写的条件。具体使用,请参照下面成绩判断程序。
示例程序:
def judge(x):
if x < 0 or x > 100:
print(f"{x} 不是一个合法的分数")
elif x < 60:
print(f"不及格!")
elif x < 90:
print(f"及格!")
else:
print(f"很优秀!")
judge(-2)
judge(20)
judge(66)
judge(99)
示例输出:
-2 不是一个合法的分数
不及格!
及格!
很优秀!
编程要求
根据提示,在右侧编辑器Begin-End区间补充代码,实现计算并返回简单表达式的值。返回结果请保留2位小数。
本关涉及的代码文件src/step3/easy_cal_stu.py,请读者仔细阅读并完成空缺代码的填写。
测试说明
本关的测试文件是src/step3/main.py。
读者将src/step3/easy_cal_stu.py中的代码补充完毕,然后点击评测,平台自动编译运行src/step3/main.py,并以标准输入方式提供测评输入;
平台获取程序的输出,然后将其与预期输出对比,如果一致则测试通过;否则测试失败。
平台会对你编写的代码进行测试:
每次测试输入3行:
第一行输入一个字符op,表示要进行的运算,保证表达式进行的运算只有加减乘除,即该字符只可能是+ - * /中的一个;
第二行输入一个数字,表示第一个操作数num_1;
第三行输入一个数字,表示第二个操作数num_2。
测试输入:
*
5
6
预期输出:
30.00
开始你的任务吧,祝你成功!
参考代码:
class Solution:
def solve(self, op, num_1, num_2):
'''
:type op, num_1, num_2: str, int, int
:rtype : Str
'''
#请在此添加代码,实现计算并返回表达式的结果,要求结果保留2位小数
#********** Begin *********#
ops=['+','-','*','/']
if op in ops:
s=eval('%d %s %d'%(num_1,op,num_2))
return ("%.2f"%s)
#********** End *********#