解题思路:

        利用正则表达式解题。

        

正则表达式 r'^(\d+)\s*([+\-*/%])\s*(\d+)$'

这是一个原始字符串(r'' 防止转义冲突)。

表达式分为三部分,匹配 数字 运算符 数字 的格式:

^:匹配字符串开头。

(\d+):匹配第一个数字(\d 表示数字,+ 表示至少一个)。

\s*:匹配零个或多个空格(\s 是空白字符,* 表示任意数量)。

([+\-*/%]):匹配运算符(+, -, *, /, %),注意 - 被转义为 \-)。

\s*:同上,匹配空格。

(\d+):匹配第二个数字。

$:匹配字符串结尾。



注意事项:

参考代码:

import re

 

def simple_arithmetic():

    expr = input().strip()

    

    # 正则表达式匹配:两个数字中间有运算符

    match = re.match(r'^(\d+)\s*([+\-*/%])\s*(\d+)$',  expr)

    if not match:

        return "Invalid input format. Expected: 'a op b'"

    

    a_str, op, b_str = match.groups() 

    

    try:

        a = int(a_str)

        b = int(b_str)

    except ValueError:

        return "Operands must be integers."

    

    if not (1 <= a <= 99 and 1 <= b <= 99):

        return "Operands must be two-digit positive integers."

    

    try:

        if op == '+':

            result = a + b

        elif op == '-':

            result = a - b 

        elif op == '*':

            result = a * b

        elif op == '/':

            if b == 0:

                return "Division by zero is not allowed."

            result = a // b

        elif op == '%':

            if b == 0:

                return "Modulo by zero is not allowed."

            result = a % b 

    except Exception as e:

        return f"An error occurred: {e}"

    

    return result 

 

if __name__ == "__main__":

    print(simple_arithmetic())

    


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论