编写一个python程序(假设python文件名为exam01.py),程序接收一个参数,该参数为一个文件名。使用命令python exam01.py test.txt执行命令。该程序需满足以下要求:
(1)如果该文件不存在,则输出错误信息并结束程序。(5分)
(2)如果文件存在,该文件包括若干行文本,其中每一行是一个数学算式,算式中只包括正整数以及四则运算符号(±/),程序计算该行算式,以最简分数形式输出结果,输出到命令行,每行一个。根据支持的算式格式评分。具体要求如下:
(2.1)支持格式如“a+b”或“a-b”的数学算式计算,其中a和b的格式分别为一个正整数或者一个分数(即以“/”分隔的两个正整数)。例如:“3/5+1/2”、“12/7-3/15”、“123+23/6”。(10分)
(2.2)支持格式如“a±b±c±……±g”的数学算式计算,其中a,b,…,g的格式也为一个正整数或者一个分数。例如:“1+2/5-3/12+123/456+76+12/34”.(10分)
(2.3)【加分项】支持任意合法格式的数学算式计算(只包括正整数和四则运算,不含括号)。例如:“12/3+4-5/6+7*8-9/10”。(10分)(建议:没有把握的同学建议先做后面的题目。)
(3)该程序也可以接收两个参数,第一个参数作用不变,第二个参数传入另外一个文件名:如果传入一个参数,则程序结果输出到命令行;如果传入两个参数,则程序结果输出到第二个参数的文件中。(5分)
【注意问题】
(a)只能使用Python自带的标准库,不允许使用第三方库。
(b)最后结果输出为最简分数形式(分子分母不可约分,假分数不要化为带分数)。如果结果可以化简为整数,则直接输出为整数。
(c)不需要考虑输入文件格式不合法的情况。
(d)只编写一个.py文件解决上述所有要求。