酷代码 AI
菜单

题目描述 设计一个最简单的计算器,支持'+'、'-'、'*'、'/'四种运算。 仅需考虑输入输出为整数的情况,数据和运算结果不会超过 int 表示的范围。 输入 输入只有一行,共有三个参数,其中第 1、2 个参数为整数,第 3 个参数为操作符('+'、'-'、'*'、'/'或其它符号)。 输出 输出只有一行,一个整数,为运算结果。然而: 如果出现除数为 0 的情况,则输出:"Divided by zero!"; 如果出现无效的操作符(即不为'+'、'-'、'*'、'/'之一),则输出:"Invalid operator!"。 样例输入 复制 1 2 + 样例输出 复制 3

问题分析 我们需要设计一个简单的计算器程序,能够处理两个整数之间的加、减、乘、除运算。具体要求如下: 1. 输入格式:一行三个参数,前两个是整数,第三个是操作符('+', '-', '*', '/'或其他符号)。 2. 输出规则: - 如果操作符有效且不是除法或正常执行其他运算,则输出结果。 - 如果遇到除数为零的情况(即第二个数为0且操作符是'/'),输出"Divided by zero!"。 - 如果操作符无效(不是上述四种之一),输出"Invalid operator!"。 3. 数据范围:所有数值都在int范围内,无需考虑溢出等问题。 解决思路 1. 读取输入:从标准输入读取一行数据,拆分成三个部分:num1, num2, op。 2. 验证操作符有效性:检查op是否属于['+', '-', '*', '/']中的一个。如果不是,直接返回错误信息。 3. 处理特殊情况(除零错误):当op为'/'时,先判断num2是否为0。如果是,则输出相应错误信息;否则进行正常的除法运算。 4. 执行对应运算:根据不同的操作符执行相应的算术运算。 5. 输出结果:根据上述逻辑得到最终结果并打印。 Python代码实现 ```python # 读取输入并分割成三部分 line = input().split() if len(line) != 3: print("Invalid input format!") # 确保有恰好三个元素 else: try: a = int(line[0]) # 第一个数字转换为整数 b = int(line[1]) # 第二个数字转换为整数 op = line[2] # 操作符字符串 # 根据不同的操作符进行处理 if op == '+': res = a + b print(res) elif op == '-': res = a - b print(res) elif op == '*': res = a * b print(res) elif op == '/': if b == 0: print("Divided by zero!") else: res = a // b # 题目要求整数结果,所以用整除 print(res) else: print("Invalid operator!") except ValueError: print("Input must be integers for the first two parameters.") ``` 代码解释 1. 输入处理:使用`input().split()`读取一行输入并将其拆分成一个列表。预期该列表应有3个元素(两个整数和一个操作符)。 2. 类型转换与异常捕获:尝试将前两个元素转为整数。若失败(如非数字字符),会抛出`ValueError`,此时提示用户输入的前两项必须是整数。 3. 操作符判断:通过一系列`if-elif`语句检查操作符的类型: - `+`, `-`, `*`直接计算相应结果。 - `/`需要额外检查除数是否为零。若为零,输出错误信息;否则执行整除操作(因为题目说明结果是整数)。 - 其他任何操作符均视为无效,输出对应的错误信息。 4. 边界情况覆盖:包括无效的操作符、除零错误以及非整数输入等情况都有相应的处理逻辑。 示例测试 - 样例输入: `1 2 +` → 输出: `3` - 测试案例1: `5 0 /` → 输出: `Divided by zero!` - 测试案例2: `3 4 %` → 输出: `Invalid operator!` - 测试案例3: `10 5 *` → 输出: `50` - 测试案例4: `7 3 -` → 输出: `4` [2025-12-17 12:15:53 | AI问答 | 905点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多