酷代码 AI
菜单
服务商

Python实现简单计算器:处理四则运算及异常情况

问题分析 我们需要设计一个简单的计算器程序,能够处理两个整数之间的加、减、乘、除运算。具体要求如下: 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` ######[AI问答 | 905点数解答 | 2025-12-17 12:15:53]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]